ネットワーク接続が確立している場合、同じリージョン内の任意の DataWorks ワークスペースでデプロイ済みのモデルを使用できます。以降のセクションでは、DataWorks でデプロイ済みの言語モデルを呼び出して使用する方法について説明します。
前提条件
-
サーバーレスリソースグループが DataWorks ワークスペースにアタッチされていること。
-
サーバーレスリソースグループに大規模言語モデルサービスがデプロイされていること。詳細については、「大規模言語モデルのデプロイ」をご参照ください。
事前準備
モデルを呼び出す前に、アプリケーションが大規模言語モデルサービスにアクセスできることを確認してください。モデルを呼び出すには、モデルサービスエンドポイントと認証用の API キーを取得します。
1. ネットワーク接続の設定
モデル呼び出しに使用する DataWorks リソースグループにアタッチされた VPC が、モデルへの接続を許可された VPC のリストに含まれていることを確認してください。
-
リソースグループにアタッチされた最初の VPC を特定します。
-
DataWorks のリソースグループページに移動します。上部メニューで、対象のリソースグループが存在するリージョンに切り替えます。その後、リストからリソースグループを見つけます。
-
対象のリソースグループの行にある Operation をクリックし、ネットワーク設定 を選択して Vpcバインディング ページを開きます。
-
[データスケジューリングと Data Integration] で、対応する [ネットワークセグメントの切り替え] を表示します。
重要大規模言語モデルを呼び出す際には、リソースグループのネットワーク設定にリストされている最初の VPC を通信に使用する必要があります。
-
-
モデルへの接続が許可されている VPC のリストを表示したり、新しい VPC 関連付けを追加したりするには、「モデルネットワークの管理」をご参照ください。
2. 呼び出し情報の取得
デプロイ後、モデルサービスは自動的に同一リージョン内の内部エンドポイントを生成します。モデルサービスの詳細ページに移動して、このエンドポイントを取得します。ドメイン名の形式は次のとおりです: http://<model-service-id>.<region>.dataworks-model.aliyuncs.com。手順については、「モデルサービスの表示」をご参照ください。
3. API キーの取得
認証用の API キーを「API キーの管理」から取得します。
大規模言語モデルサービスの呼び出し
Data Integration と Data Development で大規模言語モデルを呼び出して、インテリジェントなデータ処理を実現できます。
Data Integration での呼び出し
単一テーブルのオフライン同期タスクでは、大規模言語モデルサービスを使用して、同期中にデータにAI 支援処理を適用できます。
AI 支援処理ノードの [設定] タブで、[モデルプロバイダー] (オプションには Alibaba Cloud DataWorks モデルサービス、Alibaba Cloud Model Studio、Alibaba Cloud PAI モデルマーケットプレイス があります) を選択します。次に、[モデル名]、[処理タスクの説明] (例:テキスト翻訳、コンテンツ要約、感情分析)、[ターゲットフィールド] を設定します。
Data Development での呼び出し
1. 大規模言語モデルノードの使用
DataWorks の Data Development は、大規模言語モデルノードを使用したデータ処理をサポートしています。このノードでは、大規模言語モデルサービスを設定して呼び出すことができます。
2. シェルノードによる大規模言語モデルの呼び出し
この例では、シェルノードから大規模言語モデルを呼び出して、特定の質問に回答する方法を示します。
-
シェルノードを作成し、次のサンプルコマンドを追加します。
説明httpで始まるモデルサービスエンドポイントとDWで始まるトークンを、「事前準備」セクションで取得した実際の値に置き換えてください。curl -X POST http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com/v1/completions -H "Authorization: DW-ms-xxx" -H "Content-Type: application/json" -d '{"prompt":"AI、機械学習、ディープラーニングの違いと関連性", "stream":"false", "max_tokens": 1024}' -v -
ノードを編集した後、ノードエディターの右側にある Run Configuration パネルで、モデルサービスとのネットワーク接続設定が完了しているリソースグループを選択します。
-
Run をクリックして、デプロイ済みのモデルサービスを呼び出します。
説明-
ノードスケジューリング設定:ノードをスケジュール実行する必要がある場合は、右側の Scheduling Settings パネルでネットワーク接続設定が完了しているリソースグループを選択します。その後、Scheduling Policy でスケジューリングプロパティを設定します。
-
ノード公開:本番環境でタスクを実行するには、画面上の
アイコンをクリックして公開ワークフローを開始します。本番環境に公開された後にのみ、ノードはスケジュールに従って実行されます。
-
3. Python ノードによる大規模言語モデルの呼び出し
この例では、Python ノードから大規模言語モデルを呼び出して詩を生成する方法を示します。
-
この例では、Python の
requestsライブラリが必要です。Alibaba Cloud イメージに基づいてカスタムイメージを作成し、この依存関係をインストールします。次のパラメーターを使用します。カスタムイメージパラメーター
説明
イメージ名/ID
DataWorks イメージリスト から Python 互換のイメージを選択します。
サポートされるタスクタイプ
Python を選択します。
インストールパッケージ
-
Python3:
requests。 -
スクリプト:
/home/tops/bin/pip3 install 'urllib3<2.0'。
-
-
Python ノードを作成し、次のサンプルコードを追加します。
説明httpで始まるモデルサービスエンドポイントとDWで始まるトークンを、「事前準備」セクションで取得した実際の値に置き換えてください。import requests import json import time import sys def stream_print_response(): httpUrl = "http://ms-xxxx.cn-beijing.dataworks-model.aliyuncs.com" apikey = "DW-ms-xxxx" url = httpUrl + "/v1/completions" headers = { "Authorization": apikey, "Content-Type": "application/json" } data = { "prompt": "春についての詩を書いてください", "stream": True, "max_tokens": 512 } try: response = requests.post(url, headers=headers, json=data, stream=True) response.raise_for_status() full_text = "" # 損失を防ぐために完全なレスポンスを蓄積 buffer = "" # オプション: 不完全な JSON 行を処理 for line in response.iter_lines(): if not line: continue # 空行をスキップ line_str = line.decode('utf-8').strip() # print(f"[デバッグ] 受信した行: {line_str}") # デバッグ用 if line_str.startswith("data:"): data_str = line_str[5:].strip() # "data: " を削除 if data_str == "[DONE]": print("\n[ストリーミング応答が終了しました]") break # JSON の解析を試行 try: parsed = json.loads(data_str) choices = parsed.get("choices", []) if choices: delta_text = choices[0].get("text", "") if delta_text: # 完全なテキストに蓄積 full_text += delta_text # 文字を 1 つずつ出力 for char in delta_text: print(char, end='', flush=True) sys.stdout.flush() time.sleep(0.03) # タイプライター効果 except json.JSONDecodeError as e: # print(f"[警告] JSON の解析に失敗しました: {e}, raw: {data_str}") continue print(f"\n\n[完全なレスポンスの長さ: {len(full_text)} 文字]") print(f"[ 完全なコンテンツ]:\n{full_text}") except requests.exceptions.RequestException as e: print(f" リクエストに失敗しました: {e}") except Exception as e: print(f" その他のエラー: {e}") if __name__ == "__main__": stream_print_response() -
ノードを編集した後、右側の Run Configuration パネルで、ネットワーク接続設定が完了しているリソースグループと、
requestsライブラリを含む、ステップ1で作成したカスタム ミラー を選択します。 -
Run をクリックして、デプロイ済みのモデルサービスを呼び出します。
説明-
ノードスケジューリング設定:ノードをスケジュール実行する必要がある場合は、Scheduling Settings パネルで、ネットワーク接続設定が完了しているリソースグループと、
requestsライブラリを含む、ステップ1で作成したカスタム ミラー を選択します。その後、Scheduling Policy でスケジューリングプロパティを設定します。 -
ノード公開:本番環境でタスクを実行するには、画面上の
アイコンをクリックして公開ワークフローを開始します。本番環境に公開された後にのみ、ノードはスケジュールに従って実行されます。
-
ベクトルモデルサービスの呼び出し
Data Integration と Data Development でベクトルモデルを呼び出して、データのベクトル化を実行できます。次の例では、DataWorks リソースグループにデプロイされた BGE-M3 ベクトルモデルサービスを呼び出す方法を示します。
Data Integration での呼び出し
単一テーブルのオフライン同期タスクでは、大規模モデルサービスを使用して、同期中にデータにベクトル化を適用できます。
[データ処理] トグルを有効にした後、[データベクトル化] ノードを処理リストに追加します。右側の設定パネルで、[モデルプロバイダー] (Alibaba Cloud DataWorks モデルサービスなど) と [モデル名] を選択します。[バッチサイズ] を設定し、ベクトル化するソースフィールドを選択 (列の順序は最終結果に影響します。ドラッグして並べ替えます)、[ベクトル化結果フィールド] の名前を入力します。また、[詳細オプション] を展開して追加設定を行うこともできます。
Data Development での呼び出し
1. 大規模言語モデルノードによるベクトルモデルサービスの呼び出し
DataWorks の Data Development は、大規模言語モデルノードを使用したデータ処理をサポートしています。このノードでは、ベクトルモデルサービスを設定して呼び出すことができます。
2. シェルノードによるベクトルモデルの呼び出し
この例では、シェルノードからベクトルモデルを呼び出してテキストをベクトルに変換する方法を示します。
-
シェルノードを作成し、次のサンプルコマンドを追加します。
説明httpで始まるモデルサービスエンドポイントとDWで始まるトークンを、「事前準備」セクションで取得した実際の値に置き換えてください。curl -X POST "http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com/v1/embeddings" \ -H "Authorization: DW-ms-xxx" \ -H "Content-Type: application/json" \ -d '{ "input": "これはベクトルに変換する必要があるテキストです", "model": "bge-m3" }' -
ノードを編集した後、ノードエディターの右側にある Run Configuration パネルで、モデルサービスとのネットワーク接続設定が完了しているリソースグループを選択します。
-
Run をクリックして、デプロイ済みのモデルサービスを呼び出します。
説明-
ノードスケジューリング設定:ノードをスケジュール実行する必要がある場合は、Scheduling Settings パネルでネットワーク接続設定が完了しているリソースグループを選択します。その後、Scheduling Policy でスケジューリングプロパティを設定します。
-
ノード公開:本番環境でタスクを実行するには、画面上の
アイコンをクリックして公開ワークフローを開始します。本番環境に公開された後にのみ、ノードはスケジュールに従って実行されます。
-
3. Python ノードによるベクトルモデルの呼び出し
この例では、Python ノードからベクトルモデルを呼び出してテキストをベクトルに変換する方法を示します。
-
この例では、Python の
requestsライブラリが必要です。Alibaba Cloud イメージに基づいてカスタムイメージを作成し、この依存関係をインストールします。次のパラメーターを使用します。カスタムイメージパラメーター
説明
イメージ名/ID
DataWorks イメージリスト から Python 互換のイメージを選択します。
サポートされるタスクタイプ
Python を選択します。
インストールパッケージ
-
Python3:
requests。 -
スクリプト:
/home/tops/bin/pip3 install 'urllib3<2.0'。
-
-
Python ノードを作成し、次のサンプルコードを追加します。
説明httpで始まるモデルサービスエンドポイントとDWで始まるトークンを、「事前準備」セクションで取得した実際の値に置き換えてください。import requests import json import sys # API エンドポイントとトークンに置き換えてください api_url = "http://ms-xxx.cn-beijing.dataworks-model.aliyuncs.com" + "/v1/embeddings" token = "DW-ms-xxx" print("api_url:"+api_url) print("token:"+token) headers = { "Authorization": f"{token}", "Content-Type": "application/json" } payload = { "input": "テストテキスト", "model": "bge-m3" } try: response = requests.post(api_url, headers=headers, data=json.dumps(payload)) print("レスポンスステータスコード:", response.status_code) print("レスポンスコンテンツ:", response.text) # 詳細なエラーメッセージの表示 except Exception as e: print("リクエストエラー:", e) -
ノードを編集した後、右側の Run Configuration パネルで、ネットワーク接続設定が完了しているリソースグループと、
requestsライブラリを含む、ステップ1で作成したカスタム ミラー を選択します。 -
Run をクリックして、デプロイ済みのモデルサービスを呼び出します。
説明-
ノードスケジューリング設定:ノードをスケジュール実行する必要がある場合は、Scheduling Settings パネルでネットワーク接続設定が完了しているリソースグループを選択します。その後、Scheduling Policy でスケジューリングプロパティを設定します。
-
ノード公開:本番環境でタスクを実行するには、画面上の
アイコンをクリックして公開ワークフローを開始します。本番環境に公開された後にのみ、ノードはスケジュールに従って実行されます。
-
関連資料
大規模言語モデルを呼び出すコマンドの詳細については、「OpenAI 互換サーバー」をご参照ください。