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 コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。
[サービスのデプロイ] をクリックします。 [カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。
[カスタムデプロイ] ページで、次のパラメーターを設定します。 その他のパラメーターについては、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。
パラメーター
説明
基本情報
サービス名
サービスの名前を指定します。
環境情報
デプロイ方法
[イメージベースのデプロイ] および [Webアプリの有効化] を選択します。
イメージ設定
Alibaba Cloud Imageからhuggingface-inferenceを選択します。 次に、イメージバージョンを選択します。
環境変数
[追加] をクリックし、ステップ1で取得した次の情報を使用します。
MODEL_ID: distilbert-base-uncased-finetuned-sst-2-english
タスク: テキスト分類
REVISION: メイン
コマンド
[画像設定] パラメーターを設定した後、実行するコマンドが自動的に設定されます。 設定を変更する必要はありません。
リソースの配置
追加のシステムディスク
100 GBに設定します。
[デプロイ] をクリックします。 [サービスステータス] が [実行中] に変わると、サービスがデプロイされます。
デプロイされたモデルサービスを呼び出します。
コンソールを使用してサービスを呼び出す
[EAS] ページで、[サービスタイプ] 列の [Webアプリの表示] をクリックして、web UIでのモデル推論の効果を確認します。
サービスの [操作] 列で [オンラインデバッグ] をクリックします。 [本文] タブで、
{"data": ["hello"]}
などのリクエストデータを入力し、[リクエストの送信] をクリックします。説明テキスト分類モデルの入力データ (
{"data": ["XXX"]}
) の形式は、Gradioフレームワークの/api/predict
で定義されています。 画像分類や音声データ処理など、他の種類のモデルを使用する場合は、/api/predict
を参照してリクエストデータを作成できます。
APIを使用してサービスを呼び出す
サービス名をクリックして、[サービスの詳細] タブに移動します。 表示されるタブで、[エンドポイント情報の表示] をクリックします。
[呼び出しメソッド] ダイアログボックスの [パブリックエンドポイント] タブで、URLおよび [トークン] の値を取得します。
次のコードを使用して、サービスを呼び出します。
import requests resp = requests.post(url="<service_url>", headers={"Authorization": "<token>"}, json={"data": ["hello"]}) print(resp) # resp: {"data":[{"label":"POSITIVE","confidences":[{"label":"POSITIVE","confidence":0.9995185136795044}]}],"is_generating":false,"duration":0.280987024307251,"average_duration":0.280987024307251}
<service_url> と <token> をステップbで取得した値に置き換えます。