Platform for AI (PAI) は、コミュニティモデル展開用のプリセットイメージと、Elastic Algorithm Service (EAS) でのモデル配布およびイメージ起動用のアクセラレーションメカニズムを提供します。 いくつかのパラメーターを設定することで、コミュニティモデルをEASにすばやく展開できます。 このトピックでは、ハギングフェイスをデプロイする方法について説明します EASのモデル。
背景情報
Hugging Faceなどのオープンソースモデルコミュニティ、さまざまな機械学習モデルとコード実装を提供します。 カプセル化されたモデル、フレームワーク、および関連処理ロジックには、関連ライブラリのインターフェイスを介してアクセスできます。 モデルのトレーニングや呼び出しなどのエンドツーエンドの操作は、環境の依存関係、前処理と後処理のロジック、またはフレームワークの種類を考慮する必要なく、数行のコードのみで実行できます。 詳細については、ハギングフェイスの公式サイトをご覧ください。 このエコロジーは、TensorFlowやPyTorchなどの深層学習フレームワークのアップグレードです。
EASは、コミュニティモデルの展開を容易にする最適化機能を提供します。
ハグ顔モデルの展開
PAIを使用すると、EASのオンラインモデルサービスとしてHugging Faceのパイプラインライブラリにモデルをデプロイできます。 以下の手順を実行します。
パイプラインライブラリからデプロイするモデルを選択します。 この例では、distilbert-base-uncased-finetuned-sst-2英語のモデルが選択されています。 distilbert-base-uncased-finetuned-sst-2-englishモデルの詳細ページで、モデルID、タスク、およびリビジョン情報を取得し、オンプレミスマシンに保存します。
次の表に、ハグフェイスページに表示されるTASKと、EASでサービスを展開するときに指定する必要があるTASKパラメーターとの間のマッピング関係を示します。
Hugging Faceページに表示されるタスク
EASで指定するタスク
オーディオ分類
オーディオ分類
自動音声認識 (ASR)
automatic-speech-recognition
特徴抽出
特徴抽出
塗りつぶしマスク
fill-mask
Image Classification
イメージ分類
質問への回答
質問回答
要約
要約
テキスト分類
テキスト分類
センチメント分析
感情分析
テキスト生成
テキスト生成
翻訳
翻訳
翻訳 (xx-to-yy)
translation_xx_to_yy
テキストからテキストへの生成
text2text-generation
ゼロショット分類
ゼロショット分類
ドキュメントの質問の回答
document-question-answering
ビジュアル質問回答
visual-question-answering
画像からテキストへ
イメージからテキストへ
EASページで、ハグ顔モデルを展開します。
[サービスの作成] ページで、次のパラメーターを設定します。 その他のパラメーターの詳細については、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。
パラメーター
説明
サービス名
サービスの名前を指定します。
デプロイ方法
[イメージを使用したWebアプリのデプロイ] を選択します。
画像の選択
[PAIイメージ] をクリックし、ドロップダウンリストから [huggingface-inference] を選択し、ビジネス要件に基づいてイメージのバージョンを選択します。
環境変数
ステップ1で取得した次の情報を使用します。
MODEL_ID: distilbert-base-uncased-finetuned-sst-2-english
タスク: テキスト分類
REVISION: メイン
実行するコマンド
Image Versionパラメーターを設定すると、実行するコマンドが自動的に設定されます。 設定を変更する必要はありません。
追加のシステムディスク
[リソース配置情報] セクションの [追加のシステムストレージ] をクリックし、[追加のシステムディスク] パラメーターを100 GBに設定します。
[デプロイ] をクリックします。 [サービスステータス] が [実行中] に変わると、サービスがデプロイされます。
デプロイされたモデルサービスを呼び出します。
APIを使用してサービスを呼び出す
サービス名をクリックして、[サービスの詳細] タブに移動します。 表示されるタブで、[エンドポイント情報の表示] をクリックします。
[呼び出しメソッド] ダイアログボックスの [パブリックエンドポイント] タブで、URLおよび [トークン] の値を取得します。
次のコードを使用して、サービスを呼び出します。
import requests resp = requests.post(url="<service_url>", headers={"Authorization": "<token>"}, json={"data": ["hello"]}) print(resp.content) # resp: {"data":[{"label":"POSITIVE","confidences":[{"label":"POSITIVE","confidence":0.9995185136795044}]}],"is_generating":false,"duration":0.280987024307251,"average_duration":0.280987024307251}
<service_url> と <token> をステップbで取得した値に置き換えます。
コンソールを使用してサービスを呼び出す
[EAS] ページで、[サービスタイプ] 列の [Webアプリの表示] をクリックして、web UIでのモデル推論の効果を確認します。
サービスの [操作] 列で [オンラインデバッグ] をクリックします。 [本文] タブで、
{"data": ["hello"]}
などのリクエストデータを入力し、[リクエストの送信] をクリックします。説明テキスト分類モデルの入力データ (
{"data": ["XXX"]}
) の形式は、Gradioフレームワークの/api/predict
で定義されています。 画像分類や音声データ処理など、他の種類のモデルを使用する場合は、/api/predict
を参照してリクエストデータを作成できます。