このソリューションでは、大規模言語モデル (LLM) を活用した意図認識を利用しています。広大なデータセットから複雑な言語パターンとユーザー行動を学習することで、より正確な意図認識と、自然でスムーズなユーザーエクスペリエンスを実現します。このガイドでは、Qwen1.5 大規模言語モデルを使用して意図認識ソリューションを開発する方法について説明します。
背景情報
インテント認識
インテント認識により、AI エージェントは自然言語によるユーザーリクエストを理解し、対応するアクションを実行したり、関連情報を提供したりできます。これは、インテリジェントな対話システムの重要なコンポーネントです。現在、大規模言語モデル (LLM) に基づくインテント認識技術は、業界で広く使用されています。
ユースケース
-
スマート音声アシスタントでは、ユーザーは簡単な音声コマンドを通じてアシスタントと対話します。たとえば、ユーザーが「音楽を聴きたい」と言った場合、システムは音楽を再生するというインテントを正確に識別し、対応するアクションを実行する必要があります。
-
インテリジェントなカスタマーサービスシナリオでは、返品、交換、苦情など、多様な顧客からのリクエストを処理し、それらを適切なワークフローへ正確に振り分けることが課題となります。たとえば、eコマースプラットフォームで、ユーザーが「受け取った製品に欠陥があります。返品したいです」と言ったとします。この場合、LLM ベースのインテント認識システムは、ユーザーのインテントを「返品」として迅速に把握し、返品プロセスを自動的にトリガーして、ユーザーをその後のステップへと案内する必要があります。
ワークフロー
-
指定されたデータ形式と準備戦略に従って、特定のビジネスシナリオ向けのトレーニングデータセットを準備できます。または、ビジネスデータを準備し、
iTAGを使用して生データにラベリングをすることも可能です。ラベリングした結果をエクスポートし、モデルトレーニング用にクイックスタートでサポートされている形式に変換します。 -
クイックスタートで、Qwen1.5-1.8B-Chatに基づいてモデルをトレーニングします。モデルトレーニング後、オフライン評価を実行します。 -
評価結果が満足のいくものであれば、
クイックスタートを使用してトレーニング済みモデルをEASオンラインサービスとしてデプロイします。
前提条件
次の項目が完了していることを確認してください:
-
PAI (DLC および EAS) の従量課金を有効化し、デフォルトワークスペースを作成しました。詳細については、「PAI を有効化し、デフォルトワークスペースを作成する」をご参照ください。
-
トレーニングデータとモデルファイルを格納するための OSS バケットが作成されています。詳細については、「コンソールのクイックスタート」をご参照ください。
トレーニングデータの準備
トレーニングデータは、次の 2 つの方法で準備できます:
-
方法 1: データ準備戦略と データフォーマット要件 に基づいて、トレーニングデータセットを自分で作成します。
-
方法 2: PAI-iTAG を使用してデータにラベルを付ける に従って、データ準備戦略に基づいてデータにラベルを付けます。この方法は大規模データのシナリオに適しており、ラベリング効率を大幅に向上させます。
データ準備戦略
モデルトレーニングの効果と安定性を高めるため、データを準備する際は次の戦略に従ってください:
-
単一インテント認識のシナリオでは、各インテントカテゴリに少なくとも 50~100 件のラベル付きサンプルがあることを確認してください。モデルファインチューニングの結果が十分でない場合は、ラベル付きデータの量を増やすことを検討してください。また、インテントカテゴリ間でデータのバランスが取れていることを確認してください。特定のカテゴリだけが他のカテゴリより大幅に多い状態は避けてください。
-
マルチインテントまたは複数ターンの対話のシナリオでは、単一インテントのシナリオより少なくとも 20% 多いラベル付きデータを使用してください。また、マルチインテントまたは複数ターンの対話のシナリオで使用するインテントは、単一インテントデータでも定義しておく必要があります。
-
インテントの説明は、多様な言い回しとシナリオを幅広く網羅する必要があります。
データフォーマット
トレーニングデータは、instruction フィールドと output フィールドを含む JSON ファイルである必要があります。 instruction フィールドには入力の指示が含まれ、output フィールドにはモデルが予測したインテントと、その主要パラメータが含まれます。次の例は、インテント認識のシナリオごとのトレーニングデータを示しています。
-
単一インテント認識のシナリオでは、ビジネス固有のデータを準備し、大規模言語モデル (LLM) をファインチューニングする必要があります。 たとえば、次はスマートホームのシナリオにおける単一ターンの対話のサンプルトレーニングデータです:
[ { "instruction": "I want to listen to music", "output": "play_music()" }, { "instruction": "It's too loud, turn the volume down", "output": "volume_down()" }, { "instruction": "I don't want to listen anymore, turn it off", "output": "music_exit()" }, { "instruction": "I want to travel to Hangzhou, help me check the weather forecast", "output": "weather_search(China (Hangzhou))" }, ] -
マルチインテントまたは複数ターンの対話のシナリオでは、ユーザーのインテントが複数ターンの会話にまたがって表現される場合があります。この場合、複数ターンの対話データを準備し、関連するすべてのターンのユーザー入力にラベルを付けることができます。たとえば、音声アシスタントとの次の複数ターンの対話を考えます:
User: I want to listen to music. Assistant: What type of music? User: Play some *** music for me. Assistant: play_music(***)この複数ターンの対話に対応するトレーニングデータは、次の形式になります:
[ { "instruction": "I want to listen to music. Play some *** music for me.", "output": "play_music(***)" } ]
複数ターンの対話でモデルをトレーニングすると入力長が大幅に増加し、実運用ではこのようなシナリオは一般的ではありません。単一ターンのインテント認識がビジネス要件を満たさない場合にのみ、複数ターンの対話のトレーニングを検討してください。このソリューションでは、単一ターンの対話の例を使用して手順を説明します。
PAI-iTAG を使用したデータのラベリング
または、PAI-iTAG プラットフォームを使用してデータにラベルを付け、必要な形式のトレーニングデータセットを生成します。
-
ラベルを付けるデータを、iTAG に PAI データセットとして登録します。
-
データ準備戦略に従って、マニフェスト形式のデータファイルを準備します。 次に例を示します。
{"data":{"instruction": "I want to listen to music"}} {"data":{"instruction": "It's too loud, turn the volume down"}} {"data":{"instruction": "I don't want to listen anymore, turn it off"}} {"data":{"instruction": "I want to travel to Hangzhou, help me check the weather forecast"}} -
AI Asset Management > Datasets ページに移動し、対象のワークスペースを選択して、[Go to Dataset] をクリックします。
-
Create Dataset をクリックし、次の主要なパラメーターを設定します。他のパラメーターの詳細については、「データセットの作成と管理」をご参照ください。
パラメータ
説明
[Storage Type]
[Alibaba Cloud Object Storage Service (OSS)] を選択します。
[Import Format]
[File] を選択します。
[OSS Path]
既存の OSS ディレクトリを選択し、次の手順に従って準備したマニフェストファイルをアップロードします:
-
アイコンをクリックします。[]Select OSS file ダイアログボックスで、Upload File をクリックします。 -
Browse Local Files または Drag and Drop File to Upload をクリックし、画面の指示に従ってマニフェストファイルをアップロードします。
-
-
-
Data Preparation > iTAG ページに移動し、Go to Management Page をクリックしてから、Template Management タブに切り替えます。
-
Create Template をクリックし、Custom Template > Basic Templates を選択して、Edit をクリックします。パラメーターを設定した後、Save Template Name をクリックします。次の表に、主要な設定を示します。その他の設定の詳細については、「テンプレート管理」をご参照ください。
設定
説明
Basic template canvas area
-
Text を選択し、[Generate Content Card] をクリックします。
-
テキストエリアをクリックします。Import Dataset ダイアログボックスで、既存のデータセットを選択します。次に、右側の [基本テンプレート設定] エリアで、Dataset Field Name > instruction を選択します。
Basic template answering area
Input Field を選択し、Generate Title Card をクリックします。次に、Title を output に変更します。
-
-
左側のナビゲーションペインで、を選択します。Task Management タブで、Create Task をクリックします。[アノテーションタスクの作成] ページで、パラメーターを設定し、Create をクリックします。次の表に、主要なパラメーターを示します。他のパラメーターの詳細については、「ラベリングタスクの作成」をご参照ください。
パラメータ
説明
[Input data set]
前の手順で作成したデータセットを選択します。
説明入力データが、使用しているテンプレートに対応していることを確認してください。
[Template Type]
Custom Template を選択し、ドロップダウンリストから作成したテンプレートを選択します。
-
タスクが作成されたら、データのラベリングを開始します。詳細については、「ラベリングタスクを処理する」をご参照ください。
-
データのラベリングが完了したら、結果を OSS ディレクトリにエクスポートします。詳細については、「ラベル付けされたデータをエクスポートする」をご参照ください。
出力マニフェストファイルは、以下の例のようになります。データ形式の詳細については、「ラベル付きデータ形式の概要」をご参照ください。
{"data":{"instruction":"I want to listen to music","_itag_index":""},"label-1947839552568066048-system":{"fixedFlag":0,"results":[{"MarkResultId":"1947839554911772672","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"play_music()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236185165","MarkTime":"Wed Jul 23 10:03:05 CST 2025","UserMarkResultId":null,"IsNeedVoteJudge":false}],"abandonFlag":0},"label-1947839552568066048":{"results":[{"MarkResultId":"1947839554911772672","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"play_music()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236185165","MarkTime":"Wed Jul 23 10:03:05 CST 2025","UserMarkResultId":"1947839763671740416","IsNeedVoteJudge":false}]},"abandonFlag":0,"abandonRemark":null} {"data":{"instruction":"It's too loud, turn the volume down","_itag_index":""},"label-1947839552568066048-system":{"fixedFlag":0,"results":[{"MarkResultId":"1947839554891464704","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"volume_down()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236198979","MarkTime":"Wed Jul 23 10:03:19 CST 2025","UserMarkResultId":null,"IsNeedVoteJudge":false}],"abandonFlag":0},"label-1947839552568066048":{"results":[{"MarkResultId":"1947839554891464704","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"volume_down()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236198979","MarkTime":"Wed Jul 23 10:03:19 CST 2025","UserMarkResultId":"1947839868520656896","IsNeedVoteJudge":false}]},"abandonFlag":0,"abandonRemark":null} {"data":{"instruction":"I don't want to listen anymore, turn it off","_itag_index":""},"label-1947839552568066048-system":{"fixedFlag":0,"results":[{"MarkResultId":"1947839554992373760","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"music_exit()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236212152","MarkTime":"Wed Jul 23 10:03:32 CST 2025","UserMarkResultId":null,"IsNeedVoteJudge":false}],"abandonFlag":0},"label-1947839552568066048":{"results":[{"MarkResultId":"1947839554992373760","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"music_exit()\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236212152","MarkTime":"Wed Jul 23 10:03:32 CST 2025","UserMarkResultId":"1947839936657285120","IsNeedVoteJudge":false}]},"abandonFlag":0,"abandonRemark":null} {"data":{"instruction":"I want to travel to Hangzhou, help me check the weather forecast","_itag_index":""},"label-1947839552568066048-system":{"fixedFlag":0,"results":[{"MarkResultId":"1947839554971426816","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"weather_search(China (Hangzhou))\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236218730","MarkTime":"Wed Jul 23 10:03:39 CST 2025","UserMarkResultId":null,"IsNeedVoteJudge":false}],"abandonFlag":0},"label-1947839552568066048":{"results":[{"MarkResultId":"1947839554971426816","MarkTitle":"Basic Template","MarkResult":"{\"tabId\":\"CommonExtensions\",\"annotations\":[{\"id\":null,\"labels\":{\"output\":\"weather_search(China (Hangzhou))\"},\"exif\":null}],\"type\":\"CommonExtensions\",\"version\":\"v2\"}","QuestionId":"CommonExtensions","ResultType":"OPEN_GROUP","Progress":null,"Version":"1753236218730","MarkTime":"Wed Jul 23 10:03:39 CST 2025","UserMarkResultId":"1947839975890939904","IsNeedVoteJudge":false}]},"abandonFlag":0,"abandonRemark":null} -
ターミナルで次の Python スクリプトを実行し、ラベル付きデータのマニフェストファイルを、クイックスタートで必要なトレーニングデータフォーマットに変換します。
import json # 入出力ファイルパス input_file_path = 'test_json.manifest' output_file_path = 'train.json' converted_data = [] with open(input_file_path, 'r', encoding='utf-8') as file: for line in file: try: # 各行から JSON データを解析 data = json.loads(line) # instruction を抽出 instruction = data['data']['instruction'] # "label-" で始まるすべてのキーを反復処理 for key in data.keys(): if key.startswith('label-'): # MarkResult を抽出して内容を解析 mark_result_str = data[key]['results'][0]['MarkResult'] mark_result = json.loads(mark_result_str) # MarkResult 文字列を JSON として解析 # annotations から labels["output"] を抽出 output = mark_result['annotations'][0]['labels']['output'] # 新しいデータ構造を作成 converted_data.append({ 'instruction': instruction, 'output': output }) break except Exception as e: print(f"Error processing line: {line.strip()}. Error: {e}") # 変換後データを出力ファイルに書き込み with open(output_file_path, 'w', encoding='utf-8') as outfile: json.dump(converted_data, outfile, ensure_ascii=False, indent=4) print(f"Conversion completed. Output saved to {output_file_path}")
モデルのトレーニングと評価
モデルのトレーニング
クイックスタートは、オープンソースの AI コミュニティから優れた事前学習済みモデルを提供します。これにより、コードを記述することなく、トレーニングからデプロイメント、推論までのモデル開発ワークフロー全体を管理できます。
このガイドでは、Qwen1.5-1.8B-Chat モデルを例に、クイックスタートで訓練データセットを使用してモデルをトレーニングする方法を説明します。手順は次のとおりです。
-
モデルギャラリーページに移動します。
-
PAI コンソールにログインします。
-
左上隅で、リージョンを選択します。
-
左側メニューで、Workspaces を選択し、対象のワークスペースをクリックします。
-
左側メニューで、QuickStart > [Model Gallery] を選択します。
-
-
クイックスタートページで、右側のモデルリストにある [Qwen1.5-1.8B-Chat] モデルカードを見つけてクリックします。
-
モデル詳細ページで、右上の Train をクリックします。Train 設定パネルで、次の主要なパラメーターを設定し、残りはデフォルト値のままにします。
パラメーター
説明
[Training Mode]
-
全パラメータファインチューニング:この方法はリソースを大量に消費し、時間もかかりますが、通常はより良い結果が得られます。
説明パラメーター数が少ないモデルは、全パラメータファインチューニングをサポートしています。特定の要件に基づいてこの方法を選択してください。
-
QLoRA:全パラメータファインチューニングよりも少ないリソースとトレーニング時間で済む軽量ファインチューニング手法ですが、結果は最適ではない場合があります。
-
LoRA:QLoRA と同様に、これは軽量ファインチューニング手法です。
[Dataset configuration]
[Training dataset]
次の手順に従って、訓練データセットを選択してください。
-
ドロップダウンリストから、OSS file or directory を選択してください。
-
参照
アイコンをクリックして、OSS ディレクトリを選択してください。 -
Select OSS File ダイアログボックスで Upload File をクリックし、訓練データセットファイルをドラッグアンドドロップして、OK をクリックしてください。
[Output Configuration]
[Model output path]
トレーニングジョブによって生成された設定ファイルとモデルファイルを格納する OSS ディレクトリを選択してください。
Tensorboard Output Path
[Hyperparameter Configuration]
すべてのハイパーパラメーターの詳細な説明については、「表 1. ハイパーパラメーター」をご参照ください。
ハイパーパラメーターを設定するには、次の戦略を使用してください。さまざまなトレーニング方法で推奨される主要なハイパーパラメーター設定については、「表 2. 推奨されるハイパーパラメーター」をご参照ください。
-
選択したトレーニング方法に基づいてハイパーパラメーターを設定してください。
-
global batch size = Number of GPUs * per_device_train_batch_size * gradient_accumulation_steps-
トレーニングのパフォーマンスを最大化するには、GPU の数と
per_device_train_batch_sizeを増やすことを優先してください。 -
通常、グローバルバッチサイズは 64 から 256 の間の値に設定します。訓練データセットが非常に小さい場合は、より小さい値を使用できます。
-
-
シーケンス長 (
seq_length) は、特定のシナリオに基づいて調整できます。たとえば、データセットの最大シーケンス長が 50 の場合、シーケンス長を 64 (通常は 2 のべき乗) に設定できます。 -
トレーニングの損失の減少が遅すぎる、または収束しない場合は、学習率 (
learning_rate) を上げることを検討してください。また、訓練データの品質も確認してください。
-
-
Fine-tune をクリックし、OK ダイアログボックスで Billing Notification をクリックしてください。
自動的にトレーニングジョブの詳細ページにリダイレクトされます。ジョブが作成されると、そのステータスは [Running] に変わります。ページには、[Creating]、[Preparing Environment]、[Running] といったいくつかの段階を経るジョブの進捗が表示されます。事前学習済みモデル [qwen1.5-1.8b-chat]、トレーニング方法 [SFT supervised fine-tuning: LoRA]、ジョブカテゴリ [Generative AI / large language model] などの基本情報が表示されます。[Task Details]、[Task Log]、[Task Monitoring] タブで、入力パス、出力パス、ハイパーパラメーター設定などの詳細を表示できます。
モデルの評価
トレーニングが完了したら、ターミナルで Python スクリプトを実行して、モデルのパフォーマンスを評価できます。
-
testdata.jsonという名前の評価データファイルを準備してください。以下に例を示します。[ { "instruction": "Who sings the song 'Ten Years'?", "output": "music_query_player(Ten Years)" }, { "instruction": "What's the weather like in Hangzhou today?", "output": "weather_search(Hangzhou)" } ] -
ターミナルで次の Python スクリプトを実行して、モデルをオフラインで評価してください。
#encoding=utf-8 from transformers import AutoModelForCausalLM, AutoTokenizer import json from tqdm import tqdm device = "cuda" # モデルをロードするデバイス # モデルパスを変更してください model_name = '/path/to/your/finetuned_model/' print(model_name) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) count = 0 ecount = 0 # 評価データパスを変更してください test_data = json.load(open('/mnt/workspace/data/testdata.json')) system_prompt = 'You are an expert in intent recognition. You can identify the user\'s intent from their question and return the corresponding function calling and parameters.' for i in tqdm(test_data[:]): prompt = '<|im_start|>system\n' + system_prompt + '<|im_end|>\n<|im_start|>user\n' + i['instruction'] + '<|im_end|>\n<|im_start|>assistant\n' gold = i['output'] gold = gold.split(';')[0] if ';' in gold else gold model_inputs = tokenizer([prompt], return_tensors="pt").to(device) generated_ids = model.generate( model_inputs.input_ids, max_new_tokens=64, pad_token_id=tokenizer.eos_token_id, eos_token_id=tokenizer.eos_token_id, do_sample=False ) generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] pred = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] if gold.split('(')[0] == pred.split('(')[0]: count += 1 gold_list = set(gold.strip()[:-1].split('(')[1].split(',')) pred_list = set(pred.strip()[:-1].split('(')[1].split(',')) if gold_list == pred_list: ecount += 1 else: pass print("インテント認識精度:", count/len(test_data)) print("パラメーター認識精度:", ecount/len(test_data))説明コードの実行時に
Using low_cpu_mem_usage=True or a device_map requires Accelerate: pip install accelerateというメッセージが返された場合は、pip install accelerateを実行して必要な依存関係をインストールしてください。
モデルサービスのデプロイと呼び出し
モデルサービスのデプロイ
モデルの評価結果が期待を満たす場合は、モデルを EAS オンラインサービスとしてデプロイできます。
-
Task details ページで、右上の Deploy をクリックします。 システムが基本情報とリソース情報を事前入力します。 Deployment Method で [vLLM 高速化デプロイ] を選択します。 これらの設定は必要に応じて変更できます。 パラメーターを設定した後、Deploy をクリックします。
-
Billing Notification ダイアログボックスで、OK をクリックします。
デプロイタスクページに自動的にリダイレクトされます。 Status が Running に変わると、デプロイは成功です。
モデルサービスの呼び出し
次の例は、クライアントから API を呼び出す方法を示しています:
-
エンドポイントとトークンを取得します。
-
Service details ページの Basic Information セクションで、View Endpoint Information をクリックします。
-
Invocation Information ダイアログボックスで、エンドポイントとトークンを見つけて、ローカルに保存します。
-
-
以下は、vLLM 高速化デプロイ のコード例です。 ターミナルでこのコードを実行して、サービスを呼び出します。
from openai import OpenAI ##### API 設定 ##### openai_api_key = "<YOUR_EAS_SERVICE_TOKEN>" openai_api_base = "<YOUR_EAS_SERVICE_ENDPOINT>/v1/" client = OpenAI( api_key=openai_api_key, base_url=openai_api_base, ) models = client.models.list() model = models.data[0].id print(model) def main(): stream = True chat_completion = client.chat.completions.create( messages=[ { "role": "system", "content": [ { "type": "text", "text": "あなたはインテント認識の専門家です。 ユーザーの質問に基づいてそのインテントを特定し、対応するインテントとパラメーターを返すことができます。", } ], }, { "role": "user", "content": [ { "type": "text", "text": "音楽を聴きたいです", } ], } ], model=model, max_completion_tokens=2048, stream=stream, ) if stream: for chunk in chat_completion: print(chunk.choices[0].delta.content, end="") else: result = chat_completion.choices[0].message.content print(result) if __name__ == "__main__": main()各項目の意味は次のとおりです:
-
<YOUR_EAS_SERVICE_ENDPOINT> :お使いのサービスエンドポイントに置き換えます。
-
<YOUR_EAS_SERVICE_TOKEN> :お使いのサービストークンに置き換えます。
-
関連ドキュメント
-
インテリジェントタギング (iTAG) の使用ワークフローとデータアノテーションのフォーマット要件について説明します。
-
Elastic Algorithm Service (EAS) についてさらに詳しく説明します。
-
クイックスタートを使用して、Llama-3、Qwen1.5、Stable Diffusion V1.5 などのさまざまなモデルを簡単にデプロイおよびファインチューンできます。 詳細については、「モデルギャラリーのユースケース」をご参照ください。