为rime输入方案添加语言模型支持
本帖最后由 Nanachi 于 2024-12-16 23:46 编辑语言模型可以让造句更加符合习惯,参考V2EX的这个帖子,没有语言模型的情况下基本就是胡乱组词。
语言模型和输入方案是解耦的,可以使用自己习惯的rime-ice/rime-frost等方案,然后:
下载模型
在LMDG的发布页下载模型。
模型文件版本说明:v是版本号,n是模型级别,m是百兆尺寸
文件大小2级模型3级模型
100Mv1n2m1v1n3m1
200Mv1n2m2v1n3m2
300Mv1n2m3v1n3m3
这里的模型级别指训练时着重训练的几个字:
多级 n-gram 语言模型 在大规模数据的支持下,我们采用了 n-gram 模型进行多级语言建模。具体包括了 unigram(单字模型)、bigram(双字模型)、trigram(三字模型)以及更高级的四字模型。
个人使用可以用n3,如果电脑性能不佳感觉卡顿,可以切换到n2(在作者的另一个方案中,上传有v3n2的模型)。
更新配置文件
找到使用的方案
打开你的Rime配置文件路径/用户文件夹,将下载好的模型文件 amz-v*n*m*-**.gram 放到其中。这里我下载的模型是 amz-v2n3m1-zh-hans
Windows上可通过右键托盘小狼毫图标-用户文件夹打开(一般为 %AppData%\Roaming\Rime );MacOS上一般为 ~/Library/Rime 。
然后打开你使用的配置文件 default.custom.yaml (或 default.yaml ,当两个文件都存在时以 custom.yaml 为优先),寻找其中 schema_list: 下面的内容。
比如我的 default.custom.yaml 就是这部分:
patch:
schema_list:
- {schema: rime_frost_double_pinyin_flypy}
说明我只用了 rime_frost_double_pinyin_flypy 这一个方案。
以默认的 default.yaml 为例,它是这样的:
schema_list:
# 可以直接删除或注释不需要的方案,对应的 *.schema.yaml 方案文件也可以直接删除
- schema: rime_frost # 白霜拼音(全拼)
- schema: rime_frost_double_pinyin # 自然码双拼
- schema: rime_frost_double_pinyin_mspy # 微软双拼
- schema: rime_frost_double_pinyin_sogou # 搜狗双拼
- schema: rime_frost_double_pinyin_flypy # 小鹤双拼
说明它启用了这五个方案(不列举了)。
更新方案配置文件
总之找到你要用的方案名称,然后对该配置文件打补丁。以 rime_frost_double_pinyin_flypy 方案为例,打开或新建 rime_frost_double_pinyin_flypy.custom.yaml 文件,然后在文件末尾加上这几行:
patch:
grammar:
language: amz-v2n3m1-zh-hans
collocation_max_length: 5
collocation_min_length: 2
translator/contextual_suggestions: true
translator/max_homophones: 7
translator/max_homographs: 7
其中 amz-v2n3m1-zh-hans 为下载好的模型文件名(无后缀名)。然后保存,重新部署,便能享受语言模型了。
效果展示
渐渐地就不在意了
使用前:
https://s2.loli.net/2024/12/14/MRPXo1cObLyfDwW.png
(「不/在意/了」被理解成了「不再/一乐」)
使用后:
https://p.sda1.dev/20/bdbf9bbcdcdde62b0ca2f028e7cc971e/1.webp
以前就会这样
使用前:
https://s2.loli.net/2024/12/14/Y4N5CSKGTzm7oew.png
(「以前/就会」被理解成了「一千九/会」)
使用后:
https://p.sda1.dev/20/7793862a47af23c9c149dfc37d3c45fe/2.webp
不管怎么使劲都不行
使用前:
https://s2.loli.net/2024/12/14/h6S7y1X32WHCigs.png
(「不管怎么/使劲/都/不行」 => 「不管怎么/是/筋斗/不行」)
使用后:
https://p.sda1.dev/20/891faeb694c26acf4885c68dc650b1cc/3.webp
无论如何你都不可能再离开这里了
使用前:
https://s2.loli.net/2024/12/14/FRSr3BV6IZNY9J2.png
(「离开/这里/了」 => 「离开/这/离了」)
使用后:
https://p.sda1.dev/20/fd570045406dedd406a42bfa5b4e506a/4.webp 这个方案手机上能用吗 感觉还是fcitx好用 植入 llm 这种东西为什么国内这些输入法厂商都没好好用?
微信输入法搞了一个抽象的问 AI,自己的自动联想和屎一样还经常隔半秒蹦第一个害得我点错了
—— 来自 Google Pixel 9 Pro, Android 15, 鹅球 v3.3.95-debug dejavuuuuuuuu 发表于 2024-12-16 13:24
这个方案手机上能用吗
可以试下同作者的「万象拼音」方案,我在手机端用微信输入法,不清楚rime。
rime现在还会因为和游戏不兼容炸掉吗
—— 来自 OnePlus PJA110, Android 14上的 S1Next-鹅版 v2.5.4 哦!有点意思。 有没有人试试3个模型级别有什么区别
这么看还是双拼加形比较爽,重码率少,打词组或者单字几乎不用选,本来想试试这个大模型结果发现自己用不到因为平时不选重 王牛子 发表于 2024-12-16 15:12
这么看还是双拼加形比较爽,重码率少,打词组或者单字几乎不用选,本来想试试这个大模型结果发现自己用不到 ...
打长句用得到
—— 来自 鹅球 v3.3.92 这个适用于五笔吗?
—— 来自 Xiaomi 23013RK75C, Android 14上的 S1Next-鹅版 v2.5.4 天知道 发表于 2024-12-16 15:47
这个适用于五笔吗?
—— 来自 Xiaomi 23013RK75C, Android 14上的 S1Next-鹅版 v2.5.4
你用的第三方修改版本,要先看看支不支持octagram 好东西,谢谢楼主分享,先马再折腾
这样一来,rime要是能锁定某些高频词的排序位置就真的没有什么死角了 GALLADE 发表于 2024-12-16 15:55
好东西,谢谢楼主分享,先马再折腾
这样一来,rime要是能锁定某些高频词的排序位置就真的没有什么死角了 ...
用custom-phase调整用户词权重应该能控制位置吧。
https://github.com/rime/home/issues/789
—— 来自 鹅球 v3.3.92 本帖最后由 samfs 于 2025-3-16 11:55 编辑
********** 本帖最后由 orca 于 2024-12-16 16:13 编辑
主楼“更新方案配置文件”代码的最后三行的缩进好像和官网配置说明不一样:
https://github.com/amzxyz/RIME-LMDG/wiki/语言模型参数配置说明 本帖最后由 Nanachi 于 2024-12-16 16:20 编辑
orca 发表于 2024-12-16 16:12
主楼“更新方案配置文件”代码的最后三行的缩进好像和官网配置说明不一样:
https://github.com/amzxyz/RIM ...
看了下自己的配置文件没错,应该是写作时格式调整出错了,已调整。 本帖最后由 生存戰略 于 2024-12-16 16:29 编辑
确实好用,可以忘记搜狗了。
第一款让生产力暴增的本地语言大模型
谢谢推荐!
不过在小鹤双拼模式下命中率偏低 Nanachi 发表于 2024-12-16 16:00
用custom-phase调整用户词权重应该能控制位置吧。
https://github.com/rime/home/issues/789
调权重还是没有锁定词序位置来得好用
而且新造的词(误输入)权重过高这个也得解决
但这些问题都不是关键的,属于不够完美而已,反正不可能用回那些窥私输入法就是了 导入进自己用的rime配置,但是打lz有些长句还是老的样子,请问有什么方法知道自己用上语言模型了? anoza 发表于 2024-12-16 16:45
导入进自己用的rime配置,但是打lz有些长句还是老的样子,请问有什么方法知道自己用上语言模型了? ...
我一直用主楼展示的例句检测启用与否的 Nintendo新手 发表于 2024-12-16 16:42
谢谢推荐!
不过在小鹤双拼模式下命中率偏低
我也是小鹤双拼,这个语言模型主要用途在造句。根据v2ex用户的说法:
我试了很多容易分词错误的或者搭配错误的句子,有一大半加了模型之后表现都好了很多。
而且感觉 100M 的模型和 300M 的模型之间有用差距,比如「能约上吗」在 100M 会被误解析成「能月上马」,300M 就不会有这个问题。
不过模型好像会受到用户词库词频的干扰,比如我刚刚打了个「上马」,现在不管用哪个模型都会被解析成「(月/约)得上马」了。
设备性能良好的话可以试试更大体积的模型? anoza 发表于 2024-12-16 16:45
导入进自己用的rime配置,但是打lz有些长句还是老的样子,请问有什么方法知道自己用上语言模型了? ...
那应该是没生效。我现在是改patch文件不生效,直接改方案文件才生效。我还在折腾,看我往patch里加是哪里出了问题。 orca 发表于 2024-12-16 17:11
那应该是没生效。我现在是改patch文件不生效,直接改方案文件才生效。我还在折腾,看我往patch里加是哪里 ...
刚刚摸索出来了,也是改自己的custom不行,直接往schema里面写就行了 我现在有个地方还没搞明白,白霜是基于雾凇改的,按雾凇的说明文档,“方案 xxx.schema.yaml 的补丁文件是 xxx.custom.yaml”,而主楼用的是xxx.schema.custom.yaml。我不知道我patch不生效的原因是否在这里,还得折腾。 天知道 发表于 2024-12-16 15:47
这个适用于五笔吗?
—— 来自 Xiaomi 23013RK75C, Android 14上的 S1Next-鹅版 v2.5.4
五笔有什么使用这个的必要吗
本来就只输入单字和词组,又基本不需要选词 orca 发表于 2024-12-16 17:23
我现在有个地方还没搞明白,白霜是基于雾凇改的,按雾凇的说明文档,“方案 xxx.schema.yaml 的补丁文件是...
*.custom.yaml是对的,感谢提醒
—— 来自 鹅球 v3.3.92 奇怪了,我只有加在schema文件里才能生效,加在custom文件里就不能生效。我这custom文件有啥问题
orca 发表于 2024-12-16 22:45
奇怪了,我只有加在schema文件里才能生效,加在custom文件里就不能生效。我这custom文件有啥问题
一样,在build生成的文件没有想关的内容 orca 发表于 2024-12-16 22:45
奇怪了,我只有加在schema文件里才能生效,加在custom文件里就不能生效。我这custom文件有啥问题
我又研究了下,可以试试只增加这几行:
grammar:
language: amz-v2n3m1-zh-hans
collocation_max_length: 5
collocation_min_length: 2
translator/contextual_suggestions: true
translator/max_homophones: 7
translator/max_homographs: 7 Nanachi 发表于 2024-12-16 23:32
我又研究了下,可以试试只增加这几行:
这样似乎可以了 Nanachi 发表于 2024-12-16 23:32
我又研究了下,可以试试只增加这几行:
虽然一头雾水(比如为什么不提octagram了),但的的确确是生效了233 本帖最后由 Nanachi 于 2024-12-17 08:07 编辑
orca 发表于 2024-12-16 23:49
虽然一头雾水(比如为什么不提octagram了),但的的确确是生效了233
之前在工作时间抽空写的教程,我个人是直接往schema里面加的,所以没仔细看。
其实参考佛振的示范就知道了。
他建议在*.custom.yaml中加入如下语句:
# luna_pinyin.custom.yaml
patch:
__include: grammar:/hant
这个的原理就是将grammar.yaml中hant下的配置段包含进来。然后找到这个grammar.yaml:
# grammar.yaml
hant:
grammar:
language: zh-hant-t-essay-bgw
translator/contextual_suggestions: true
translator/max_homophones: 7
translator/max_homographs: 7
所以,等效于在*.custom.yaml中直接添加后面几段。
再结合语言模型作者提供的配置参考,就推测应该只保留后面即可:
# *.custom.yaml
patch:
grammar:
language: amz-v2n3m1-zh-hans
collocation_max_length: 5
collocation_min_length: 2
translator/contextual_suggestions: true
translator/max_homophones: 7
translator/max_homographs: 7 https://github.com/gaboolic/rime-frost/issues/115
白霜作者的说法。期待后面会有更好的模型 本帖最后由 weifire 于 2024-12-17 15:26 编辑
编辑,解决了 PC端配置成功了,用起来可以
手机端可以用上吗,现在手机端用的雨燕
—— 来自 鹅球 v3.3.92-alpha 星尘的记忆 发表于 2024-12-17 16:53
PC端配置成功了,用起来可以
手机端可以用上吗,现在手机端用的雨燕
gurecn commented 2 weeks ago
感谢您的支持,当前雨燕输入法暂不支持自定义输入方案,仅支持内置方案。雨燕的初衷是为了做一款安装即可使用、输入体验良好的输入法,当前尚未规划支持自定义方案的计划,当然我会不断完善和丰富输入方案以满足不同人群的需求。若需要自定义方案的话,个人还是建议使用小企鹅来实现。
https://github.com/gurecn/YuyanIme/issues/189 舒服了,终于享受到大模型的红利 dejavuuuuuuuu 发表于 2024-12-16 13:24
这个方案手机上能用吗
小企鹅成功了,直接把电脑的配置文件夹打包过去了