paint-brush
Синтаксис без ошибок и универсальное использование инструмента для LLM: ToolDecк@textmodels
155 чтения

Синтаксис без ошибок и универсальное использование инструмента для LLM: ToolDec

Слишком долго; Читать

Исследователи предлагают TOOLDEC, машинное декодирование с конечным числом состояний для LLM, уменьшающее количество ошибок и улучшающее использование инструментов.
featured image - Синтаксис без ошибок и универсальное использование инструмента для LLM: ToolDec
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Авторы:

(1) Кексун Чжан, Калифорнийский университет в Санта-Барбаре и равный вклад;

(2) Хунцяо Чен, Средняя школа Нортвуда и равный вклад;

(3) Лей Ли, Университет Карнеги-Меллон;

(4) Уильям Ян Ван, Калифорнийский университет, Санта-Барбара.

Таблица ссылок

3. TOOLDEC: ИСПОЛЬЗОВАНИЕ ИНСТРУМЕНТА LLM ЧЕРЕЗ ДЕКОДИРОВАНИЕ НА КОНЕЧНОМ СОСТОЯНИИ

Синтаксически правильный вызов инструмента должен ссылаться на существующее имя инструмента и передавать аргументы, соответствующие типу. Руководствуясь тем фактом, что синтаксис вызова инструмента легко проверить с помощью конечного автомата (FSM), мы предлагаем TOOLDEC — алгоритм ограниченного декодирования, управляемый автоматом. На каждом этапе декодирования модель выбирает из подмножества словаря, содержащего только синтаксически правильные лексемы. FSM, определяющий подмножества токенов, можно создать из документации инструмента. Например, на рисунке 2 конечный автомат построен для функций add, exp, Square и sqrt. В таблице 2 показано, как TOOLDEC отвечает на вопрос «сторона квадрата равна 5, какова его площадь?» с помощью ФСМ. Под руководством FSM компания TOOLDEC достигает следующих целей:


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


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


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

3.1 ДЕКОДИРОВАНИЕ НА КОНЕЧНОМ СОСТОЯНИИ

TOOLDEC управляется конечным автоматом (FSM). Конечный автомат — это набор из пяти элементов (S, V, g, s0, R), состоящий из конечного множества состояний S, алфавита V, функции перехода g: S ×V → S, начального состояния s0 и набора принятие состояний R. В нашем случае S и g создаются на основе сигнатуры инструмента. V — словарь токенов языковой модели. R соответствует заранее определенным токенам, которые могут определить, что LM выполнил задачу, например «».


Рис. 2. Конечный автомат для TOOLDEC, созданный для математических функций add, exp, Square, sqrt, которые принимают целые числа в качестве аргументов. Имена инструментов представлены в виде древовидной структуры. «IntFSM» — это подмодуль, который анализирует целые числа.


На каждом этапе декодирования t TOOLDEC поддерживает текущее состояние s. Он может генерировать только токены, разрешенные FSM, т.е. токены, для которых определен g(s, ·). Эти


Таблица 2. Как TOOLDEC использует автомат, показанный на рисунке 2, для ответа на вопрос «сторона квадрата равна 5, какова его площадь?». На каждом временном шаге состояние машины соответствует набору допустимых следующих токенов. Мы обнуляем все остальные токены и повторно нормализуем следующее распределение токенов, заставляя LLM выбирать только действительные токены.


3.2 ПОСТРОЕНИЕ FSMS, ГАРАНТИРУЮЩЕГО СИНТАКСИЧЕСКИ ПРАВИЛЬНЫЕ ВЫЗОВЫ ИНСТРУМЕНТОВ



Чтобы построить дерево, мы вставляем в него все строки одну за другой. Вставка строки в дерево означает переход от корня вниз по пути, проложенному строкой, и создание новых узлов, когда следующего шага в пути не существует. Например, мы покажем, как можно добавить еще два названия инструментов, exp10 иexpand, в дерево на рис. 3.


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


Генерация синтаксически допустимых аргументов инструмента. Аргументы инструмента имеют указанные типы. Как и аргументы в программе, они должны подчиняться определенным грамматическим правилам. Эти правила могут быть заданы конечными автоматами. Например, «IntFSM» на рисунке 2 изображает конечный автомат, который принимает только целочисленные литералы. Для всех аргументов инструмента мы объединяем соответствующие автоматы вместе и используем последнее состояние, соответствующее имени инструмента, в качестве начального состояния этой цепочки автоматов. Обратите внимание, что на практике нет необходимости явно создавать этот автомат. Достаточно любой программы проверки грамматики, которая определяет набор допустимых следующих токенов.



Этот документ доступен на arxiv под лицензией CC 4.0 DEED.