ハギングフェイス推論エンドポイントの始め方

'ハギングフェイス推論エンドポイントの始め方' can be condensed to 'ハギングフェイス推論エンドポイントの始め方の要点'.

機械学習モデルのトレーニングは非常に簡単になりました。特に、事前学習済みモデルと転移学習の台頭により、簡単なことが多いです。もちろん、時にはそれほど簡単ではないこともありますが、少なくとも、モデルのトレーニングはクリティカルなアプリケーションを壊すことはありませんし、お客様にサービス品質に不満を抱かせることもありません。しかし、モデルのデプロイメントは別ですね… はい、みんな経験があります。

モデルを本番環境でデプロイするには、通常、数々の手順を踏む必要があります。モデルをコンテナにパッケージ化し、インフラストラクチャをプロビジョニングし、予測APIを作成し、セキュリティを確保し、スケーリングし、監視するなどです。正直に言って、これらのプラミングを構築するのには実際の機械学習作業の貴重な時間が奪われてしまいます。残念なことに、うまくいかないこともあります。

私たちは、新しく発表されたHugging Face Inference Endpointsを使ってこの問題を解決しようと努めています。最新の状態を維持しつつ、機械学習をますます簡単にすることを目指して、Hugging Faceハブから直接機械学習モデルをお気に入りのクラウド上の管理されたインフラストラクチャに数回のクリックでデプロイできるサービスを構築しました。シンプルで安全でスケーラブルです。すべてが手に入ります。

では、これがどのように機能するかをご紹介します!

Inference Endpointsでモデルをデプロイする

Inference Endpointsがサポートしているタスクのリストを見て、最近AutoTrainでfood101データセット上で微調整したSwin画像分類モデルをデプロイすることにしました。このモデルの構築方法に興味がある場合は、このビデオで全体のプロセスを確認できます。

モデルページから、デプロイをクリックし、Inference Endpointsを選択します。

これにより、エンドポイントの作成ページに直接移動します。

最新のリビジョンのモデルを、eu-west-1リージョンのAWSでホストされる単一のGPUインスタンスにデプロイすることにしました。オプションで、オートスケーリングを設定することもできますし、カスタムコンテナにモデルをデプロイすることもできます。

次に、エンドポイントにアクセスできるユーザーを決定する必要があります。最もセキュアから最もセキュアまで、3つのオプションがあります:

  • パブリック: エンドポイントはパブリックなHugging Faceサブネットで実行され、認証なしでインターネット上の誰でもアクセスできます。これを選択する前によく考えてください!
  • プロテクテッド: エンドポイントはパブリックなHugging Faceサブネットで実行され、適切な組織トークンを持つインターネット上の誰でもアクセスできます。
  • プライベート: エンドポイントはプライベートなHugging Faceサブネットで実行されます。インターネット上でアクセスできません。AWS PrivateLinkで作成されたVPCエンドポイントを使用して、AWSアカウント内のどのVPCとサブネットがエンドポイントにアクセスできるかを制御できます。

まず、プロテクテッドなエンドポイントをデプロイし、その後プライベートなエンドポイントをデプロイしましょう。

プロテクテッドなInferenceエンドポイントのデプロイ

プロテクテッドを選択し、エンドポイントを作成をクリックします。

数分後、エンドポイントが起動し、そのURLが表示されます。

推論ウィジェットで画像をアップロードしてすぐにテストすることができます。

もちろん、Pythonコードの数行でエンドポイントを直接呼び出すこともできます。Hugging Face APIトークンで認証します(ハブのアカウント設定で見つけることができます)。

import requests, json

API_URL = "https://oncm9ojdmjwesag2.eu-west-1.aws.endpoints.huggingface.cloud"

headers = {
  "Authorization": "Bearer MY_API_TOKEN",
  "Content-Type": "image/jpg"
}

def query(filename):
    with open(filename, "rb") as f:
        data = f.read()
    response = requests.request("POST", API_URL, headers=headers, data=data)
    return json.loads(response.content.decode("utf-8"))

output = query("food.jpg")

予想通り、予測結果は同じです。

[{'score': 0.9998438358306885, 'label': 'hummus'},
 {'score': 6.674625183222815e-05, 'label': 'falafel'}, 
 {'score': 6.490697160188574e-06, 'label': 'escargots'}, 
 {'score': 5.776922080258373e-06, 'label': 'deviled_eggs'}, 
 {'score': 5.492902801051969e-06, 'label': 'shrimp_and_grits'}]

Analytics タブに移動すると、エンドポイントのメトリクスが表示されます。いくつかのリクエストが失敗しましたが、わざと Content-Type ヘッダーを省略しました。

詳細を確認するためには、Logs タブで完全なログを確認できます。

5c7fbb4485cd8w7 2022-10-10T08:19:04.915Z 2022-10-10 08:19:04,915 | INFO | POST / | Duration: 142.76 ms
5c7fbb4485cd8w7 2022-10-10T08:19:05.860Z 2022-10-10 08:19:05,860 | INFO | POST / | Duration: 148.06 ms
5c7fbb4485cd8w7 2022-10-10T09:21:39.251Z 2022-10-10 09:21:39,250 | ERROR | Content type "None" not supported. Supported content types are: application/json, text/csv, text/plain, image/png, image/jpeg, image/jpg, image/tiff, image/bmp, image/gif, image/webp, image/x-image, audio/x-flac, audio/flac, audio/mpeg, audio/wave, audio/wav, audio/x-wav, audio/ogg, audio/x-audio, audio/webm, audio/webm;codecs=opus
5c7fbb4485cd8w7 2022-10-10T09:21:44.114Z 2022-10-10 09:21:44,114 | ERROR | Content type "None" not supported. Supported content types are: application/json, text/csv, text/plain, image/png, image/jpeg, image/jpg, image/tiff, image/bmp, image/gif, image/webp, image/x-image, audio/x-flac, audio/flac, audio/mpeg, audio/wave, audio/wav, audio/x-wav, audio/ogg, audio/x-audio, audio/webm, audio/webm;codecs=opus

さて、セキュリティレベルを上げてプライベートエンドポイントをデプロイしましょう。

プライベート推論エンドポイントのデプロイ

前述の手順を繰り返し、今回は Private を選択します。

これにより、エンドポイントが表示される AWS アカウントの識別子を求める新しいボックスが開きます。適切な ID を入力し、Create Endpoint をクリックします。

AWS アカウント ID がわからない場合は、AWS CLI のワンライナーを使って確認できます:aws sts get-caller-identity --query Account --output text

数分後、推論エンドポイントのユーザーインターフェースには VPC サービス名の名前が表示されます。私の場合は com.amazonaws.vpce.eu-west-1.vpce-svc-07a49a19a427abad7 です。

次に、AWS コンソールを開き、VPC エンドポイントページに移動します。そして、Create endpoint をクリックして VPC エンドポイントを作成し、AWS PrivateLink を介して推論エンドポイントにアクセスできるようにします。

要するに、上記に表示される VPC サービス名の名前を入力し、エンドポイントにアクセスできるように許可される VPC およびサブネットを選択し、適切なセキュリティグループを割り当てる必要があります。何も怖くありません。推論エンドポイントドキュメントにリストされている手順に従えば問題ありません。

VPC エンドポイントを作成した後、セットアップは以下のようになります。

インファレンスエンドポイントのユーザーインターフェースに戻り、プライベートエンドポイントは1〜2分後に実行されます。さあ、テストしてみましょう!

VPCエンドポイントにアクセス許可があるサブネットのいずれかでAmazon EC2インスタンスを起動し、インファレンスエンドポイントのURLを使用してテスト画像を予測します。

curl https://oncm9ojdmjwesag2.eu-west-1.aws.endpoints.huggingface.cloud \
-X POST --data-binary '@food.jpg' \
-H "Authorization: Bearer MY_API_TOKEN" \
-H "Content-Type: image/jpeg"

[{"score":0.9998466968536377,     "label":"hummus"},
 {"score":0.00006414744711946696, "label":"falafel"},
 {"score":6.4065129663504194e-6,  "label":"escargots"},
 {"score":5.819705165777123e-6,   "label":"deviled_eggs"},
 {"score":5.532585873879725e-6,   "label":"shrimp_and_grits"}]

<pこれで終わりです。テストが終わったら、作成したエンドポイントを削除して不要な料金を避けます。また、AWSコンソールでVPCエンドポイントも削除します。

Hugging Faceのお客様は既にインファレンスエンドポイントを使用しています。例えば、Phamilyは、#1の内蔵型慢性疾患管理および予防的ケアプラットフォームとして、HIPAA準拠のTransformer展開を簡素化し高速化するのにInference Endpointsが役立っていると教えてくれました。

さあ、あなたの番です!

インファレンスエンドポイントのおかげで、本番用のスケーラブルで安全なエンドポイントを数分で数クリックで展開することができます。ぜひ試してみてください。

サービスをさらに良くするためのアイデアはたくさんありますので、Hugging Faceフォーラムでフィードバックをお聞かせください。

お読みいただきありがとうございました。インファレンスエンドポイントをお楽しみください!

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

Q&A:ブラジルの政治、アマゾンの人権、AIについてのGabriela Sá Pessoaの見解

ブラジルの社会正義のジャーナリストは、MIT国際研究センターのフェローです

人工知能

「パクストンAIの共同創業者兼CEO、タングイ・シャウ - インタビューシリーズ」

タングイ・ショウは、Paxton AIの共同創設者兼CEOであり、法的研究と起草の負担を軽減するためにGenerative AIを使用するプラ...

人工知能

「リオール・ハキム、Hour Oneの共同創設者兼CTO - インタビューシリーズ」

「Hour Oneの共同創設者兼最高技術責任者であるリオール・ハキムは、専門的なビデオコミュニケーションのためのバーチャルヒ...

データサイエンス

「2023年にデータサイエンスFAANGの仕事をゲットする方法は?」

データサイエンスは非常に求められる分野となり、FAANG(Facebook、Amazon、Apple、Netflix、Google)企業での就職は大きな成...

機械学習

もし芸術が私たちの人間性を表現する方法であるなら、人工知能はどこに適合するのでしょうか?

MITのポストドクターであるジヴ・エプスタイン氏(SM '19、PhD '23)は、芸術やその他のメディアを作成するために生成的AIを...

人工知能

「マーク・A・レムリー教授による生成AIと法律について」

データサイエンス内で新しい分野が現れ、研究内容が理解しにくい場合は、専門家やパイオニアと話すことが最善です最近、私た...