Воркшоп по разработке автономного агента на основе LLM (Осенний семестр)
Алексей Комиссаров, PhD (телеграм @ad3002)
Предыдущий курс: https://github.com/aglabx/masters-course-2024-make-jarvis-workshop
Финальный проект предыдущего курса: https://github.com/ad3002/make_jarvis
- Навыки программирования среднего уровня, предпочтительно на Python (**)
- Базовое понимание концепций машинного обучения
- Знакомство с принципами обработки естественного языка с LLMs
- Опыт интеграции API и работы с веб-сервисами
- Базовые знания архитектуры программного обеспечения и паттернов проектирования
- Знакомство с системами контроля версий (например, Git)
- Базовый опыт командной работы
- Желательно: наличие своего проекта или идеи для специализации агента для финального проекта, если нет то, не страшно, тогда можно будет придумать в процессе курса или присоединиться к кому-то у кого такой проект есть, но нужно учитывать, что размер команды ограничен двумя человеками.
(*) умение использовать топовые модели в приниципе делает это умение единственным пререквезитом, в курсе будет достаточно много про быстрое прототипирование с использованием LLMs
(**) по ощущениям Python ни разу не лучший язык для агентов и другие языкие такие как Go или Rust (или старые добрые плюсы) тоже расматриваются
По окончании этого курса студенты смогут:
- Проектировать и реализовывать архитектуру автономного агента на основе больших языковых моделей (LLM)
- Интегрировать и настраивать LLM для конкретных приложений
- Разрабатывать системы краткосрочной и долгосрочной памяти для ИИ-агентов
- Реализовывать алгоритмы целеполагания и принятия решений для автономных агентов
- Создавать интерфейсы для взаимодействия агента с внешними источниками данных и сервисами
- Оптимизировать производительность ИИ-агента и реализовывать параллельную обработку задач
- Разрабатывать и проводить комплексное тестирование сложных ИИ-систем
- Специализировать ИИ-агента для конкретных областей (например, помощь в программировании, анализ данных, креативное письмо)
- Представлять и демонстрировать полнофункциональный проект ИИ-агента
- Эффективно сотрудничать в команде для разработки сложной ИИ-системы
- Успешное выполнение проектов в течение курса (70%)
- Успешная защита финального проекта (30%)
Subject | Start Date | Start Time (GMT+3) | End Time (GMT+3) | Description | Location |
---|---|---|---|---|---|
Agents: lecture 1 - Введение и постановка целей | 04/10/2024 | 17:00 | 18:30 | Введение в воркшоп. Обзор архитектуры автономного агента на основе LLM. Формирование команд и распределение ролей. Задание: Определение целей и требований проекта. | Zoom |
Agents: lecture 2 - Выбор и настройка LLM | 11/10/2024 | 17:00 | 18:30 | Обзор современных LLM (GPT-4, LLaMA и др.). Выбор подходящей модели для проекта. Настройка инфраструктуры и интеграция API. Практическая часть: Подключение и тестирование LLM. | Zoom |
Agents: lecture 3 - Проектирование архитектуры агента | 18/10/2024 | 17:00 | 18:30 | Архитектурные паттерны (микросервисы vs монолит). Проектирование основных компонентов системы и их взаимодействий. Задание: Подготовка диаграммы архитектуры проекта. | Zoom |
Agents: lecture 4 - Разработка системы памяти агента | 25/10/2024 | 17:00 | 18:30 | Типы памяти (кратковременная и долговременная). Хранение и извлечение данных с использованием баз данных (SQL, NoSQL). Практическая часть: Реализация системы памяти. Задание: Разработка и тестирование системы памяти. | Zoom |
Agents: lecture 5 - Целеполагание и планирование | 01/11/2024 | 17:00 | 18:30 | Постановка целей и декомпозиция на подзадачи. Алгоритмы планирования (A*, Dijkstra и др.). Практическая часть: Реализация системы целеполагания. Задание: Создание алгоритма декомпозиции целей. | Zoom |
Agents: lecture 6 - Принятие решений и стратегия агента | 08/11/2024 | 17:00 | 18:30 | Модели принятия решений (машинное обучение vs правила). Стратегии поведения (реактивные vs проактивные агенты). Практическая часть: Разработка логики принятия решений. Задание: Реализация механизма принятия решений. | Zoom |
Agents: lecture 7 - Взаимодействие с внешними API | 15/11/2024 | 17:00 | 18:30 | Интеграция с внешними API (REST, GraphQL, Webhooks). Аутентификация и безопасность (OAuth, API ключи). Практическая часть: Интеграция внешних API. Задание: Интегрировать минимум два внешних API. | Zoom |
Agents: lecture 8 - Разработка инструментов для выполнения действий | 22/11/2024 | 17:00 | 18:30 | Автоматизация действий агента. Интеграция с системами управления задачами (Jira, Trello, Asana и др.). Практическая часть: Разработка модулей для выполнения действий. Задание: Разработка инструментов для автоматизированных действий. | Zoom |
Agents: lecture 9 - Специализация агента: Определение и реализация | 29/11/2024 | 17:00 | 18:30 | Выбор специализации агента (ассистент по программированию, аналитик данных и др.). Требования и особенности выбранной специализации. Практическая часть: Разработка специализированных модулей. Задание: Определение и начало реализации ключевых функций специализации. | Zoom |
Agents: lecture 10 - Интеграция специализированных модулей | 06/12/2024 | 17:00 | 18:30 | Объединение специализированных модулей с ядром агента. Тестирование интеграции. Практическая часть: Интеграция и тестирование специализированных модулей. Задание: Завершение интеграции и тестирование. | Zoom |
Agents: lecture 11 - Оптимизация производительности | 13/12/2024 | 17:00 | 18:30 | Анализ производительности системы. Методы оптимизации (кэширование, асинхронность, параллельное выполнение). Практическая часть: Оптимизация ключевых компонентов агента. Задание: Улучшение производительности системы на основе анализа. | Zoom |
Agents: lecture 12 - Масштабирование системы | 20/12/2024 | 17:00 | 18:30 | Архитектурные подходы к масштабированию (горизонтальное vs вертикальное). Использование облачных сервисов (AWS, GCP, Azure). Практическая часть: Реализация масштабируемой архитектуры. Задание: Подготовка системы к масштабированию и тестирование на увеличенной нагрузке. | Zoom |
Agents: lecture 13 - Обеспечение безопасности и конфиденциальности | 27/12/2024 | 17:00 | 18:30 | Безопасность данных (шифрование, защита от SQL-инъекций, XSS и др.). Управление доступом (роли и права доступа). Практическая часть: Внедрение мер безопасности в систему агента. Задание: Проведение аудита безопасности и внедрение необходимых улучшений. | Zoom |
Agents: lecture 14 - Тестирование и отладка системы | 03/01/2025 | 17:00 | 18:30 | Методологии тестирования (юнит-тесты, интеграционные тесты, функциональные тесты). Инструменты для тестирования (Jest, Mocha, Selenium и др.). Практическая часть: Разработка и запуск тестов для системы агента. Задание: Создание набора тестов и их выполнение. | Zoom |
Agents: lecture 15 - Внедрение CI/CD | 10/01/2025 | 17:00 | 18:30 | Преимущества CI/CD (автоматизация сборки, тестирования и деплоя). Инструменты CI/CD (Jenkins, GitHub Actions, GitLab CI). Практическая часть: Настройка пайплайна CI/CD для проекта. Задание: Внедрение процесса CI/CD для автоматизации разработки и развертывания. | Zoom |
Agents: lecture 16 - Финальные доработки и подготовка к демонстрации | 17/01/2025 | 17:00 | 18:30 | Ревизия проекта и проверка соответствия требованиям. Подготовка технической документации и оптимизация системы. Практическая часть: Финальная оптимизация и подготовка системы к демонстрации. Задание: Завершение доработок и подготовка проекта к финальному представлению. | Zoom |
Agents: demo day 1 - Презентация проектов | 24/01/2025 | 17:00 | 18:30 | Презентация проектов (группы 1-2). Демонстрация работы агентов, обсуждение и обратная связь от преподавателей и участников. | Zoom |
Agents: demo day 2 - Презентация проектов | 31/01/2025 | 17:00 | 18:30 | Презентация проектов (группы 3-4). Обсуждение и обмен опытом, оценка проектов по установленным критериям. | Zoom |
- Обзор воркшопа:
- Цели и задачи курса.
- Ожидаемые результаты и критерии успеха.
- Архитектура автономного агента:
- Основные компоненты и их взаимодействие.
- Примеры существующих решений.
- Формирование команд и распределение ролей:
- Создание команд по 2-3 человека.
- Определение ролей (backend, frontend, ML инженер и т.д.).
- Задание: Определение целей и основных требований проекта.
- Обзор современных LLM:
- GPT-4, LLaMA, другие модели.
- Сравнение возможностей и ограничений.
- Инфраструктура для работы с LLM:
- Выбор платформы (OpenAI, Hugging Face, локальные развертывания).
- Настройка API и инструментов доступа.
- Практическая часть: Настройка среды разработки и интеграция выбранной LLM.
- Задание: Создать базовое подключение к LLM и протестировать его возможности.
- Архитектурные паттерны:
- Микросервисы vs монолит.
- Использование событийной архитектуры.
- Компоненты системы:
- Модули взаимодействия с пользователем.
- Система управления состоянием.
- База данных и хранение данных.
- Практическая часть: Разработка схемы архитектуры проекта.
- Задание: Подготовить диаграмму архитектуры и описать ключевые компоненты.
- Типы памяти:
- Кратковременная vs долговременная память.
- Хранение и извлечение данных:
- Использование баз данных (SQL, NoSQL).
- Методы индексирования и поиска.
- Практическая часть: Реализация системы памяти для хранения контекста диалогов.
- Задание: Разработать и протестировать базовую систему памяти.
- Постановка целей:
- Декомпозиция целей на подзадачи.
- Приоритетизация задач.
- Алгоритмы планирования:
- Методы поиска пути (A*, Dijkstra и др.).
- Планирование на основе состояний.
- Практическая часть: Реализация системы постановки и декомпозиции целей.
- Задание: Создать алгоритм, позволяющий агенту разбивать цели на подзадачи.
- Модели принятия решений:
- Машинное обучение vs правило основанное принятие решений.
- Основы обучения с подкреплением (Reinforcement Learning).
- Стратегии поведения:
- Реактивные vs проактивные агенты.
- Практическая часть: Разработка логики принятия решений на основе текущего состояния и целей.
- Задание: Реализовать механизм принятия решений для агента.
- Обзор интеграции с API:
- REST, GraphQL, Webhooks.
- Аутентификация и безопасность:
- OAuth, API ключи.
- Практическая часть: Интеграция внешних API (например, поиск, аналитика, генерация изображений).
- Задание: Интегрировать минимум два внешних API в систему агента.
- Автоматизация действий:
- Вызов внешних сервисов.
- Управление задачами и процессами.
- Интеграция с системами управления задачами
- Практическая часть: Создание модулей для выполнения действий на основе данных из API.
- Задание: Разработать и интегрировать инструменты для выполнения автоматизированных действий.
- Выбор специализации:
- Ассистент по программированию, аналитик данных, креативный писатель и др.
- Требования и особенности специализации:
- Специфические функции и возможности.
- Практическая часть: Разработка специализированных модулей.
- Задание: Определить ключевые функции для выбранной специализации и начать их реализацию.
- Объединение модулей:
- Интеграция специализированных функций с ядром агента.
- Обеспечение взаимодействия между модулями.
- Тестирование интеграции:
- Проверка совместимости и корректности работы.
- Практическая часть: Интеграция и тестирование специализированных модулей.
- Задание: Завершить интеграцию специализированных функций и провести тестирование.
- Анализ производительности:
- Профилирование кода.
- Идентификация узких мест.
- Методы оптимизации:
- Кэширование, асинхронность, параллельное выполнение.
- Практическая часть: Оптимизация ключевых компонентов агента.
- Задание: Улучшить производительность системы на основе проведённого анализа.
- Архитектурные подходы к масштабированию:
- Горизонтальное vs вертикальное масштабирование.
- Балансировка нагрузки.
- Использование облачных сервисов:
- Практическая часть: Реализация масштабируемой архитектуры.
- Задание: Подготовить систему к масштабированию и протестировать на увеличенной нагрузке.
- LLM инъекции и др проблемы
- Управление доступом:
- Роли и права доступа.
- Практическая часть: Внедрение мер безопасности в систему агента.
- Задание: Провести аудит безопасности и внедрить необходимые улучшения.
- Методологии тестирования:
- Юнит-тесты, интеграционные тесты, функциональные тесты.
- Инструменты для тестирования:
- Jest, Mocha, Selenium и др.
- Практическая часть: Разработка и запуск тестов для системы агента.
- Задание: Создать набор тестов и провести их выполнение.
- Преимущества CI/CD:
- Автоматизация сборки, тестирования и деплоя.
- Инструменты CI/CD:
- Jenkins, GitHub Actions, GitLab CI.
- Практическая часть: Настройка пайплайна CI/CD для проекта.
- Задание: Внедрить процесс CI/CD для автоматизации разработки и развертывания.
- Ревизия проекта:
- Проверка соответствия требованиям.
- Исправление ошибок и улучшение функциональности.
- Документация:
- Подготовка технической документации.
- Написание руководств по использованию и развёртыванию.
- Практическая часть: Финальная оптимизация и подготовка системы к демонстрации.
- Задание: Завершить все доработки и подготовить проект к финальному представлению.
- Демо-день 1: Презентация проектов (группы 1-2)
- Демонстрация работы агента.
- Ответы на вопросы и обсуждение.
- Демо-день 2: Презентация проектов (группы 3-4)
- Продолжение демонстраций.
- Обсуждение и обмен опытом.
- Оценка проектов:
- Оценивание по критериям: функциональность, производительность, инновационность, качество кода и архитектуры.
- Обратная связь от преподавателей и участников.
- Заключение:
- Подведение итогов воркшопа.
- Обсуждение возможных направлений дальнейшего развития проектов.
Предположим, что воркшоп проходит в течение 4-5 месяцев с еженедельными занятиями. Вот примерное распределение тем по неделям:
-
Месяц 1: Занятия 1-4
- Введение, выбор и настройка LLM, проектирование архитектуры, разработка системы памяти.
-
Месяц 2: Занятия 5-8
- Целеполагание, принятие решений, взаимодействие с внешними API, разработка инструментов для выполнения действий.
-
Месяц 3: Занятия 9-12
- Специализация агента, интеграция специализированных модулей, оптимизация производительности, масштабирование системы.
-
Месяц 4: Занятия 13-17
- Обеспечение безопасности, тестирование и отладка, внедрение CI/CD, финальные доработки, демо-дни и оценка проектов.
(*) как и в предыдущем курсе будет дополнительно жанр Let's code, так что временная нагрузка на посмотреть материалы может быть больше, и это план, максимум, реальный план может быть чуть меньше или чуть больше в зависимости от того, что вообще пройзойдет с этой темой за осень 2024 года.
- https://haystack.deepset.ai/ - Haystack
- https://www.langchain.com/ - LangChain