すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:クイックスタート:LLM のためのデータ拡張とモデル蒸留ソリューション

最終更新日:Jan 29, 2026

大規模言語モデル (LLM) のトレーニングと推論プロセスは、高いエネルギー消費と長い応答時間を伴います。これらの課題は、リソースに制約のある環境での LLM のデプロイメントを制限します。これらの課題に対処するため、Platform for AI (PAI) はモデル蒸留機能を提供します。この機能は、LLM からより小規模なモデルに知識を転送し、パフォーマンスの大部分を維持しながら、モデルサイズと計算リソース要件を大幅に削減します。これにより、より広範な実世界のアプリケーションシナリオでのデプロイメントが可能になります。このトピックでは、Qwen2 LLM を例として、LLM のためのデータ拡張とモデル蒸留ソリューションの完全な開発ワークフローについて説明します。

ワークフロー

このソリューションの開発ワークフローは次のとおりです:

  1. 命令データの準備

    データ形式の要件とデータ準備戦略に基づいて、トレーニングデータセットを準備します。

  2. (オプション) 命令拡張モデルを使用した命令の拡張

    PAI-Model Gallery では、事前構築済みの命令拡張モデル Qwen2-1.5B-Instruct-Exp または Qwen2-7B-Instruct-Exp を使用して、準備したデータセットのセマンティクスに基づいて、より多くの命令を自動的に生成できます。命令拡張は、LLM の蒸留トレーニングの汎化能力を向上させるのに役立ちます。

  3. (オプション) 命令最適化モデルを使用した命令の最適化

    PAI-Model Gallery では、事前構築済みの命令最適化モデル Qwen2-1.5B-Instruct-Refine または Qwen2-7B-Instruct-Refine を使用して、準備したデータセット内の命令 (および拡張された命令) を最適化および洗練させることができます。命令の最適化は、LLM の言語生成能力を向上させるのに役立ちます。

  4. 教師 LLM をデプロイして対応する応答を生成

    PAI-Model Gallery では、事前構築済みの教師 LLM Qwen2-72B-Instruct を使用して、トレーニングデータセット内の命令に対する応答を生成できます。このプロセスにより、教師 LLM から知識が蒸留されます。

  5. より小規模な生徒モデルの蒸留とトレーニング

    PAI-Model Gallery では、生成された命令と応答のデータセットを使用して、実世界のアプリケーションシナリオで使用するためのより小規模な生徒モデルを蒸留し、トレーニングできます。

前提条件

開始する前に、次の準備を完了してください:

  • PAI の Deep Learning Containers (DLC) と EAS が従量課金で有効化され、デフォルトのワークスペースが作成されていること。詳細については、「PAI を有効化し、デフォルトのワークスペースを作成する」をご参照ください。

  • トレーニングデータとモデルトレーニングで得られたモデルファイルを保存するために、Object Storage Service (OSS) バケットが作成されていること。バケットの作成方法については、「クイックスタート」をご参照ください。

命令データの準備

命令データの準備方法については、「データ準備戦略」および「データ形式の要件」をご参照ください。

データ準備戦略

モデル蒸留の効果と安定性を向上させるために、次の戦略に基づいてデータを準備してください:

  • 少なくとも数百のデータエントリを準備します。データセットが大きいほど、モデルの効果が向上します。

  • シードデータセットの分布は、できるだけ広く、バランスが取れている必要があります。たとえば、タスクシナリオは多様であるべきで、データの入力と出力の長さは短いシナリオと長いシナリオの両方をカバーする必要があります。データに中国語や英語など複数の言語が含まれている場合は、言語の分布が比較的バランスが取れていることを確認してください。

  • 異常なデータは削除します。少量の異常なデータでも、ファインチューニングの結果に大きな影響を与える可能性があります。ルールベースのメソッドを使用してデータをクリーンアップし、データセットから異常なエントリをフィルターで除外します。

データ形式の要件

トレーニングデータセットは、入力命令の `instruction` フィールドを含む JSON ファイルである必要があります。次のコードは、命令データの例を示しています:

[
    {
        "instruction": "2008年の金融危機時に、金融市場を安定させるために政府が講じた主な措置は何でしたか?"
    },
    {
        "instruction": "気候変動が増加する中で、持続可能な開発を促進するために政府が講じた重要な行動は何ですか?"
    },
    {
        "instruction": "2001年のITバブル崩壊時に、経済回復を支援するために政府が講じた主な措置は何でしたか?"
    }
]

(オプション) 命令拡張モデルを使用した命令の拡張

命令拡張は、ユーザーが提供した命令データセットを自動的に拡張するための、LLM の一般的なプロンプトエンジニアリング技術です。

  • たとえば、次の入力を提供した場合:

    魚香肉絲 (ユーシャンロースー) の作り方は?
    GRE 試験の準備方法は?
    友人に誤解されたらどうすればいい?
  • モデルの出力は次のようになります:

    麻婆豆腐の作り方を教えてください。
    TOEFL (Test of English as a Foreign Language) 試験の準備方法について詳細なガイドを提供してください。
    仕事で挫折した場合、どのように考え方を調整しますか?

命令の多様性は LLM の汎化能力に直接影響するため、命令拡張は最終的な生徒モデルのパフォーマンスを効果的に向上させることができます。Qwen2 ベースモデルに基づいて、PAI は 2 つの自己開発の命令拡張モデル、Qwen2-1.5B-Instruct-Exp と Qwen2-7B-Instruct-Exp を提供しています。PAI-Model Gallery でワンクリックでモデルサービスをデプロイできます。次のステップに従ってください:

モデルサービスのデプロイ

次の手順に従って、命令拡張モデルを EAS オンラインサービスとしてデプロイします:

  1. Model Gallery ページに移動します。

    1. PAI コンソールにログインします。

    2. 左上隅でリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。対象のワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、[QuickStart] > [Model Gallery] を選択します。

  2. Model Gallery ページで、右側のモデルリストから Qwen2-1.5B-Instruct-Exp または Qwen2-7B-Instruct-Exp を検索し、対応するカードの [デプロイ] をクリックします。

  3. [デプロイ] 設定パネルでは、[モデルサービス情報][リソースデプロイ情報] がデフォルトで設定されています。必要に応じてパラメーターを変更できます。パラメーターの設定が完了したら、[デプロイ] ボタンをクリックします。

  4. [課金通知] ダイアログボックスで、[OK] をクリックします。

    [デプロイタスク] ページに自動的にリダイレクトされます。[ステータス][実行中] になると、デプロイメントは成功です。

モデルサービスの呼び出し

モデルサービスがデプロイされた後、API を使用してモデル推論を行うことができます。詳細については、「大規模言語モデルのデプロイ」をご参照ください。次の例は、クライアントからモデルサービスリクエストを送信する方法を示しています:

  1. サービスエンドポイントとトークンを取得します。

    1. [サービス詳細] ページで、[基本情報] エリアの [エンドポイント情報を表示] をクリックします。image

    2. [エンドポイント情報] ダイアログボックスで、サービスエンドポイントとトークンをコピーします。

  2. ターミナルで、次の Python スクリプトを作成して実行し、サービスを呼び出します。

    import argparse
    import json
    import requests
    from typing import List
    
    def post_http_request(prompt: str,
                          system_prompt: str,
                          host: str,
                          authorization: str,
                          max_new_tokens: int,
                          temperature: float,
                          top_k: int,
                          top_p: float) -> requests.Response:
        headers = {
            "User-Agent": "Test Client",
            "Authorization": f"{authorization}"
        }
        pload = {
            "prompt": prompt,
            "system_prompt": system_prompt,
            "top_k": top_k,
            "top_p": top_p,
            "temperature": temperature,
            "max_new_tokens": max_new_tokens,
            "do_sample": True,
            "eos_token_id": 151645
        }
        response = requests.post(host, headers=headers, json=pload)
        return response
    
    def get_response(response: requests.Response) -> List[str]:
        data = json.loads(response.content)
        output = data["response"]
        return output
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--top-k", type=int, default=50)
        parser.add_argument("--top-p", type=float, default=0.95)
        parser.add_argument("--max-new-tokens", type=int, default=2048)
        parser.add_argument("--temperature", type=float, default=1)
        parser.add_argument("--prompt", type=str, default="Sing me a song.")
    
        args = parser.parse_args()
        prompt = args.prompt
        top_k = args.top_k
        top_p = args.top_p
        temperature = args.temperature
        max_new_tokens = args.max_new_tokens
    
        host = "EAS HOST"
        authorization = "EAS TOKEN"
    
        print(f" --- input: {prompt}\n", flush=True)
        system_prompt = "I want you to act as an instruction creator. Your goal is to draw inspiration from the [given instruction] to create a brand new instruction."
        response = post_http_request(
            prompt, system_prompt,
            host, authorization,
            max_new_tokens, temperature, top_k, top_p)
        output = get_response(response)
        print(f" --- output: {output}\n", flush=True)

    各項目の意味は次のとおりです:

    • host:取得したサービスエンドポイント。

    • authorization:取得したサービストークン。

命令のバッチ拡張

EAS オンラインサービスを使用してバッチ呼び出しを行い、命令を拡張できます。次のコードは、カスタム JSON データセットを読み取り、モデルインターフェイスをバッチで呼び出して命令拡張を行う方法を示しています。ターミナルで、次の Python スクリプトを作成して実行し、モデルサービスをバッチで呼び出します。

import requests
import json
import random
from tqdm import tqdm
from typing import List

input_file_path = "input.json"  # 入力ファイル名。
with open(input_file_path) as fp:
    data = json.load(fp)

total_size = 10  # 拡張後の期待されるデータエントリの総数。
pbar = tqdm(total=total_size)

while len(data) < total_size:
    prompt = random.sample(data, 1)[0]["instruction"]
    system_prompt = "I want you to act as an instruction creator. Your goal is to draw inspiration from the [given instruction] to create a brand new instruction."
    top_k = 50
    top_p = 0.95
    temperature = 1
    max_new_tokens = 2048

    host = "EAS HOST"
    authorization = "EAS TOKEN"

    response = post_http_request(
        prompt, system_prompt,
        host, authorization,
        max_new_tokens, temperature, top_k, top_p)
    output = get_response(response)
    temp = {
        "instruction": output
    }
    data.append(temp)
    pbar.update(1)
pbar.close()

output_file_path = "output.json" # 出力ファイル名。
with open(output_file_path, 'w') as f:
    json.dump(data, f, ensure_ascii=False)

ここで:

  • host:取得したサービスエンドポイント。

  • authorization:取得したサービストークン。

  • file_path:データセットファイルのローカルパス。

  • post_http_request および get_response 関数の定義は、「モデルサービスの呼び出し」の Python スクリプト内の対応する定義と同じです。

または、PAI-Designer の LLM-Instruction Augmentation (DLC) コンポーネントを使用して、コードを記述せずにこの機能を実行することもできます。詳細については、「カスタムパイプライン」をご参照ください。image

(オプション) 命令最適化モデルを使用した命令の最適化

命令最適化は、LLM のもう 1 つの一般的なプロンプトエンジニアリング技術です。これは、ユーザーが提供した命令データセットを自動的に最適化して、より詳細な命令を生成するために使用され、LLM がより詳細な応答を提供できるようにします。

  • たとえば、命令最適化モデルに次の入力を提供した場合:

    魚香肉絲 (ユーシャンロースー) の作り方は?
    GRE 試験の準備方法は?
    友人に誤解されたらどうすればいい?
  • モデルの出力は次のようになります:

    中国四川風の魚香肉絲の詳細なレシピを提供してください。レシピには、野菜、豚肉、スパイスなどの具体的な材料のリストと、詳細な調理手順が含まれています。可能であれば、この料理と相性の良い副菜や他のメインコースを推奨してください。
    GRE テストの登録、必要な資料、テスト準備戦略、推奨される復習資料を含む詳細なガイドを提供してください。可能であれば、試験の準備に役立つ効果的な練習問題や模擬試験をいくつか推奨してください。
    友人に誤解されたときに、冷静かつ合理的になり、問題を解決するために効果的にコミュニケーションする方法を教える詳細なガイドを提供してください。自分の考えや感情を表現する方法、誤解を悪化させないようにする方法など、実践的な提案をいくつか提供し、よりよく理解し実践できるように、具体的な対話シナリオや状況を提供してください。

命令の詳細度は LLM の出力に直接影響するため、命令の最適化は最終的な生徒モデルのパフォーマンスを効果的に向上させることができます。Qwen2 ベースモデルに基づいて、PAI は 2 つの命令最適化モデル、Qwen2-1.5B-Instruct-Refine と Qwen2-7B-Instruct-Refine を提供しています。PAI-Model Gallery でワンクリックでモデルサービスをデプロイできます。次のステップに従ってください:

モデルサービスのデプロイ

  1. Model Gallery ページに移動します。

    1. PAI コンソールにログインします。

    2. 左上隅でリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。対象のワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、[QuickStart] > [Model Gallery] を選択します。

  2. Model Gallery ページで、Qwen2-1.5B-Instruct-Refine または Qwen2-7B-Instruct-Refine を検索し、対応するモデルカードの [デプロイ] をクリックします。

  3. [デプロイ] 設定パネルでは、[モデルサービス情報][リソースデプロイ情報] がデフォルトで設定されています。必要に応じてパラメーターを変更できます。パラメーターの設定が完了したら、[デプロイ] ボタンをクリックします。

  4. [課金通知] ダイアログボックスで、[OK] をクリックします。

    [デプロイタスク] ページに自動的にリダイレクトされます。[ステータス][実行中] になると、デプロイメントは成功です。

モデルサービスの呼び出し

モデルサービスがデプロイされた後、API を使用してモデル推論を行うことができます。詳細については、「大規模言語モデルのデプロイ」をご参照ください。次の例は、クライアントからモデルサービスリクエストを送信する方法を示しています:

  1. サービスエンドポイントとトークンを取得します。

    1. [サービス詳細] ページで、[基本情報] エリアの [エンドポイント情報を表示] をクリックします。image

    2. [エンドポイント情報] ダイアログボックスで、サービスエンドポイントとトークンをコピーします。

  2. ターミナルで、次の Python スクリプトを作成して実行し、サービスを呼び出します。

    import argparse
    import json
    import requests
    from typing import List
    
    
    def post_http_request(prompt: str,
                          system_prompt: str,
                          host: str,
                          authorization: str,
                          max_new_tokens: int,
                          temperature: float,
                          top_k: int,
                          top_p: float) -> requests.Response:
        headers = {
            "User-Agent": "Test Client",
            "Authorization": f"{authorization}"
        }
        pload = {
            "prompt": prompt,
            "system_prompt": system_prompt,
            "top_k": top_k,
            "top_p": top_p,
            "temperature": temperature,
            "max_new_tokens": max_new_tokens,
            "do_sample": True,
            "eos_token_id": 151645
        }
        response = requests.post(host, headers=headers, json=pload)
        return response
    
    
    def get_response(response: requests.Response) -> List[str]:
        data = json.loads(response.content)
        output = data["response"]
        return output
    
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--top-k", type=int, default=2)
        parser.add_argument("--top-p", type=float, default=0.95)
        parser.add_argument("--max-new-tokens", type=int, default=256)
        parser.add_argument("--temperature", type=float, default=0.5)
        parser.add_argument("--prompt", type=str, default="Sing me a song.")
    
        args = parser.parse_args()
        prompt = args.prompt
        top_k = args.top_k
        top_p = args.top_p
        temperature = args.temperature
        max_new_tokens = args.max_new_tokens
    
        host = "EAS HOST"
        authorization = "EAS TOKEN"
    
        print(f" --- input: {prompt}\n", flush=True)
        system_prompt = "Optimize this instruction to make it more detailed and specific."
        response = post_http_request(
            prompt, system_prompt,
            host, authorization,
            max_new_tokens, temperature, top_k, top_p)
        output = get_response(response)
        print(f" --- output: {output}\n", flush=True)
    

    各項目の意味は次のとおりです:

    • host:取得したサービスエンドポイント。

    • authorization:取得したサービストークン。

命令のバッチ最適化

前述の EAS オンラインサービスを使用して、バッチで呼び出しを行い、命令を最適化できます。次のコード例は、カスタム JSON データセットを読み取り、モデルインターフェイスをバッチで呼び出して品質を最適化する方法を示しています。ターミナルで、次の Python ファイルを作成して実行し、モデルサービスをバッチで呼び出します。

import requests
import json
import random
from tqdm import tqdm
from typing import List

input_file_path = "input.json"  # 入力ファイル名。

with open(input_file_path) as fp:
    data = json.load(fp)

pbar = tqdm(total=len(data))
new_data = []

for d in data:
    prompt = d["instruction"]
    system_prompt = "Optimize the following instruction."
    top_k = 50
    top_p = 0.95
    temperature = 1
    max_new_tokens = 2048

    host = "EAS HOST"
    authorization = "EAS TOKEN"

    response = post_http_request(
        prompt, system_prompt,
        host, authorization,
        max_new_tokens, temperature, top_k, top_p)
    output = get_response(response)
    temp = {
        "instruction": output
    }
    new_data.append(temp)
    pbar.update(1)
pbar.close()

output_file_path = "output.json"  # 出力ファイル名。
with open(output_file_path, 'w') as f:
    json.dump(new_data, f, ensure_ascii=False)

ここで:

  • host:取得したサービスエンドポイント。

  • authorization:取得したサービストークン。

  • file_path:データセットファイルのローカルパス。

  • post_http_request および get_response 関数の定義は、「モデルサービスの呼び出し」の Python スクリプト内のものと同じです。

PAI-Designer の LLM-Instruction Optimization (DLC) コンポーネントを使用して、コードを記述せずに同じ機能を実行することもできます。詳細については、「カスタムパイプライン」をご参照ください。image

教師 LLM をデプロイして対応する応答を生成

モデルサービスのデプロイ

データセット内の命令を最適化した後、次の手順に従って教師 LLM をデプロイし、対応する応答を生成します。

  1. Model Gallery ページに移動します。

    1. PAI コンソールにログインします。

    2. 左上隅でリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。対象のワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、[QuickStart] > [Model Gallery] を選択します。

  2. Model Gallery ページで、モデルリストから Qwen2-72B-Instruct を検索し、対応するカードの [デプロイ] をクリックします。

  3. [デプロイ] 設定パネルでは、[モデルサービス情報][リソースデプロイ情報] がデフォルトで設定されています。必要に応じてパラメーターを変更できます。パラメーターの設定が完了したら、[デプロイ] ボタンをクリックします。

  4. [課金通知] ダイアログボックスで、[OK] をクリックします。

    [デプロイタスク] ページに自動的にリダイレクトされます。[ステータス][実行中] になると、デプロイメントは成功です。

モデルサービスの呼び出し

モデルサービスがデプロイされた後、API を使用してモデル推論を行うことができます。詳細については、「大規模言語モデルのデプロイ」をご参照ください。次の例は、クライアントからモデルサービスリクエストを送信する方法を示しています:

  1. サービスエンドポイントとトークンを取得します。

    1. [サービス詳細] ページで、[基本情報] エリアの [エンドポイント情報を表示] をクリックします。image

    2. [エンドポイント情報] ダイアログボックスで、サービスエンドポイントとトークンをコピーします。

  2. ターミナルで、次のコードを含む Python ファイルを作成して実行し、サービスを呼び出します。

    import argparse
    import json
    import requests
    from typing import List
    
    
    def post_http_request(prompt: str,
                          system_prompt: str,
                          host: str,
                          authorization: str,
                          max_new_tokens: int,
                          temperature: float,
                          top_k: int,
                          top_p: float) -> requests.Response:
        headers = {
            "User-Agent": "Test Client",
            "Authorization": f"{authorization}"
        }
        pload = {
            "prompt": prompt,
            "system_prompt": system_prompt,
            "top_k": top_k,
            "top_p": top_p,
            "temperature": temperature,
            "max_new_tokens": max_new_tokens,
            "do_sample": True,
        }
        response = requests.post(host, headers=headers, json=pload)
        return response
    
    
    def get_response(response: requests.Response) -> List[str]:
        data = json.loads(response.content)
        output = data["response"]
        return output
    
    
    if __name__ == "__main__":
        parser = argparse.ArgumentParser()
        parser.add_argument("--top-k", type=int, default=50)
        parser.add_argument("--top-p", type=float, default=0.95)
        parser.add_argument("--max-new-tokens", type=int, default=2048)
        parser.add_argument("--temperature", type=float, default=0.5)
        parser.add_argument("--prompt", type=str)
        parser.add_argument("--system_prompt", type=str)
    
        args = parser.parse_args()
        prompt = args.prompt
        system_prompt = args.system_prompt
        top_k = args.top_k
        top_p = args.top_p
        temperature = args.temperature
        max_new_tokens = args.max_new_tokens
    
        host = "EAS HOST"
        authorization = "EAS TOKEN"
    
        print(f" --- input: {prompt}\n", flush=True)
        response = post_http_request(
            prompt, system_prompt,
            host, authorization,
            max_new_tokens, temperature, top_k, top_p)
        output = get_response(response)
        print(f" --- output: {output}\n", flush=True)
    

    ここで、

    • host:取得したサービスエンドポイント。

    • authorization:取得したサービストークン。

教師モデルを使用した命令のバッチラベリング

次のコードは、カスタム JSON データセットを読み取り、教師モデルをバッチで呼び出して命令にラベルを付ける方法を示しています。ターミナルで、次の Python ファイルを作成して実行し、モデルサービスを呼び出します。

import json 
from tqdm import tqdm
import requests
from typing import List

input_file_path = "input.json"  # 入力ファイル名。

with open(input_file_path) as fp:
    data = json.load(fp)

pbar = tqdm(total=len(data))
new_data = []

for d in data:
    system_prompt = "You are a helpful assistant."
    prompt = d["instruction"]
    print(prompt)
    top_k = 50
    top_p = 0.95
    temperature = 0.5
    max_new_tokens = 2048

    host = "EAS HOST"
    authorization = "EAS TOKEN"

    response = post_http_request(
        prompt, system_prompt,
        host, authorization,
        max_new_tokens, temperature, top_k, top_p)
    output = get_response(response)
    temp = {
        "instruction": prompt,
        "output": output
    }
    new_data.append(temp)
    pbar.update(1)
pbar.close()

output_file_path = "output.json" # 出力ファイル名。
with open(output_file_path, 'w') as f:
    json.dump(new_data, f, ensure_ascii=False)

ここで、

  • host:取得したサービスエンドポイント。

  • authorization:取得したサービストークン。

  • file_path:データセットファイルのローカルパス。

  • post_http_request および get_response 関数の定義は、「モデルサービスの呼び出し」のスクリプト内のものと同じです。

より小規模な生徒モデルの蒸留とトレーニング

モデルのトレーニング

教師モデルから応答を取得した後、PAI-Model Gallery でコードを記述せずに生徒モデルをトレーニングできます。これにより、モデル開発プロセスが大幅に簡素化されます。このソリューションでは、Qwen2-7B-Instruct モデルを例として、準備されたトレーニングデータを使用して PAI-Model Gallery でモデルをトレーニングする方法を示します。手順は次のとおりです:

  1. Model Gallery ページに移動します。

    1. PAI コンソールにログインします。

    2. 左上隅でリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[Workspaces] をクリックします。対象のワークスペースの名前をクリックします。

    4. 左側のナビゲーションウィンドウで、[QuickStart] > [Model Gallery] を選択します。

  2. Model Gallery ページで、Qwen2-7B-Instruct モデルカードを検索してクリックし、モデル詳細ページを開きます。

  3. モデル詳細ページで、右上隅の [ファインチューニング] をクリックします。

  4. [ファインチューニング] パネルで、次の主要なパラメーターを設定します。他のパラメーターにはデフォルト値を使用します。

    パラメーター

    説明

    デフォルト値

    データセット設定

    トレーニングデータセット

    ドロップダウンリストから [OSS ファイルまたはディレクトリ] を選択し、次の手順に従ってデータセットファイルが配置されている OSS ストレージパスを選択します:

    1. image をクリックし、作成した OSS バケットを選択します。

    2. [ファイルをアップロード] をクリックし、コンソールの指示に従って、前の手順で取得したデータセットファイルを OSS ディレクトリにアップロードします。

    3. [OK] をクリックします。

    なし

    トレーニング出力設定

    model

    image をクリックし、既存の OSS ディレクトリを選択します。

    なし

    tensorboard

    image をクリックし、既存の OSS ディレクトリを選択します。

    なし

    計算リソース設定

    タスクリソース

    リソース仕様を選択します。システムが自動的に適切な仕様を推奨します。

    なし

    ハイパーパラメーター設定

    learning_rate

    モデルトレーニングの学習率。データの型は浮動小数点数です。

    5e-5

    num_train_epochs

    トレーニングエポック数。データの型は整数です。

    1

    per_device_train_batch_size

    1 回のトレーニング反復における各 GPU カード上のデータ量。データの型は整数です。

    1

    seq_length

    テキストシーケンスの長さ。データの型は整数です。

    128

    lora_dim

    LoRA ディメンション。データの型は整数です。lora_dim > 0 の場合、軽量の LoRA/QLoRA トレーニングが使用されます。

    32

    lora_alpha

    LoRA の重み。データの型は整数です。このパラメーターは、軽量の LoRA/QLoRA トレーニングで lora_dim > 0 の場合に有効になります。

    32

    load_in_4bit

    モデルを 4 ビット量子化でロードするかどうかを指定します。データの型はブール値です。有効値:

    • true

    • false

    lora_dim > 0、load_in_4bit が true、かつ load_in_8bit が false の場合、4 ビット QLoRA 軽量トレーニングが使用されます。

    true

    load_in_8bit

    モデルを 8 ビット量子化でロードするかどうかを指定します。データの型はブール値です。有効値:

    • true

    • false

    lora_dim > 0、load_in_4bit が false、かつ load_in_8bit が true の場合、8 ビット QLoRA 軽量トレーニングが使用されます。

    false

    gradient_accumulation_steps

    勾配累積ステップ数。データの型は整数です。

    8

    apply_chat_template

    アルゴリズムがトレーニングデータとデフォルトのチャットテンプレートを組み合わせてモデルの出力を最適化するかどうかを指定します。データの型はブール値です。有効値:

    • true

    • false

    Qwen2 シリーズモデルの場合、フォーマットは次のとおりです:

    • 質問: <|im_end|>\n<|im_start|>user\n + instruction + <|im_end|>\n

    • 回答: <|im_start|>assistant\n + output + <|im_end|>\n

    true

    system_prompt

    モデルトレーニングに使用されるシステムプロンプト。データの型は文字列です。

    You are a helpful assistant

  5. パラメーターを設定した後、[トレーニング] をクリックします。

  6. [課金通知] ダイアログボックスで、[OK] をクリックします。

    自動的にトレーニングタスクページにリダイレクトされます。

モデルサービスのデプロイ

モデルがトレーニングされた後、次の手順に従って EAS オンラインサービスとしてデプロイできます。

  1. トレーニングタスクページの右側で、[デプロイ] をクリックします。

  2. デプロイ設定パネルでは、[モデルサービス情報][リソースデプロイ情報] がデフォルトで設定されています。必要に応じてこれらの設定を変更できます。パラメーターを設定した後、[デプロイ] ボタンをクリックします。

  3. [課金通知] ダイアログボックスで、[OK] をクリックします。

    システムは自動的に [デプロイタスク] ページに移動します。[ステータス][実行中] に変わると、サービスは正常にデプロイされます。

モデルサービスの呼び出し

モデルサービスをデプロイした後、API を使用してモデル推論を実行できます。詳細については、「大規模言語モデルのデプロイ」をご参照ください。

関連ドキュメント

  • EAS の詳細については、「EAS の概要」をご参照ください。

  • PAI-Model Gallery 機能を使用すると、Llama-3、Qwen1.5、Stable Diffusion V1.5 シリーズのモデルをさまざまなシナリオに合わせて簡単にデプロイおよびファインチューニングできます。詳細については、「Model Gallery のユースケース」をご参照ください。