为什么 gpt 不能正确识别汉字的个数?

179 天前
 hutng

刚试了一下 claude 好像也不太行。

1585 次点击
所在节点    OpenAI
19 条回复
bankroft
179 天前
因为它不会思考,你把他当成高级搜索引擎就行了
cmdOptionKana
179 天前
为什么你会以为 gpt 能识别汉字个数?
Cooky
179 天前
MelodYi
179 天前
我觉得他对“前一句话”、“这一句话”的描述不太理解,你可以试下把要数数字的句子用引号框起来,然后再问他这句话有多少字。
Cooky
179 天前
十九八七六五四三二,前面这句话有几个汉字几个字符
mxT52CRuqR6o5
179 天前
现在的大语言模型因为 token 压缩的原因很难做这个事情吧
maolon
179 天前
模型的位置编码实现方式造成的问题,之前的位置编码没有考虑 token 与上下文之间的位置关系而是基于整段内容的位置进行编码,所以模型不能准确的完成计数任务,现在提出了一个新位置编码 CoPE 能解决这个问题,但是需要模型重新训练才能解决,显然这很费时间,所以短期内这些模型还是无法进行准确计数
fulajickhz
179 天前
@Cooky 我打不开 404
EvaDan
179 天前
这个涉及倒 GPT 技术底层的一些实现问题,主要是 tokenizer 。也就是把一个词/char 字符转成对应整型的数(并不一定就是一个)来表示。tokenizer 的实现有很多种,目前主流的是 BPE ,你可以去搜搜看。简单来说 字符串里的一个单元 经过 tokenizer 处理后,并不一定就是生成一个 token ,可能是多个,也可能是需要合并其他单元才生成一个。也就说你理解的字数 和最后输入到 GPT 的 token 数不一定不相等。
对应到你这个任务,如果 GPT 需要完成,它首先得对准确的截断出,你想要计算个数的的 token 再进行 decoder (反编码),然后再去计算个数,目前纯粹的数值计算并不是 GPT 的强项,所以效果不好。
不知道巴拉清楚没,哈哈
guoz
179 天前
可能一个是 token 的原因,gpt 思考汉语的语句单元不是单个汉字。英文的话每个单词是先会分开再映射 token 的,估计问题不大。
而且这类问题本身比较像算数,llm 天然好像不擅长。
zictos
179 天前
@MelodYi #4
我:
下面的引号中有几个汉字:
“安全性被认为是很重要的”

ChatGPT:
这个引号中有 7 个汉字。
Cooky
179 天前
@fulajickhz 删了,gpt 发挥不稳定,试了好几次都正常,结果蹦出来一个算错的
whileFalse
179 天前
@EvaDan @guoz 那么如果问他这段文字有多少个 token 它能准确回答吗
我很怀疑,因为 gpt 本质是个高级鹦鹉
guoz
179 天前
@whileFalse token 根据 tokenizer 不同分法是不一样的,所以没有准确答案。
如果说是问某个模型他本身用的 tokenizer 针对某句话的 token 数,可以试试用 tiktokenizer 交叉验证
titokenizer.vercel.ap
fulajickhz
179 天前
@Cooky 现在 AI 都这样,词语接龙

我之前传个 xls 文件,让他们统计下个数,每个 AI 给的都不一样
hutng
179 天前
@maolon
@EvaDan
@guoz
差不多大概明白了,感谢
TimePPT
179 天前
prompt 加点小 trick 就 ok 了

以下为 GPT -4o 测试结果:
User
要求不使用代码解析器,推断如下结果:
有一个字符串,str="十九八七六五四三二",请问 len(str)的返回值是多少

ChatGPT
字符串 str="十九八七六五四三二" 包含了中文数字字符。计算字符串长度时,每个字符都算作一个单位。虽然这些字符在视觉上占用的空间可能与字母或数字不同,但在 Python 中,每个字符无论是什么字符都是一个长度单位。

因此,计算 str 的长度时,每个字符都算作一个字符单位。这个字符串包含 9 个字符:










所以 len(str) 的返回值是 9 。

User
那 str="安全性通常被认为是重要的"呢

ChatGPT
字符串 str="安全性通常被认为是重要的" 包含中文字符和汉字。计算字符串长度时,每个字符都算作一个单位。这个字符串包含 11 个字符:













所以 len(str) 的返回值是 12 。
TimePPT
179 天前
@TimePPT 当然,中间步骤有瑕疵哈哈哈。

不过,如 LS 诸位所说,GenAI 的问题就是 predict next token ,所以他没法直接去做 count ,必须加必要的中间过程辅助拆解任务
shinsekai
179 天前
应该设计一种 Mathematica 与 GPT 混合的模型

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1052814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX