Skip to content

Latest commit

 

History

History
251 lines (210 loc) · 28.3 KB

File metadata and controls

251 lines (210 loc) · 28.3 KB

Название курса

Воркшоп по разработке автономного агента на основе LLM (Осенний семестр)

1. Преподаватели

Алексей Комиссаров, 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 (или старые добрые плюсы) тоже расматриваются

Результаты обучения

По окончании этого курса студенты смогут:

  1. Проектировать и реализовывать архитектуру автономного агента на основе больших языковых моделей (LLM)
  2. Интегрировать и настраивать LLM для конкретных приложений
  3. Разрабатывать системы краткосрочной и долгосрочной памяти для ИИ-агентов
  4. Реализовывать алгоритмы целеполагания и принятия решений для автономных агентов
  5. Создавать интерфейсы для взаимодействия агента с внешними источниками данных и сервисами
  6. Оптимизировать производительность ИИ-агента и реализовывать параллельную обработку задач
  7. Разрабатывать и проводить комплексное тестирование сложных ИИ-систем
  8. Специализировать ИИ-агента для конкретных областей (например, помощь в программировании, анализ данных, креативное письмо)
  9. Представлять и демонстрировать полнофункциональный проект ИИ-агента
  10. Эффективно сотрудничать в команде для разработки сложной ИИ-системы

Условие успешного прохождения курса

  1. Успешное выполнение проектов в течение курса (70%)
  2. Успешная защита финального проекта (30%)

Расписание воркшопа: Разработка автономных агентов на основе LLM (17 занятий)

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

План воркшопа: Разработка автономных агентов на основе LLM (17 занятий)

Занятие 1: Введение и постановка целей

  • Обзор воркшопа:
    • Цели и задачи курса.
    • Ожидаемые результаты и критерии успеха.
  • Архитектура автономного агента:
    • Основные компоненты и их взаимодействие.
    • Примеры существующих решений.
  • Формирование команд и распределение ролей:
    • Создание команд по 2-3 человека.
    • Определение ролей (backend, frontend, ML инженер и т.д.).
  • Задание: Определение целей и основных требований проекта.

Занятие 2: Выбор и настройка LLM

  • Обзор современных LLM:
    • GPT-4, LLaMA, другие модели.
    • Сравнение возможностей и ограничений.
  • Инфраструктура для работы с LLM:
    • Выбор платформы (OpenAI, Hugging Face, локальные развертывания).
    • Настройка API и инструментов доступа.
  • Практическая часть: Настройка среды разработки и интеграция выбранной LLM.
  • Задание: Создать базовое подключение к LLM и протестировать его возможности.

Занятие 3: Проектирование архитектуры агента

  • Архитектурные паттерны:
    • Микросервисы vs монолит.
    • Использование событийной архитектуры.
  • Компоненты системы:
    • Модули взаимодействия с пользователем.
    • Система управления состоянием.
    • База данных и хранение данных.
  • Практическая часть: Разработка схемы архитектуры проекта.
  • Задание: Подготовить диаграмму архитектуры и описать ключевые компоненты.

Занятие 4: Разработка системы памяти агента

  • Типы памяти:
    • Кратковременная vs долговременная память.
  • Хранение и извлечение данных:
    • Использование баз данных (SQL, NoSQL).
    • Методы индексирования и поиска.
  • Практическая часть: Реализация системы памяти для хранения контекста диалогов.
  • Задание: Разработать и протестировать базовую систему памяти.

Занятие 5: Система целеполагания и планирования

  • Постановка целей:
    • Декомпозиция целей на подзадачи.
    • Приоритетизация задач.
  • Алгоритмы планирования:
    • Методы поиска пути (A*, Dijkstra и др.).
    • Планирование на основе состояний.
  • Практическая часть: Реализация системы постановки и декомпозиции целей.
  • Задание: Создать алгоритм, позволяющий агенту разбивать цели на подзадачи.

Занятие 6: Принятие решений и стратегия агента

  • Модели принятия решений:
    • Машинное обучение vs правило основанное принятие решений.
    • Основы обучения с подкреплением (Reinforcement Learning).
  • Стратегии поведения:
    • Реактивные vs проактивные агенты.
  • Практическая часть: Разработка логики принятия решений на основе текущего состояния и целей.
  • Задание: Реализовать механизм принятия решений для агента.

Занятие 7: Взаимодействие с внешними API

  • Обзор интеграции с API:
    • REST, GraphQL, Webhooks.
  • Аутентификация и безопасность:
    • OAuth, API ключи.
  • Практическая часть: Интеграция внешних API (например, поиск, аналитика, генерация изображений).
  • Задание: Интегрировать минимум два внешних API в систему агента.

Занятие 8: Разработка инструментов для выполнения действий

  • Автоматизация действий:
    • Вызов внешних сервисов.
    • Управление задачами и процессами.
  • Интеграция с системами управления задачами
  • Практическая часть: Создание модулей для выполнения действий на основе данных из API.
  • Задание: Разработать и интегрировать инструменты для выполнения автоматизированных действий.

Занятие 9: Специализация агента: Определение и реализация

  • Выбор специализации:
    • Ассистент по программированию, аналитик данных, креативный писатель и др.
  • Требования и особенности специализации:
    • Специфические функции и возможности.
  • Практическая часть: Разработка специализированных модулей.
  • Задание: Определить ключевые функции для выбранной специализации и начать их реализацию.

Занятие 10: Интеграция специализированных модулей

  • Объединение модулей:
    • Интеграция специализированных функций с ядром агента.
    • Обеспечение взаимодействия между модулями.
  • Тестирование интеграции:
    • Проверка совместимости и корректности работы.
  • Практическая часть: Интеграция и тестирование специализированных модулей.
  • Задание: Завершить интеграцию специализированных функций и провести тестирование.

Занятие 11: Оптимизация производительности

  • Анализ производительности:
    • Профилирование кода.
    • Идентификация узких мест.
  • Методы оптимизации:
    • Кэширование, асинхронность, параллельное выполнение.
  • Практическая часть: Оптимизация ключевых компонентов агента.
  • Задание: Улучшить производительность системы на основе проведённого анализа.

Занятие 12: Масштабирование системы

  • Архитектурные подходы к масштабированию:
    • Горизонтальное vs вертикальное масштабирование.
    • Балансировка нагрузки.
  • Использование облачных сервисов:
  • Практическая часть: Реализация масштабируемой архитектуры.
  • Задание: Подготовить систему к масштабированию и протестировать на увеличенной нагрузке.

Занятие 13: Обеспечение безопасности и конфиденциальности (приглашенная лекция)

  • LLM инъекции и др проблемы
  • Управление доступом:
    • Роли и права доступа.
  • Практическая часть: Внедрение мер безопасности в систему агента.
  • Задание: Провести аудит безопасности и внедрить необходимые улучшения.

Занятие 14: Тестирование и отладка системы

  • Методологии тестирования:
    • Юнит-тесты, интеграционные тесты, функциональные тесты.
  • Инструменты для тестирования:
    • Jest, Mocha, Selenium и др.
  • Практическая часть: Разработка и запуск тестов для системы агента.
  • Задание: Создать набор тестов и провести их выполнение.

Занятие 15: Внедрение CI/CD

  • Преимущества CI/CD:
    • Автоматизация сборки, тестирования и деплоя.
  • Инструменты CI/CD:
    • Jenkins, GitHub Actions, GitLab CI.
  • Практическая часть: Настройка пайплайна CI/CD для проекта.
  • Задание: Внедрить процесс CI/CD для автоматизации разработки и развертывания.

Занятие 16: Финальные доработки и подготовка к демонстрации

  • Ревизия проекта:
    • Проверка соответствия требованиям.
    • Исправление ошибок и улучшение функциональности.
  • Документация:
    • Подготовка технической документации.
    • Написание руководств по использованию и развёртыванию.
  • Практическая часть: Финальная оптимизация и подготовка системы к демонстрации.
  • Задание: Завершить все доработки и подготовить проект к финальному представлению.

Занятие 17: Демо-дни и оценка проектов

  • Демо-день 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 года.

Полезные ссылки