Алгоритмы и структуры данных для GenAI
Это точно бонусный урок, посколько ставить его в программу для изучения AI Агентов - извращение. Данное знание пригодится около 10% студентов, которые будут писать агентов from scratch. Однако, я верю, что знание алгоритмов и структур данных (АиСД) даст вам много - в архитектурном мышлении, для дизайна передовых систем, оптимизации сложных workflows и мультиагентов.
Мы проанализировали 11 самых популярных алгоритмов и структур данных, которые используются в AI Agents.
Если застреваете, используйте ChatGPT: "Explain this algorithm to me like I'm 5 years old"
Steps
0. Варианты изучения материала
- Я не хочу тратить больше 15 минут - смотрите одно видео и уходите с этого модуля
- Мне нужен плейлист на русском без практики - можно смотреть про всё кроме сжатия (и уходите)
- Рекомендуемый путь - Смотрите одну теорию на выбор, решайте одну задачу с использованием ChatGPT как учителя
Графы и генетические алгоритмы нужны для развития насмотренности, но не являются обязательными для изучения.
Промпты для ChatGPT
Промпт для решения задач:
Ты — наставник, который помогает ученику решать задачу с LeetCode. Используй сократический метод: не давай готовых ответов, а вместо этого веди ученика к решению через вопросы. Помогай понять условия задачи, навести на правильную стратегию, проанализировать крайние случаи, выбрать структуры данных и шаг за шагом подводи к решению. Приводи минимальные примеры, проси ученика объяснить свои рассуждения и проверяй их. Цель — развить мышление, а не просто решить задачу.
Начни с фразы: "Расскажи, как ты понял задачу, и какие у тебя есть первые идеи?"
Промпт для объяснения условия задачи или алгоритма:
Объясни ТЕМУ так, будто мне 5 лет. Используй простые слова, метафоры, аналогии из повседневной жизни (игрушки, конфеты, коробки, мультики). Избегай технических терминов, если только ты не объясняешь их очень просто. Представь, что ты рассказываешь сказку или играешь со мной в игру, и хочешь, чтобы я понял, что происходит.
0.1. 10 Key Data Structures We Use Every Day
10 Key Data Structures We Use Every Day - 8:42 video
1. Linked List
Где используется в AI Agents?
- Вы можете использовать связанные списки для хранения и обработки данных в AI агентах. Например, вы можете использовать связанные списки для хранения истории диалогов, списка задач, или для хранения данных о предметной области.
Видео ресурсы:
LeetCode задачи:
2. Array
Где используется в AI Агентах?
Используются для обработки сообщений чата, хранения эмбеддингов и feature-векторов моделей. Позволяют быстро работать с батчами диалогов. Знание массивов — фундамент для эффективных AI систем!
Видео ресурсы:
- (пропустите, если хорошо знаете массивы) Arrays - Introduction to Data Structures
3. Hash Table
Где используется в AI Агентах?
Как волшебный шкаф с ящиками-ключами: быстро находим ответы на частые вопросы (типа "как сбросить пароль?"), запоминаем контекст диалога ("ты же спрашивал про погоду") или кэшируем популярные рецепты. Помогают работать быстрее, чем искать в огромной корзине игрушек!
Видео ресурсы:
LeetCode задачи:
- Design HashMap
- NeetCode video: Two Sum - Leetcode 1
- ✦ Group Anagrams
- ✦ Most Common Word
- Рекомендуемое видео по важной для NLP теме: What is Levenshtein Distance?
- ✦✦ Edit Distance
4. Queue
Где используется в AI Агентах?
Как диспетчер такси 🚖: упорядочиваем запросы к API, буферизуем сообщения при нагрузке, планируем задачи агентов. Гарантирует стабильность и последовательность обработки — фундамент для масштабируемых систем!
Видео ресурсы:
LeetCode задачи:
5. Recursion
Где используется в AI Агентах?
Как матрёшка 🪆: обрабатываем вложенные диалоги ("а если..."), обходим деревья сценариев (многоуровневое меню), разбираем сложные запросы на части. Позволяет агентам "мыслить" шаг за шагом — от общего к деталям, сохраняя контекст цепочки рассуждений!
Примеры:
- Обработка уточняющих вопросов внутри ответа
- Генерация цепочек зависимых задач (планировщик)
- Рекурсивный анализ JSON-структур от API
- Автоматическое ветвление диалогов по условиям
- Построение иерархий знаний (например, темы → подтемы → факты)
Видео ресурсы:
LeetCode задачи:
6. Divide and Conquer
Где используется в AI Агентах?
Как швейцарский нож 🔪: разбиваем сложные задачи (анализ 100+ страниц PDF, генерация отчётов) на подзадачи, параллельно обрабатываем части запроса, объединяем результаты. Позволяет агентам "переваривать" гигабайты данных без перегрузки — ваш секрет для работы с Big Data!
Примеры:
- Распараллеливание обработки документов
- Иерархический анализ целей пользователя
- Оптимизация времени ответа через параллелизм
- Рекурсивное уточнение деталей запроса
- Разделение кода на модули (NLU → логика → ответ)
Видео ресурсы:
LeetCode задачи:
7. Sliding Window
Где используется в AI Агентах?
Как движущийся радар 🚨: анализируем потоковые данные (чат-истории, логи API), находим паттерны в реальном времени, управляем контекстным окном для RAG-поиска. Позволяет агентам "скользить" по данным без перезагрузки — ваш ключ к обработке длинных диалогов!
Примеры:
- Поиск повторов в пользовательских запросах
- Динамическое кэширование контекста (N последних сообщений)
- Обработка длинных текстов чанками для RAG
- Мониторинг аномалий в потоковых данных
- Оптимизация токенов LLM через "окно релевантности"
Видео ресурсы:
LeetCode задачи:
8. Two Pointers
Где используется в AI Агентах?
Как синхронные сканеры 🔍: сравниваем версии ответов, анализируем диалог-историю с двух концов, оптимизируем RAG-поиск. Позволяет агентам находить идеальные совпадения за O(n) — ваш инструмент для моментальных ответов!
Примеры:
- Сравнение разных версий промптов
- Анализ контекста чата с начала/конца
- Поиск противоречий в пользовательских данных
- Оптимизация RAG через двойной поиск
- Сворачивание дублирующихся сообщений
Видео ресурсы:
LeetCode задачи:
9. Map-Reduce
Где используется в AI Агентах?
Как промышленный комбайн 🌾: обрабатываем терабайты данных (чат-логи, веб-скрапинг), распределяем задачи между нодами, агрегируем результаты. Online research agents используют для параллельного анализа 100+ источников — ваш ключ к Big Data!
Примеры:
- Параллельная обработка миллионов запросов
- Агрегация данных из разных API
- Статистика использования токенов LLM
- Анализ больших логов ошибок
- Обучение моделей на распределенных данных
Видео ресурсы:
LeetCode задачи:
E10. Graphs ✦
Где используется в AI Агентах?
Графы — фундамент сложных взаимодействий: управляем диалоговыми сценариями через древовидные структуры, анализируем связи между сущностями (люди-события-локации), оптимизируем цепочки обработки запросов. Используются в рекомендательных системах на основе графа знаний и детекции циклических зависимостей в workflow агентов.
Примеры:
- Диалоговые деревья для сценариев
- Анализ социальных связей в чатах
- Оптимизация маршрутов обработки
- Рекомендации через граф знаний
- Обнаружение циклов в цепочках задач
Видео ресурсы:
LeetCode задачи: