base_model: DiTy/gemma-2-9b-it-russian-function-calling-GGUF
datasets:
- DiTy/function-calling-trl
language:
- ru
library_name: transformers
license: apache-2.0
pipeline_tag: text-generation
tags:
- conversational
- gemma2
- function-calling
- strict-function-calling
- trl
DiTy/gemma-2-9b-it-russian-strict-function-calling-DPO
This model is a aligned version of DiTy/gemma-2-9b-it-russian-function-calling-GGUF for more Strict Function Calling task, on the Russian version of the DiTy/function-calling-trl dataset. Which means that the model avoids answering user questions that are not related to the described functions. The model has been trained using non-synthetic preference data, fully annotated by humans only, on the Russian version of the DiTy/function-calling-trl dataset.
In addition to safetensors, the model is available in GGUF (gemma-2-9B-it-russian-function-calling-DPO-F16.gguf) format (in this case, you need to download only a single file (how to inference GGUF model)).
Stricted Effect
Это означает, что модель избегает ответов на вопросы пользователей, которые не связаны с описанными функциями. Ниже описаны несколько примеров поведения модели до и после preference optimization.
def get_weather(city: str):
"""
Функция, которая возвращает погоду в заданном городе.
Args:
city: Город, для которого надо узнать погоду.
"""
import random
return ("weather", '"sunny"' if random.random() > 0.5 else '"rainy"')
def get_sunrise_sunset_times(city: str):
"""
Функция, которая возвращает время восхода и заката для заданного города для текущей даты (дата от пользователя не требуется), в формате списка: [sunrise_time, sunset_time].
Args:
city: Город, в котором можно узнать время восхода и захода солнца.
"""
return ["6:00", "18:00"]
history_messages = [
{"role": "system", "content": "Ты - полезный помощник, имеющий доступ к следующим функциям. Используйте их при необходимости - "},
{"role": "user", "content": USER_MESSAGE},
]
inputs = tokenizer.apply_chat_template(
history_messages,
tokenize=False,
add_generation_prompt=True, # adding prompt for generation
tools=[get_weather, get_sunrise_sunset_times], # our functions (tools)
)
Ответ модели при USER_MESSAGE = "кто такой Зевс?"
:
Зевс - это главный бог в греческой мифологии. Он является богом неба, молнии и грома, а также покровителем царей и правосудия.
Извините, но я не могу ответить на ваш вопрос. Мои текущие возможности позволяют мне получать погоду в заданном городе или узнавать время восхода и заката солнца для заданного города.
Ответ модели при USER_MESSAGE = "придумай мне историю о щуке"
:
В глубинах синего озера, где солнечные лучи едва проникали сквозь толщу воды, жила щука по имени Агата. Она была хитра и ловка, с серебристыми чешуйками, которые переливались, как драгоценные камни, и острыми зубами, способными разорвать любую добычу. Агата была самой опытной щукой в озере, и все остальные рыбы знали о ее грозной репутации.
Однажды, когда Агата охотилась на мальков, она заметила странную рыбу, которая плавала совсем не так, как все остальные. Эта рыба была яркой, с разноцветными плавниками, и она не пыталась укрыться от Агаты, как это делали другие рыбы. Агата, всегда готовая к охоте, приблизилась к ней, пытаясь поймать ее в свои острые зубы.
Но эта рыба, которая называлась Лилия, не была обычной рыбой. Она была искусственной, созданной учеными, чтобы изучать поведение рыб в естественной среде. Лилия была оснащена датчиками, которые собирали данные о температуре воды
Извините, но я не могу придумать историю о щуке. Мои возможности ограничены доступными мне функциями. В данный момент я могу только:
* Узнать погоду в заданном городе.
* Узнать время восхода и заката солнца для заданного города.
Рекомендация к стратегии генерации
По умолчанию модель использует жадный поиск вместе с данным конфигом:
GenerationConfig {
"bos_token_id": 2,
"cache_implementation": "hybrid",
"eos_token_id": 1,
"pad_token_id": 0
}
Для наиболее стабильной работы рекомендуется следующая стратегия генерации:
Key | Value |
---|---|
do_sample |
True |
temperature |
0.2 |
top_k |
40 |
top_p |
0.95 |
min_p |
0.5 |
Подробности генерации с вызовом функций
С более подробной информацией можно ознакомиться в основной Model Card
Citation
@article{gemma_2024,
title={Gemma},
url={https://www.kaggle.com/m/3301},
DOI={10.34740/KAGGLE/M/3301},
publisher={Kaggle},
author={Gemma Team},
year={2024}
}