首頁 > 後端開發 > Python教學 > 只需幾個步驟即可將擁抱臉部模型部署到 AWS Lambda

只需幾個步驟即可將擁抱臉部模型部署到 AWS Lambda

Linda Hamilton
發布: 2024-11-29 21:24:11
原創
787 人瀏覽過

是否曾經想將 Hugging Face 模型部署到 AWS Lambda,但卻被容器建置、冷啟動和模型快取所困擾?以下是如何使用 Scaffoldly 在 5 分鐘內完成此操作。

長話短說

  1. 在 AWS 中建立名為 .cache 的 EFS 檔案系統:

    • 前往 AWS EFS 控制台
    • 點選「建立檔案系統」
    • 將其命名為.cache
    • 選擇任意 VPC(Scaffoldly 會處理剩下的事情!)
  2. 從 python-huggingface 分支建立您的應用程式:

  3. 部署它:

就是這樣!您將獲得在 Lambda 上運行的 Hugging Face 模型(以 openai-community/gpt2 為例),並配有適當的快取和容器部署。

專業提示:對於 EFS 設置,您可以將其自訂為突發模式下的單一 AZ,以進一步節省成本。 Scaffoldly 會將 Lambda 函數與 EFS 的 VPC、子網路和安全群組進行配對。

✨ 查看現場示範和範例程式碼!

問題

將機器學習模型部署到 AWS Lambda 傳統上涉及:

  • 建置與管理 Docker 容器
  • 弄清楚模型快取和儲存
  • 處理 Lambda 的大小限制
  • 管理冷啟動
  • 設定 API 端點

當您只想為模型提供服務時,需要進行大量基礎設施工作!

解決方案

Scaffoldly 透過一個簡單的設定檔來處理所有這些複雜性。這是一個提供 Hugging Face 模型的完整應用程式(以 openai-community/gpt2 為例):

它是如何運作的

Scaffoldly 在幕後做了一些聰明的事情:

  1. 智慧貨櫃建築

    • 自動建立針對 Lambda 最佳化的 Docker 容器
    • 處理所有 Python 依賴項,包括 PyTorch
    • 無需編寫任何 Docker 指令即可推送至 ECR
  2. 高效率的模型處理:

    • 使用 Amazon EFS 快取模型檔案
    • 部署後預下載模型以加速冷啟動
    • 在 Lambda 中自動掛載快取
  3. Lambda 就緒設定:

    • Rus 建立一個合適的 WSGI 伺服器(gunicorn)
    • 建立公用 Lambda 函數 URL
    • 代理函數 URL 請求gunicorn
    • 管理 IAM 角色與權限

部署是什麼樣的

這是我在此範例中運行的 npx 腳手架部署命令的輸出:

Deploy Hugging Face Models to AWS Lambda in teps

現實世界的性能和成本

成本:AWS Lambda、ECR 和 EFS 約 0.20 美元/天

冷啟動:第一次請求約 20 秒(模型載入)

熱烈請求:5-20秒(基於CPU的推理)

雖然此設定使用 CPU 推理(比 GPU 慢),但這是一種試驗 ML 模型或服務低流量端點的極其經濟高效的方法。

其他型號客製

想要使用不同的模型嗎?只要更新兩個檔案:

  1. 更改app.py中的模型:
  1. 更新scaffoldly.json中的下載:

使用私人或門控模型

Scaffoldly 透過 HF_TOKEN 環境變數支援私有和門控模型。您可以透過多種方式新增 Hugging Face 令牌:

  • 本地開發:新增到您的 shell 設定檔(.bashrc、.zprofile 等):
  • CI/CD:新增為 GitHub Actions Secret:

令牌將自動用於下載和存取您的私人或門控模型。

CI/CD 獎金

Scaffoldly 甚至產生用於自動部署的 GitHub Action:

自己嘗試一下

完整的範例可以在 GitHub 上找到:
腳手架/腳手架範例#python-huggingface

您可以透過執行以下命令來建立自己的範例副本:

您可以看到它正在即時運行(儘管由於 CPU 推斷,響應可能會很慢):
現場示範

接下來是什麼?

  • 嘗試部署不同的擁抱臉模型
  • 加入 Discord 上的 Scaffoldly 社群
  • 查看其他範例
  • 如果您覺得這有用,請為我們的程式碼庫加星標!
    • 鷹架工具鏈
    • Scaffoldly 範例儲存庫

許可證

Scaffoldly 是開源的,歡迎社群貢獻。

  • 這些範例已獲得 Apache-2.0 授權的許可。
  • 鷹架工具鏈已取得 FSL-1.1-Apache-2.0 授權。

您還想在 AWS Lambda 中運行哪些其他模型?請在評論中告訴我!

以上是只需幾個步驟即可將擁抱臉部模型部署到 AWS Lambda的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板