teps でハグ顔モデルを AWS Lambda にデプロイする
Hugging Face モデルを AWS Lambda にデプロイしたいと考えていましたが、コンテナのビルド、コールド スタート、モデルのキャッシュで行き詰まったことはありませんか? Scaffoldly を使用して 5 分以内にこれを行う方法を次に示します。
TL;DR
-
AWS で .cache という名前の EFS ファイルシステムを作成します:
- AWS EFS コンソールに移動します
- 「ファイルシステムの作成」をクリックします
- .cache という名前を付けます
- 任意の VPC を選択します (残りは Scaffoldly が処理します!)
-
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 にデプロイするには、従来は次のことが必要です。
- Docker コンテナの構築と管理
- モデルのキャッシュとストレージを理解する
- Lambda のサイズ制限への対処
- コールドスタートの管理
- API エンドポイントのセットアップ
モデルを提供したいだけの場合、多くのインフラストラクチャ作業が必要です!
解決策
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 に最適化された Docker コンテナを自動的に作成します
- PyTorch を含むすべての Python 依存関係を処理します
- Docker コマンドを作成しなくても ECR にプッシュされます
-
効率的なモデル処理:
- Amazon EFS を使用してモデル ファイルをキャッシュします
- 展開後にモデルを事前ダウンロードしてコールド スタートを高速化します
- Lambda にキャッシュを自動的にマウントします
-
Lambda 対応セットアップ:
- 適切な WSGI サーバー (gunicorn) を起動します
- パブリック Lambda 関数 URL を作成します
- gunicorn へのプロキシ関数 URL リクエスト
- IAM の役割と権限を管理します
デプロイの様子
この例で実行した npx scaffoldlydeploy コマンドの出力は次のとおりです。
実際のパフォーマンスとコスト
✅ コスト: AWS Lambda、ECR、および EFS の場合、1 日あたり ~$0.20
✅ コールド スタート: 最初のリクエスト (モデルの読み込み) に約 20 秒
✅ ウォーム リクエスト: 5 ~ 20 秒 (CPU ベースの推論)
このセットアップでは CPU 推論 (GPU よりも遅い) が使用されますが、ML モデルを試したり、低トラフィックのエンドポイントにサービスを提供したりするには、非常にコスト効率の高い方法です。
他モデル用のカスタマイズ
別のモデルを使用したいですか? 2 つのファイルを更新するだけです:
- app.py のモデルを変更します。
npx scaffoldly create app --template python-huggingface
- scaffoldly.json のダウンロードを更新します。
cd my-app && npx scaffoldly deploy
プライベート モデルまたはゲート モデルの使用
Scaffoldly は、HF_TOKEN 環境変数を介してプライベート モデルとゲート モデルをサポートします。ハグ顔トークンはいくつかの方法で追加できます:
- ローカル開発: シェル プロファイル (.bashrc、.zprofile など) に追加します。
# 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']
- CI/CD: GitHub アクション シークレットとして追加:
// requirements.txt Flask ~= 3.0 gunicorn ~= 23.0 torch ~= 2.5 numpy ~= 2.1 transformers ~= 4.46 huggingface_hub[cli] ~= 0.26
トークンは、プライベート モデルまたはゲート モデルのダウンロードとアクセスの両方に自動的に使用されます。
CI/CD ボーナス
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 推論により応答が遅くなる可能性があります)。
ライブデモ
次は何ですか?
- さまざまなハグフェイス モデルを展開してみる
- Discord の Scaffoldly コミュニティに参加してください
- 他の例をチェックしてください
- これが役立つと思われた場合は、リポジトリにスターを付けてください!
- Scaffoldly ツールチェーン
- Scaffoldly サンプル リポジトリ
ライセンス
Scaffoldly はオープンソースであり、コミュニティからの貢献を歓迎します。
- サンプルには Apache-2.0 ライセンスが付与されています。
- scaffoldly ツールチェーンは FSL-1.1-Apache-2.0 ライセンスでライセンスされています。
AWS Lambda で実行したい他のモデルは何ですか?コメント欄でお知らせください!
以上がteps でハグ顔モデルを AWS Lambda にデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
