Xlam-function-calling-60k — датасет для обучения LLM, способных взаимодействовать с внешними API

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Этот репозиторий содержит 60 000 данных, собранных APIGen — конвейером автоматического создания данных, предназначенным для создания проверяемых наборов данных высокого качества для приложений, вызывающих функции. Каждые данные в нашем наборе данных проверяются на трех иерархических этапах: проверка формата, фактическое выполнение функций и семантическая проверка, обеспечивая их надежность и правильность.

Мы провели человеческую оценку более 600 выборочных точек данных, и правильный показатель превышает 95%, а у остальных 5% есть незначительные проблемы, такие как неточные аргументы и т. д.

Общая структура процедуры сбора набора данных показана ниже. Подробности смотрите на главной странице нашего проекта .

обзор

? Новости

  • [Июль 2024 г.] : Мы рады объявить о выпуске двух наших моделей вызова функций: xLAM-1b-fc-r и xLAM-7b-fc-r . Эти модели достигли впечатляющих рейтингов, заняв 3-е и 25-е места в таблице лидеров по вызову функций Беркли , обогнав многие значительно более крупные модели. Мы также предоставляем их файлы GGUF, которые можно легко развернуть на персональных устройствах. Следите за обновлениями, скоро появятся более мощные модели.
  • [Июль 2024 г.] : Мы решили проблемы, упомянутые в обсуждении №8, восстановив 1896 затронутых точек данных. Спасибо сообществу за обнаружение этих проблем и за помощь в дальнейшем улучшении качества нашего набора данных!
  • [Июнь 2024 г.] : Мы рады видеть нашу работу, представленную VentureBeat и???.

Что такое агент вызова функций?

Агенты, вызывающие функции, способны выполнять функциональные вызовы API из инструкций на простом языке. Представьте себе, что вы спрашиваете о сегодняшней погоде в Пало-Альто. В ответ агент, вызывающий функцию, быстро интерпретирует этот запрос, подключается к соответствующему API, например, и get_weather("Palo Alto", "today")получает данные о погоде в реальном времени. Эти расширенные возможности значительно расширяют практическое применение программ LLM, позволяя им беспрепятственно взаимодействовать с различными цифровыми платформами, от социальных сетей до финансовых услуг, беспрецедентным образом улучшая наш цифровой опыт.

вызов функции

Наборы данных

Наборы данных были созданы с помощью DeepSeek-V2-Chat и Mixtral-8x22B-Inst . Мы используем APIGen и собираем 3673 исполняемых API в 21 различной категории для создания разнообразных наборов данных о вызовах функций масштабируемым и структурированным образом.

Первые 33,659записи данных были сгенерированы DeepSeek, т.е. от id 0до id 33658. Остальные были сгенерированы Mixtral.

Круговая диаграмма, показывающая распределение набора данных

Набор данных находится по адресу xlam_function_calling_60k.json. После принятия условий использования и входа в свою учетную запись Huggingface вы можете просто получить доступ к набору данных:

from datasets import load_dataset datasets = load_dataset("Salesforce/xlam-function-calling-60k") 

Формат данных JSON для запросов и ответов

Этот формат данных JSON используется для представления запроса вместе с доступными инструментами и соответствующими ответами. Вот описание формата:

Состав

Данные JSON состоят из следующих пар ключ-значение:

  • query(строка): запрос или формулировка проблемы.
  • tools(массив): массив доступных инструментов, которые можно использовать для решения запроса.
    • Каждый инструмент представлен как объект со следующими свойствами:
      • name(строка): Имя инструмента.
      • description(строка): краткое описание того, что делает инструмент.
      • parameters(объект): объект, представляющий параметры, необходимые инструменту.
        • Каждый параметр представлен в виде пары ключ-значение, где ключом является имя параметра, а значением — объект со следующими свойствами:
          • type(строка): тип данных параметра (например, «int», «float», «list»).
          • description(строка): краткое описание параметра.
          • required(логическое значение): указывает, является ли параметр обязательным или необязательным.
  • answers(массив): Массив ответов, соответствующий запросу.
    • Каждый ответ представлен в виде объекта со следующими свойствами:
      • name(строка): имя инструмента, использованного для генерации ответа.
      • arguments(объект): объект, представляющий аргументы, передаваемые инструменту для генерации ответа.
        • Каждый аргумент представлен в виде пары ключ-значение, где ключ — это имя параметра, а значение — соответствующее значение.

Обратите внимание, что мы форматируем query, toolsи answersв строку, но вы можете легко восстановить каждую запись в объекте JSON через json.loads(...).

Пример

Вот пример данных JSON:

{   "query": "Find the sum of all the multiples of 3 and 5 between 1 and 1000. Also find the product of the first five prime numbers.",   "tools": [     {       "name": "math_toolkit.sum_of_multiples",       "description": "Find the sum of all multiples of specified numbers within a specified range.",       "parameters": {         "lower_limit": {           "type": "int",           "description": "The start of the range (inclusive).",           "required": true         },         "upper_limit": {           "type": "int",           "description": "The end of the range (inclusive).",           "required": true         },         "multiples": {           "type": "list",           "description": "The numbers to find multiples of.",           "required": true         }       }     },     {       "name": "math_toolkit.product_of_primes",       "description": "Find the product of the first n prime numbers.",       "parameters": {         "count": {           "type": "int",           "description": "The number of prime numbers to multiply together.",           "required": true         }       }     }   ],   "answers": [     {       "name": "math_toolkit.sum_of_multiples",       "arguments": {         "lower_limit": 1,         "upper_limit": 1000,         "multiples": [3, 5]       }     },     {       "name": "math_toolkit.product_of_primes",       "arguments": {         "count": 5       }     }   ] } 

В этом примере запрос просит найти сумму кратных 3 и 5 между 1 и 1000, а также найти произведение первых пяти простых чисел. Доступными инструментами являются math_toolkit.sum_of_multiplesи math_toolkit.product_of_primes, а также описания их параметров. Массив answersпредоставляет конкретный инструмент и аргументы, используемые для генерации каждого ответа.

Результаты тестов

Наряду с набором данных мы также выпускаем две небольшие, но функциональные модели вызова функций, как упоминалось в статье: xLAM-1b-fc-r и xLAM-7b-fc-r . В основном мы тестируем их на Таблице лидеров по вызову функций Беркли (BFCL) , которая предлагает комплексную структуру оценки возможностей LLM по вызову функций в различных языках программирования и областях приложений, таких как Java, JavaScript и Python.

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

Сравнение производительности на бенчмарке BFCL по состоянию на 18.07.2024. Оценивается с помощью temperature=0.001иtop_p=1

Наш xLAM-7b-fc-rзанимает 3-е место в таблице лидеров с общей точностью 88,24%, опережая многие сильные модели. Примечательно, что наша xLAM-1b-fc-rмодель — единственная крошечная модель с менее чем 2B параметрами в таблице лидеров, но при этом она обеспечивает конкурентоспособную общую точность 78,94% и превосходит GPT3-Turbo и многие более крупные модели. Обе модели демонстрируют сбалансированную производительность в различных категориях, демонстрируя свои сильные возможности вызова функций, несмотря на небольшие размеры.

Цитирование

Если набор данных оказался для вас полезным, укажите:

@article{liu2024apigen,   title={APIGen: Automated Pipeline for Generating Verifiable and Diverse Function-Calling Datasets},   author={Liu, Zuxin and Hoang, Thai and Zhang, Jianguo and Zhu, Ming and Lan, Tian and Kokane, Shirley and Tan, Juntao and Yao, Weiran and Liu, Zhiwei and Feng, Yihao and others},   journal={arXiv preprint arXiv:2406.18518},   year={2024} }

Источник: huggingface.co

Комментарии: