使用工具:
- open-webui:https://github.com/open-webui/open-webui
- T8star 收集的 json 文件
- ollama 最新阿里的开源大模型 qwq,现更新新模型:deepseekV3,有免费API可调用https://openrouter.ai/ 也很不错:DeepSeek V3 0324 (free) - API, Providers, Stats | OpenRouter
思路是进 open-webui 的社区安装Model,也可以自行创建,可以尝试下不同的现成的, 我选了一个NSFW的,按照建议进行设置,给ai一个json文件进行分析,然后提出写小说的要求,不断改进优化就可以得到你想要的小说了。
https://openwebui.com/models?query=writer

有些很天马行空的创意和想法,我看的很欢乐 ……有合理的也有不合理的……到后面有些不适合发出来了,不过不管是自娱自乐还是技术研究都有一定的可操作性
现在讨论一些技术问题,也可以拉到最后看总结
我在本地配open-webui的时候,重复输出很多字,或者输出被截断,每个模型的表现还不太一样,当然越贵的会越好,如果我回复的很简单,到最后就会无限趋近于同一个回复
1. 重复输出很多字
可能的原因:
-
采样参数问题 :如
temperature过低,top_p设得不合理,导致模型倾向于重复内容。 -
Prompt 设计问题 :如果你的输入本身就容易引导模型重复,它可能会“模仿”你的风格。
-
流式输出 Bug :某些 WebUI 版本的流式输出可能会错误地重复部分文本。 🔹 解决方案 :
-
提高
temperature(如 0.7~1.0 之间),增加输出的多样性。 -
调整
top_p(如 0.8~0.95)来让模型更随机但不过分发散。 -
检查 WebUI 版本,尝试更新到最新版本。
2. 输出被截断
可能的原因:
-
最大 Token 限制 :Open-WebUI 可能限制了
max_new_tokens,导致回复长度受限。 -
显存不足 :显存吃紧时,某些 WebUI 实现可能会中途截断输出,避免崩溃。
-
模型本身的限制 :一些小模型(如 7B 或更小)可能在长文本生成时表现不稳定。 🔹 解决方案 :
-
增大
max_new_tokens(比如 512 或更高)。 -
关闭一些占用显存的 WebUI 功能(如高精度推理)。
-
试试更大、更稳定的模型(如 13B、30B 或 GPT-4 级别)。
3. 简短回复导致输出无限趋近于同一个答案
可能的原因:
-
低
temperature:如果temperature设得很低,模型会尽可能给出最“确定性”的答案,导致输出高度一致。 -
模型记忆短期历史 :有些模型(特别是本地部署的小模型)对上下文的记忆有限,导致短回复时倾向于重复模式。 🔹 解决方案 :
-
提高
temperature,增加top_p,让输出更随机一些。 -
适当增加
context length(如果模型支持的话)。 -
换更强的模型(如
Mistral、Llama 3)。 高精度推理(High Precision Inference) 通常指的是使用更高精度的数值计算方式(如fp16、bf16或fp32)来执行推理,以提高模型的准确性和稳定性,但可能会增加显存占用。
在 Open-WebUI 或 LLM 推理框架 (如 text-generation-webui 、 Ollama 、 LM Studio )中,高精度推理通常涉及以下设置:
1. 精度模式
在 Open-WebUI 的后端(如 text-generation-webui 或 llama-cpp-python ),可能会有以下几种精度模式:
| Column 1 | Column 2 | Column 3 | Column 4 |
|---|---|---|---|
| 模式 | 说明 | 优点 | 缺点 |
fp32 (单精度) | 32 位浮点计算 | 最高精度,最稳定 | 需要最多显存,速度较慢 |
bf16 (脑浮点) | 16 位浮点,但有更好的动态范围 | 精度较高,速度快 | 需要 GPU 支持(如 A100、4090) |
fp16 (半精度) | 16 位浮点计算 | 占用显存少,速度快 | 可能会降低精度 |
int8 (量化) | 8 位整数计算 | 省显存,适合低端显卡 | 可能损失一部分质量 |
int4 (极端量化) | 4 位整数计算 | 极致省显存,适合 CPU | 精度损失明显 |
🔹 如何设置?
- 如果你用的是 llama.cpp ,可以在启动参数里加
-f16或-f32来控制精度。 - 如果你用的是 text-generation-webui ,可以在 加载模型时选择
bf16或fp16量化 。 - 如果你用的是 Ollama ,可以选择
format:fp16来降低显存使用。
2. 高精度模式可能导致的问题
- 显存不足 :如果你的 GPU 显存小于 12GB,
fp32可能导致 OOM(显存溢出)。 - 性能下降 :在低端 GPU(如 3060 6GB)上,
fp32计算可能会拖慢推理速度。 - 输出被截断或重复 :有时高精度计算会意外导致
Open-WebUI输出异常,比如 重复生成相同内容 或 中途截断 。
3. 应该怎么做?
如果 显存充足(>=16GB) ,可以试试:
-
bf16(最推荐,兼顾精度和性能) -
fp16(如果bf16不支持) 如果你的 显存有限(<12GB) ,可以: -
使用
int8或int4量化模型 -
选择
fp16并降低max_new_tokens关注precision相关选项
总结
之前本地跑小模型哪怕是70b的,调了很久的参数,后来发现换了Google大模型问题什么都解决了,所以还是模型被精简量化的太厉害了,要么付费买API ,要么有一个强力的电脑上强力模型,才能达到想要的效果。差距很大的,甚至可以说是老人机和智能机的区别,用完会有明显的感觉。
申明:以上仅做技术分享