Что такое LangChain?

LangChain – это платформа с открытым исходным кодом для создания приложений на основе больших языковых моделей (LLM). Модели LLM обучаются по большим объемам данных и используются для глубокого обучения, чтобы генерировать ответы на запросы пользователей, например отвечать на вопросы или создавать изображения на основе текстовых подсказок. LangChain предоставляет инструменты и абстракции для расширения возможностей настройки, повышения точности и актуальности генерируемой информации. Например, разработчики могут с помощью готовых компонентов LangChain создавать новые цепочки подсказок или настраивать существующие шаблоны. Также в LangChain есть компоненты, которые позволяют применять LLM к новым наборам данных без повторного обучения.

Подробнее о больших языковых моделях (LLM)

Для чего важна LangChain?

Большие языковые модели отлично реагируют на запросы в общем контексте, но испытывают трудности в более узких областях, если не проходили обучение в нужном контексте. Подсказки – это запросы, которые люди используют для получения ответов от большой языковой модели. Например, большая языковая модель может ответить на вопрос «сколько стоит компьютер», предоставив приблизительную оценку. Но она не может самостоятельно определить точную цену конкретной модели, которую продает ваша компания. 

Для этого инженеры по машинному обучению должны интегрировать большую языковую модель с корпоративными источниками данных и применить подсказки по цепочке рассуждений, который помогает специалистами по работе с данными уточнять входящие запросы с учетом требуемой структуры и контекста. 

LangChain упрощает промежуточные этапы разработки для приложений, взаимодействующих с данными, повышая эффективность подсказок по цепочке рассуждений. Эта платформа создана для упрощения разработки приложений на основе языковых моделей, таких как чат-боты, ответы на вопросы, генерация контента, составление резюме и многие другие.

В следующих разделах описаны преимущества LangChain.

Перепрофилирование языковых моделей

С помощью LangChain организации могут без переобучения или доработки перепрофилировать большие языковые модели для приложений, нацеленных на узкую предметную область. Разработчики могут создавать сложные приложения, использующие конфиденциальную информацию для дополнения ответов модели. Например, с помощью LangChain можно создавать приложения, которые считывают данные из сохраненных внутренних документов и обобщают их в диалоговых ответах. Можно также создать рабочий процесс RAG (генерация с расширенной выборкой), который добавляет в языковую модель новую информацию по ходу обработки запроса. Применение RAG и других контекстно-зависимых рабочих процессов позволяет уменьшить галлюцинацию модели и повышает точность ответа. 

Упрощение разработки искусственного интеллекта

LangChain упрощает разработку искусственного интеллекта, избавляя от сложностей при интеграции с источником данных и доработке подсказок. Разработчики могут настраивать собственные последовательности, быстро создавая сложные приложения. Вместо программирования бизнес-логики разработчикам программного обеспечения остается лишь корректировать предоставленные LangChain шаблоны и библиотеки, что существенно сокращает время разработки. 

Поддержка разработчиков

LangChain предоставляет разработчикам искусственного интеллекта инструменты, позволяющие связать языковые модели с внешними источниками данных. Платформа имеет открытый исходный код и активно поддерживается сообществом. Организации могут бесплатно использовать LangChain и быстро получать поддержку от других разработчиков, уже имеющих опыт работы с платформой.

Как работает LangChain?

С помощью LangChain разработчики могут гибко адаптировать языковую модель к конкретным бизнес-контекстам, определяя необходимые шаги для достижения желаемого результата. 

Цепочки

Цепочки – это фундаментальная концепция, которая объединяет разные компоненты искусственного интеллекта в LangChain для предоставления контекстно-зависимых ответов. Цепочкой называют серию автоматизированных действий, от получения запроса пользователя до вывода ответа модели. Например, разработчики могут включать в цепочку следующие действия:

  • подключение к источникам данных;
  • создание уникального контента;
  • перевод между несколькими языками;
  • вывод ответа на запрос пользователя. 

Ссылки

Цепочки состоят из звеньев. Каждое действие, которое разработчик включает в цепочку, называется звеном. С помощью звеньев разработчики могут разделить сложные задачи на несколько менее крупных. Например, отдельным звеном может являться:

  • форматирование пользовательского ввода; 
  • отправка запроса в большую языковую модель; 
  • извлечение данных из облачного хранилища;
  • перевод с одного языка на другой.

На платформе LangChain звено принимает входные данные от пользователя и передает их в библиотеки LangChain для обработки. Также LangChain позволяет переупорядочивать звенья для создания разных рабочих процессов на основе искусственного интеллекта. 

Обзор

Чтобы использовать LangChain, нужно установить эту платформу с помощью следующей команды Python:

pip install langchain 

Теперь разработчики могут собирать цепочки из готовых строительных блоков или кода, составленного из простых программных команд специального языка LCEL (язык выражений LangChain). Функция chain() передает аргументы звена в библиотеки. Команда execute() возвращает результаты. Разработчики могут передать результат текущего звена другому звену или вернуть его в качестве конечного результата. 

Следующий пример функции в цепочке чат-бота возвращает сведения о продукте на нескольких языках.

chain([

retrieve_data_from_product_database().

send_data_to_language_model().

   format_output_in_a_list().

  translate_output_in_target_language()

])

Каковы основные компоненты LangChain?

Используя LangChain, команды разработчиков программного обеспечения могут создавать контекстно-зависимые языковые модели на основе следующих модулей. 

Интерфейс для большой языковой модели

LangChain предоставляет API-интерфейсы, которые позволяют разработчикам из кода подключаться к большим языковым моделям и запрашивать данные от них. Разработчики могут взаимодействовать через LangChain с общедоступными и проприетарными моделями, такими как GPT, Bard и PalM, выполняя простые вызовы API без написания сложного кода.

Шаблоны подсказок

Шаблоны подсказок – это готовые структуры, на основе которых разработчики могут стабильно и точно создавать запросы к моделям искусственного интеллекта. Разработчики могут создать шаблон подсказок для приложений чат-ботов, для быстрого обучения или передачи определенных инструкций в языковые модели. Кроме того, они могут многократно использовать одни и те же шаблоны в разных приложениях и для разных моделей. 

Агенты

Разработчики используют инструменты и библиотеки LangChain для составления новых и настройки уже существующих цепочек для сложных приложений. Агент – это специальная цепочка, которая подсказывает языковой модели, как правильно выбрать наилучшую последовательность в ответ на запрос. При использовании агента разработчики предоставляют полученную от пользователя информацию, доступные инструменты и возможные промежуточные шаги, которые позволят достичь желаемых результатов. Языковая модель в ответ возвращает последовательность действий, которую может выполнить приложение.  

Модули извлечения

LangChain позволяет создавать системы RAG на основе многочисленных инструментов для преобразования, хранения, поиска и извлечения информации, которые помогают уточнить ответы языковой модели. Разработчики могут создавать семантические представления информации, используя встраивания слов, и сохранять их в локальных или облачных векторных базах данных. 

Память

Некоторые приложения на основе моделей разговорного языка, уточняют свои ответы с учетом информации, полученной при прошлых взаимодействиях. LangChain позволяет разработчикам добавлять в свои системы возможности запоминания. Он поддерживает:

  • Простые системы памяти, которые запоминают последние разговоры. 
  • Сложные структуры памяти, которые анализируют исторические сообщения и пытаются выбрать наиболее релевантные результаты. 

Обратные вызовы

Обратные вызовы – это код приложения, предназначенный для регистрации, мониторинга и потоковой передачи определенных событий в операциях LangChain. Например, разработчики могут с помощью обратных вызовов отслеживать время первого вызова цепочки или возникшие ошибки. 

Как AWS поможет удовлетворить ваши требования к LangChain? 

Используя сервисы Amazon Bedrock, Amazon Kendra, Amazon SageMaker JumpStart, LangChain и собственные большие языковые модели, вы можете создавать высокоточные приложения генеративного искусственного интеллекта на основе корпоративных данных. Интерфейс LangChain объединяет следующие компоненты:

  • Amazon Bedrock – это управляемый сервис, с помощью которого организации могут создавать и развертывать генеративные приложения искусственного интеллекта. Amazon Bedrock можно использовать для настройки модели поколений, доступ к которой осуществляется из LangChain. 
  • Amazon Kendra – это сервис на базе машинного обучения, который помогает организациям выполнять внутренний поиск. Amazon Kendra можно подключить к LangChain, который использует данные из собственных баз данных для уточнения выходных данных языковой модели. 
  • Amazon SageMaker Jumpstart – это центр машинного обучения, предоставляющий готовые алгоритмы и базовые модели, которые разработчики могут быстро развернуть. Вы можете разместить базовые модели на SageMaker Jumpstart и направлять запросы к ним из LangChain. 

Создайте аккаунт и начните работу с LangChain на AWS уже сегодня.

AWS: дальнейшие шаги

Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS.

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход