You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带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.4
    
  • model.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. 配置推理端点

  1. 登录Hugging Face Hub,进入你的仓库页面
  2. 点击顶部「Deploy」按钮,选择「Inference Endpoints」
  3. 选择支持4-bit量化的GPU实例(如T4、A10G)
  4. 确认配置后启动端点,即可通过API调用实现带RAG的模型推理

内容的提问来源于stack exchange,提问作者No Flag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:13:12