Перевод оригинального mt_bench на русский язык. Переведенный датасет можно найти здесь: dim/mt_bench_ru
Ссылка на google sheets link
| model_name | mt_bench_ru_turn_1 | mt_bench_ru_turn_2 | mt_bench_ru_avg | score_date |
|---|---|---|---|---|
| gpt-3.5-turbo | 8.7 | 7.45 | 8.075 | 31.08.2023 |
| Open-Orca/Mistral-7B-OpenOrca | 6.85 | 5.95 | 6.4 | 15.12.2023 |
| dim/mistral-open-orca-ru-4600-step | 7.1625 | 5.46 | 6.31125 | 15.12.2023 |
| IlyaGusev/saiga_mistral_7b_lora | 6.567901 | 5.3375 | 5.9527005 | 15.12.2023 |
| dim/verbalist_v10_1650 | 5.6125 | 5 | 5.30625 | 15.12.2023 |
| dim/verbalist_7b_v9_800 | 6.175 | 4.375 | 5.275 | 15.12.2023 |
| IlyaGusev/saiga2_13b_lora | 5.96 | 4.12 | 5.04 | 31.08.2023 |
| IlyaGusev/saiga2_7b_lora | 4.76 | 3.62 | 4.19 | 31.08.2023 |
| GigaChat(v1.13.0) когда только вышел | 4.53 | 3.53 | 4.03 | 31.08.2023 |
| IlyaGusev/saiga_7b_lora | 4.23 | 3.06 | 3.645 | 31.08.2023 |
| gigasaiga_13b | 3.71 | 2.75 | 3.23 | 31.08.2023 |
| dim/xglm-4.5b_dolly_oasst1_chip2 | 2.28 | 2.08 | 2.18 | 31.08.2023 |
Для воспроизводимости я создал докерфайл и добавил .devcontainer.json. Это такая технология, которая позволяет разрабатывать изолировано в докер контейнере. Ну или можете просто установить все необходимые пакеры самостоятельно, как вы любите. Во время первого запуска ноутбука могут возникнуть проблемы с conda. Решение:
sudo su
conda install -n base ipykernel --update-deps -y
Если не хотите использовать докер, можно создать новое окружение conda.
conda create -n mtbench
conda activate mtbench
python3 -m pip install -r requirements.txt
python mt_bench_generation.py
llm_judge/data/mt_bench/model_answer с именем EXAMPLE_MODEL.json в режиме когда оценивается только одна модель. Необходимо поменять на ваш файл.python -m llm_judge.gen_judgment --model-list EXAMPLE_MODEL --mode single --judge-file llm_judge/data/judge_prompts_ru.jsonl --question-file question_ru
или
bash run_gen_judgment.sh
Stats:
{
"bench_name": "mt_bench",
"mode": "single",
"judge": "gpt-4",
"baseline": null,
"model_list": [
"EXAMPLE_MODEL"
],
"total_num_questions": 80,
"total_num_matches": 160,
"output_path": "llm_judge/data/mt_bench/model_judgment/gpt-4_single.jsonl"
}
Press Enter to confirm...
python -m llm_judge.show_result
или
bash show_results.sh
Mode: single
Input file: llm_judge/data/mt_bench/model_judgment/gpt-4_single.jsonl
########## First turn ##########
score
model turn
mt_bench_ru_chatgpt 1 8.700000
mistral-open-orca-ru-4600-step 1 7.162500
Mistral-7B-OpenOrca 1 6.850000
saiga_mistral_7b_lora 1 6.567901
verbalist_7b_v9_800 1 6.175000
mt_bench_ru_saiga2_13b 1 5.962500
verbalist_v10_1650 1 5.612500
mt_bench_ru_saiga2_7b 1 4.762500
mt_bench_ru_gigachat 1 4.537500
saiga_7b_v1_ru 1 4.237500
mt_bench_ru_gigasaiga_13b 1 3.712500
mt_bench_ru_xglm_4.5B_lora_our_dataset 1 2.287500
########## Second turn ##########
score
model turn
mt_bench_ru_chatgpt 2 7.4500
Mistral-7B-OpenOrca 2 5.9500
mistral-open-orca-ru-4600-step 2 5.4625
saiga_mistral_7b_lora 2 5.3375
verbalist_v10_1650 2 5.0000
verbalist_7b_v9_800 2 4.3750
mt_bench_ru_saiga2_13b 2 4.1250
mt_bench_ru_saiga2_7b 2 3.6250
mt_bench_ru_gigachat 2 3.5375
saiga_7b_v1_ru 2 3.0625
mt_bench_ru_gigasaiga_13b 2 2.7500
mt_bench_ru_xglm_4.5B_lora_our_dataset 2 2.0875
########## Average ##########
score
model
mt_bench_ru_chatgpt 8.075000
Mistral-7B-OpenOrca 6.400000
mistral-open-orca-ru-4600-step 6.312500
saiga_mistral_7b_lora 5.956522
verbalist_v10_1650 5.306250
verbalist_7b_v9_800 5.275000
mt_bench_ru_saiga2_13b 5.043750
mt_bench_ru_saiga2_7b 4.193750
mt_bench_ru_gigachat 4.037500
saiga_7b_v1_ru 3.650000
mt_bench_ru_gigasaiga_13b 3.231250
mt_bench_ru_xglm_4.5B_lora_our_dataset 2.187500
python -m llm_judge.qa_browser --share --question-file question_ru
или
bash run_gradio.sh



Оценочные промпты промпты можно найти вот тут llm_judge/data/judge_prompts_ru.jsonl
Пример такого промпта выглядит следующим образом: Для первого turn.
[Инструкция]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, показанный ниже. Ваша оценка должна учитывать такие факторы, как полезность, актуальность, точность, глубина, креативность и уровень детализации ответа. Начните оценку с краткого объяснения. Будьте максимально объективны. После объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: «Оценка: [[5]]».
[Вопрос]
{question}
[Начало ответа помощника]
{answer}
[Конец ответа помощника]
Для второго turn.
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, отображаемый ниже. Ваша оценка должна учитывать такие факторы, как полезность, актуальность, точность, глубина, креативность и уровень детализации ответа. Ваша оценка должна быть сосредоточена на ответе помощника на второй вопрос пользователя. Начните оценку с краткого объяснения. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: Оценка: [[5]]».
<|Начало разговора помощника А с пользователем|>
### Пользователь:
{question_1}
### Помощник А:
{answer_1}
### Пользователь:
{question_2}
### Помощник А:
{answer_2}
<|Конец разговора помощника А с пользователем|>
Для оценки математики промпт немного отличается:
[Инструкция]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, показанный ниже. Ваша оценка должна учитывать правильность и полезность. Вам будет дан справочный ответ и ответ ассистента. Начните оценку, сравнив ответ ассистента с эталонным ответом. Найдите и исправьте все ошибки. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: "[[оценка]]", например: "Оценка: [[5]]".
[Вопрос]
{question}
[Начало справочного ответа]
{ref_answer_1}
[Конец справочного ответа]
[Начало ответа ассистента]
{answer}
[Конец ответа ассистента]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа помощника ИИ на вопрос пользователя. Ваша оценка должна учитывать правильность и полезность. Вам будет дан справочный ответ и ответ ассистента. Ваша оценка должна быть сосредоточена на ответе ассистента на второй вопрос. Начните свою оценку, сравнив ответ ассистента с эталонным ответом. Найдите и исправьте все ошибки. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: «Оценка: [[5]]».
<|Начало справочного ответа|>
### Пользователь:
{question_1}
### Справочный ответ:
{ref_answer_1}
### Пользователь:
{question_2}
### Справочный ответ:
{ref_answer_2}
<|Конец справочного ответа|>
<|Начало разговора помощника А с пользователем|>
### Пользователь:
{question_1}
### Ассистент А:
{answer_1}
### Пользователь:
{question_2}
### Ассистент А:
{answer_2}
<|Конец разговора Ассистента А с пользователем|>
11 commits
Jupyter Notebook
60.9%
Python
38.3%
Перевод оригинального mt_bench на русский язык. Переведенный датасет можно найти здесь: dim/mt_bench_ru
Ссылка на google sheets link
| model_name | mt_bench_ru_turn_1 | mt_bench_ru_turn_2 | mt_bench_ru_avg | score_date |
|---|---|---|---|---|
| gpt-3.5-turbo | 8.7 | 7.45 | 8.075 | 31.08.2023 |
| Open-Orca/Mistral-7B-OpenOrca | 6.85 | 5.95 | 6.4 | 15.12.2023 |
| dim/mistral-open-orca-ru-4600-step | 7.1625 | 5.46 | 6.31125 | 15.12.2023 |
| IlyaGusev/saiga_mistral_7b_lora | 6.567901 | 5.3375 | 5.9527005 | 15.12.2023 |
| dim/verbalist_v10_1650 | 5.6125 | 5 | 5.30625 | 15.12.2023 |
| dim/verbalist_7b_v9_800 | 6.175 | 4.375 | 5.275 | 15.12.2023 |
| IlyaGusev/saiga2_13b_lora | 5.96 | 4.12 | 5.04 | 31.08.2023 |
| IlyaGusev/saiga2_7b_lora | 4.76 | 3.62 | 4.19 | 31.08.2023 |
| GigaChat(v1.13.0) когда только вышел | 4.53 | 3.53 | 4.03 | 31.08.2023 |
| IlyaGusev/saiga_7b_lora | 4.23 | 3.06 | 3.645 | 31.08.2023 |
| gigasaiga_13b | 3.71 | 2.75 | 3.23 | 31.08.2023 |
| dim/xglm-4.5b_dolly_oasst1_chip2 | 2.28 | 2.08 | 2.18 | 31.08.2023 |
Для воспроизводимости я создал докерфайл и добавил .devcontainer.json. Это такая технология, которая позволяет разрабатывать изолировано в докер контейнере. Ну или можете просто установить все необходимые пакеры самостоятельно, как вы любите. Во время первого запуска ноутбука могут возникнуть проблемы с conda. Решение:
sudo su
conda install -n base ipykernel --update-deps -y
Если не хотите использовать докер, можно создать новое окружение conda.
conda create -n mtbench
conda activate mtbench
python3 -m pip install -r requirements.txt
python mt_bench_generation.py
llm_judge/data/mt_bench/model_answer с именем EXAMPLE_MODEL.json в режиме когда оценивается только одна модель. Необходимо поменять на ваш файл.python -m llm_judge.gen_judgment --model-list EXAMPLE_MODEL --mode single --judge-file llm_judge/data/judge_prompts_ru.jsonl --question-file question_ru
или
bash run_gen_judgment.sh
Stats:
{
"bench_name": "mt_bench",
"mode": "single",
"judge": "gpt-4",
"baseline": null,
"model_list": [
"EXAMPLE_MODEL"
],
"total_num_questions": 80,
"total_num_matches": 160,
"output_path": "llm_judge/data/mt_bench/model_judgment/gpt-4_single.jsonl"
}
Press Enter to confirm...
python -m llm_judge.show_result
или
bash show_results.sh
Mode: single
Input file: llm_judge/data/mt_bench/model_judgment/gpt-4_single.jsonl
########## First turn ##########
score
model turn
mt_bench_ru_chatgpt 1 8.700000
mistral-open-orca-ru-4600-step 1 7.162500
Mistral-7B-OpenOrca 1 6.850000
saiga_mistral_7b_lora 1 6.567901
verbalist_7b_v9_800 1 6.175000
mt_bench_ru_saiga2_13b 1 5.962500
verbalist_v10_1650 1 5.612500
mt_bench_ru_saiga2_7b 1 4.762500
mt_bench_ru_gigachat 1 4.537500
saiga_7b_v1_ru 1 4.237500
mt_bench_ru_gigasaiga_13b 1 3.712500
mt_bench_ru_xglm_4.5B_lora_our_dataset 1 2.287500
########## Second turn ##########
score
model turn
mt_bench_ru_chatgpt 2 7.4500
Mistral-7B-OpenOrca 2 5.9500
mistral-open-orca-ru-4600-step 2 5.4625
saiga_mistral_7b_lora 2 5.3375
verbalist_v10_1650 2 5.0000
verbalist_7b_v9_800 2 4.3750
mt_bench_ru_saiga2_13b 2 4.1250
mt_bench_ru_saiga2_7b 2 3.6250
mt_bench_ru_gigachat 2 3.5375
saiga_7b_v1_ru 2 3.0625
mt_bench_ru_gigasaiga_13b 2 2.7500
mt_bench_ru_xglm_4.5B_lora_our_dataset 2 2.0875
########## Average ##########
score
model
mt_bench_ru_chatgpt 8.075000
Mistral-7B-OpenOrca 6.400000
mistral-open-orca-ru-4600-step 6.312500
saiga_mistral_7b_lora 5.956522
verbalist_v10_1650 5.306250
verbalist_7b_v9_800 5.275000
mt_bench_ru_saiga2_13b 5.043750
mt_bench_ru_saiga2_7b 4.193750
mt_bench_ru_gigachat 4.037500
saiga_7b_v1_ru 3.650000
mt_bench_ru_gigasaiga_13b 3.231250
mt_bench_ru_xglm_4.5B_lora_our_dataset 2.187500
python -m llm_judge.qa_browser --share --question-file question_ru
или
bash run_gradio.sh



Оценочные промпты промпты можно найти вот тут llm_judge/data/judge_prompts_ru.jsonl
Пример такого промпта выглядит следующим образом: Для первого turn.
[Инструкция]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, показанный ниже. Ваша оценка должна учитывать такие факторы, как полезность, актуальность, точность, глубина, креативность и уровень детализации ответа. Начните оценку с краткого объяснения. Будьте максимально объективны. После объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: «Оценка: [[5]]».
[Вопрос]
{question}
[Начало ответа помощника]
{answer}
[Конец ответа помощника]
Для второго turn.
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, отображаемый ниже. Ваша оценка должна учитывать такие факторы, как полезность, актуальность, точность, глубина, креативность и уровень детализации ответа. Ваша оценка должна быть сосредоточена на ответе помощника на второй вопрос пользователя. Начните оценку с краткого объяснения. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: Оценка: [[5]]».
<|Начало разговора помощника А с пользователем|>
### Пользователь:
{question_1}
### Помощник А:
{answer_1}
### Пользователь:
{question_2}
### Помощник А:
{answer_2}
<|Конец разговора помощника А с пользователем|>
Для оценки математики промпт немного отличается:
[Инструкция]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа, предоставленного помощником ИИ на вопрос пользователя, показанный ниже. Ваша оценка должна учитывать правильность и полезность. Вам будет дан справочный ответ и ответ ассистента. Начните оценку, сравнив ответ ассистента с эталонным ответом. Найдите и исправьте все ошибки. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: "[[оценка]]", например: "Оценка: [[5]]".
[Вопрос]
{question}
[Начало справочного ответа]
{ref_answer_1}
[Конец справочного ответа]
[Начало ответа ассистента]
{answer}
[Конец ответа ассистента]
Пожалуйста, действуйте как беспристрастный судья и оцените качество ответа помощника ИИ на вопрос пользователя. Ваша оценка должна учитывать правильность и полезность. Вам будет дан справочный ответ и ответ ассистента. Ваша оценка должна быть сосредоточена на ответе ассистента на второй вопрос. Начните свою оценку, сравнив ответ ассистента с эталонным ответом. Найдите и исправьте все ошибки. Будьте максимально объективны. После предоставления объяснения вы должны оценить ответ по шкале от 1 до 10, строго следуя следующему формату: «[[оценка]]», например: «Оценка: [[5]]».
<|Начало справочного ответа|>
### Пользователь:
{question_1}
### Справочный ответ:
{ref_answer_1}
### Пользователь:
{question_2}
### Справочный ответ:
{ref_answer_2}
<|Конец справочного ответа|>
<|Начало разговора помощника А с пользователем|>
### Пользователь:
{question_1}
### Ассистент А:
{answer_1}
### Пользователь:
{question_2}
### Ассистент А:
{answer_2}
<|Конец разговора Ассистента А с пользователем|>
11 commits
Jupyter Notebook
60.9%
Python
38.3%