Skip to content

aglabx/masters-course-2024-make-agent-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

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

Воркшоп по разработке автономного агента на основе 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 года.

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published