是否曾經想將 Hugging Face 模型部署到 AWS Lambda,但卻被容器建置、冷啟動和模型快取所困擾?以下是如何使用 Scaffoldly 在 5 分鐘內完成此操作。
長話短說
-
在 AWS 中建立名為 .cache 的 EFS 檔案系統:
- 前往 AWS EFS 控制台
- 點選「建立檔案系統」
- 將其命名為.cache
- 選擇任意 VPC(Scaffoldly 會處理剩下的事情!)
-
從 python-huggingface 分支建立您的應用程式:
-
部署它:
就是這樣!您將獲得在 Lambda 上運行的 Hugging Face 模型(以 openai-community/gpt2 為例),並配有適當的快取和容器部署。
專業提示:對於 EFS 設置,您可以將其自訂為突發模式下的單一 AZ,以進一步節省成本。 Scaffoldly 會將 Lambda 函數與 EFS 的 VPC、子網路和安全群組進行配對。
✨ 查看現場示範和範例程式碼!
問題
將機器學習模型部署到 AWS Lambda 傳統上涉及:
- 建置與管理 Docker 容器
- 弄清楚模型快取和儲存
- 處理 Lambda 的大小限制
- 管理冷啟動
- 設定 API 端點
當您只想為模型提供服務時,需要進行大量基礎設施工作!
解決方案
Scaffoldly 透過一個簡單的設定檔來處理所有這些複雜性。這是一個提供 Hugging Face 模型的完整應用程式(以 openai-community/gpt2 為例):
它是如何運作的
Scaffoldly 在幕後做了一些聰明的事情:
-
智慧貨櫃建築:
- 自動建立針對 Lambda 最佳化的 Docker 容器
- 處理所有 Python 依賴項,包括 PyTorch
- 無需編寫任何 Docker 指令即可推送至 ECR
-
高效率的模型處理:
- 使用 Amazon EFS 快取模型檔案
- 部署後預下載模型以加速冷啟動
- 在 Lambda 中自動掛載快取
-
Lambda 就緒設定:
- Rus 建立一個合適的 WSGI 伺服器(gunicorn)
- 建立公用 Lambda 函數 URL
- 代理函數 URL 請求gunicorn
- 管理 IAM 角色與權限
部署是什麼樣的
這是我在此範例中運行的 npx 腳手架部署命令的輸出:
現實世界的性能和成本
✅ 成本:AWS Lambda、ECR 和 EFS 約 0.20 美元/天
✅ 冷啟動:第一次請求約 20 秒(模型載入)
✅ 熱烈請求:5-20秒(基於CPU的推理)
雖然此設定使用 CPU 推理(比 GPU 慢),但這是一種試驗 ML 模型或服務低流量端點的極其經濟高效的方法。
其他型號客製
想要使用不同的模型嗎?只要更新兩個檔案:
- 更改app.py中的模型:
- 更新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中文網其他相關文章!

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。

Python適合快速開發和數據處理,而C 適合高性能和底層控制。 1)Python易用,語法簡潔,適用於數據科學和Web開發。 2)C 性能高,控制精確,常用於遊戲和系統編程。

學習Python所需時間因人而異,主要受之前的編程經驗、學習動機、學習資源和方法及學習節奏的影響。設定現實的學習目標並通過實踐項目學習效果最佳。

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能