傻瓜式部署本地Sakura翻译模型, LunaTranslator的好帮手
2187
写在前面
最近站长发帖锤了RenpyThief这个开源小偷. 本着正本清源的精神, 我认为有必要向大家推广有益于社区的翻译方式. 刚好最近我也尝试了Sakura翻译模型, 发现比想象中容易得多, 基本实现了傻瓜式部署. 并且即便是最轻量化的模型, 翻译效果整体也要优于在线翻译接口(百度, 谷歌等). 那么话不多说, 马上进入正题.
运行环境和硬件需求
首先是关于硬件需求的部分, 与很多人的刻板印象不同, AI翻译模型不再是高性能大显存GPU的专属, 主流游戏显卡甚至处理器内嵌的核心显卡都能满足需求. 这主要归功于Sakura的上游项目, 大语言模型推理库 llama.cpp (下文简称llama)提供了广泛的硬件支持, 同时它也是Sakura所需的运行环境, 它让我们不再局限于老黄的CUDA架构 (Linus: Fxxk you Nvidia🤗), 也能体验AI带来的便捷和强大之处.
只不过, 虽说有了强劲的后端支持, 也不代表我们随便拿点什么硬件就能运行Sakura, 另外还需要专门针对目标硬件优化的运行环境才能取得比较好的效果, 同时也能够避免潜在的运行问题或者错误. 幸运的是, 在各路开源大神的努力下, Sakura已经能够在llama支持的, 包含Nvidia, AMD和Intel独立显卡, 和以AMD Radeon 780M为代表的核心显卡 这些平台之上运行.
另一方面, 传统上除了Nvidia的CUDA这种生态比较广阔的架构以外, 不少GPU硬件都只提供了在Linux系统下面的运行支持. 例如AMD的ROCm, 能在网上找到案例基本都是在Linux系统环境下运行的, 并且多数都是面向开发者的教程, 这对我们用户的参考性比较有限, 无形中又增加了使用门槛, 毕竟仅仅为了AI翻译就安装多系统或者虚拟机未免有点小题大做.
而llama除了让我们能在硬件的选择面变广阔之外, 它对非CUDA架构的GPU在Windows系统的运行也提供了良好的支持. 这样一来, 硬件和系统的障碍都很大程度上都被清除了, 广大普通用户应用本地AI翻译的条件也就水到渠成.
结合其他资料, 以最轻量的Sakura模型大小(4.29GB)为前提, 我总结一下本地运行Sakura翻译模型的最低硬件需求:
- Nvidia GTX 10XX系列及其之后的GPU; AMD RX 6000 系列及其之后的GPU, Radeon 780M及其之后的核显GPU; Intel Arc 系列GPU
- 6GB或以上显存; 如果使用核显, 则最少需要16GB系统内存, 确保核显能够分配到其中6GB以上显存
简单解读一下, 以上各种GPU基本涵盖了目前玩家的主流选择. 6G显存的独显也就相当于Nvidia XX60或XX50级别的主流GPU. 此外, 硬件成本最低的Radeon 780M核显, 其在笔记本和Windows掌机之中比比皆是. 可以说, 近些年大部分Windows PC都能满足这个要求. 这可能出乎很多人的意料, 确实, 在很多AI模型的参考入门资料里面显存需求最低都是12GB起步, 除此之外GPU算力的需求也不低. 怎么到我这里随便拿个核显就能玩AI了, 不是在忽悠大伙吧😅?
对此我只能说技术发展日新月异, 我们需要积极更新自己的观点而不是囿于成见. 就我们关心的例子来说, 此AI非彼AI, 不同的工作负载对应的性能需求也不同. 早期模型体积庞大一定程度上也是不得已而为之, 当AI模型进一步往不同方向发展, 就有可能精简自己的身材同时适应更加专一的工作. Galgame的实时翻译就是一种非常专一的情况, 并且翻译工作的性能需求也很大程度上取决于用户的阅读速度. 只要不是推土机一路Ctrl或者用脚本批量翻译, 其实这种工作对算力的需求并不高, 因此才有了核显也能够运行AI翻译模型的可能. 反而显存大小才是非常硬性的要求, 最起码也得满足把AI模型整个放进显存中才有可能流畅运行.
当然, 除了认知要及时更新, 更加重要的是实践出真知. 要不是大佬们开源文档明明白白地写着, 再加上自己各种瞎搞才小有所成, 不然哪里轮得到我在这里胡编乱造大放厥词? 管他那么多, 干就完了😡.
部署Sakura
废话连篇的理论讲完了, 接下来就是枯燥的照本宣科环节. 为了验证llama的兼容性是否如其所言的那般广泛, 我就用比较偏门的硬件来进行演示. 本例中使用的GPU硬件是AMD Radeon RX 6600XT, 其显存大小为8GB; 操作系统为Windows 10 LTSC 2019.
参考 Sakura Launcher GUI 用户手册 , 本地部署Sakura模型的步骤总结起来就是
- 下载SakuraLauncherGUI
- 下载适合的Sakura模型本体
- 下载对应的llama运行环境
- 启动!!
看了上面的步骤是不是感觉非常简单? 具体步骤会在下面一一演示.
首先下载SakuraLauncherGUI(GitHub主页), 本文使用的版本是v1.1.0beta, 下载地址 . 下载完成之后即可得到程序本体, 无需安装.
我们需要建立一个空文件夹存放这个程序以及之后下载的相关资源, 由于后续资源体积接近6-8GB, 各位也要注意一下空间占用.
下载完成后启动SakuraLauncherGUI, 由于程序缺少数字签名可能会被杀毒软件拦截, 注意放行即可.
程序启动之后进入SakuraLauncherGUI的下载页面, 根据页面说明选择下载相应的Sakura模型. 如果是小白就无脑选择要求最低的GalTransl模型.
然后切换到llama下载页面, 根据硬件选择相应的llama运行环境. 本例中使用的是AMD独显, 因此选择ROCm运行环境. (这部分可以看到硬件不同llama提供的支持也不同, Nvidia自不必说😎, AMD的使用体验也大同小异😊, Intel就比较可怜😭, 至于其他硬件的话, emmmm...未来可期🙃)
当两者都下载完毕之后检查SakuraLauncherGUI的目录应该如下图所示
如果一切正常我们现在就可以启动Sakura模型了, 有兴趣的也可以跑一下上面的性能测试, 不过由于我也看不懂结果就干脆略过🙃
启动之前有一个注意事项就是, 对于系统中同时安装了多个GPU的情况, 可能需要参考用户手册中的相关说明进行操作
另外简单讲一下并发数量这个参数, 对于Galgame实时翻译设置为1即可. 毕竟正常来讲同一时间用户都只能推一个Gal, 因此基本不要求并发性能.
启动之后弹出控制台, 如果发现显示出进程pid和本机IP和端口号等信息则说明运行成功.
到目前为止我们的Sakura模型已经运行起来了. 既然店铺已经开张, 那接下来我们就得请顾客上门了. 除了找一个生肉Gal作为顾客, 另外还需要LunaTranslator作为管家为我们提取生肉文本以及和Sakura模型进行通信. 有关LunaTranslator的基本使用方法本文也不再赘述, 其官方教程已经非常直白, 因此默认各位已经清楚用它启动Galgame和提取文本, 简单说明与Sakura翻译模型相关选项即可.
LunaTranslator相关设置及翻译效果
启动LunaTranslator, 打开设置页面, 转到Sakura相关设置. 打开功能开关并设置相关参数.
对于Sakura的请求参数, 默认基本不用更改, 如果有调优的需求可以参考 模型发布页面 的相关说明.
调整之后效果如下
设置完成之后我们就可以在LunaTranslator中启动Galgame愉快地进行玩耍了😋. 在本文案例中选择的Galgame是柚子社旧作夏空彼方, 选他是因为顺手本身有汉化方便对照翻译效果, 另外生肉本体也不影响运行. 同时为了方便对比, 我还请来了百度和谷歌的在线翻译接口进行对照. 下面就让各位品鉴一下他们的翻译效果吧.
(百度和谷歌的人称翻译经常错乱, Sakura则很少出现这种问题)
(百度时不时会抽风吞翻译; 谷歌则有点每个单词一板一眼翻译的生硬感; Sakura翻译的多了查字典这段信息, 目测是上下文推理的结果, 总体比较通顺)
(前面两个的生草机翻真是绷不住了hhhhhhhh😂, 对比起来Sakura说的还像人话)
(最后贴一段历史翻译给各位进行更全面的对照)
不难看出, Sakura的翻译效果明显优于传统的在线翻译接口, 并且已经具备了上下文推理这些明显的AI翻译特征. 虽然AI翻译有时也会出现无中生有胡编乱造等情况, 但比起在线翻译动辄限流, 和谐等等受制于人的弊端可以说是天壤之别. 不管怎样, 一个完全掌握在自己手中的翻译模型就足以让我们深刻体会到AI带来的便利. 而这一切都要感谢各路开源大神的无私奉献, 才能让我们如此轻易地体验到最前沿的科技成果.
写在最后
本文到这里就告一段落了. 一路写下来, 我最深切的感受就是, 一个如此便利且强大的功能实现背后, 包含了多少开源人士用爱发电的努力付出. 仅以这篇文章涉及的开源项目为例, 简单列举一下即可略知一二:
- GitHub - ggerganov/llama.cpp: LLM inference in C/C++
- GitHub - SakuraLLM/SakuraLLM: 适配轻小说/Galgame的日中翻译大模型
- GitHub - PiDanShouRouZhouXD/Sakura_Launcher_GUI: Sakura模型启动器
- GitHub - HIllya51/LunaTranslator: Galgame翻译器,支持HOOK、OCR、剪贴板等。Visual Novel Translator , support HOOK / OCR / clipboard
而在这列出的每个项目的页面下方, 基本都有一个致谢列表, 或多或少都包含了更广泛的开源项目的启发或者更多相关人士的付出.
因此, 毫不夸张地说, 在这里, 我们每个人都是开源软件, 开源社区的受益者, 我们有责任去维护一个健康的社区. 在浅显了解开源之后我总是认为, 即便网络环境不可避免地往越来越污浊的方向前进, 但开源精神将会是网络社区里面最后的象牙塔, 乌托邦, 理想国. 不要求我们每个人都能在开源这座大厦里面添砖加瓦, 但起码不能做有害于社区的事情. 拿来主义, 有奶便是娘这些思维都不可取. 一个人可以身处社会底层, 但不能紧箍着底层才有的低级认知; 如果不能从认知上突破圈层, 那他永远都会是最底层的人, 无论他走到多高多远.
这里, 谨以此言与诸君共勉. 最后, 祝大家早日突破语言壁垒, 实现Galgame自由!
1108
支持
20-11-2024 - 12:48
1294
https://books.fishhawk.top/forum/656d60530286f15e3384fcf8
比绿站教程更适应gal的需求,支持下
20-11-2024 - 12:51