Hugging Face モデルを AWS Lambda にデプロイしたいと考えていましたが、コンテナのビルド、コールド スタート、モデルのキャッシュで行き詰まったことはありませんか? Scaffoldly を使用して 5 分以内にこれを行う方法を次に示します。
AWS で .cache という名前の EFS ファイルシステムを作成します:
python-huggingface ブランチからアプリを作成します。
npx scaffoldly create app --template python-huggingface
デプロイします:
cd my-app && npx scaffoldly deploy
それだけです! Lambda 上で実行される Hugging Face モデル (例として openai-community/gpt2 を使用) を取得し、適切なキャッシュとコンテナーのデプロイメントを完了します。
プロのヒント: EFS セットアップの場合、バースタブル モードの単一 AZ までカスタマイズしてさらにコストを節約できます。 Scaffoldly は、Lambda 関数を EFS の VPC、サブネット、セキュリティ グループと照合します。
✨ ライブデモとサンプルコードをチェックしてください!
ML モデルを AWS Lambda にデプロイするには、従来は次のことが必要です。
モデルを提供したいだけの場合、多くのインフラストラクチャ作業が必要です!
Scaffoldly は、この複雑さをすべて単純な構成ファイルで処理します。これは、Hugging Face モデルを提供する完全なアプリケーションです (例として openai-community/gpt2 を使用):
# app.py from flask import Flask from transformers import pipeline app = Flask(__name__) generator = pipeline('text-generation', model='openai-community/gpt2') @app.route("/") def hello_world(): output = generator("Hello, world,") return output[0]['generated_text']
// requirements.txt Flask ~= 3.0 gunicorn ~= 23.0 torch ~= 2.5 numpy ~= 2.1 transformers ~= 4.46 huggingface_hub[cli] ~= 0.26
// scaffoldly.json { "name": "python-huggingface", "runtime": "python:3.12", "handler": "localhost:8000", "files": ["app.py"], "packages": ["pip:requirements.txt"], "resources": ["arn::elasticfilesystem:::file-system/.cache"], "schedules": { "@immediately": "huggingface-cli download openai-community/gpt2" }, "scripts": { "start": "gunicorn app:app" }, "memorySize": 1024 }
Scaffoldly は舞台裏でいくつかの賢いことを行います:
スマートコンテナビルディング:
効率的なモデル処理:
Lambda 対応セットアップ:
この例で実行した npx scaffoldlydeploy コマンドの出力は次のとおりです。
✅ コスト: AWS Lambda、ECR、および EFS の場合、1 日あたり ~$0.20
✅ コールド スタート: 最初のリクエスト (モデルの読み込み) に約 20 秒
✅ ウォーム リクエスト: 5 ~ 20 秒 (CPU ベースの推論)
このセットアップでは CPU 推論 (GPU よりも遅い) が使用されますが、ML モデルを試したり、低トラフィックのエンドポイントにサービスを提供したりするには、非常にコスト効率の高い方法です。
別のモデルを使用したいですか? 2 つのファイルを更新するだけです:
npx scaffoldly create app --template python-huggingface
cd my-app && npx scaffoldly deploy
Scaffoldly は、HF_TOKEN 環境変数を介してプライベート モデルとゲート モデルをサポートします。ハグ顔トークンはいくつかの方法で追加できます:
# app.py from flask import Flask from transformers import pipeline app = Flask(__name__) generator = pipeline('text-generation', model='openai-community/gpt2') @app.route("/") def hello_world(): output = generator("Hello, world,") return output[0]['generated_text']
// requirements.txt Flask ~= 3.0 gunicorn ~= 23.0 torch ~= 2.5 numpy ~= 2.1 transformers ~= 4.46 huggingface_hub[cli] ~= 0.26
トークンは、プライベート モデルまたはゲート モデルのダウンロードとアクセスの両方に自動的に使用されます。
Scaffoldly は自動デプロイメント用の GitHub アクションも生成します:
// scaffoldly.json { "name": "python-huggingface", "runtime": "python:3.12", "handler": "localhost:8000", "files": ["app.py"], "packages": ["pip:requirements.txt"], "resources": ["arn::elasticfilesystem:::file-system/.cache"], "schedules": { "@immediately": "huggingface-cli download openai-community/gpt2" }, "scripts": { "start": "gunicorn app:app" }, "memorySize": 1024 }
完全な例は GitHub で入手できます:
scaffoldly/scaffoldly-examples#python-huggingface
次のコマンドを実行すると、この例の独自のコピーを作成できます。
generator = pipeline('text-generation', model='your-model-here')
ライブで実行されているのが確認できます (ただし、CPU 推論により応答が遅くなる可能性があります)。
ライブデモ
Scaffoldly はオープンソースであり、コミュニティからの貢献を歓迎します。
AWS Lambda で実行したい他のモデルは何ですか?コメント欄でお知らせください!
以上がteps でハグ顔モデルを AWS Lambda にデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。