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

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

Nov 29, 2024 pm 09:24 PM

是否曾經想將 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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? 如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到? Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在Linux終端中使用python --version命令時如何解決權限問題? 在Linux終端中使用python --version命令時如何解決權限問題? Apr 02, 2025 am 06:36 AM

Linux終端中使用python...

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? 如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎? Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何繞過Investing.com的反爬蟲機制獲取新聞數據? 如何繞過Investing.com的反爬蟲機制獲取新聞數據? Apr 02, 2025 am 07:03 AM

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...

Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named '__builtin__'怎麼辦? Python 3.6加載pickle文件報錯ModuleNotFoundError: No module named '__builtin__'怎麼辦? Apr 02, 2025 am 06:27 AM

Python3.6環境下加載pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

使用Scapy爬蟲時,管道文件無法寫入的原因是什麼? 使用Scapy爬蟲時,管道文件無法寫入的原因是什麼? Apr 02, 2025 am 06:45 AM

使用Scapy爬蟲時管道文件無法寫入的原因探討在學習和使用Scapy爬蟲進行數據持久化存儲時,可能會遇到管道文�...

See all articles