Введение в большие языковые модели для разработчиков
Этот курс представляет собой адаптированную китайским условиям версию трехчастной серии по большим языковым моделям, совместно запущенной Эндрю Нг и OpenAI. В курсе рассматриваются техники создания промптов, создание систем с использованием API ChatGPT, разработка приложений на основе LangChain и использование LangChain для доступа к частным данным. Курс даёт чёткое и доступное введение в то, как использовать возможности больших языковых моделей для создания приложений с функциями резюмирования, вывода, трансформации, расширения и чат-взаимодействия.
Уроки
Обзор курса
📚 Краткое содержание
Этот курс является китайской адаптацией трехчастной серии по крупным моделям языка (LLM), разработанной совместно Эндрю Нг и OpenAI. Он охватывает технику создания подсказок (Prompt Engineering), создание систем на основе API ChatGPT, разработку приложений с использованием LangChain и применение LangChain для доступа к частным данным. Курс предоставляет глубокое, но доступное введение в использование возможностей крупных моделей языка для создания приложений с функциями резюмирования, вывода, преобразования, расширения и чат-функций.
Освойте технику создания подсказок и фреймворк LangChain, чтобы стать разработчиком приложений ИИ в эпоху крупных моделей.
🎯 Цели обучения
- Различать базовые модели языка (Base LLMs) и модели, дообученные под инструкции (Instruction Tuned LLMs).
- Применять четыре конкретные стратегии для написания четких и точных инструкций (ограничители, структурированный вывод, проверка условий и примеры с небольшим числом случаев — few-shot prompting).
- Реализовывать стратегии, позволяющие модели «подумать»: определять шаги задачи и требовать независимого решения проблемы.
- Осуществлять структурированную обработку текста: резюмировать и извлекать конкретную информацию из одного или нескольких документов при контроле длины и фокуса вывода.
- Выполнять автоматический анализ текста: классифицировать настроение, выявлять конкретные эмоции и проводить нулевую классификацию тем с помощью подсказок.
- Выполнять мультимодальные преобразования: переводить между языками, преобразовывать форматы данных (например, JSON в HTML) и программно исправлять грамматику и орфографию.
- Различать базовые модели языка (Base LLMs) и модели, дообученные под инструкции (Instruction-Tuned LLMs), а также понимать влияние токенизации на поведение модели.
- Реализовывать структурированные архитектуры систем с использованием ролей сообщений: система (System), пользователь (User) и ассистент (Assistant) для определения личности модели.
- Применять методы классификации и модерации для оценки входных данных пользователя с точки зрения безопасности и маршрутизации.
- Реализовывать цепочки подсказок (Prompt Chaining): разбивать сложные задачи на управляемые подзадачи для повышения надежности и снижения затрат.
🔹 Урок 1: Принципы подсказок и итеративная разработка
Обзор: В этом уроке рассматриваются основные принципы создания подсказок для разработчиков, переход от простых «базовых моделей языка» (Base LLMs) к «моделям, дообученным под инструкции» (Instruction Tuned LLMs). Вводятся два ключевых направления эффективного взаимодействия: формулировка четких и точных инструкций и предоставление модели достаточного времени для «обдумывания». Кроме того, устанавливается итеративный рабочий процесс по улучшению подсказок для соответствия конкретным бизнес-требованиям, таким как ограничения по длине и формату.
Результаты обучения:
- Различать базовые модели языка (Base LLMs) и модели, дообученные под инструкции (Instruction Tuned LLMs).
- Применять четыре конкретные стратегии для написания четких и точных инструкций (ограничители, структурированный вывод, проверка условий и few-shot prompting).
- Реализовывать стратегии, позволяющие модели «подумать», определяя шаги задачи и требуя независимого решения проблемы.
🔹 Урок 2: Основные возможности создания подсказок и чат-ботов
Обзор: В этом уроке рассматривается практическое применение крупных моделей языка (LLMs) в пяти ключевых областях: резюмировании, выводе, преобразовании, расширении и создании интерактивных чат-ботов. Предоставляется пошаговое руководство для разработчиков по использованию Python и API OpenAI для обработки текста, извлечения структурированных данных, изменения стилистики языка и сохранения контекста диалога для реальных приложений, таких как боты службы поддержки клиентов.
Результаты обучения:
- Осуществлять структурированную обработку текста: резюмировать и извлекать конкретную информацию из одного или нескольких документов при контроле длины и фокуса вывода.
- Выполнять автоматический анализ текста: классифицировать настроение, выявлять конкретные эмоции и проводить нулевую классификацию тем с помощью подсказок.
- Выполнять мультимодальные преобразования: переводить между языками, преобразовывать форматы данных (например, JSON в HTML) и программно исправлять грамматику и орфографию.
🔹 Урок 3: Логика системы: классификация входных данных и рассуждения
Обзор: В этом уроке рассматриваются основные механизмы крупных моделей языка (LLMs), начиная с базовой токенизации и ролей сообщений и переходя к продвинутым стратегиям обработки входных данных. Студенты узнают, как создавать надежные системы, классифицируя намерения пользователей, модерируя контент с точки зрения безопасности и реализуя рассуждения по цепочке мыслей (Chain of Thought — CoT), чтобы повысить точность и контролировать пользовательский опыт через «внутренние монологи».
Результаты обучения:
- Различать базовые модели языка (Base LLMs) и модели, дообученные под инструкции (Instruction-Tuned LLMs), а также понимать влияние токенизации на поведение модели.
- Реализовывать структурированные архитектуры систем с использованием ролей сообщений: система (System), пользователь (User) и ассистент (Assistant) для определения личности модели.
- Применять методы классификации и модерации для оценки входных данных пользователя с точки зрения безопасности и маршрутизации.
🔹 Урок 4: Сложные рабочие процессы и оценка систем
Обзор: В этом уроке рассматривается переход от простых подсказок к сложным многошаговым рабочим процессам с использованием моделей языка. Фокусируется на «цепочках подсказок» (Prompt Chaining) для декомпозиции задач, внедрении слоев безопасности через API модерации и создании строгих рамок для оценки — как для случаев с единственным правильным ответом, так и для задач, требующих субъективной оценки по рубрикам.
Результаты обучения:
- Реализовывать цепочки подсказок (Prompt Chaining): разбивать сложные задачи на управляемые подзадачи для повышения надежности и снижения затрат.
- Создавать безопасную конечную систему: интегрировать модерацию входных/выходных данных и механизмы проверки фактов в производственную цепочку.
- Разрабатывать стратегии оценки: создавать наборы для валидации, чтобы измерять производительность модели путем сравнения с «идеальным» ответом и с использованием рубрик, подготовленных моделью.
🔹 Урок 5: Основы LangChain: модели, подсказки и память
Обзор: В этом уроке представлены основные компоненты фреймворка LangChain, особенно акцент сделан на абстракции взаимодействий с крупными моделями языка (LLM). Рассматривается переход от прямых вызовов API к использованию модульных компонентов LangChain: моделей, шаблонов подсказок и парсеров выходных данных, завершаясь глубоким погружением в четыре различных стратегии памяти для поддержания состояния диалога.
Результаты обучения:
- Реализовывать базовые вызовы моделей с использованием ChatOpenAI и модульных компонентов LangChain.
- Создавать повторно используемые структуры шаблонов подсказок (ChatPromptTemplate) для управления сложной логикой подсказок и переменными.
- Извлекать структурированные данные (JSON/словари Python) из неструктурированных ответов модели с помощью StructuredOutputParser.
🔹 Урок 6: Цепочки в LangChain, вопросы-ответы и автономные агенты
Обзор: В этом уроке рассматриваются основные архитектурные блоки фреймворка LangChain, переход от простых последовательностей подсказка-завершение к сложным логически управляемым системам. Студенты узнают, как координировать несколько вызовов модели с помощью цепочек, реализовывать генерацию ответов с опорой на данные (Retrieval Augmented Generation — Q&A) по частным документам с использованием векторных хранилищ, и развертывать автономных агентов, которые используют рассуждения для выбора и выполнения инструментов. Материал делает акцент на переходе от одиночных подсказок к автоматизированным, масштабируемым приложениям на основе моделей языка.
Результаты обучения:
- Создавать линейные и сложные многошаговые рабочие процессы с использованием SequentialChain и RouterChain.
- Создавать систему вопросов-ответов на основе документов с использованием встраиваний, векторных хранилищ и цепочки RetrievalQA.
- Реализовывать автоматическую оценку приложений на основе моделей языка с использованием QAGenerateChain и QAEvalChain.
🔹 Урок 7: Подготовка частных данных: загрузка и векторизация
Обзор: В этом уроке рассматриваются начальные этапы создания системы генерации с опорой на поиск (RAG) с использованием LangChain. Разработчики проходят путь от загрузки неструктурированных данных из разных источников (PDF, YouTube, веб-страницы, Notion), разделения этих данных на семантически значимые фрагменты до преобразования этих фрагментов в числовые встраивания для хранения и поиска по схожести в векторных базах данных.
Результаты обучения:
- Реализовывать различные загрузчики документов в LangChain для импорта данных из PDF, аудио с YouTube, веб-адресов и баз данных Notion.
- Настроить и сравнить различные разделители текста (по символам, рекурсивные, по токенам, по формату Markdown), используя параметры, такие как размер фрагмента и перекрытие.
- Выполнить процесс векторизации, создавая встраивания и сохраняя их в хранилище векторов Chroma для обеспечения поиска по смыслу.
🔹 Урок 8: Генерация с опорой на поиск (RAG) и взаимодействие
Обзор: Этот материал исследует переход от простого семантического поиска к продвинутым методам извлечения информации и взаимодействия в приложениях на основе моделей языка. Рассматриваются сложные методы извлечения — такие как максимальная маржинальная релевантность (MMR), фильтрация по метаданным и контекстная компрессия — перед демонстрацией построения состоятельных цепочек вопросов-ответов и полнофункциональных чат-ботов с использованием компонентов памяти и графического интерфейса (GUI) в LangChain.
Результаты обучения:
- Реализовывать продвинутые стратегии извлечения (MMR, само-запросы, компрессия), чтобы повысить разнообразие и релевантность извлеченных документов.
- Сравнивать и развертывать различные типы цепочек (stuff, MapReduce, Refine) для обработки извлеченного контекста в задачах вопрос-ответ.
- Создавать интерфейс состоятельного чат-бота с использованием ConversationalRetrievalChain и ConversationBufferMemory для сохранения контекста диалога.