基于本地 AI 大模型的 Emacs 翻译插件

我平常主要使用 insert-translated-name 这个插件来快速起英文名或者写英文注释。

后端的翻译程序一直是通过 crow-translate 来调用在线翻译网站来翻译内容(比如 google, bing, youdao 等), 这种实现方式的优势是翻译结果很好, 但是网络差一点或者没有网络的时候就没法使用了。

最近在研究 AI 大模型, 早上花了 5 分钟写了一个 补丁, 现在 insert-translated-name 可以使用本地大模型来执行翻译中文到英文的任务啦。

使用方法

  1. 更新 insert-translated-name 到最新版本
  2. 安装 ollama: linux 平台只需要一条命令自动安装, curl https://ollama.ai/install.sh | sh, 其他平台安装方式请参考 ollama 官网说明
  3. 下载 llama2-chinese 大模型: ollama run llama2-chinese 这条命令会自动下载 llama2-chinese 这个模型文件, 下载好了可以在终端测试一下
  4. 设置翻译程序后端: (setq insert-translated-name-program "ollama")

设置好以后就可以调用 insert-translated-name-insert 命令来测试了, 我测试了一下, 第一次稍微慢一点(应该是在加载模型文件到内存), 后面的翻译都是秒回了, 非常方便。

crow 和 大模型的优劣势分析

  1. crow 优点: 翻译结果更自然一点
  2. crow 缺点: 网络差返回翻译结果有点慢, 没网没法用
  3. ollama 优点: 本地翻译, 返回速度很快, 不用写代码起名字的时候过多等待
  4. ollama 缺点: 大模型对内存要求比较高, 7B/13B 模型翻译质量一般, 但是对于起名字完全够用, 估计 70B 的大模型效果会好很多
11 个赞

好奇跑这个模型本地需要多少资源(13B/70B)

13B的话16G内存就够了, 70B估计要64G内存, 主要是内存。

1 个赞

GPU还是CPU?

CPU就可以,当然我的电脑上有n卡,我不知道用起来没有

我 i9 32 核, 32G内存的性能表现, 供你参考。

估记 笔记本是跑不起了, 台式机 旧点的 DDR3 二插槽, 只能 2*8G=16G, 看来电脑也要换了 :innocent:

也有能跑起来的工具,比如 GitHub - danlou/safespace: Your local AI counselor. LLM app that runs offline from a single binary. ,这个也可以本机进行翻译工作,甚至可以问他英语语法问题。

1 个赞

我按照github上的文档添加了设置:emacs-lisp (add-to-list 'load-path (expand-file-name "~/.emacs.d/etc/insert-translated-name")) (require 'insert-translated-name) (setq insert-translated-name-translate-engine "youdao") (setq insert-translated-name-program "ollama") 开始会报错,说找不到python,我就把插件中python改成了python3,但还是运行了没有反应。(用的Macbook)

我直接在插件所在文件夹下执行 python3 ollama.py zephyr "绿巨人" 可以生成内容。

请问应该怎么配置才能正确调用?