Skip to main content

W&B Launchを使ってHuggingFace上のLLMを日本語タスクJGLEUで評価

Created on July 5|Last edited on July 5


2023/5/17にサイバーエージェントが最大68億パラメータの日本語LLMを商用利用可能なCC BY-SA 4.0ライセンスでHugging Face上で一般公開し、またrinna株式会社も同日に、36億パラメータの汎用言語モデルと対話言語モデルの2種類の日本語GPT言語モデルをオープンソースで公開するなど、日本語のLLMも活気が出てきています。
日本語のタスクに対する様々なLLMの評価が行われていますが、W&B JapanもLLMの日本語タスク(JGLUE)に対する評価を始めました。下記がそのレポートです。※JGLUEとは、早稲田大学とYahoo! JAPAN研究所が構築・公開した日本語言語理解ベンチマークで、GLUEの日本語版と言えます。

そして、その評価を誰でも自身の計算機で行うことができるような環境を、W&Bの新しい機能Laucnhを使って用意しました!🎉
下記でその流れを解説します。


Launch(ローンチ)とは?

Weights & Biasesが本年3月に発表した新機能「ローンチ」は、事前に定義されたモデル開発ジョブを実行環境とともにコンテナ化し、利用可能な任意の計算リソースで実行するためのジョブキューを提供しています。ジョブキューはDockerが有効になっているローカル環境だけでなく、AWS上のEKSや、GCP上のGKSなどを含むKubernetesクラスターをキューの実行対象として指定することができるため、前述のジョブをボタン一つで並列処理環境に展開することができます。




Launchを使用した日本語評価タスクジョブの実行ステップ

下記のステップで日本語タスクを実行することができます。 
実行に関する詳細は、W&B LaunchのDocを参考にしてください。
💡
Launchを使用したジョブの実行プロセスは 1) Launchの環境構築環境と2) ジョブの実行する大きく2つに分かれます。Launchの環境構築を一度行えば、あとはユーザーが学習や推論をしたい時にジョブをLaunchで実行するだけになります。まずは、Launchの環境構築から見ていきましょう。


Launchの環境構築

Launchの環境構築 Step1: ジョブの構築

今回は、すでにジョブを用意しています!今回の構築されたジョブはW&BのプロジェクトLLM_evaluation_Japan_publicのjobページで見つけることができます。


Launchの環境構築 Step2: キューの作成

ジョブを任意のLaunchエージェントが実行するためのキューを作成します。こちらを参考に、wandb.ai/launchに移動して、右上の画面でキューの作成ボタンをクリックし、新しいランチキューの作成を開始してください。


Configuration: 例えばDockerを使う場合、configurationでdockerの変数を設定することができます。gpusを使用するにあたり"gpus": "all"としないとgpuが認識されないことがあるのでご注意ください。また、データをロードする際にdecoding errorが生じることがあるので、今回は"env": "LANG=ja_JP.UTF-8"も追加しました。
{
"gpus": "all",
 "env": "LANG=ja_JP.UTF-8"
}


Launchの環境構築 Step3: エージェントの起動

Launchエージェントは、1つ以上のLaunchキューをポーリングし、キューから取り出したジョブを実行する長時間実行プロセスです。こちらを参考に、実行したい環境で、wandb launch-agentコマンドを用いてエージェントを開始し、Docker、Kubernetes、SageMakerなど、多数のコンピューティングプラットフォームでジョブを実行できます。Launchの画面から「+Add an agent」を押すと、エージェントを起動するスクリプトを獲得することができます。これで環境構築は完了です!



ジョブの実行

ジョブの実行 Step 1: ジョブのconfig設定

実行をする前に、あなたの実行結果を保存するW&Bのプロジェクトを作成してください。Launchで実行結果を保存するプロジェクトを指定することができます。ここまで準備ができれば、あとはジョブを実行するだけです!
ジョブを実行する際に、下図のoverrides中のrun_configを変更し、評価したいモデルの設定を行なってください。

Overrides内のargsの設定
  • --model_name : ここで指定した名称がRunの名前になります。
Overridesのargsの中の変数を変更しても、実行の内容(modelの種類など)は反映されないのでご注意ください。実行内容の実質的な変更は 次で紹介するrun_configの中で行ってください
💡
Overrides内のrun_configの設定
  • --model_name : HuggingFace上のモデルの名前を指定してください。
  • --prompt_type (alpaca, rinna, pythia, others) : 使用するプロンプトを選択してください。
    • 現状のversionでは alpaca 形式・ rinna 形式・ pythia 形式・ others(instuctionが不要なChatGPTやBardなどの場合)の4つから選択することができます。
    • 下記の基準を参考に選択してください。なお、prompt_type の詳細はこのプロジェクトのジョブ作成に使用したコードを管理しているGithubを参照してください。
      • chainyo/alpaca-lora-7bなどalpaca形式のプロンプトを使用するモデルはを評価する際 : alpaca
      • rinnaが公開しているモデルを評価する際 : rinna
      • OpenAssistant/pythia-12b-sft-v8-7k-stepsなどpythia形式のプロンプトを使用するモデルはを評価する際 : pythia
      • それ以外(instuctionが不要なChatGPTやBardなどの場合) : others
--wandb_project--wandb_entity は、この後設定するプロジェクトの実行先(Destination project)に上書きされてしまうのですが(2023/6/29時点)、jobの一覧の変数として表示されるので、あとでわかりやすくするために、プロジェクトの実行先(Destination project)のprojectとentityに合わせて記載をしてください。
💡

プロジェクトの実行先(Destination project)の指定: 先ほど作成した実行結果を保存するW&Bのプロジェクトを指定して下さい。
上記の設定を行えば準備は完了です!"Launch"を押してエージェントに��ョブを投げてください!



ジョブの実行 Step 2: 結果の確認

計算が完了すると、結果がW&Bにuploadされます。W&BのUI上で結果を確認してください!




注意

Hugging Face上のすべてのモデルの実行を検証しているわけではありませんので、ご容赦ください。もしエラーがあれば、support_jp@wandb.comまで連絡してください。また、まだまだプロンプトも工夫の余地があり、ジョブやコードをupdateする予定がある旨、ご容赦ください。
Iterate on AI agents and models faster. Try Weights & Biases today.