Книжный куб
11.1K subscribers
2.67K photos
6 videos
3 files
1.97K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре
Download Telegram
How we use GenAI in SRE (Рубрика #SRE)

Я периодически почитываю статьи Google на тему "Distributed Systems and Parallel Computing" на их сайте research.google. Именно там я нашел статью "How we use GenAI in SRE" с абстрактом вида
Службы Google работают на крупнейшей в мире сети компьютеров. Инженеры по надежности сайтов (SRE) следят за тем, чтобы весь стек был в порядке: центры обработки данных были безопасными, хорошо подготовленными; у нас были резервные механизмы и целостность данных; чтобы убедиться, что мы правильно проектируем наш стек, используя правильные компромиссы в области хранения, репликации и программного обеспечения. Генеративный ИИ — отличный инструмент, который сделает нас сверхэффективными: имея доступ к инструментам для создания наших самых сложных конфигураций, для классификации рисков и событий, для управления большими массивами машин с помощью агентов или для дешевой автоматизации сложных рабочих процессов. В этом докладе будет рассмотрен путь, который SRE начал много лет назад, чтобы стать по-настоящему дисциплиной AI-First, и последние достижения в области инструментов, практик и рабочих процессов.

Эта статья оказалась не статьей, а простенькой презентацией от 20 апреля 2024 года (сама презентация доступна здесь). Из этой презентации можно вытащить не так много нового

1) Тезис про то, как SRE связан с работой AI систем
SRE is crucial component to operate at scale AI systems that are trustworthy, safe and efficient

2) Как SRE помогает AI
- Дизайн распределенных систем - системы, у которых основа завязана на AI, тоже должны хорошо масштабироваться и быть надежными
- Ускорить деплой - новые железные компоненты (GPU, TPU, ...) должны поступать в датацентры и эффективно шедулиться
- Trust & safety - результаты работы систем, основывающихся на AI моделях, должны быть выровнены относительно человеческих стандартов
- Эксплуатация и автоматизация - тренировка моделей и пайлайны для fine-tuning, релизов, откатов и так далее (вообще это можно называть MLOps)

3) Как AI помогает SRE
- Генеративный AI для документации и постмортемов - сохранение документации чистой и актуальной, создание изначальных постмортемов (видимо, рыба с автозаполнением части инфы)
- Автоматизация workflow - агентские процессы служат как workflow runners и выполняют часть функций на проде
- Оценка риска - еще до возникновения инцидента модели могут детектировать проблемы и исправлять часть из них
- Эффективность ресурсов - начиная с температур в датацентрам и до размещения сервисов по доступным машинкам ML модели помогают проду быть более здоровым и эффективным

В итоге, это доклад на хайповую тему, но вот содержание не уходит дальше рассказов о том, что SRE в Google теперь на AI-стероидах и применяется к AI системам:))

#SRE #Management #ML #AI #Processes #SystemDesign #DistributedSystems
👍63🔥1
[1/3] A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-making (Рубрика #Architecture)

В декабре 2024 года вышел whitepaper на тему использования Gen AI в архитектуре. Я заинтересовался этой темой и решил прочитать что же придумали ребята. Оказалось, что это некоторый co-pilot для архитекторов, который помогает правильные решения. Для этого авторы предлагают использовать паттерны промптинга, что объединяются в цепочку подготовки, анализа и принятия архитектурных решений. Основные паттерны здесь следующие
- Software architect persona pattern
- Architectural project context pattern
- Quality attribute question pattern
- Technical premises pattern
- Uncertain requirement statement pattern
- Prompt pattern sequence

Эти паттерны авторы исследования опробовали на 3 компаниях - двух настоящих (leading automobile financing bank's technological portal и leading retail pharmacy network) и одной вымышленной компании, что по легенде делает cloud-based CRM.

В самом начале авторы рассказывают как выглядит их подход к описанию указанных выше паттернов, куда входят как стандартные аттрибуты вида: Name, Context, Problem, Forces, Solution, Rationale и Consequences, а также расширенный список
- Specializes: описывает, как текущий стандарт специализируется или расширяет существующие стандарты, уточняя их связь и адаптацию для решения конкретных задач или контекстов.
- Statement template: предоставляет краткое описание или структурированное резюме стандарта, позволяя быстро понять его суть.
- Concrete statement example: приводит реальный пример использования шаблона описания, демонстрируя его применение на практике.
- Related patterns: содержит информацию о других паттернах, связанных с текущим, включая зависимости, предпосылки и рекомендации по совместному использованию (связанные паттерны вынесены в приложение к статье)
- Usage example: приводит практический пример из реальной жизни, показывающий применение паттерна и его полезность в конкретной ситуации.
- Known uses: представляет исторические или текущие примеры успешной реализации паттернов, подтверждая их эффективность и предоставляя ссылку на выполненный запрос для получения дополнительных деталей.

Сам flow работы с паттернами и Gen AI инструментами по мнению авторов статьи выглядит так
1) Архитектор ищет подходящие паттерны из списка выше
2) Дальше он применяет их для своего конкретного проекта и получает подсказки и предложения
3) Дальше он принимает решения после анализа сгенерированных подсказок и своего знания проекта

Все звучит достаточно понятно, но давайте перейдем к самим паттернам, а потом рассмотрим как авторы предлагают объединять их в цепочку промптов для ассистирования в анализе архитектуры проекта и принятии арх решений. Сами паттерны будут рассмотрены в следующем посте.

#Architecture #GenAI #AI #ML #Software #Engineering #SystemDesign #DistributedSystems #Project
👍8🔥32🆒1
[2/3] A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-making (Рубрика #Architecture)

Продолжим рассмотрение whitepaper на тему использования Gen AI в архитектуре, начатый в первом посте, рассмотрением паттернов промтинга.

1) Software architect persona pattern

Это паттерн, расширяющий паттерн персоны, где суть в том, чтобы AI генерировал контент релевантный для архитектора, то есть он был точный и адресовал те проблемы, с которыми сталкиваются архитекторы. Это достигается путем создания запросов, которые четко определяют роль архитектора программного обеспечения, цели и ограничения в отношении целевого проектного решения. Вот шаблон промпта от авторов
You are [Persona’s Name] in the role [Role]. Your main goal is [Main Goal]. You cannot [Limitations/Constraints].

В качестве примера промпта приводится следующий
You are a Senior Software Architect specializing in cloud-based solutions.Your main goal is to optimize system scalability and performance. You cannot propose solutions that significantly increase operational costs.


2) Architectural project context
Авторы предлагают задавать контекст проекта через три ключевых фактора
- Операционные, такие как доступное время разработки
- Организационные, такие как размер команды
- Финансовые, такие как бюджет проекта
Эти факторы напрямую влияют на осуществимость и направление архитектурных решений, что требует паттерна, который эффективно интегрирует эти элементы в процесс принятия решений. Интересно, что авторы тут рассматривают проектный подход реализации больших архитектурных изменений. Вот шаблон промпта от авторов
Given a development timeline of [Time], a team of [Team Size], and a budget of [Budget], determine if the proposed architecture [Architecture Description] is feasible and can meet the project requirements without compromising on quality.

В качестве примера промпта приводится следующий
Given a development timeline of 6 months, a team of 10 developers, and a budget of $500k, determine if implementing a microservices-based architecture for our e-commerce platform is feasible and can deliver the required scalability and performance within these constraints.

Как по мне, такое описание контекста проекта кажется слишком убогим, хотелось бы посомтреть как выглядит output LLM, если ей скормить полноценное описание:)

3) Quality attribute question pattern
Для проектирования качественной архитектуры нужно правильно определить функциональные и нефункциональные требования, а также выделить желаемые атрибуты качества. Дальше уже можно выбирать архитектурные паттерны, тенологиии и все остальное. В этом паттерне авторы предлагают научить AI-ассистент задавать вопросы живым архитекторам как раз для выделения этих ключевых атрибутов качества. Вот так выглядит шаблон промпта
You are [Role] responsible for [Description Project]. Your primary focus is to design an architecture that excels in [List Of The Quality Attribute]. Your task is [Decision-making Process]. You should ask [Clarify Doubts]. [Recommendations]. Additionally, provide a [Comprehensive Prompt].

В качестве примера промпта приводится следующий
Уou are an experienced software architect responsible for creating a credit card processing system for a medium-sized financial institution. Your primary focus is to design an architecture that excels in scalability, security, and performance. Your task is to carefully navigate through the decision-making process of the credit card processing system architecture step by step. You should ask any necessary questions to clarify doubts about the quality attributes of the new system. Avoid making any architectural decisions until all questions are answered. Additionally, provide a comprehensive prompt that includes all the data collected in the previous steps, along with an explanation of the rationale behind each architectural decision-making.

Продолжение обзора паттернов и их совместного использования в следующем посте.

#Architecture #GenAI #AI #ML #Software #Engineering #SystemDesign #DistributedSystems #Project
👍73🔥2
[3/3] A Prompt Pattern Sequence Approach to Apply Generative AI in Assisting Software Architecture Decision-making (Рубрика #Architecture)

Продолжим рассмотрение (1 и 2) whitepaper на тему использования Gen AI в архитектуре, начатый в первом посте, рассмотрением паттернов промтинга.

4) Technical Premises Pattern
Использование генеративного ИИ может привести к проблемам галлюцинаций, которые иногда могут решить LLM. Но при проектировании обеспечение точности и надежности данных, используемых в архитектурных решениях, имеет важное значение для успеха любого проекта. Этот паттерн помогает проверить технические предпосылки, приведенные LLM, чтобы гарантировать точность и надежность информации, используемой при принятии необходимых архитектурных решений?
В итоге, болванка паттерна представлена ниже, где list of technical premises предоставляется LLM и относится к -ilities проекта
[Context] and [List of Technical Premises]. From now on, make sure that when generating a response, the AI language model creates a set of specific facts for each technical premise and justification for each architectural decision-making. These facts should be verified and listed at the end of the output.

А пример конкретного промпта и ответа выглядит так

5) Uncertain Requirement Statement Pattern
Неопределенности в требованиях к проекту могут существенно повлиять на архитектуру программного обеспечения и привести к рискам в дальнейшем.Чтобы смягчить эти последствия, архитекторам стоит делать прогнозы относительно реализации требований, которые изначально не были запланированы или являются неопределенными. Этот паттерн помогает учесть эти неявные требования В итоге, болванка паттерна представлена ниже
Statement Template: In [Project Context], and [Uncertain Aspect].Examine the potential repercussions of not adequately addressing these uncertainties in the system architecture. This assessment will inform our strategic planning and decision-making in software architecture for mitigation, emphasizing creating a system that is not only technologically advanced but also flexible and responsive to regulatory and technological changes.

6) Prompt Pattern Sequence

Последний паттерн из этой статьи рассказывает о том, как собрать цепочку из вызовов предыдущих паттернов для анализа архитектуры. Ребята предлагают использовать их в таком порядке
1. Define the Role and Objective of the Architect
2. Applying the Software Architect Persona
3. Evaluate Technical Premises
4. Unclear Requirements with Uncertain Requirement Statement
5. Refining Quality Attributes with Quality Attribute Question
6. Budget and Resources Defined with Architectural Project Context
7. Evaluate Results

В статье авторы привели примеры всех цепочек промптов для трех use cases, описанных в самом начале
- Prompt Pattern Sequence for Brazilian Financial Bank
- Prompt Pattern Sequence for Brazilian Pharmacies Nationwide
- Prompt Pattern Sequence for CRM Application Cloud-Based for a Startup

В заключении авторы говорят о том, что
Pattern-based Prompt Sequence advocated a strategic approach to leveraging generative AI to assist software architects in navigating decision-making processes.
Как по мне, это движение в правильном направлении для создания co-architect, который помогает опытным инженерам размышлять над архитектурой в их проекте/продукте, но пока получившиеся цепочки промптов выглядят очень общими - как будто пообщался с консультантами из мира разработки:) Интересно, а что будет если дотюнить модельку и обучить ее внутри-компанейской специфики через RAG или fine tune ... Пока не ясно, но хотелось бы попробовать что-то у себя внутри компании.

#Architecture #GenAI #AI #ML #Software #Engineering #SystemDesign #DistributedSystems #Project
👍10🔥43
Empirical evidence of Large Language Model's influence on human spoken communication (Рубрика #AI)

Вы когда-нибудь задумывались о том, а как устроена наша речь и откуда мы черпаем свой словарный запас? Вот и ученые из "Max Planck Institute for Human Development" тоже об этом думали и решили провести исследование устной речи и как на нее повлияли большие языковые модели. С письменной речью уже давно все понятно, а вот устная речь требовала исследования. Его методология выглядела следующим образом

- Первый этап: Исследователи загрузили в ChatGPT миллионы страниц электронных писем, эссе, научных статей и новостных материалов, попросив ИИ "отполировать" тексты. Затем они выделили слова, которые ChatGPT использовал значительно чаще оригинальных авторов.
- Второй этап: Команда проанализировала более 360 000 видеороликов YouTube и 771 000 эпизодов подкастов, записанных до и после релиза ChatGPT. Общий объем проанализированного контента составил свыше 740 000 часов человеческой речи.
- Контрольная группа: Для обеспечения достоверности результатов ученые создали "синтетические контрольные группы" из синонимов, которые ChatGPT использовал реже, таких как "examine" и "explore" вместо "delve"

В результате исследования авторы обнаружили возникновение закрытых петлей обратной связи между людьми и AI в плане культуры. Соавтор исследования Левин Бринкманн объясняет этот феномен тем, что люди склонны подражать тем, кого считают авторитетными источниками. А AI может очень уверенно и структурно излагать материал, что делает его в глазах людей экспертным источником. А это приводит к перениманию лексики, а также характера разговора - речь людей становится длинее, структурнее и менее эмоциональной.

Эффект особенно заметен в науке, образовании и бизнесе. Наибольшее влияние обнаружено в академических YouTube-каналах, где использование GPT-слов выросло на 25-50% в год. Исследование также показало, что влияние ИИ способствует унификации английского языка по американскому образцу. Все это приводит к социальным последствиям в виде потери культурно разнообразия.

Забавно, что ученые нашли парадокс: если окружающие знают о частом использовании ИИ человеком, его красноречивость воспринимается негативно. Собеседники считают такого человека менее вовлеченным и эмпатичным, особенно в онлайн-общении.

Интересно, а какие еще неявные последствия от AI мы уже испытываем на себе и к чему они приведут в итоге.

#AI #Software #PopularScience #GenAI
👍94🔥2