-
Notifications
You must be signed in to change notification settings - Fork 706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Badcase]: 英文分词问题以及数据发现 #1161
Comments
我用相同的方法分析了deepseek的词表,发现他们家都是科研论文为主,没有看到代码的词汇。具体可以参考 issue deepseek-ai/DeepSeek-V3#273 |
OpenAI的词表也做了分析,可以参考 issue |
中文我也用deepseek做了类似的分析 一个用来训练大模型的中文语料库包括海量的文本数据,其中经过BPE算法分析发现词表中包含如下长词: 请问文本数据可能包括哪些专业领域,文本数据可能是什么来源?请以中文生成详细的分析结果并以返回markdown源文本。 文本数据分析报告1. 专业领域分析根据提供的长词列表,可以推断出文本数据可能涵盖以下专业领域: 1.1 经济与金融
1.2 企业管理
1.3 政治与法律
1.4 社会与民生
1.5 科技与创新
1.6 教育与文化
1.7 新闻与媒体
2. 文本数据来源分析根据长词列表,文本数据可能来源于以下渠道: 2.1 新闻报道
2.2 政府文件
2.3 企业文档
2.4 学术论文
2.5 社交媒体
2.6 金融报告
3. 结论综合以上分析,该中文语料库的文本数据可能涵盖经济、金融、企业管理、政治、法律、社会民生、科技、教育、文化等多个专业领域。文本数据来源可能包括新闻报道、政府文件、企业文档、学术论文、社交媒体以及金融报告等多种渠道。这些数据为大模型的训练提供了丰富且多样化的语料支持。 千问的中文数据还挺多样的。 |
Your cases are about spelling. Spelling is a very different matter where tokenization does directly affect the model performance as composed to semantics. This is similar to "how many r's in strawberry". r is not a crucial component in the meaning/semantics of "strawberry", i.e., you don't need to know how many r's in strawberry to understand what strawberry is. For example, one needs to be taught specifically the spelling of words or the writing of Chinese characters (You can also try to ask the model “我们”里有几“撇”几“捺”) but one understands the concept naturally. With tokenization, to understand the textual form of language rather than the meaning of language need specific data. The cause is still the lack of corresponding data.
"UseVisualStyleBackColor" is not a token in Qwen but ".UseVisualStyleBackColor" is. The tokenization result of Chinese texts in gpt4-o is indeed weird but I don't think the tokenization significantly affects model performance in any way (because they shouldn't if you have enough data). |
Sorry for the typo. The result with Tokenization: Qwen response(https://chat.qwenlm.ai/c/b1b9336f-da7c-4b55-a394-70f4cba1a6cf?spm=5aebb161.4762a0f8.0.0.44ce5171qzT0Dw): For such rare words, even more data may not help without a proper tokenizer. |
I try to ask How many o's are there in ".UseVisualStyleBackColor"? , where the model give confusing result. Actually, the LLM tries to reply with some template learned from SFT/PPO data. The first two "o"s a lucky guess as ".Useo wnerDrawo nly" comes out which contains tokens with higher frequency. |
核心思想是中英文都尽量切短,例如 具体参考 大模型分词分析和建议 |
你们可以看看我处理过按照长度排序的 openAI gpt-4o的 英文词表, 整体上词都很短的。 |
Model Series
Qwen2.5
What are the models used?
Qwen2.5-plus
What is the scenario where the problem happened?
分词错误导致回答错误
Is this badcase known and can it be solved using avaiable techniques?
Information about environment
https://chat.qwenlm.ai/c/ba65bae9-e84b-43f1-b884-5dce82d1d18e?spm=5aebb161.2ef5001f.0.0.14b05171cmUGq3
Description
基于#1159 ,我尝试继续分析词表中的英文部分。
我尝试按照词汇长度排序输出得到如下:
I pick UseVisualStyleBackColor and get tokenize result.
UseVisualStyleBackColor中有多少个字母?能一行一个输出出来吗?
UseVisualStyleBackColor能按照英文分词吗?以空格为分隔符。
https://chat.qwenlm.ai/c/ba65bae9-e84b-43f1-b884-5dce82d1d18e
作为对比 OpenAI GPT-4o 能够给出正确结果(虽然数字母错了)。
最后,我尝试把上述长的词汇扔给OpenAI判定数据来源,下面是GPT-4o的回复:
关键词分析
iOS开发相关:
UITableViewCell
prepareForSegue
dequeueReusableCell
removeFromSuperview
这些术语属于 iOS开发 中的核心组件和方法,常用于开发基于 Apple 平台的应用,涉及
UIKit
框架。前端开发或 Web 开发:
applyMiddleware
useNewUrlParser
CircularProgress
exampleModalLabel
这些术语与 React.js、Redux 或 JavaScript 开发相关。
applyMiddleware
是 Redux 中的中间件机制。useNewUrlParser
可能是跟 MongoDB 驱动有关的选项(Node.js 应用中)。CircularProgress
通常与 Material-UI(React UI 框架)相关。exampleModalLabel
可能是 HTML 模板中用于模态框的标识。后端开发相关:
ServiceProvider
serviceProvider
这些词多出现在后端框架中,如 Laravel(PHP) 或 Spring(Java),用于定义服务提供者的依赖注入或配置。
C#/.NET 开发相关:
SolidColorBrush
LocalizedMessage
System.Runtime.CompilerServices
_ComCallableWrapper
这些术语与 C# 或 .NET 框架紧密相关:
SolidColorBrush
是 WPF/XAML 中的颜色刷定义。System.Runtime.CompilerServices
是 .NET 的命名空间,用于编译器服务。_ComCallableWrapper
是 COM(组件对象模型)相关的机制,用于与非托管代码交互。Java开发相关:
showMessageDialog
LocalizedMessage
@AssemblyTrademark
这些术语与 Java 或 Swing(Java GUI 框架)相关:
showMessageDialog
是 Java Swing 中用于显示对话框的方法。LocalizedMessage
可能出现在 i18n(国际化)或异常处理中。通用技术术语:
ModelSerializer
:多见于 Django REST Framework(Python 后端框架)。queueReusableCell
:与 iOSUITableView
复用机制相关。非技术词汇:
psychologically
:心理学术语,可能是文本中提到心理学相关内容,但由于与技术术语并列,可能是示例或附加内容。可能的文本类型
根据上述分析,文本可能属于以下几种类型之一:
跨平台开发文档或代码片段集合:
编程论坛或问答社区的内容:
编程入门或框架比较教程:
混合代码片段的笔记或示例集合:
技术培训或教材内容:
代码自动生成工具的日志或文档:
总结
文本类型可能是 跨平台开发教程、混合代码笔记、技术文章、或编程论坛的内容。结合上下文,可以进一步确认来源。
https://poe.com/s/ly0ywsm3jDT4KYndkgDf
总结下来问题还是BPE不控制长度的话很容易暴露分布并且造一些回答不了的问题。相对来说,Qwen2,5的中文分词倒挺好的。
The text was updated successfully, but these errors were encountered: