1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangdechao_admin-guage-notes

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
41-AI-langChain学习总结.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.06.2025 02:12 0782333

Что такое LangChain?

LangChain — это открытый исходный фреймворк для организации процессов создания приложений с использованием [больших языковых моделей (LLM)](https://www.ibm.com/cn-zh/think/topics/open-source-llms). Инструменты и API LangChain используются в библиотеках на Python и JavaScript, что упрощает создание LLM-драйвенных приложений, таких как [чат-боты](https://www.ibm.com/cn-zh/topics/chatbots) и [виртуальных ассистентов](https://www.ibm.com/cn-zh/topics/virtual-agent).

LangChain представляет собой фреймворк, основанный на языковых моделях, который используется для создания чат-ботов, генеративных систем вопросов и ответов (GQA), а также для создания сводок. Основная идея заключается в том, чтобы связывать различные компоненты "цепью", чтобы создать более продвинутые приложения на основе языковых моделей. Происхождение LangChain можно проследить до октября 2022 года, когда его создатель Харрисон Чейс представил первую версию. LangChain способствует использованию LLM и естественного языка обработки (NLP) во многих случаях, таких как чат-боты, умные поиски, вопросы и ответы, услуги сводок, а также виртуальные ассистенты, которые могут выполнять роботизированное бизнес-процессное обслуживание (RPA).## Интеграция LangChain с LLM LLM не являются самостоятельными приложениями: это предобученные статистические модели, которые должны быть связаны с приложениями (в некоторых случаях, с конкретными источниками данных), чтобы достичь своих целей. Например, Chat-GPT не является LLM: это приложение для чата, которое использует модель языка GPT-3.5 или GPT-4 в зависимости от выбранной версии. Хотя модели GPT могут интерпретировать ввод пользователя и составлять естественные языковые ответы, они служат интерфейсом для предоставления пользователю ввода и чтения, а также для дизайна пользовательского опыта управления чат-ботами. Даже на корпоративном уровне, Chat-GPT не является единственным приложением, использующим модели GPT: Microsoft использует GPT-4 для поддержки Bing Chat.Кроме того, хотя базовые модели (например, модели, поддерживающие LLM) предобучены на больших наборах данных, они не обладают всеми знаниями. Если определенная задача требует доступа к специфической контекстуальной информации, такой как внутренние документы или предметная область экспертизы, то LLM должны быть подключены к этим внешним источникам данных. Даже если вы хотите, чтобы модель отражала актуальное восприятие текущих событий, она все равно нуждается во внешней информации: внутренние данные модели актуальны только за период обучения. Аналогично, если задача, сгенерированная AI, требует доступа к внешним программным рабочим процессам (например, если вы хотите, чтобы виртуальный агент интегрировался с Slack), вам потребуется способ интеграции LLM и API данного программного обеспечения.

Хотя такие интеграции обычно могут быть реализованы полностью вручную через код, организационные фреймворки, такие как LangChain и IBM® Watsonx серия продуктов AI, могут значительно упростить этот процесс. Они также делают эксперименты с использованием различных LLM для сравнения результатов намного проще, так как требуется минимальное изменение кода для замены одного модели на другую.## Как работает LangChain? Ядром LangChain является среда разработки, которая упрощает программирование приложений LLM с помощью абстрактных методов: представление одного или нескольких сложных процессов в виде названных компонентов, которые упаковывают все составные шаги. Абстракция является обычным элементом повседневной жизни и языка. Например, символ "π" позволяет нам представлять отношение длины окружности к диаметру круга, без необходимости записи бесконечного числа цифр. Аналогично, термостат позволяет контролировать температуру дома без необходимости знания сложных электронных схем — нам достаточно знать, как различные настройки термостата приводят к различным температрм. LangChain представляет собой библиотеку абстракций на Python и JavaScript, представляющую собой набор общих шагов и концепций, необходимых для использования языковых моделей. Эти модульные компоненты (вроде функций и классов объектов) служат строительными блоками для генеративных AI-программ. Они могут быть "связаны" вместе для создания приложений, минимизируя количество кода и глубокое понимание, необходимые для выполнения сложных задач NLP. Несмотря на то, что абстрактный подход LangChain может ограничивать степень детального настроения приложения экспертными программистами, он позволяет экспертам и новичкам быстро проводить эксперименты и создавать прототипы.## Какие части включает LangChain? На рисунке выше показана схема работы LangChain. Из этого рисунка можно сделать вывод, что основные части включают:### Модели (Models)

  • Большие языковые модели (LLMs): Это самая базовая часть LangChain, которая может подключаться к различным большим языковым моделям, таким как серии GPT от OpenAI или открытые модели на Hugging Face. Через вызов этих моделей API можно реализовать базовые функции, такие как генерация текста и ответы на вопросы. Например, использование модели GPT-3.5 Turbo от OpenAI для генерации ответов на диалоги.
  • Чатовые модели (Chat Models): Модели, предназначенные для работы в чатовых сценариях, отличаются от обычных больших языковых моделей тем, что лучше обрабатывают историю диалога и контекстную информацию. Модели типа ChatGPT при работе в чатовых сценариях способны давать более последовательные и точные ответы, основываясь на контексте диалога.

Подсказки (Prompts)

  • Шаблоны подсказок (Prompt Templates): Используются для генерации подсказок, которые затем передаются языковым моделям. Они позволяют пользователям определять подсказки с переменными, которые заполняются в зависимости от конкретной ситуации во время выполнения, обеспечивая гибкость в создании различных подсказок. Например, в системе вопросов и ответов шаблон подсказки может выглядеть как "Пожалуйста, ответьте на вопрос о {тема}: {вопрос}", где {тема} и {вопрос} — это переменные, которые могут динамически заполняться. - Выборщики примеров (Example Selectors): В сценариях, требующих предоставления примеров, выборщики примеров могут динамически выбирать подходящие примеры для добавления в подсказки в зависимости от текущего ввода. Это помогает языковым моделям лучше понимать требования задачи, повышая качество выходных данных.

    Цепочки (Chains)

    • Простые цепочки (Simple Chains): Объединяют несколько компонентов или операций в последовательность для создания простого рабочего процесса. Например, простая цепочка может начинаться с использования шаблона подсказки для генерации подсказки, затем передачи этой подсказки языковой модели и, наконец, простого обработки выходных данных модели.
    • Последовательные цепочки (Sequential Chains): Составлены из нескольких подцепочек, соединённых последовательно, где выход каждого подцепочки служит входом для следующей. Такие цепочки могут обрабатывать более сложные задачи, такие как первоначальное извлечение текста, затем генерация сводки извлечённого текста и, наконец, использование сводки для системы вопросов и ответов.

    Агенты (Agents)

    • Инструменты (Tools): Различные внешние инструменты, которые агенты могут вызывать, такие как поисковые системы (например, SerpAPI), инструменты запросов к базам данных, среды выполнения Python и т. д.Эти инструменты расширяют возможности языковых моделей, позволяя им выполнять более сложные задачи, такие как получение актуальной информации, обработка данных и т. д.
    • Типы агентов (Agent Types): Разные типы агентов определяют, как они динамически выбирают и вызывают инструменты в зависимости от ввода пользователя. Например, агент ReACT использует логику мышления и действий для определения моментов, когда следует вызвать инструменты, чтобы обеспечить более умное принятие решений и выполнение задач.

    Память (Memory)

    • Краткосрочная память (Short-Term Memory): Используется для хранения временной контекстной информации в рамках одного диалога или выполнения задачи, например, истории текущего диалога. Это позволяет языковым моделям отвечать на основе предыдущего контекста диалога, обеспечивая его последовательность.
    • Долгосрочная память (Long-Term Memory): Обычно связана с долговременным хранением данных, такими как базы данных или файловые системы, используемые для хранения информации на длительной основе, включая предпочтения пользователей, историю взаимодействий и т. д. В последующих вза mødstillinger kan disse langvarige data bruges til at yde mere personlige tjenester.

    Индексы (Indexes) - Загрузчики документов (Document Loaders): Используются для загрузки данных документов из различных источников данных (например, файлов, веб-страниц, баз данных и т. д.). Например, есть специальные загрузчики PDF, CSV и т. д., которые могут преобразовать документы различных форматов в текстовые данные, готовые для обработки.

    • Разделители текста (Text Splitters): Разделяют загруженные данные документов на подходящие по размеру текстовые блоки для последующего векторного представления и индексации. Для разных сценариев могут потребоваться различные стратегии разделения, такие как разделение по абзацам, предложениям или фиксированной длине.
    • Хранилища векторов (Vector Stores): Преобразуют текстовые блоки в векторное представление и хранят их в базах данных векторов. Примерами хранилищ векторов являются FAISS и Pinecone, которые позволяют быстро находить текстовые блоки, связанные с запросом, путем поиска по векторному сходству.

    Какие модели поддерживаются в langchain?

    Закрытые модели

    • Серия OpenAI
    • GPT-3.5 Turbo: Обладает отличными способностями к пониманию и генерации языка, широко используется в таких областях, как генерация диалогов, создание сводок текста, системы вопросов и ответов и т. д. При этом она имеет относительно низкую стоимость и быстрый отклик.
    • GPT-4: По сравнению с GPT-3.5 Turbo, модель GPT-4 обладает более высокой производительностью и расширенными возможностями.5 Turbo, она лучше справляется с логическим выводом, обработкой сложных текстов и творческим письмом, что позволяет ей выполнять более сложные задачи. Однако её использование требует значительных затрат.
    • Серия Anthropic
    • Claude: Обладает хорошими способностями к диалоговому взаимодействию, может понимать длинные контексты и хорошо следовать командам, что делает её подходящей для создания различных видов умных служб поддержки и виртуальных ассистентов.

    Открытые модели

    • Модели на платформе Hugging Face
    • Серия LLaMA: Обладает мощными способностями к моделированию языка и демонстрирует хорошие результаты в нескольких задачах обработки естественного языка. Однако эта модель была изначально предназначена для исследовательских целей, поэтому при использовании следует учитывать условия лицензии.
    • Alpaca: На основе модели LLaMA была обучена для выполнения команд, что позволило ей демонстрировать высокое качество ответов на команды пользователей, что делает её подходящей для различных сценариев, где требуется генерация текста по командам.
    • Vicuna: Обладает хорошими способностями к работе в многоходовых диалогах, что позволяет ей эффективно понимать и обрабатывать контекст диалога, создавая последовательные и естественные ответы, что делает её подходящей для создания чат-ботов и других приложений диалогового типа. - Другие открытые модели
    • StableLM: обладает высокой стабильностью и качеством генерации, демонстрируя хорошую производительность в задачах синтеза текста, вопросов и ответов и т. д., при этом требуя относительно меньших ресурсов аппаратуры, что делает его подходящим для использования в условиях ограниченных ресурсов.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangdechao_admin-guage-notes.git
git@api.gitlife.ru:oschina-mirror/yangdechao_admin-guage-notes.git
oschina-mirror
yangdechao_admin-guage-notes
yangdechao_admin-guage-notes
master