/ Модель

Характеристики

Контекст
4 096 токенов
Параметры
10,6 млрд
Размер весов
21,5 ГБ
Лицензия
Llama 2
Архитектура
llama · dense
Опубликована
20 янв 2024

LMCocktail-10.7B-v1-function-calling

Генерация текстаТекст → текст3 профессии

Слитая диалоговая Llama-модель на 10,6 млрд параметров для генерации ответов и структурированных вызовов функций в приложениях.

25скачиваний за 30 дней1лайквеса обновлены2 мар 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

LMCocktail-10.7B-v1-function-calling — слитая модель на архитектуре Llama, опубликованная автором Yhyu13. Она предназначена для диалоговой генерации текста с вызовом функций: модель оформляет имя функции и аргументы в XML-подобном формате, чтобы приложение могло извлечь вызов, выполнить его и передать результат обратно в диалог. Автор сообщает о результате 9 из 10 успешных запусков на примерах из OpenAI Function Calling Cookbook, но не приводит методику оценки.

Модель содержит 10,6 млрд параметров, использует формат safetensors и имеет контекст 4096 токенов. Карточка описывает её как слияние модели и LoRA для function calling; базовые модели в доступных данных не названы. В README указана лицензия Apache-2.0, тогда как метаданные Hugging Face указывают Llama 2; перед использованием следует проверить лицензионные условия исходных компонентов. Для работы с вызовами функций нужны совместимый формат промпта и обработчик, который извлекает вызов и передаёт модели результат выполнения.

Сценарии применения

  • создание вызовов функций по запросу пользователя
  • подключение LLM к инструментам и API
  • выполнение вычислений через внешнюю функцию
  • интеграция диалоговой модели с MemGPT-подобными приложениями

Ограничения

Для вызова функций требуется совместимый формат промпта и внешняя логика извлечения и исполнения вызовов. Автор заявляет результат 9/10 на примерах Function Calling Cookbook, однако методика оценки не описана; README и метаданные также расходятся по лицензии.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

license: apache-2.0

LMCocktail-10.7B function calling

This is a merged model of the https://huggingface.co/Yhyu13/LMCocktail-10.7B-v1 and sft function calling lora here

This model is acompanied with pr on textgen-webui to enable its function calling ability like GPTs: Add function calling ability to openai extension

Caution

This model is recommanded over my ph-2 variant since this model has more grounding ability on following function calling prompt

This model is by far my 2nd best function calling model, it can achieve 9/10 success on openai function calling cook book

Also, checkout my best function calling model here: https://huggingface.co/Yhyu13/dolphin-2.6-mistral-7b-dpo-laser-function-calling

Detail

The function calling is wrapped in simple xml tag for eaiser identification.

<functioncall> {\"name\": \"calculate_loan_payment\", \"arguments\": '{\"principal\": 50000, \"interest_rate\": 5, \"loan_term\": 10}'} </functioncall>

that can be extracted like this

import re
import json

input_str = "<functioncall> {\"name\": \"calculate_loan_payment\", \"arguments\": '{\"principal\": 50000, \"interest_rate\": 5, \"loan_term\": 10}'} </functioncall>"

# Define the pattern to match the JSON string within the functioncall tags
pattern = r'<functioncall>(.*?)</functioncall>'

# Use re.search to find the matched pattern
match = re.search(pattern, input_str, re.DOTALL)

if match:
    json_str = match.group(1)
    # Remove the single quotes surrounding the inner JSON string
    json_str = json_str.replace("'", "")
    
    # Load the JSON string into a Python dictionary
    json_data = json.loads(json_str)
    print(json_data)
else:
    print("No match found.")

Or, if you want to faithfully keep the single quotes that wrapps the arguments value (where openai does it like this, which makes json.loads fail shortly on the original json_str), use ast.literal_eval for the rescue.

if match:
    import ast
    json_str = match.group(1)
    json_str = json_str.strip()
    """
    https://www.datasciencebyexample.com/2023/03/16/what-to-do-when-single-quotes-in-json-string/
    """
    json_dict = ast.literal_eval(json_str)
    print(json_dict['name'], json_dict['arguments'])
else:
    print("No match found.")

Hopefully, this model can be a drop-in replacement for apps (e.g. memgpt) that require function calling ability from LLMs.

Another note on interpreting function call result:

Function response has been put between <functionresponse> in order to be identified as a function call result (which could be evaluted behind the scene, and its result in principle should be interpreted as part of the user input), which then will be processed by the assistant for form a conversational response.

<functionresponse> jons_str </functionresponse>

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
0ff76fb

0 моделей