Быстрая цепочка

Apr 08 2023
Появляются инструменты визуального программирования, упрощающие связывание больших запросов языковой модели в приложение; который в основном представляет собой диалоговый интерфейс. Некоторая предыстория Некоторые среды разработки чат-ботов включают LLM в свою функциональность.

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

Некоторая предыстория

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

За этой первоначальной реализацией последовала вторая волна создания диалогового потока и помощников по дизайну разговора; которую возглавил Cognigy . За ними последовали Yellow AI и Kore AI.

L LM очень универсальны с открытыми возможностями.

Voiceflow и Botpress представили функциональность, напоминающую цепочку подсказок, в той степени, в которой подсказка может быть отправлена ​​​​в LLM, а значения могут быть извлечены из сгенерированного ответа.

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

Собственный пользовательский интерфейс цепочки подсказок

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

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

Источник

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

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

Второй элемент — легкая непредсказуемость LLM. LLM может генерировать несколько ответов на одно и то же приглашение. Это порождает проблему каскадирования нежелательных ответов в цепочках подсказок. Где неожиданные данные распространяются по цепочкам.

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

Приложение LLM Chained может легко выполнять новые задачи, просто используя инструкции на естественном языке, называемые подсказками.

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

Принимая во внимание приведенный ниже стек функций, приложение для создания цепочек подсказок, основанное на больших языковых моделях (LLM) и генеративном ИИ, должно состоять из трех основных компонентов:

⏺ LLM

Помощники

Связь

Адаптировано из источника

LLM

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

Выходные данные LLM определят, к какой цепочке следует разветвляться, поэтому эти ребра цепочки/узла должны содержать правила и условия.

Последнее соображение касается использования LLM в качестве классификатора . LLM могут быть реализованы в генеративной или прогнозирующей способности. Генеративный ИИ — самая популярная и самая доступная сторона LLM. Прогнозирование сложнее и требует более тонкой настройки или, по крайней мере, точных подсказок.

Использование LLM в качестве классификатора (следовательно, прогнозирующего) в цепочке делает узлы принятия решений в цепочке приложений интеллектуальными и гибкими.

Всегда будет искушение быстро закодировать/скриптовать принятие решений по краям; также называемые точками перехода цепи. Это быстрое решение; но опять же вносит жесткость в приложение LLM Chaining.

Помощники

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

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

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

Коммуникация

Коммуникация происходит на нескольких уровнях, есть ввод пользовательских данных в виде неструктурированных разговорных данных.

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

И, конечно же, сторонние системы (API) будут опрошены для любой реализации предприятия или производства.

Учитывая дизайн PromptChainer

Интерфейс PromptChainer имеет визуализатор представления цепочки, в котором структура цепочки с ребрами узлов или «между цепями» может быть создана, отредактирована, прочитана и удалена [A].

Средство просмотра узлов поддерживает реализацию, улучшение и тестирование каждого отдельного узла или цепочки [B]. Здесь можно выполнить редактирование подсказок для каждого узла.

PromptChainer также поддерживает сквозное выполнение цепочки [C] с возможностью очистки кеша, просмотра журналов выполнения и т. д.

Источник

На основе количественного исследования, проведенного Вашингтонским университетом и Google Research, были сделаны открытия о том, как пользователи создают и отлаживают цепочки:

[1] Пользователи хотят создавать цепочки, чтобы не только смягчить ограничения LLM, но и сделать свои приложения расширяемыми и масштабируемыми.

[2] Некоторые пользователи строили цепочку по одному шагу за раз, в то время как другие набрасывали абстрактные заполнители для всех шагов, прежде чем заполнять их.

[3] Взаимодействие между несколькими подсказками и цепочками LLM может быть сложным, требующим как локальной, так и глобальной отладки подсказок.

Учитывая изображение ниже, вот описание для каждого узла или цепочки:

[1] Определить вход в цепочку

[2,3] Используйте выходные данные LLM для фильтрации и разветвления входных данных.

[4] Используйте вывод LLM непосредственно в качестве вывода узла.

[5] Предварительно реализованные функции JavaScript для типичного преобразования данных.

[6] Используйте вывод LLM непосредственно в качестве вывода узла.

[7] Вызов внешних функций для подключения профессиональных услуг к LLM.

[8] Пользовательские JS-функции на случай, если предопределенных помощников недостаточно.

[9] Используйте вывод LLM непосредственно в качестве вывода узла.

[10] Отфильтруйте или переоцените выходные данные LLM по разработанным человеком критериям, например, вежливости. Позволяет внешнему (конечному пользователю) редактированию промежуточных точек данных.

Адаптировано из источника

В заключение

Есть несколько терминов, используемых в настоящее время для приложений, построенных на базовых моделях и больших языковых моделях. Этими терминами являются Gen Apps, Generative Apps, LLM Apps, Prompt Chaining, LLM Chaining и другие.

Достаточно сказать, что необходимо опираться на Большие модели и каким-то образом использовать возможности LLM.

Эта потребность будет основываться на следующих принципах:

  1. Подсказки
  2. Использование возможностей прогнозирования и генерации LLM.
  3. Цепочка подсказок; как параллельным, так и последовательным способом.
  4. Визуальный редактор для программирования цепочек/узлов и ребер, межузловых/цепочек.
  5. Преобразование данных ответа LLM.
  6. Связанные приложения LLM будут диалоговыми как для ввода, так и для вывода, или вывод также может инкапсулировать компонент RPA.

В настоящее время я главный евангелист @ HumanFirst . Я исследую и пишу обо всем на стыке ИИ и языка; начиная от LLM , чат-ботов , голосовых ботов , платформ разработки, скрытых пространств, ориентированных на данные, и многого другого.

https://www.linkedin.com/in/cobusgreyling
Квадрант Cobus™ дизайна NLU Квадрант Cobus™ дизайна диалогов Возможности

PromptChainer: объединение подсказок большой языковой модели с помощью визуального программирования.