用ollama启动duan-translator 小模型
2026/7/22 2:07:23 网站建设 项目流程

duan-translator小模型是专门为了段言这门中文编程语言而微调训练的,可以帮助我们写段言的程序,确切来说,是可以把python代码转为段言代码!

启动ollama并绑定到0.0.0.0

export OLLAMA_HOST=0.0.0.0:11434 ollama serve

启动模型

skywalk@fb98:~ $ ollama run duan-translator >>> hello Hello! How can I assist you today? >>> Send a message (/? for help)

成功了!

skywalk@fb98:~ $ ollama run duan-translator
>>> 将Python代码转为段言代码:\n\nPython 代码:\ndef hello(): print('hi')
段落 hello:
打印("hi")

>>> Send a message (/? for help)

Dumate测试结果

全部测试通过!Q80 量化完美保留了微调知识,推理速度 28 tok/s,全部翻译正确。

来看一下结果对比:

Python 代码段言翻译正确
def add(a, b): return a + b段落 加法 接收 a, b:/返回 a 加 b
递归阶乘段落 超乘 接收 n:/如果 n 小于等于 1:/返回 n 乘 超乘(n 减 1)
for i in range(10): print(i)遍历 i 于 0至9:/打印(i)
条件分支设 x 为 10/如果 x 大于 5:/否则:

关键结论:

  • Q8_0 量化(531MB)是 0.5B 小模型的最佳选择——精度足够保留 LoRA 微调知识,且能在 Quadro K4200(4GB VRAM)上流畅运行
  • 之前 Q4KM(398MB)量化太狠,把微调学到的段言语法知识全丢了
  • 推理速度~28 tok/s,首次加载稍慢(35s),后续 1-3 秒/次
  • 模型已部署在http://192.168.0.88:11434,模型名duan-translator

现在可以通过 ollama API 随时调用了。比如:

import requests resp = requests.post("http://192.168.0.88:11434/api/chat", json={ "model": "duan-translator", "messages": \[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": "将Python代码转为段言代码:\n\nPython 代码:\ndef hello(): print('hi')"} ], "stream": False }) print(resp.json()["message"]\["content"])

大段测试

结果很清晰了。以下是 4 个复杂测试的分析:

Test 1 - 冒泡排序:完美

  • 嵌套循环、swap 临时变量、函数调用、数组字面量全部正确
  • range(n)遍历 i 于 0至n减1range(0, n-i-1)遍历 j 于 0至n减i减2都精确翻译

Test 2 - 二分查找:部分正确⚠️

  • 模型输出了两个版本(第一版有错误后自行重试),说明 0.5B 模型在长代码上会出现重复生成
  • while left <= right当 左大于等于右(条件方向搞反了)
  • return -1返回 减 1(丢了变量名)

Test 3 - 类与继承:失败

  • 训练数据中 OOP 样本不足,模型开始幻觉(重复定义、混用/自己、继承语法混乱)

Test 4 - 字典+列表推导:部分正确⚠️

  • 列表推导\[s for s in students if ...]正确拆解为遍历 + 如果 + 追加
  • 但 f-string 翻译不正确,出现了跳过(遍历...)等无意义输出

总结:0.5B 模型 + 881 条训练数据的能力边界——

代码模式翻译效果
函数定义、参数、返回值✅ 精准
for/while 循环、嵌套循环✅ 良好
条件分支 if/elif/else✅ 良好
变量赋值、运算✅ 精准
数组操作、swap✅ 良好
异常处理 try/except⚠️ 部分
f-string 格式化❌ 不支持
类/继承/OOP❌ 训练数据不足
列表推导式⚠️ 能拆解但有噪声

如果要提升 OOP 和高级语法的翻译质量,下一步可以扩充训练数据集,补充类定义、继承、列表推导、f-string、异常处理等模式的 Python→段言 对照样本。需要我来做吗?

碰到的问题

虚拟机卡的要命

是因为原来双cpu 24内核+64G内存,分配给虚拟机24G内存和16内核

现在是单cpu 12内核+32G,把虚拟机改回10内核和 20G内存

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询