Методы вывода структурированных данных большой модели: избранный список ресурсов LLM JSON
Этот список посвящен ресурсам, связанным с генерацией JSON или других структурированных результатов с помощью Large Language Model (LLM).
Список ресурсов для генерации JSON с помощью LLM с помощью вызовов функций, инструментов, CFG и т.д., включая библиотеки, модели, блокноты и многое другое.
каталог (на жестком диске компьютера)
- номенклатура
- модель хостинга
- локальная модель
- Библиотека Python
- Записи в блоге
- видео
- Блокноты Jupyter
- чарты (бестселлеры)
номенклатура
Существует несколько различных названий для генерации JSON, хотя их значения в основном одинаковы:
- Структурированный вывод: Используйте LLM для генерации любого структурированного вывода, включая JSON, XML или YAML, независимо от конкретной технологии (например, вызовы функций, генерация загрузочной основы).
- вызов функции: Предоставьте LLM гипотетическое (или реальное) определение функции, побуждая его "вызвать" функцию в чате или ответе завершения; LLM не вызывает функцию на самом деле, а только указывает на намерение вызова через JSON-сообщение.
- Режим JSON: Укажите, что LLM должен генерировать корректный JSON. В зависимости от поставщика, схема может быть указана или не указана, и LLM может создавать неожиданные схемы.
- Использование инструментов: Предоставляет LLM выбор инструментов, таких как генерация изображений, веб-поиск и "вызовы функций". Аргументы вызовов функций в запросах API теперь называются "инструментами".
- грунтовка: Чтобы заставить LLM следовать определенной спецификации для генерации текста, например. контекстно-независимая грамматика.
- Операция GPT: ChatGPT основан на указанном Спецификация OpenAPI Конечные точки и параметры на сервере API используются для вызова операций (т. е. вызовов API). В отличие от функции, называемой "вызовы функций", эта функция вызывает функции, размещенные на сервере API.
Каждый из этих терминов может иметь разное значение, поэтому я назвал этот список "Selected LLM JSON".
модель хостинга
параллельный вызов функции
Ниже приведен список размещенных моделей API, которые поддерживают несколько параллельных вызовов функций. Эти вызовы могут включать проверку погоды в нескольких городах или сначала поиск местоположения отеля, а затем проверку погоды в этом месте.
- антропный
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-3-haiku-20240307
- azure/openai
- gpt-4-turbo-preview
- gpt-4-1106-preview
- gpt-4-0125-preview
- gpt-3.5-turbo-1106
- gpt-3.5-turbo-0125
- cohere
- command-r
- вместе_ай
- Mixtral-8x7B-Instruct-v0.1
- Mistral-7B-Instruct-v0.1
- CodeLlama-34b-Instruct
локальная модель
Mistral 7B Instruct v0.3 (2024-05-22, Apache 2.0) - это доработанная версия команд Mistral, в которой добавлена поддержка вызова функций.
C4AI Команда R+ (2024-03-20, CC-BY-NC, Cohere) - это 104B-параметрическая многоязычная модель с расширенной функцией Retrieval Augmented Generation (RAG) и функциональностью использования инструментов, оптимизированная для рассуждений, обобщений и ответов на вопросы на 10 языках. Для повышения эффективности использования поддерживается квантификация, а также демонстрируется уникальная многоступенчатая интеграция инструментов при выполнении сложных задач.
Hermes 2 Pro - Mistral 7B (2024-03-13, Nous Research) - это 7B параметрическая модель, специализирующаяся на вызовах функций, структурированном выводе JSON и общих задачах. Обучалась на основе обновленного набора данных OpenHermes 2.5 и нового набора данных вызовов функций, с использованием специальных системных подсказок и многораундовой структуры. Достигнута точность 91% и 84% при оценке моделей вызова функций и JSON, соответственно.
Gorilla OpenFunctions v2 (2024-02-27, Лицензия Apache 2.0. Чарли Ченг-Цзе Цзи и др.) Интерпретация и выполнение функций на основе объектов схемы JSON, поддержка нескольких языков и возможность определения функциональной релевантности.
NexusRaven-V2 (2023-12-05, Nexusflow) - это 13B-модель, которая превосходит GPT-4 на 7% по вызовам функций с нулевой выборкой, что позволяет эффективно использовать программные средства. Дальнейшая тонкая настройка инструкций на основе CodeLlama-13B-instruct.
Функционал (2023-08-04, MeetKai) Основана на интерпретации объектов схемы JSON и выполнении функций для поддержки различных вычислительных потребностей и типов вызовов. Совместим с OpenAI-python и llama-cpp-python для эффективного выполнения вызовов функций в задачах генерации JSON.
Обнимающиеся лица TGI из-заНесколько локальных моделейВключена поддержка вывода JSON и вызова функций.
Библиотека Python
DSPy (MIT) - это фреймворк для алгоритмической оптимизации подсказок и весов языковой модели (ЯМ).DSPy представляетПредсказатели типа и сигнатурыЭто достигается с помощью Пидантик Улучшены поля, основанные на строках, за счет применения ограничений типа на входы и выходы.
FuzzTypes (MIT) расширяет Pydantic, чтобы обеспечить автоматическую коррекцию типов аннотаций для улучшения стандартизации данных и обработки сложных типов, таких как электронные письма, даты и пользовательские сущности.
руководство (Apache-2.0) поддерживает генерацию ограничений, сочетает логику Python с вызовами Large Language Model (LLM), а также поддерживает повторное использование функций и вызов внешних инструментов для оптимизации подсказок для ускорения генерации.
Инструктор (MIT) упрощает генерацию структурированных данных для LLM, используя вызовы функций, вызовы инструментов и шаблоны выборки с ограничениями. Проверка основана на Pydantic и поддерживает несколько LLM.
LangChain (MIT) обеспечивает порты связей, интеграцию с другими инструментами и цепочки для приложений.LangChain обеспечиваетЦепочка структурированных выходови кросс-модельвызов функцииПоддержка.
LiteLLM (MIT) Упрощает вызов более 100 LLM в формате OpenAI, поддерживаетвызов функцииНиже приведены примеры режима JSON вызова инструмента и режима JSON.
LlamaIndex (MIT) обеспечивает различные уровни абстракции дляМодуль структурированного выводавключая синтаксический анализатор конечных точек завершения текста, синтаксический анализатор вывода для сопоставления подсказок со структурированными выводами, синтаксический анализатор вывода для структурированных выводов. Пидантичная программаПрограмма Pydantic - это предопределенная программа для определенного типа вывода.
Марвин. (Apache-2.0) - это легкий набор инструментов для создания надежных интерфейсов на естественном языке с инструментами самодокументирования, такими как извлечение сущностей и мультимодальная поддержка.
Конспекты (Apache-2.0) Генерирует структурированный текст, используя различные модели, шаблоны Jinja и поддержку шаблонов регулярных выражений, шаблонов JSON, моделей Pydantic и контекстно-независимых грамматик.
Пидантик (MIT) упрощает использование структур данных и JSON, определяя модели данных, валидацию, генерацию схем JSON, а также бесшовный синтаксический анализ и сериализацию.
SGLang (MPL-2.0) позволяет задавать шаблоны JSON с помощью регулярных выражений или моделей Pydantic для ограниченного декодирования. Его высокопроизводительная среда выполнения ускоряет декодирование JSON.
SynCode (MIT) - это фреймворк для создания больших языковых моделей (LLM) с помощью грамматики. Он поддерживает контекстно-независимые грамматики (CFG) для Python, Go, Java, JSON, YAML и других языков.
Мираскоп (MIT) - это инструментарий LLM, который поддерживает структурированное извлечение и предоставляет интуитивно понятный Python API.
Магнит (MIT) Вызовите LLM в Python за три строки кода. Просто создайте LLM-функции, которые возвращают структурированный вывод, используя декоратор @prompt, работающий на основе Pydantic.
Форматон (MIT) - это эффективная и расширяемая библиотека декодирования ограничений, которая поддерживает использование шаблонов f-строк для управления форматами вывода языковых моделей, регулярных выражений, контекстно-независимых грамматик, схем JSON и моделей Pydantic. Formatron легко интегрируется с широким спектром библиотек вывода моделей.
Трансформаторы-трансформеры (MIT) расширяет поддержку контекстно-свободной грамматики (CFG) в трансформаторах Hugging Face с помощью интерфейса EBNF, который реализует синтаксически-ограниченную генерацию с минимальными изменениями в коде трансформаторов и поддерживает режимы JSON и шаблоны JSON.
Записи в блоге
Как быстро генерируются синтаксические структуры? (2024-04-12, .txt Engineering) демонстрирует практически безотходный метод генерации грамматически правильного текста. На синтаксисе языка C он работает лучше, чем llama.cpp
До 50 раз.
Структурированная генерация для повышения производительности LLM: бенчмарки GSM8K (2024-03-15, .txt Engineering) Демонстрирует улучшение согласованности в 8 моделях, подчеркивая преимущества "согласованности реплик" и "контроля мыслей".
LoRAX + Outlines: лучшее извлечение JSON с помощью структурированной генерации и LoRA (2024-03-03, Predibase Blog) будет Конспекты Совместите с LoRAX v0.8, чтобы повысить точность извлечения и целостность шаблонов благодаря структурированной генерации, тонкой настройке и адаптерам LoRA.
FU, краткий обзор сложных для понимания рамочных советов LLM. (2023-02-14, Hamel Husain) Предоставляет практическое руководство по перехвату вызовов API с помощью mitmproxy, чтобы понять функциональность инструмента и оценить его необходимость. Особое внимание уделяется снижению сложности и тесной интеграции с базовым LLM.
Коалесценция: в 5 раз быстрее LLM-рассуждений (2024-02-02, .txt Engineering) продемонстрировал использование техники "агрегации" для ускорения структурированной генерации, которая быстрее неструктурированной, но может повлиять на качество генерации.
Почему Pydantic незаменим для магистрантов (2024-01-19, Адам Аззам) рассказал о появлении Pydantic как ключевого инструмента, позволяющего обмениваться моделями данных через JSON-схему и делать выводы между неструктурированными и структурированными данными. Была подчеркнута важность количественной оценки пространства принятия решений, а также потенциальная проблема чрезмерной подгонки LLM на старых версиях схем.
Начало работы с вызовами функций (2024-01-11, Элвис Саравиа) Представлены вызовы функций для подключения LLM к внешним инструментам и API, приведены примеры использования API OpenAI и показаны возможные области применения.
Доведение поддержки структурированных данных в ChatGPT до предела (2023-12-21, Макс Вульф) исследует использование платных API, JSON-схем и Pydantic для использования всех преимуществ ChatGPT Методы функциональности. Представлены методы повышения качества вывода и преимущества поддержки структурированных данных.
Почему стоит выбрать инструктора? (2023-11-18, Jason Liu) Объясняет сильные стороны библиотеки, обеспечивая легкий для чтения подход, поддержку частичного извлечения и различных типов, а также механизм самокоррекции. Рекомендуем. Инструктор Другие ресурсы на сайте.
Использование синтаксиса для ограничения вывода llama.cpp (2023-09-06, Ian Maurer) Комбинирование контекстно-независимого синтаксиса для повышения точности вывода llama.cpp, особенно для биомедицинских данных.
Извлечение данных с помощью функций OpenAI и его библиотеки Python (2023-07-09, Саймон Уиллисон) Демонстрирует извлечение структурированных данных за один вызов API с помощью библиотеки OpenAI Python и вызовов функций, с примерами кода и предложениями по работе с ограничениями потока.
видео
(2024-04-09, Саймон Уиллисон) показывает, как плагин datasette-extract может извлекать данные из неструктурированного текста и изображений и заполнять ими таблицы базы данных, используя API GPT-4 Turbo.
(2024-03-25, Андрей Барановский) продемонстрировал извлечение данных на основе вызовов функций с помощью Ollama, Instructor и Воробьиный агент .
(2024-03-18, Prompt Engineer) представил Hermes 2 Pro, модель с 7 миллиардами параметров, которая отлично справляется с вызовами функций и генерирует структурированный JSON-вывод. Продемонстрировала точность 90% для вызовов функций и 84% в режиме JSON, превзойдя другие модели.
(2024-02-24, Sophia Yang) продемонстрировал подключение большой языковой модели к внешним инструментам, генерацию аргументов функций и их выполнение. Это можно расширить, чтобы генерировать или манипулировать данными JSON.
(2024-02-13.Мэтт Уильямс) уточняет, что структурированный вывод, генерируемый моделью, используется для разбора и вызова функций. Реализации сравниваются, подчеркивая Оллама Этот подход более лаконичен и использует небольшое количество примеров советов для поддержания последовательности.
(2024-02-12.Джейсон Лю(математика) родПрограмма "Веса и предубеждения) предлагает краткий курс по использованию Pydantic для работы со структурированным JSON-выводом, вызовами функций и валидацией, охватывая основные моменты построения надежных конвейеров и эффективных производственных интеграций.
(2023-10-10.Джейсон Лю(математика) родКонференция инженеров по искусственному интеллекту) рассказывает о важности Pydantic для структурированной подсказки и проверки вывода, представляет библиотеку Instructor и демонстрирует передовые приложения для надежных и поддерживаемых LLM-приложений.
Блокноты Jupyter
Вызов функций с помощью llama-cpp-python и Python-клиента OpenAI Демонстрируется интеграция, включая настройку с помощью библиотеки Instructor, и приводятся примеры получения информации о погоде и извлечения данных о пользователе.
Функциональные вызовы с использованием модели Mistral Показывает подключение модели Mistral к внешнему инструменту на простом примере, включающем кадр данных о платежных операциях.
chatgpt-structured-data оставить (кому-л.) Макс Вульф демонстрирует вызовы функций и поддержку структурированных данных в ChatGPT, охватывая различные варианты использования и структуры данных.
чарты (бестселлеры)
Таблица лидеров функциональных вызовов Беркли (BFCL) Это система оценки для тестирования возможностей LLM по вызову функций, состоящая из более чем 2000 пар "вопрос-функция-ответ" на таких языках, как Python, Java, JavaScript, SQL и REST API, с упором на простые, множественные и параллельные вызовы функций, а также на определение релевантности функций.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...