HUOXIU

Qwen2 大規模言語モデル: PAI-QuickStart における微調整、評価、展開の実践

Qwen2は、アリババクラウドが最近リリースしたオープンソースの大規模言語モデルシリーズです。2月にリリースされたQwen1.5と比較して、Qwen2は全体的なパフォーマンスにおいて世代を超えた飛躍を遂げ、コード、数学、推論、命令コンプライアンス、多言語理解の能力が大幅に向上しています。Qwen2シリーズには、Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B、Qwen2-72Bの5つのサイズの事前学習済みおよび命令微調整済みモデルが含まれています。Qwen2-57B-A14Bはハイブリッドエキスパートモデル(MoE)です。すべてのQwen2モデルはGQA(Grouped Query Attention)を採用しており、ユーザーは推論の高速化やメモリ使用量の削減など、GQAの利点を体験できます。アリババクラウドのAIプラットフォームであるPAIは、機械学習とディープラーニングのワンストッププラットフォームであり、Qwen2モデルシリーズに包括的な技術サポートを提供しています。開発者と企業顧客の両方が、PAI-QuickStart を通じて Qwen2 シリーズ モデルを簡単に微調整、評価し、迅速に展開できます。

PAI-クイックスタート入門

PAI-QuickStartは、Alibaba CloudのAIプラットフォームPAIの製品コンポーネントです。国内外のAIオープンソースコミュニティから提供された高品質な事前学習済みモデルを統合し、大規模言語モデル、テキスト画像生成、音声認識など、様々な分野をカバーしています。PAIがこれらのモデルに対応することで、ユーザーはゼロコードとSDKだけで、学習からデプロイ、推論までの全プロセスを完了できます。これにより、モデル開発プロセスが大幅に簡素化され、開発者や企業ユーザーに、より迅速、効率的、そして便利なAI開発とアプリケーション体験を提供します。

動作環境要件

  • この例では現在、北京、上海、深セン、杭州、ウランチャブを含む Alibaba Cloud の複数のリージョンで PAI-QuickStart 製品の実行をサポートしています。

  • リソース構成の要件:

  • Qwen2-0.5B/1.5B/7B スケール モデル: トレーニング タスクを実行するには、少なくとも V100/P100/T4 (16 GB ビデオ メモリ) 以上のカード タイプを使用します。

  • Qwen1.5-72B スケール モデル: トレーニング タスクを実行するための最小要件は、A100 (80 GB ビデオ メモリ) 以上のカードです。

PAI-QuickStart経由でモデルを使用する

開発者は、PAIコンソールの「クイックスタート」セクションでQwen2シリーズのモデルを見つけることができます。Qwen2-7B-Instructを例にとると、モデルカードは以下の画像に示されています。

モデルのデプロイメントと呼び出し

PAIのQwen2-7B-Instructは、事前設定されたモデルのデプロイメント情報を提供します。ユーザーは、推論サービスの名前とデプロイメントに使用するリソース情報を提供するだけで、モデルをPAI-EAS推論サービスプラットフォームにデプロイできます。現在のモデルでは、パブリックリソースグループを使用したデプロイメントが必要です。

デプロイされた推論サービスは、次の例に示すように、ChatLLM WebUI を使用したリアルタイムの対話をサポートします。

次の Python SDK の例に示すように、推論サービスは OpenAI API と互換性のある方法で呼び出すことができます。

モデルの微調整トレーニング

PAIはQwen2-7B-Instructモデルの微調整アルゴリズムを提供しており、ユーザーはすぐに微調整を行うことができます。トレーニングアルゴリズムはJSON形式の入力をサポートしており、各データエントリは「instruction」フィールドと「output」フィールドで表される質問と回答で構成されています。例:

 [
{
指示:あなたは心臓専門医です。患者さんの質問「5~6年間高血圧を患っており、毎日薬を飲むのに疲れています。高血圧を治す方法はありますか?」に基づいてアドバイスをお願いします。高血圧の治療法は何ですか?
"output": "高血圧の患者は、血圧を下げるのに役立つ新鮮な果物や野菜、セロリやヤムイモなどの食品を多く摂取できます。さらに、高血圧の患者は減塩、低脂肪、低コレステロールの食事に気を配り、適度な運動を行う必要があります。高血圧の患者は、血圧への悪影響を防ぐため、医師の指導の下で降圧薬を服用し、医師に相談せずに服用を中止してはいけません。"
},
{
指示:あなたは呼吸器内科医です。患者さんの質問「白い痰が出る風邪をどう治せばいいですか?」に基づいてアドバイスをお願いします。
出力:「風寒型の風邪で白い痰が出る患者の主な症状は、大量の白い痰に加え、胸の圧迫感、鼻づまり、鼻水、体の痛み、倦怠感です。臨床的には、星蘇散と二陳丸が治療によく用いられます。投薬中は、辛いものや刺激の強いもの、冷たいものを避け、消化しやすい栄養価の高いものを摂取してください。軽めの食事が推奨され、十分な休息が不可欠です。」
}
]

データの準備が完了したら、ユーザーはOSS Bucketオブジェクトストレージにデータをアップロードできます。このアルゴリズムにはV100/P00/T4(16GB VRAM)のGPUリソ​​ースが必要ですので、選択したリソースクォータ内で十分なコンピューティングリソースがあることを確認してください。

トレーニングアルゴリズムでサポートされているハイパーパラメータは以下の通りです。ユーザーは、使用するデータや計算リソースなどに応じてハイパーパラメータを調整することも、アルゴリズムのデフォルトのハイパーパラメータを使用することもできます。

「トレーニング」ボタンをクリックすると、PAI-QuickStartによるトレーニングが開始されます。ユーザーはトレーニングタスクのステータスとトレーニングログを確認できます。

モデルをPAI-EASにデプロイするには、同じページのモデルデプロイカードでリソースグループを選択し、「デプロイ」ボタンをクリックしてワンクリックでデプロイします。モデルは、前述のモデルを直接デプロイする場合と同じように呼び出されます。微調整されたモデルのパフォーマンスを評価するには、タスクページの右上にある評価ボタンから評価ページにアクセスしてください。詳細については、次のセクション「モデル評価」をご覧ください。

モデル評価

PAIはQwen2-7B-Instructモデルの評価アルゴリズムを提供しており、ユーザーはQwen2-7B-Instructモデルとファインチューニングされたモデルの両方をすぐに評価できます。この評価により、ユーザーは他のモデルとのパフォーマンスを比較し、正確なモデル選択と最適化を行うことができます。モデル評価の入力:

「クイック スタート」ページから Qwen2-7B-Instruct オープン ソース モデルの評価を完了します。

トレーニングタスクの詳細ページから微調整後のモデルを評価する

モデル評価では、カスタム データセットの評価とパブリック データセットの評価の両方がサポートされます。

  • カスタムデータセットの評価

カスタムデータセットの評価では、標準的なNLPテキストマッチング手法を用いて、モデルの出力と実際の結果の一致度を計算します。値が高いほど、モデルの精度が高いと判断されます。この評価手法を用いることで、特定のシナリオから得られた固有のデータに基づき、選択したモデルがシナリオに適しているかどうかを評価できます。評価には、JSONL形式の評価データセットファイルが必要です。各データエントリでは、質問を識別するためのquestion列と、回答を識別するためのanswer列が使用されます。例:

 [{"question": "中国が製紙を発明したというのは本当ですか?", "answer": "はい"}]
[{"question": "中国は火薬を発明しましたか?", "answer": "はい"}]

フォーマット要件を満たす評価セットをOSSにアップロードし、カスタムデータセットを作成できます。詳細については、「OSSファイルのアップロード」および「データセットの作成と管理」をご覧ください。次に、評価結果の出力パスを選択し、システムの推奨事項に従って適切なコンピューティングリソースを選択します。最後に、評価タスクを送信します。タスクが完了するまで待ち、タスクページで評価結果(ROUGEおよびBLEUシリーズのメトリクスにおけるモデルスコア)を確認します。

  • 公開データセットの評価

公開データセットの評価では、オープンソースの評価データセットをドメイン別に分類し、大規模モデルの数学的能力、知識能力、推論能力などの能力を総合的に評価します。数値が高いほど、モデルが優れていることを示します。現在、PAIはMMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、TruthfulQAのデータセットを保有しており、その他の公開データセットも徐々に追加されています。データの準備は不要で、PAIが提供する公開データセット、評価結果の出力パス、コンピューティングリソースを選択するだけで評価タスクを送信できます。タスク完了後、タスクページで評価結果(各公開データセットにおけるモデルのスコア。各公開データセットの評価範囲の詳細については、公式データセットの説明を参照してください)を確認できます。

Python SDKの使用

PAIはPython SDKを提供しており、開発者はPAI内でPythonを使用してモデルを簡単に開発・デプロイできます。PAI Python SDKを通じて、開発者はPAI Quick Startが提供するモデルを簡単に呼び出し、トレーニングの微調整とデプロイを完了できます。推論サービスをデプロイするためのサンプルコードは次のとおりです。

 pai.modelからRegisteredModelをインポート
openaiからOpenAIをインポートする
# PAIが提供するモデルを取得する model = RegisteredModel(
モデル名="qwen2-7b-instruct",
モデルプロバイダー="pai"
)
# モデルを直接デプロイする predictor = model.deploy(
サービス="qwen2_7b_instruct_example"
)
# OpenAIクライアントをビルドするために使用するOPENAI_BASE_URLは次のとおりです: <ServiceEndpoint> + "/v1/
openai_client: OpenAI = 予測子.openai()
# OpenAI SDK経由で推論サービスを呼び出す resp = openai_client.chat.completions.create(
メッセージ=[
{"role": "system", "content": "あなたは役に立つアシスタントです。"},
{"role": "user", "content": "人生の意味とは何でしょうか?"},
],
# デフォルトのモデル名は「default」です
モデル="デフォルト"
)
print(resp.choices[0].message.content)
# テストが完了したら、推論サービスpredictor.delete_service()を削除します。

以下は、トレーニングを微調整するためのサンプル コードです。

 # モデルの微調整トレーニングアルゴリズムを取得する est = model.get_estimator()
# PAI が提供する公開読み取りデータと事前トレーニング済みモデルを取得します。 training_inputs = model.get_estimator_inputs()
# ユーザー定義データの使用 # training_inputs.update(
# {
# "train": "<OSSまたはローカルパス上のトレーニングデータセットのパス>",
# "validation": "<検証データセットのOSSまたはローカルパス>"
# }
# )
# デフォルトのデータを使用してトレーニングタスクを送信します est.fit(
入力=トレーニング入力
)
# トレーニング済みモデルのOSSパスを表示します: print(est.model_data())

クイック スタート モデル カードの詳細ページで、ユーザーは「DSW で開く」エントリを介して完全なノートブックの例にアクセスし、PAI Python SDK でそれを使用する方法の詳細を学ぶことができます。

結論は

Qwen2のリリースは、Alibaba Cloudのオープンソース大規模言語モデル分野における最新の進歩を示すものです。このシリーズでは、様々な規模のオープンソースモデルを紹介し、多様な下流アプリケーションシナリオに幅広く適用可能です。開発者はPAI-QuickStartを使用して、Qwen2モデルを容易にカスタマイズおよび展開できます。さらに、PAI-QuickStartには、複数の専門分野をカバーする高度なモデルシリーズも収録されており、開発者はこれらの豊富なリソースを体験し、活用することができます。

関連リソースリンク:

  • Qwen2 紹介:

https://qwenlm.github.io/zh/blog/qwen2/

  • PAI クイックスタート:

https://help.aliyun.com/zh/pai/ユーザーガイド/クイックスタートオーバービュー

  • PAI Python SDK Github:

https://github.com/aliyun/pai-python-sdk