把本地大模型用起来——电子书翻译
- 2026-10-06 06:20:35
除了企业应该部署自己的大模型和 Agent 外。个人也应该积极部署大模型并拥抱大模型提供的 AI 生态。我说的大模型不局限于语言大模型 LLM,但今天这个案例是有关 LLM 的。
今天聊聊如何利用 LLM 翻译外文书籍。起因是我帮助朋友部署了自己的本地大模型和网络(利用 WireGuard 为远程 AI 开发环境搭建基础网络:CentOS 7、macOS、Windows 三端互联实践 )。上周他因为学术研究需要某领域的知识,麻烦的是他只找到了一本开源的英文书籍,希望我能帮助他利用大模型翻译成中文。
现在人们对于翻译质量的要求越来越高了,仅仅依靠传统翻译软件只会得到一个机翻味浓厚的译本。但 LLM 不一样,因为他能明白语义,因此也能获得更好的翻译效果。
浏览器插件沉浸式翻译[链接1]是可以实现的。但它背后其实也是通过 LLM,且你只能用到它指定的免费大模型或者用付费的 LLM API。 我自己以前就用过沉浸式翻译的免费接口,但个人认为翻译效果不好,或许是因为几年前的 LLM 和现在大模型的能力不是一个量级。顺便提一句,虽然该产品后来不再是社区产品而是被商用了。但 Respect 沉浸式翻译最早的开发者 Owen(欧文)。
回到本地大模型。
既然朋友已经有了本地 AI 套件,为何不自己实现大模型翻译呢?于是我帮他找到了一个开源翻译工具[链接2]:
bilingual_book_maker 是一个 AI 翻译工具,使用 ChatGPT 帮助用户制作多语言版本的 epub/txt/md/srt 文件和图书。
大模型选择
没必要用 vLLM,用 ollama 搭配 qwen2.5-coder:14b[链接3] 就足够好了。甚至我认为 qwen2.5-coder:7b 也够了。
bilingual_book_make
安装
两种方式:
直接 pip install -U bbook_makerclone 仓库 https://github.com/yihong0618/bilingual_book_maker.git,然后pip install -r requirements.txt
我选择的是第 2 种,并用 venv 创建的 python 虚拟环境中进行的。对于不熟悉 python 的第一种安装方式就挺好。
使用
python3 make_book.py \ --book_name your-book.epub \ --model openai \ --model_list qwen2.5-coder:14b \ --openai_key sk-local \ --api_base http://172.26.100.2:5000/v1 \ --language "Simplified Chinese" \ --single_translate \ --translate-tags p,li,h1,h2,h3,h4,td,th如果用的 pip install -U bbook_maker 则:
bbook_maker \ --book_name your-book.epub \ --model openai \ --model_list qwen2.5-coder:14b \ --openai_key sk-local \ --api_base http://172.26.100.2:5000/v1 \ --language "Simplified Chinese" \ --single_translate \ --translate-tags p,li,h1,h2,h3,h4,td,th为了方便新手,给上面命令做几点说明:
your-book.epub 换成你自己的书名 🙂 openai_key 因为是本地的模型,所以随便写 api_base 是 http://172.26.100.2:5000/v1 原因有二: http://172.26.100.2 是 WireGuard 组的局域网中有大模型服务的 windows 电脑。详情见利用 WireGuard 为远程 AI 开发环境搭建基础网络 端口 5000是因为我在给他搭大模型服务时,在大模型前面加了 LLM API 网关。该网关服务的端口是5000。如果不加这个网关,则用 ollama 提供的默认端口11434要设置 translate-tags。因为 bilingual_book_make 默认只翻译 <p>标签。或则不用-- translate-tags而用--plan-classify。先把整本电子书文本节点进行规划(plan),判断哪些应该翻译、哪些应该跳过。注意 plan-classify 和 translate-tags 互斥,也就是设置了translate-tags 就会忽略 translate-tags。translate-tags 有 4 种模式:none、most、model、agent。因为他主要是学术内容,tags 也就那些了。所以我直接用 translate-tags 设置了需要翻译的 tags。你可以自行测试 plan-classify 下面这些模式:模式 做什么 none 默认模式,不做 plan,只翻译 --translate-tags指定的标签most 基本全部翻译,不让模型做筛选 model 先让大模型判断哪些内容需要翻译,再翻译 agent 先不调用 LLM API,程序自动生成 plan 和提示词,再交给 Agent 判断。 默认翻译结果是双语对照,就是书里面会同时显示英文和中文。加上 -- single_translate就只保留中文译文如果翻译突然中断了,下次再启动时记得加上 -- resume参数,会自动从上次翻译进度开始而不是从头再来。另外还有不少有用的参数,比如 -- book_from可以直接从电子阅读器获取电子书,比如 kobo 阅读器。更多的可以阅读该项目 README。
最后
这是一个非常简单的语言大模型使用案例,但对很多人来说就是解决了很大的一个问题。特别是科研狗。
我们聚焦开源生态,无论是企业还是个体层面。如果你有什么使用上的不明白,可以联系我,我们乐意提供帮助。
帮助转发、点赞和关注。
往期回顾
利用 WireGuard 为远程 AI 开发环境搭建基础网络:CentOS 7、macOS、Windows 三端互联实践 面对疾风吧!(公众号被限流后的改进措施) 神马都可聊”第一篇(暨 Docs+ 仿聊天模板语法测试) 如何彻底消除 Mac 和 PC 两个操作系统和物理键盘的差异 三年前我参加了北大正念项目组。经过三年的练习,我到底练了个啥?
引用链接
[1] 沉浸式翻译: https://www.immersivetranslate.net/[2] 开源翻译工具: https://github.com/yihong0618/bilingual_book_maker[3] qwen2.5-coder:14b: https://ollama.com/library/qwen2.5-coder