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

Platform For AI:ハグフェイスを展開する EASのモデル

最終更新日:Dec 19, 2024

Platform for AI (PAI) は、コミュニティモデル展開用のプリセットイメージと、Elastic Algorithm Service (EAS) でのモデル配布およびイメージ起動用のアクセラレーションメカニズムを提供します。 いくつかのパラメーターを設定することで、コミュニティモデルをEASにすばやく展開できます。 このトピックでは、EASでハギングフェイスモデルをデプロイする方法について説明します。

背景情報

Hugging Faceなどのオープンソースモデルコミュニティは、さまざまな機械学習モデルとコード実装を提供します。 カプセル化されたモデル、フレームワーク、および関連処理ロジックには、関連ライブラリのインターフェイスを介してアクセスできます。 モデルのトレーニングや呼び出しなどのエンドツーエンドの操作は、環境の依存関係、前処理と後処理のロジック、またはフレームワークの種類を考慮する必要なく、数行のコードのみで実行できます。 詳細については、ハギングフェイスの公式サイトをご覧ください。 このエコロジーは、TensorFlowやPyTorchなどの深層学習フレームワークのアップグレードです。

EASは、コミュニティモデルの展開を容易にする最適化機能を提供します。

ハグ顔モデルの展開

PAIを使用すると、EASのオンラインモデルサービスとしてHugging Faceのパイプラインライブラリにモデルをデプロイできます。 以下の手順を実行します。

  1. パイプラインライブラリからデプロイするモデルを選択します。 この例では、distilbert-base-uncased-finetuned-sst-2英語のモデルが選択されています。 distilbert-base-uncased-finetuned-sst-2-englishモデルの詳細ページで、モデルID、タスク、およびリビジョン情報を取得し、オンプレミスマシンに保存します。0ec0f57fcd2cee6a6c91b53d67616f26.png

    次の表に、ハグフェイスページに表示される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

    画像からテキストへ

    イメージからテキストへ

  2. EASページで、ハグ顔モデルを展開します。

    1. PAI コンソールにログインします。 ページ上部のリージョンを選択します。 次に、目的のワークスペースを選択し、[Elastic Algorithm Service (EAS) の入力] をクリックします。

    2. [サービスのデプロイ] をクリックします。 [カスタムモデルのデプロイ] セクションで、[カスタムデプロイ] をクリックします。

    3. [カスタムデプロイ] ページで、次のパラメーターを設定します。 その他のパラメーターについては、「PAIコンソールでのモデルサービスのデプロイ」をご参照ください。

      パラメーター

      説明

      基本情報

      サービス名

      サービスの名前を指定します。

      環境情報

      デプロイ方法

      [イメージベースのデプロイ] および [Webアプリの有効化] を選択します。

      イメージ設定

      Alibaba Cloud Imageからhuggingface-inferenceを選択します。 次に、イメージバージョンを選択します。

      環境変数

      [追加] をクリックし、ステップ1で取得した次の情報を使用します。

      • MODEL_ID: distilbert-base-uncased-finetuned-sst-2-english

      • タスク: テキスト分類

      • REVISION: メイン

      コマンド

      [画像設定] パラメーターを設定した後、実行するコマンドが自動的に設定されます。 設定を変更する必要はありません。

      リソースの配置

      追加のシステムディスク

      100 GBに設定します。

    4. [デプロイ] をクリックします。 [サービスステータス][実行中] に変わると、サービスがデプロイされます。

  3. デプロイされたモデルサービスを呼び出します。

    コンソールを使用してサービスを呼び出す

    • [EAS] ページで、[サービスタイプ] 列の [Webアプリの表示] をクリックして、web UIでのモデル推論の効果を確認します。image.png

    • サービスの [操作] 列で [オンラインデバッグ] をクリックします。 [本文] タブで、{"data": ["hello"]} などのリクエストデータを入力し、[リクエストの送信] をクリックします。image

      説明

      テキスト分類モデルの入力データ ({"data": ["XXX"]}) の形式は、Gradioフレームワーク/api/predictで定義されています。 画像分類や音声データ処理など、他の種類のモデルを使用する場合は、/api/predictを参照してリクエストデータを作成できます。

    APIを使用してサービスを呼び出す

    1. サービス名をクリックして、[サービスの詳細] タブに移動します。 表示されるタブで、[エンドポイント情報の表示] をクリックします。

    2. [呼び出しメソッド] ダイアログボックスの [パブリックエンドポイント] タブで、URLおよび [トークン] の値を取得します。

    3. 次のコードを使用して、サービスを呼び出します。

      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で取得した値に置き換えます。