求助:在Azure生态部署开源LLM(如Gemma3 4b)并创建无服务器端点
在Azure机器学习中部署Gemma3 4b到无服务器端点的最佳实践
一、准备模型文件
- 从开源模型仓库下载Gemma3 4b的完整权重及配置文件,建议保留Hugging Face格式,方便后续适配Azure ML环境。
- 本地验证:用LM Studio或Ollama确认模型能正常生成内容,避免因文件损坏导致部署失败。
二、注册模型到Azure ML资产库
- 登录Azure Machine Learning Studio,进入「资产」→「模型」页面,点击「注册」。
- 选择「本地文件」,上传下载好的模型文件夹,填写模型名称(如
gemma3-4b),类型选择「自定义模型」,完成注册。
三、配置推理环境与评分脚本
1. 编写conda环境配置(conda.yml)
包含运行Gemma3 4b所需的依赖包,示例:
name: gemma3-inference-env channels: - conda-forge dependencies: - python=3.10 - pip - pip: - torch>=2.1.0 - transformers>=4.38.0 - accelerate>=0.27.0 - sentencepiece>=0.1.99 - azureml-core
2. 编写推理评分脚本(score.py)
实现模型加载和请求处理逻辑,示例:
import torch import json from transformers import AutoTokenizer, AutoModelForCausalLM def init(): global model, tokenizer # 从Azure ML模型资产路径加载文件 model_path = "./model" tokenizer = AutoTokenizer.from_pretrained(model_path) # 按需启用量化,降低显存占用 model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto" ) def run(raw_data): data = json.loads(raw_data) prompt = data.get("prompt", "") inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model.generate( **inputs, max_new_tokens=512, temperature=0.7, do_sample=True ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return {"generated_text": response}
四、部署到无服务器端点
- 进入Azure ML Studio「端点」→「无服务器端点」页面,点击「创建」。
- 填写端点名称,选择「自定义模型」关联已注册的Gemma3 4b模型。
- 选择计算规格:推荐
Standard_NC4as_T4_v3(带T4 GPU,满足4b模型显存需求);若接受低推理速度,可尝试CPU实例(如Standard_D4s_v3)。 - 上传
conda.yml和score.py,配置推理环境,确认后启动部署,等待端点状态变为「就绪」。
五、测试与优化
- 端点就绪后,在「测试」标签发送请求:
{"prompt": "简述大语言模型的微调方法"}
- 验证响应正常后,可做以下优化:
- 模型量化:引入
bitsandbytes库实现4bit/8bit量化,修改from_pretrained参数添加load_in_4bit=True,进一步降低显存占用。 - 自动缩放:在端点配置中设置缩放规则,根据请求量自动调整实例数,平衡成本与性能。
- 请求缓存:对重复请求添加缓存逻辑,减少模型推理次数,降低延迟。
- 模型量化:引入
内容的提问来源于stack exchange,提问作者Senthil Vikram Vodapalli
相关产品推荐
相关产品推荐

