用ollama启动duan-translator 小模型

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内存

相关推荐
imc.112 小时前
linux基础IO
linux·运维·服务器
躺不平的理查德2 小时前
让Ubuntu 的第二块网卡 ens37 永久固定为 192.168.30.111
运维·服务器
bitbrowser3 小时前
Facebook 验证反复回到原页面,应该从哪里排查
运维·服务器·facebook
糖果店的幽灵3 小时前
langgraph的分支结构之 - 静态分支详解
java·服务器·数据库·langgraph
虹科网络安全4 小时前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql
AC赳赳老秦4 小时前
招投标公开数据自动化采集实战:基于 OpenClaw 的定时抓取与业务关键词精准推送
运维·服务器·数据库·自动化·测试用例·deepseek·openclaw
酷可达拉斯4 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_777998345 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
星栈独行5 小时前
Node 接口该写同步还是异步?
服务器·开发语言·后端·程序人生·node.js