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 scaffoldly Deploy 명령의 출력은 다음과 같습니다.
✅ 비용: AWS Lambda, ECR 및 EFS의 경우 ~$0.20/일
✅ 콜드 스타트: 첫 번째 요청에 최대 20초(모델 로딩)
✅ 따뜻한 요청: 5~20초(CPU 기반 추론)
이 설정은 CPU 추론(GPU보다 느림)을 사용하지만 ML 모델을 실험하거나 트래픽이 적은 엔드포인트를 제공하는 데 매우 비용 효율적인 방법입니다.
다른 모델을 사용하고 싶으신가요? 두 개의 파일을 업데이트하세요:
npx scaffoldly create app --template python-huggingface
cd my-app && npx scaffoldly deploy
Scaffoldly는 HF_TOKEN 환경 변수를 통해 비공개 및 게이트 모델을 지원합니다. 다양한 방법으로 Hugging Face 토큰을 추가할 수 있습니다:
# 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 Action도 생성합니다.
// 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에서 실행하고 싶은 다른 모델은 무엇입니까? 댓글로 알려주세요!
위 내용은 포옹하는 얼굴 모델을 AWS Lambda에 몇 단계로 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!