Языковые модели с программным обеспечением

Языковые модели с ПО

LLM-ы могут писать код, но что, если они могут выполнять программы?

(Фото от Florian Olivo на Unsplash)

Хотя большие языковые модели (LLM) используются для различных приложений, они обычно испытывают затруднения с решением задач на основе рассуждений. Эта проблема значительно уменьшилась с появлением техник подсказок, таких как “Цепочка мыслей” и “От меньшего к большему”. В целом, эти техники стимулируют рассуждательное поведение в LLM, предоставляя примеры рационалов решения проблемы внутри подсказки модели. Затем модель может научиться выводить такие рационалы и создавать пошаговое решение основной проблемы. Особенно стоит отметить, что это подход только с использованием подсказок, который не требует дополнительного донастройки, показывая, что LLM способны рассуждать при наличии подсказки с достаточным контекстом.

Несмотря на эффективность техник, таких как “Цепочка мыслей”, от LLM ожидается, что они будут создавать как цепочку мыслей для решения проблемы, так и окончательный ответ. Интересно, что такой подход приводит к особенным случаям ошибок, когда LLM может создавать точный рационал для решения проблемы, но все же генерировать неправильный ответ. Обычно такие ошибки происходят из-за простых ошибок (например, плохой арифметики). Чтобы решить эту проблему, недавние исследования исследовали программный подход, который стимулирует LLM генерировать цепочки мыслей с использованием как естественного языка, так и компонентов кода. Затем LLM может запустить этот код через внешний интерпретатор, чтобы получить нужные выходные данные.

Чтобы понять, почему такой подход может быть полезен, стоит отметить, что многие проблемы, с которыми LLM имеют затруднения (например, ошибки в арифметике, неспособность оценивать сложные выражения и т. д.), могут быть легко выражены и решены внутри программы. В результате использования подсказок в стиле “Цепочка мыслей” для LLM с возможностью программирования (например, Codex) позволяет объединить преимущества LLM с вычислительными возможностями произвольной программы на Python! Более конкретно, LLM может быть стимулирована для создания рационала решения проблемы, который содержит как естественный язык, так и компоненты кода, создавая скрипт, который может быть запущен внешним интерпретатором для вычисления окончательного вывода для проблемы. Такой подход, который мы рассмотрим в этом обзоре, существенно улучшает точность и надежность LLM при решении задач на основе рассуждений.