如何在VM本地离线部署TheBloke/Llama-2-7B-Chat-GPTQ并编写Python调用代码?
虚拟机离线部署TheBloke/Llama-2-7B-Chat-GPTQ及Python离线调用步骤
一、先在联网机器上备齐所有文件
因为目标VM是离线的,所有依赖和模型都得提前下载好:
- 拉取模型全量文件:下载TheBloke/Llama-2-7B-Chat-GPTQ的所有文件,包括GPTQ量化后的
.safetensors模型文件、config.json、generation_config.json、tokenizer_config.json、tokenizer.model、special_tokens_map.json这些配置文件,一个都不能少 - 下载Python离线依赖包:用
pip download命令把需要的包都下到本地目录,示例命令:
注意:torch版本要对应VM的CUDA版本(如果用GPU),要是VM只有CPU,就下载CPU版的torchpip download -d ./offline_pkgs transformers accelerate auto-gptq torch==2.0.1+cu118 --index-url https://download.pytorch.org/whl/cu118 - 存好依赖清单:执行
pip freeze > requirements.txt,方便后续VM上安装时核对
二、虚拟机离线环境配置
- 把刚才下载的模型文件、离线依赖包、requirements.txt都拷贝到VM的指定目录,比如
/opt/llama2-gptq/ - 确保VM有Python环境:建议用3.8-3.10版本,要是VM上没有,提前在联网机器下好Python安装包拷过去安装
- 安装离线依赖:进入依赖包所在目录,执行:
pip install --no-index --find-links=./offline_pkgs -r requirements.txt
三、编写Python离线调用代码
创建llama2_chat_offline.py脚本,代码如下:
from transformers import AutoTokenizer from auto_gptq import AutoGPTQForCausalLM # 替换成你实际的模型文件目录 model_local_path = "/opt/llama2-gptq/model_files" # 加载tokenizer,强制离线加载 tokenizer = AutoTokenizer.from_pretrained(model_local_path, local_files_only=True) # 加载GPTQ量化模型 model = AutoGPTQForCausalLM.from_pretrained( model_local_path, device_map="auto", # 自动分配GPU/CPU,纯CPU运行改成"cpu" local_files_only=True ) # 定义对话生成函数 def get_chat_response(user_input): # 遵循Llama-2的对话格式构造prompt prompt = f"<s>[INST] {user_input} [/INST]" inputs = tokenizer(prompt, return_tensors="pt").to("cuda" if model.device.type == "cuda" else "cpu") # 生成回复 outputs = model.generate( **inputs, max_new_tokens=512, temperature=0.7, top_p=0.95, do_sample=True, pad_token_id=tokenizer.eos_token_id ) return tokenizer.decode(outputs[0], skip_special_tokens=True) # 测试离线调用 if __name__ == "__main__": test_prompt = "你好,能给我讲个简短的笑话吗?" print(get_chat_response(test_prompt))
- 注意事项:
- 模型路径要和你拷贝到VM的目录完全一致
- 如果用GPU运行,要确保VM的显卡驱动、CUDA版本和下载的torch版本匹配
- 纯CPU运行速度会很慢,建议至少有4GB以上显存的GPU
四、验证运行效果
在VM中执行python llama2_chat_offline.py,如果能正常输出模型的回复,说明离线部署和调用成功
内容的提问来源于stack exchange,提问作者Diksha Gupta
相关产品推荐
相关产品推荐

