求助,模型打包为.gguf后输出出现了明显的差异,部署上ollama亦有差异
最近本人来开始摸索微调训练,因为需要部署在ollama上面,所以需要转换成.gguf格式,但是部署上了ollama后,发现结果和预期差异很大,所以一步一步往回追溯,最后发现使用convert_hf_to_gguf.py转换后的.gguf模型,使用llama-cli运行时的输出,和预期的差异很大,使用训练数据来测试,结果完全不对。另外部署上ollama后相同的输入数据,答案和上一步直接运行.gguf差异也很大
首先是转成.gguf前最后一步,验证adapter合并后模型模型的代码:
import torch
from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
pipeline,
BitsAndBytesConfig
)
from peft import PeftModel, PeftConfig
from datasets import load_dataset
import json
import time
# 1. 设置路径
merge_model_path = "/home/ps/pyCode/merged_model" # 原始基础模型
test_data_path = "/home/ps/文档/trainingData" # 测试数据集
# 2. 加载基础模型和分词器
tokenizer = AutoTokenizer.from_pretrained(
merge_model_path,
trust_remote_code=True,
padding_side="right"
)
tokenizer.pad_token = tokenizer.eos_token # 确保设置填充token
# 配置量化(可选,减少显存占用)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
merge_model = AutoModelForCausalLM.from_pretrained(
merge_model_path,
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True,
torch_dtype=torch.bfloat16
)
# 4. 创建文本生成管道
text_generator = pipeline(
"text-generation",
model=merge_model,
#device=model.device,
max_new_tokens=256, # 最大生成长度
do_sample=True, # 启用随机采样
temperature=0.7, # 控制随机性 (0-1)
top_p=0.9, # 核采样参数
tokenizer=tokenizer,
eos_token_id=tokenizer.eos_token_id
)
# 加载测试数据集
#test_data = load_dataset("json", data_files=test_data_path+ "/*.json", split="train")
outputs = text_generator([{"role":"system","content":"根据输入的症状描述或诊断症状名,告诉我对应的症状名,对应的贴敷方案"},{"role":"user","content":f"开放性脏器,经常反复感染,是妇科的常见病,多发病。临床上以小腹不适,活动后加重,腰酸,腿酸,白带过多,外阴瘙痒。盆腔炎性疾病包括女性生殖道器官及其周围组织(子宫、附件、盆腔腹膜等组织)。"}],
return_full_text=False, # 不返回输入文本
num_return_sequences=1,
)
# 提取生成的文本
response = outputs[0]['generated_text'].strip()
print(f"test question answer:{response}");
outputs = text_generator("<|begin▁of▁sentence|>根据输入的症状描述或诊断症状名,告诉我对应的症状名,对应的贴敷方案<|User|>黏黄鼻涕,舌质红苔黄,眼屎多,四肢暖,头痛,汗出热不解,咽红,大椎湿。发热的3-5天。<|Assistant|>",
return_full_text=False, # 不返回输入文本
num_return_sequences=1,
)
# 提取生成的文本
response = outputs[0]['generated_text'].strip()
print(f"no 2 test question answer:{response}");
第二次的是按照切词器格式直接输入文本来进行测试,这两次都达到了预期,和标准答案完全一致,我这个模型的system固定为:"根据输入的症状描述或诊断症状名,告诉我对应的症状名,对应的贴敷方案"

然后使用llama.cpp进行了模型转换,指令:"python3 convert_hf_to_gguf.py /home/ps/pyCode/merged_model --outtype f16 "

转换成功
最后运行llama-cli指令"/home/ps/gitProject/llama.cpp/build/bin/llama-cli -m Merged_Model-8.2B-F16.gguf --file prompt.txt"
prompt.txt内容如下,就是验证合并模型的第二次输入

运行结果:

明显不对,这个问题可能是什么原因导致的?
转换的详细log,运行llama-cli的详细log我会放在下面两楼
相关推荐
paddle2gguf文档
paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2gguf文档。paddle2ggu
LM Studio加载Ollama模型[代码]
本文详细介绍了如何在LM Studio中加载Ollama的模型。首先需要下载LM Studio和Ollama,并选择适合本地设备的模型版本(如deepseek-r1:7b)。接着通过Windows的Chocolatey安装jq库,并新建文件夹用于存放GitHub项目。克隆ollama-lmstudio-bridge项目后,执行其中的脚本文件,将模型共享到LM Studio的默认路径。最后在LM Studio的“我的模型”中即可看到并加载共享的模型。整个过程涵盖了从下载到配置的完整步骤,适合需要在本地运行模型的用户参考。
GGUF量化文件选型工具
本资源为独立原创、可运行、可测试的技术工具项目,包含完整源码、README、MIT LICENSE、原创与授权声明、自动化测试、真实运行截图及使用说明。适合开发者学习、验证和二次开发;项目默认离线运行,不包含第三方源码、模型权重、品牌素材或受限内容。
GGUF运行后端兼容矩阵工具|原创源码+测试+离线报告
原创本地工程分析工具合集单项资源。每个压缩包均包含完整 JavaScript/Node.js 源码、3 项自动化测试、可复现合成示例、离线 HTML/JSON/SVG 报告、1080×720 真实运行效果图、README、运行说明、功能清单、MIT License 及原创授权声明。Node.js 18+ 可直接运行,零第三方运行依赖,适合开发者进行工程预检、质量审查和交付复核。
8GB显卡本地大模型部署指南[项目源码]
本文档针对8GB显存环境下的本地大模型部署方案进行了详细对比分析。硬件方面,典型显卡包括RTX 3070、RTX 4060和GTX 1080 Ti,部署平台为Ollama。模型选型上,推荐Qwen2.5-Coder:7b(代码专用)、DeepSeek-R1:7b(通用推理)和Gemma2:2b(轻量通用),并提供了代码能力基准测试和特点对比。部署方案包括Ollama的安装、模型下载及断点续传。多模型并发运行时,8GB显卡推荐方案A(单模型运行Qwen2.5-Coder:7b或DeepSeek-R1:7b)或方案B(双模型组合:Qwen2.5-Coder:7b主力+Gemma2:2b辅助)。API服务配置支持Ollama原生API,并可通过Nginx反向代理、LiteLLM Gateway或Open-WebUI添加认证。使用场景推荐中,日常代码补全首选Qwen2.5-Coder:7b,复杂Bug调试用DeepSeek-R1:7b,简单任务用Gemma2:2b。最佳实践包括模型切换策略、显存优化和性能监控。常见问题解答了8GB显卡能否同时跑两个7B模型、量化级别选择及下载速度优化。最终推荐8GB显卡使用Qwen2.5-Coder:7b主力加Gemma2:2b辅助的组合。


