Closed neavo closed 1 month ago
应该是AI翻译错行的问题,在开启处理首位非文本字符功能后,原文是 "モニター": "ニトロ": "ニトロ" "ニトロ"
然后AI翻译成 "妮特罗单间前", "妮特罗单间前", "妮特罗单间前", "显示器",
这个没办法检查出来
是不是应该排查一下代码BUG?印象中好像之前没有遇到这个问题,我也再试试看能不能稳定复现
以前的gpt3.5一直出现这个问题,针对性写了个错行检查方法,用检查原句与译句的字数,符号,以及词向量距离来判断,不过后面在线模型出现这个问题越来越少了,就弃了
以前的gpt3.5一直出现这个问题,针对性写了个错行检查方法,用检查原句与译句的字数,符号,以及词向量距离来判断,不过后面在线模型出现这个问题越来越少了,就弃了
我试着手动发了一些请求case来观察结果,并未发现错位的情况,可能还是应该检查一下代码
以前的gpt3.5一直出现这个问题,针对性写了个错行检查方法,用检查原句与译句的字数,符号,以及词向量距离来判断,不过后面在线模型出现这个问题越来越少了,就弃了
已确认是代码问题而非模型输出的问题。 这是一个Case:
原文为:
{
"当たり前じゃん……ってあれ?" :"",
"ああ、そっかあんまし" :"",
"が遅いから様子見に来たんだっけ。" :"",
"夜更かしはダメだよ、幾ら男子だからってね。" :"",
"年取ってからお肌にキちゃうぞ?" :"",
"あ、ああ……うん。" :"",
"ごめんよ、もうすぐ休むから……。" :"",
"ウン、じゃあ上で待ってるね。" :"",
"う、うん……すぐに行くよ……。" :"",
"……大丈夫だよ。" :"",
"の言う通り今日は大人しくしてるからさ。" :"",
"安心して出掛けて来て?" :"",
"。心配してたんだよ?" :"",
"すぐに帰って来るって言ったでしょ。" :"",
"それより調子はどう?" :"",
"うん、もうすっかり大丈夫。" :"",
"って言うかその……さ。もしかしてあたしったら" :"",
"何か" :"",
"に変な事言ったりした?" :"",
"何か今日は妙に心配してくれるし……。" :"",
"ただ、ひどく疲れているみたいだったからね。" :"",
"暫くは休んでいた方がいいのかもと思ってさ。" :"",
"大丈夫だって。ホラ、この通り。くるくるっ。" :"",
"(くるくる……?)" :"",
"そうだ、ニトロ。少しだけジっとしていてくれる?" :"",
"何?あ、ただいまのキス?" :"",
"もしかして眼とか閉じた方がイイ感じ?" :"",
"ち、違うって……。" :"",
"(やっぱり……症状そのものはほんの少しだけど、確かに" :"",
"進行はしている。でも……思った程じゃない)" :"",
"(そうなんだ……思った程じゃない。このマドロ特区に" :"",
"いれば当然反応する様な数値でしかない。" :""
}
模型输出为:
那不是当然的吗……咦?
啊啊,对了,因为
太晚了,所以才过来看看情况的吧。
熬夜可不行哦,就算是男孩子也一样。
上了年纪以后皮肤会变差的哦?
啊,啊啊……嗯。
抱歉,我马上去睡……
嗯,那我在楼上等你哦。
嗯、嗯……我马上就去……
……没事的。
正如
所说,今天我会老老实实的。
放心地出门吧?
。很担心你哦?
我不是说过马上就会回来吗。
比起这个,身体怎么样了?
嗯,已经完全没事了。
话说那个……啊。难道说
对
说了什么奇怪的话吗?
总觉得今天你莫名地担心我……
只是,你好像非常疲惫的样子。
所以我觉得暂时休息一下比较好。
都说没事了。你看,就像这样。转转转。
(转转转……?)
对了,硝化甘油。能稍微静止一下吗?
什么?啊,是说刚才的吻吗?
难道说闭上眼睛会更有感觉吗?
不、不是啦……
(果然……虽然症状本身只有一点点,但确实
在进行。但是……没有想象中那么严重)
(这样啊……没有想象中那么严重。只是在这个马多罗特区
理所当然会有的反应而已。
应用内结果为:
{
"当たり前じゃん……ってあれ?": "那不是当然的嘛……诶?",
"ああ、そっかあんまし": "啊啊,对了,因为",
"が遅いから様子見に来たんだっけ。": "太晚了,所以过来看看情况。",
"夜更かしはダメだよ、幾ら男子だからってね。": "熬夜可不行哦,就算是男孩子也一样。",
"年取ってからお肌にキちゃうぞ?": "上了年纪以后皮肤会变差的哦?",
"あ、ああ……うん。": "啊,啊啊……嗯。",
"ごめんよ、もうすぐ休むから……。": "抱歉,我马上休息……",
"ウン、じゃあ上で待ってるね。": "嗯,那我在上面等你。",
"う、うん……すぐに行くよ……。": "嗯,嗯……我马上就去……",
"……大丈夫だよ。": "……没事的。",
"の言う通り今日は大人しくしてるからさ。": "正如",
"安心して出掛けて来て?": "所说,今天我会老实待着的。",
"。心配してたんだよ?": "放心地出门吧?",
"すぐに帰って来るって言ったでしょ。": "我可是很担心你的哦?",
"それより調子はどう?": "我不是说了马上就会回来吗。",
"うん、もうすっかり大丈夫。": "比起这个,你身体怎么样了?",
"って言うかその……さ。もしかしてあたしったら": "嗯,已经完全没事了。",
"何か": "话说……那个。难道我",
"に変な事言ったりした?": "说了什么",
"何か今日は妙に心配してくれるし……。": "奇怪的话吗?",
"ただ、ひどく疲れているみたいだったからね。": "总觉得今天你莫名地担心我……",
"暫くは休んでいた方がいいのかもと思ってさ。": "只是,你好像非常疲惫。",
"大丈夫だって。ホラ、この通り。くるくるっ。": "所以我觉得你暂时休息一下比较好。",
"(くるくる……?)": "都说没事了。你看,就像这样。转转转。",
"そうだ、ニトロ。少しだけジっとしていてくれる?": "(转转转……?)",
"何?あ、ただいまのキス?": "对了,妮特罗。你能稍微站定一下吗?",
"もしかして眼とか閉じた方がイイ感じ?": "什么?啊,是说回来时的吻吗?",
"ち、違うって……。": "难道说闭上眼睛会更有感觉?",
"(やっぱり……症状そのものはほんの少しだけど、確かに": "不,不是的……",
"進行はしている。でも……思った程じゃない)": "(果然……虽然症状本身只有一点点,但确实",
"(そうなんだ……思った程じゃない。このマドロ特区に": "在恶化。但是……没有想象中那么严重)",
"いれば当然反応する様な数値でしかない。": "(这样啊……没有想象中那么严重。只是在这个马托罗特区"
}
可以看到,原文为 32 行
模型在翻译时,将 の言う通り今日は大人しくしてるからさ。
拆为了 2 行,输出变为了 33 行
但是应用并未检测到行数不一致,而是直接取了前 32 行,最终导致错位
这个问题应该只需要在进行结果检验时确保 输入输出行数一致
就可以解决了
但是我在代码中发现只检查了 输出行数大于输入行数且连续
这是为什么?
之前模型输出串行内容时,有时会中间缺一行,比如回复 0:xxx 1:bbb 3:cccc
Sakura是回复行文本,没有带序号,是程序直接转换成json格式,规避了序号检查。确实没有考虑过Sakura错误输出后多行的情况,可以改进一下行数检查,再加个行数是否一致
之前模型输出串行内容时,有时会中间缺一行,比如回复 0:xxx 1:bbb 3:cccc
Sakura是回复行文本,没有带序号,是程序直接转换成json格式,规避了序号检查。确实没有考虑过Sakura错误输出后多行的情况,可以改进一下行数检查,再加个行数是否一致
ok,一会儿我发个pr
举个例子:
很明显,モニター 和 ニトロ 的翻译错位了
对翻译质量影响较大,因为这些短语都是经常使用的菜单项
但是暂时还不知道如何稳定复现,而且很难通过译后脚本进行排查,先留个记录