Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

GPT-4 を用いて、言語モデルの応答を自動評価するスクリプト

License

NotificationsYou must be signed in to change notification settings

Northern-System-Service/gpt4-autoeval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPT-4 などの LLM を用いて、言語モデルの応答を自動評価するスクリプトである。

対応する言語モデル

評価者のLLMとして、下記のモデルを選択できる。モデル名はJUDGE 環境変数で指定する。

  • openai/gpt-4: OpenAI GPT-4 Turbo API
  • openai/gpt-4o: OpenAI GPT-4o API
  • cohere/command-r-plus: Cohere Command-R+ API

使用方法

LLM によるテキスト生成

notebooks ディレクトリ配下にあるノートブックを実行することで、評価対象のLLMに ELYZA-tasks-100 データセットの各質問に対する回答が生成できる。ノートブックは、Google Colaboratory などで実行可能。

生成されたテキストはpreds.jsonl という名前の JSONL ファイルに書き出される。このファイルをダウンロードする。

ELYZA データセットのダウンロード

HuggingFace🤗 から ELYZA-tasks-100 データセットをダウンロードする。

$docker compose build$docker compose run gpt4eval python /opt/gpt4eval/download_elyza.py

ファイルはassets/elyza_tasks_100/dataset.jsonl に保存される。

評価の準備

下記のように、assets/<DATASET_NAME> にデータセット・LLMの応答を JSONL 形式で配置する。(フォーマットの詳細はassets/test を参照)

dataset.jsonlassets/elyza_tasks_100 からハードリンク(またはコピー)する。

assets/<DATASET_NAME>/ - dataset.jsonl - preds.jsonl

評価: GPT-4 を使う場合

OpenAI API キーを発行し (link)、secrets/OPENAI_API_KEY に置く (行末は改行しない)。

$cat secrets/OPENAI_API_KEYmy-OPeNAiKeY...

評価方法は、下記の2通りから選択できる。

  • sequential モード(デフォルト): LLMの応答を1つずつ OpenAI API に送信し、評価する。評価結果は、標準出力に順次表示される。
  • batch モード: OpenAI API のバッチ推論機能 を使用する。結果は 24 時間以内に返却される。API利用料が割安。

sequential モード

$DATASET_NAME=<DATASET_NAME> JUDGE=openai/gpt-4o docker compose up --build

評価結果は JSONL 形式でassets/<DATASET_NAME>/result.jsonl に保存される。

batch モード

バッチ推論ジョブを作成する。

$DATASET_NAME=<DATASET_NAME> PROCESS_MODE=batch BATCH_TASK=submit \  JUDGE=openai/gpt-4o \        docker compose up --build

ジョブIDがassets/<DATASET_NAME>/batch_id.txt に保存される。

ジョブの結果を取得する。

$DATASET_NAME=<DATASET_NAME> PROCESS_MODE=batch BATCH_TASK=retrieve \        docker compose up --build

ジョブが未完了の場合は、その旨が表示される。

ジョブが完了した場合、評価結果は JSONL 形式でassets/<DATASET_NAME>/result.jsonl に保存される。

評価: Cohere API を使う場合

Cohere API キーを発行し (link)、secrets/COHERE_API_KEY に置く (行末は改行しない)。

$cat secrets/COHERE_API_KEYmyCohereKey...

その後、下記コマンドを実行する。

$DATASET_NAME=<DATASET_NAME> JUDGE=cohere/command-r-plus docker compose up --build

評価結果は JSONL 形式でassets/<DATASET_NAME>/result.jsonl に保存される。

結果の一覧表示

Google スプレッドシートで結果を一覧表示する場合(表示例)は、<DATASET_NAME>/{preds,results}.jsonl を Google Drive にコピーし、tools/copy_jsonl_to_google_spreadsheet.js を Google Apps Script として実行する。

環境変数一覧

変数名とりうる値デフォルト値説明
DATASET_NAME--データセット名。assets/<DATASET_NAME> にデータセットを配置する
PROCESS_MODEsequential,batchsequential評価モード。batch は OpenAI API のみ対応
JUDGEopenai/gpt-4,openai/gpt-4o,cohere/command-r-plusopenai/gpt-4評価者のLLM
BATCH_TASKsubmit,retrievesubmitバッチ推論のタスク。PROCESS_MODE=batch 以外のときは無視される

動作環境

  • Linux (kernel 5.15.133.1)
  • Docker Compose v2.21.0

クレジット

  • ELYZA-tasks-100: ELYZA (CC BY-SA 4.0),link

以上

About

GPT-4 を用いて、言語モデルの応答を自動評価するスクリプト

Resources

License

Stars

Watchers

Forks

Languages


[8]ページ先頭

©2009-2025 Movatter.jp