带RAG流水线的4-bit量化OpenLLaMA 13B本地保存与HF部署问题
问题1:解决4-bit量化模型的保存与加载问题
直接用torch.save(model.state_dict(), 'path')保存BitsAndBytes量化的模型只会存储量化适配器相关参数,而非完整模型权重,这就是无法正常加载和推送的原因。正确做法是使用Hugging Face Transformers的save_pretrained()方法,它会自动处理量化模型的所有必要文件:
正确保存代码
# 保存量化模型到本地目录 model.save_pretrained("./quantized_openllama_13b") # 同时保存tokenizer(推理必备) tokenizer.save_pretrained("./quantized_openllama_13b")
本地加载保存后的模型
加载时指定保存目录,并传入相同的BitsAndBytesConfig配置即可:
bnb_config = transformers.BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type='nf4', bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=bfloat16 ) model = transformers.AutoModelForCausalLM.from_pretrained( "./quantized_openllama_13b", quantization_config=bnb_config, device_map='auto' ) tokenizer = transformers.AutoTokenizer.from_pretrained("./quantized_openllama_13b")
推送到Hugging Face Hub
使用push_to_hub方法直接推送整个模型目录到你的Hub仓库:
model.push_to_hub("你的用户名/quantized_openllama_13b", use_auth_token=hf_auth) tokenizer.push_to_hub("你的用户名/quantized_openllama_13b", use_auth_token=hf_auth)
问题2:部署到Hugging Face推理API
要部署带RAG的推理API,需完成以下步骤:
1. 准备必要文件
在模型目录中添加以下文件:
requirements.txt:列出所有依赖包,示例:transformers>=4.35.0 bitsandbytes>=0.41.0 accelerate>=0.24.0 langchain>=0.1.0 faiss-cpu>=1.7.4model.py:实现完整的RAG+推理逻辑,示例框架:from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig # 导入你的RAG检索模块(向量库、文档加载等) bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type='nf4', bnb_4bit_use_double_quant=True, bnb_4bit_compute_dtype=bfloat16 ) # 加载模型和tokenizer model = AutoModelForCausalLM.from_pretrained( "./", quantization_config=bnb_config, device_map='auto' ) tokenizer = AutoTokenizer.from_pretrained("./") def predict(inputs): # 提取用户查询 query = inputs["query"] # 执行RAG检索:从向量库获取相关文档(替换为你的检索逻辑) retrieved_docs = your_retrieval_function(query) # 构建带参考文档的提示词 prompt = f"参考文档:{retrieved_docs}\n用户问题:{query}\n回答:" # 模型生成回答 inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=512) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return {"answer": response}config.json:save_pretrained会自动生成,无需手动创建
2. 推送完整仓库到Hugging Face Hub
用Git命令推送所有文件:
git init git add . git commit -m "Add RAG-enabled quantized model and inference code" git remote add origin https://huggingface.co/你的用户名/你的仓库名 git push -u origin main
3. 配置推理端点
- 登录Hugging Face Hub,进入你的仓库页面
- 点击顶部「Deploy」按钮,选择「Inference Endpoints」
- 选择支持4-bit量化的GPU实例(如T4、A10G)
- 确认配置后启动端点,即可通过API调用实现带RAG的模型推理
内容的提问来源于stack exchange,提问作者No Flag
相关产品推荐
相关产品推荐

