GitHub репозиторий: ru_llm_arena
Шаги для запуска:
Клонируйте репозиторий и установите зависимости:
git clone https://github.com/VikhrModels/ru_llm_arena.git
cd ru_llm_arena
pip install -r requirements.txt
pip install -r requirements-optional.txt
Настройте эндпоинты модели:
Отредактируйте config/api_config.yaml, чтобы добавить информацию о вашем эндпоинте модели.
Генерация ответов модели:
Отредактируйте config/gen_answer_config.yaml, чтобы включить ваше имя модели, и выполните команду:
python gen_answer.py
Генерация вердиктов:
Отредактируйте config/judge_config.yaml, чтобы включить ваше имя модели, и выполните команду:
python gen_judgment.py
Отображение результатов: Выведите результаты винрейтов моделей с помощью:
python show_result.py
Этот бенчмарк автоматически оценивает модели на русском языке с использованием фиксированного набора из 500 промптов, разделенных на 50 тем. Ответы каждой модели сравниваются с базовой моделью (gpt-3.5-turbo-0125). Инструмент использует модель-судью (GPT-4-1106-preview) для оценки качества ответов, учитывая случаи, когда один ответ значительно лучше, немного лучше или равен. Результаты обрабатываются с использованием системы рейтингов ELO и модели Bradley-Terry для предсказания винрейтов. Этот процесс обеспечивает объективные и надежные метрики производительности для различных моделей.
lr = LogisticRegression(fit_intercept=False, penalty=None, tol=1e-8)
lr.fit(X, Y, sample_weight=(df['answer_len_delta'] * 2))
Если включен контроль длины, вес разницы в длине ответа рассчитывается следующим образом:
Расчет дельты длины ответов:
answers_length_deltas = (answers_lengths.loc[BASELINE_MODEL_NAME] - answers_lengths.loc[row["model"]])
answer_length_delta = (answers_lengths.loc[BASELINE_MODEL_NAME][row["question_id"]] -
answers_lengths.loc[row["model"]][row["question_id"]])
Нормализованный вес разницы в длине ответа:
normalized_answer_delta_weight = _logistic(answer_length_delta / answers_length_deltas.std())
Если контроль длины не включен, нормализованный вес разницы в длине ответа устанавливается равным 0.5:
normalized_answer_delta_weight = 0.5
Для включения контроля длины ответов можно использовать параметр --length-control при запуске скрипта show_result.py. Это позволит учитывать разницу в длине ответов моделей относительно базовой модели, применяя штрафы за ответы, которые значительно длиннее, что снижает их вес в общей оценке.
При включенном контроле длины, вес разницы в длине ответа рассчитывается как:
[ \text{normalized_answer_delta_weight} = \text{logistic}\left(\frac{\text{answer_length_delta}}{\text{answers_length_deltas.std()}}\right) ]
При отключенном контроле длины:
[ \text{normalized_answer_delta_weight} = 0.5 ]
Эти веса используются в модели логистической регрессии для оценки и сравнения ответов моделей, что позволяет более объективно учитывать разницу в их длине.
3 commits
1 commits
GitHub репозиторий: ru_llm_arena
Шаги для запуска:
Клонируйте репозиторий и установите зависимости:
git clone https://github.com/VikhrModels/ru_llm_arena.git
cd ru_llm_arena
pip install -r requirements.txt
pip install -r requirements-optional.txt
Настройте эндпоинты модели:
Отредактируйте config/api_config.yaml, чтобы добавить информацию о вашем эндпоинте модели.
Генерация ответов модели:
Отредактируйте config/gen_answer_config.yaml, чтобы включить ваше имя модели, и выполните команду:
python gen_answer.py
Генерация вердиктов:
Отредактируйте config/judge_config.yaml, чтобы включить ваше имя модели, и выполните команду:
python gen_judgment.py
Отображение результатов: Выведите результаты винрейтов моделей с помощью:
python show_result.py
Этот бенчмарк автоматически оценивает модели на русском языке с использованием фиксированного набора из 500 промптов, разделенных на 50 тем. Ответы каждой модели сравниваются с базовой моделью (gpt-3.5-turbo-0125). Инструмент использует модель-судью (GPT-4-1106-preview) для оценки качества ответов, учитывая случаи, когда один ответ значительно лучше, немного лучше или равен. Результаты обрабатываются с использованием системы рейтингов ELO и модели Bradley-Terry для предсказания винрейтов. Этот процесс обеспечивает объективные и надежные метрики производительности для различных моделей.
lr = LogisticRegression(fit_intercept=False, penalty=None, tol=1e-8)
lr.fit(X, Y, sample_weight=(df['answer_len_delta'] * 2))
Если включен контроль длины, вес разницы в длине ответа рассчитывается следующим образом:
Расчет дельты длины ответов:
answers_length_deltas = (answers_lengths.loc[BASELINE_MODEL_NAME] - answers_lengths.loc[row["model"]])
answer_length_delta = (answers_lengths.loc[BASELINE_MODEL_NAME][row["question_id"]] -
answers_lengths.loc[row["model"]][row["question_id"]])
Нормализованный вес разницы в длине ответа:
normalized_answer_delta_weight = _logistic(answer_length_delta / answers_length_deltas.std())
Если контроль длины не включен, нормализованный вес разницы в длине ответа устанавливается равным 0.5:
normalized_answer_delta_weight = 0.5
Для включения контроля длины ответов можно использовать параметр --length-control при запуске скрипта show_result.py. Это позволит учитывать разницу в длине ответов моделей относительно базовой модели, применяя штрафы за ответы, которые значительно длиннее, что снижает их вес в общей оценке.
При включенном контроле длины, вес разницы в длине ответа рассчитывается как:
[ \text{normalized_answer_delta_weight} = \text{logistic}\left(\frac{\text{answer_length_delta}}{\text{answers_length_deltas.std()}}\right) ]
При отключенном контроле длины:
[ \text{normalized_answer_delta_weight} = 0.5 ]
Эти веса используются в модели логистической регрессии для оценки и сравнения ответов моделей, что позволяет более объективно учитывать разницу в их длине.
3 commits
1 commits