{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Познакомьтесь с Gorilla: LLM Калифорнийского университета в Беркли и Microsoft с API-расширением превосходит Chat-GPT

Недавние достижения в области больших языковых моделей (LLM) произвели революцию в этой области, снабдив их новыми возможностями, такими как естественный диалог, математические рассуждения и программный синтез. Тем не менее, LLM по-прежнему сталкиваются с присущими им ограничениями. Их способность хранить информацию ограничена фиксированными весами, а их вычислительные возможности ограничены статическим графом и узким контекстом. Кроме того, по мере развития мира LLM нуждаются в переподготовке, чтобы обновить свои знания и способности рассуждать. Чтобы преодолеть эти ограничения, исследователи начали расширять возможности LLM с помощью инструментов. Предоставляя доступ к обширным и динамичным базам знаний и разрешая сложные вычислительные задачи, LLM могут использовать технологии поиска, базы данных и вычислительные инструменты. Ведущие поставщики LLM начали интегрировать плагины, которые позволяют LLM вызывать внешние инструменты через API. Этот переход от ограниченного набора программируемых вручную инструментов к доступу к огромному количеству облачных API может превратить LLM в основной интерфейс для вычислительной инфраструктуры и Интернета. Такие задачи, как бронирование отпусков или проведение конференций, могут быть такими же простыми, как общение с LLM, у которого есть доступ к веб-API для полётов, аренды автомобилей, отелей, общественного питания и развлечений.

Недавно исследователи из Калифорнийского университета в Беркли и Microsoft представили Gorilla — модель LLaMA-7B, разработанную специально для вызовов API. Gorilla полагается на самообучаемые методы тонкой настройки и поиска, чтобы позволить LLM точно выбирать из большого и постоянно развивающегося набора инструментов, выраженных через их API и документацию. Авторы создают большой корпус API-интерфейсов под названием APIBench, собирая API-интерфейсы машинного обучения из основных центров моделей, таких как Torch Hub, Tensor Hub и HuggingFace. Используя самообучение, они генерируют пары инструкций и соответствующие API. Процесс точной настройки включает в себя преобразование данных в формат диалога в стиле чата с агентом пользователя и выполнение стандартной точной настройки инструкций на базовой модели LLaMA-7B.

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

Набор данных

Имеющийся набор данных, ориентированный на технологии, охватывает три отдельных домена: Torch Hub, Tensor Hub и HuggingFace. Каждый домен предоставляет массу информации, проливая свет на разнообразный характер набора данных. Например, Torch Hub предлагает 95 API-интерфейсов, что обеспечивает прочную основу. Для сравнения, Tensor Hub делает ещё один шаг вперёд с обширной коллекцией из 696 API. Наконец, HuggingFace лидирует с колоссальными 925 API, что делает его наиболее полным доменом.

Чтобы повысить ценность и удобство использования набора данных, были предприняты дополнительные усилия. Каждый API в наборе данных сопровождается набором из 10 тщательно разработанных и уникальных инструкций. Эти инструкции служат незаменимым руководством как для целей обучения, так и для целей оценки. Эта инициатива гарантирует, что каждый API выходит за рамки простого представления, обеспечивая более надёжное использование и анализ.

Архитектура

Gorilla вводит понятие обучения с использованием ретривера, когда набор данных, настроенный по инструкциям, включает дополнительное поле с извлечённой документацией API для справки. Этот подход направлен на то, чтобы научить LLM анализировать вопросы и отвечать на них на основе предоставленной документации. Авторы демонстрируют, что этот метод позволяет LLM адаптироваться к изменениям в документации API, повышает производительность и уменьшает количество галлюцинаций.

Во время логического вывода пользователи предоставляют подсказки на естественном языке. Gorilla может работать в двух режимах: zero-shot mode и retrieval. В режиме zero-shot подсказка напрямую передаётся модели LLM Gorilla, которая возвращает рекомендуемый вызов API для выполнения задачи или цели. В режиме retrieval средство извлечения (либо BM25, либо GPT-Index) извлекает самую последнюю документацию по API из базы данных API. Эта документация объединяется с подсказкой пользователя вместе с сообщением, указывающим ссылку на документацию по API. Затем объединённый ввод передаётся в Gorilla, которая выводит вызываемый API. В этой системе оперативная настройка не выполняется после этапа конкатенации.

Индуктивный синтез программ достиг успеха в различных областях за счёт синтеза программ, отвечающих конкретным тестам. Однако, когда дело доходит до оценки вызовов API, полагаться исключительно на тестовые примеры не получится, поскольку становится сложно проверить семантическую правильность кода. Рассмотрим пример классификации изображений, где для задачи доступно более 40 различных моделей. Даже если мы сузим его до определённого семейства, такого как Densenet, есть четыре возможных конфигурации. Следовательно, существует несколько правильных ответов, что затрудняет определение функционального эквивалента используемого API эталонному API с помощью модульных тестов. Для оценки производительности модели проводится сравнение их функциональной эквивалентности с использованием собранного набора данных. Чтобы идентифицировать API, вызываемый LLM в наборе данных, используется стратегия сопоставления дерева AST (Abstract Syntax Tree). Проверяя, является ли AST вызова API-кандидата поддеревом эталонного вызова API, становится возможным отследить, какой API используется.

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

Сопоставление поддерева AST играет решающую роль в определении конкретного API, вызываемого в наборе данных. Поскольку вызовы API могут иметь несколько аргументов, каждый из этих аргументов должен соответствовать. Кроме того, учитывая, что Python допускает аргументы по умолчанию, важно определить, какие аргументы должны соответствовать для каждого API в базе данных.

Gorilla в действии

Вместе с документом исследователи открыли исходный код версии Gorilla . Релиз включает блокнот с множеством примеров. Кроме того, следующее видео ясно показывает некоторые возможности Gorilla.

Gorilla — один из самых интересных подходов в области LLM с инструментами. Надеюсь, мы увидим, как модель будет распространяться в некоторых основных центрах машинного обучения в космосе.

0
Комментарии
-3 комментариев
Раскрывать всегда