首要说明:v_llama_cpp 是基于 llama.cpp 的 V 语言封装库,不推荐或评价任何特定厂商的模型。用户可根据需求自由使用任何 GGUF 格式的模型(包括 DeepSeek、Qwen、Gemma 等)。
在最近一次更新中,我们将示例代码(examples/ez_simple.v)中的模型从 DeepSeek-R1-Distill-Qwen 更换为 Google Gemma-3-1b。以下是完整且透明的技术解释。
核心原因(技术中立角度)
这是一次基于演示实用性和用户体验的技术决策,并非对任何模型能力优劣的定性判断。主要考虑如下:
详细决策逻辑
大小与下载友好性
当用户本地没有模型时,我们的示例代码会通过 ModelUrl 从 HuggingFace / ModelScope 自动下载。相比 DeepSeek,选择 Gemma 是因为它的体积更小。在体积相近的情况下,Gemma 不需要更激进的量化,且幻觉现象远少于 DeepSeek,更适合快速测试。虽然 1b 的 Gemma 模型知识库比 1.5b 模型更窄,但我们更看重开发过程中的有效性(例如模型在测试中是否能记住之前的对话,是否按预期分配上下文等)。
“思维链”对演示的影响
DeepSeek R1 等版本会输出 思考过程,这在实际应用中往往很有价值。但在最小化示例(ez_simple.v)中,我们希望展示最直接的问答模式:用户输入 → 模型输出。相比看到类似“嗯,用户问的是……”这样的思考链,我们更希望快速获得反馈以进行后续测试。Gemma 模型没有这个问题,它的输出简洁直接。
政策与合规性
研究型模型往往比大公司公开发布的模型更受青睐。我们理解 DeepSeek 在政策上的优势。用户可以自由切换到 DeepSeek、Qwen、ChatGLM 等模型。如果你有合适的 GPU,我们甚至建议运行更大的模型。如果在切换模型时遇到问题,欢迎联系我们进行适配。
结论
为了统一示例的测试环境,我们不再为 DeepSeek 提供测试代码。如果你想使用 DeepSeek 模型进行测试,可以自行保存文件并使用以下代码运行:
module mainimport osimport v_llama_cpp {ModelUrl,}fn main() {model_url := ModelUrl{url: ['https://www.modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF/resolve/master/DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf','https://huggingface.co/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF/resolve/main/DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf',]sha256: '6b01273c847100f7e594c34869670430fc3597b3897f839664ed4ba4588f5c54'}model_path := './DeepSeek-R1-Distill-Qwen-1.5B-Q2_K.gguf'mut ctx := ModelUrl(model_url).ez_load_model(model_path, -1, 2048, 512) or {println('load model failed.')return}input_buffer := os.input('>')prompt := '<|User|>${input_buffer}<|Assistant|><think>\n'print('deepseek: ')ctx.ez_response(prompt, 512, 256, print_token) or { println('response failed.') }}fn print_token(token string) {print(token)}
感谢您的理解与支持!
—— Sakana 网络安全团队
夜雨聆风