시간이 초과되면 다시 서빙하면 모델을 캐시합니다. <code>[...]
# 这确保了这些包仅在脚本在 Beam 上远程运行时加载
if env.is_remote():
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from cot_decoder import cot_decode
from question_classifier import get_k_value
# 模型参数和在卷中缓存的位置
MODEL_NAME = "meta-llama/Meta-Llama-3-8B-Instruct"
CACHE_PATH = "./cached_models2"
# 加载模型和标记器
def load_models():
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, cache_dir=CACHE_PATH)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME, device_map="auto", torch_dtype=torch.float16, cache_dir=CACHE_PATH
)
return model, tokenizer
# 定义端点
# 您可以指定 CPU/内存/GPU + 图像
@endpoint(
secrets=["HF_TOKEN"],
on_start=load_models, # 启动时加载模型以进行缓存
name="meta-llama-3-8b-instruct",
cpu=2,
memory="32Gi",
gpu="A100-40",
image=Image(
python_version="python3.9",
python_packages=["torch", "transformers", "accelerate"],
),
volumes=[Volume(name="cached_models2", mount_path=CACHE_PATH)],
)
[...]</code>
모델이 어디에 저장되는지 확인하려면 Beam.Cloud 플랫폼에서 볼륨
로 이동할 수 있습니다.
일단 실행되면 다음이 표시됩니다.
이것은 테스트 준비가되었음을 의미합니다.
당신은 Postman을 시작하거나 Curl을 사용할 수 있습니다 (즉, 터미널 창의 엔드 포인트로 호출을 실행 함)
응답은 다음과 비슷해야합니다.
볼 수 있듯이 약간 더 잘 수행됩니다. <code>mkdir my-testing-dir
cd my-testing-dir</code>
모델을 배포하려면 배포를 실행할 수 있습니다.
방금 테스트하는 데 사용 했으므로 지금 끄질 수 있습니다.
나는이 기사가 교육적이고 흥미 롭기를 바랍니다. 당신은 무언가를 얻을 것입니다.
대형 언어 모델 및 COT 기술에 대한 결과를 보려면이 테이블 과이 저장소에서 찾을 수있는 다른 모든 리소스를 볼 수 있습니다.
도움이되면 코멘트를 남겨 주시고 박수를 보내십시오.