“这是最好的时代,也是最坏的时代;这是智慧的时代,也是愚蠢的时代;这是信仰的时代,也是怀疑的时代;这是光明的季节,也是黑暗的季节;这是希望的春天,也是绝望的冬天;我们什么都有,也什么都没有;我们正走向天堂之路,也正走向地狱之门。”——《双城记》
新时代的船没有码农的船票
当身为后端架构师的我第一次看到ChatGPT在10分钟内写完熬了三天三夜的Spring Cloud微服务时,手里的保温杯差点敲破显示器。
我猛灌一口枸杞茶压压惊,结果被烫得灵魂出窍,恍惚间仿佛看到自己写了十年的CRUD代码好像有了智慧,要冲出屏幕来咬人了。
我不信邪:"AI不就是个高级Ctrl+C/V?我写的JVM调优代码它懂个!"
被AI一顿教训后,我顿悟了新时代生存法则:
java
// 旧时代的残党
CRUDService crud = new CRUDService();
// 新时代没有载我的船
AIGatewayService ai = new AIGatewayService(model);
// 除非...
crud.setAIEnhancer(ai); // 套娃才是终极奥义!
打不过AI只有赶紧加入了,再晚就要被3.25优化了。
作为AI学习者,我将顺着大模型的处理流程,梳理学习一下相关的人工智能技术。后续将用一系列文章,讲述对大模型中所使用的人工智能技术的理解。我会以一个例子,贯穿始终,希望大家喜欢。
“帮我写一首关于量子物理的情诗”
当我对deepseek说:“帮我写一首关于量子物理的情诗”。
在前一篇文章中,我们已经粗略分析了分词这一步骤,链接在此:
对于中文输入“帮我写一首关于量子物理的情诗”,分词工具会将其拆分为以下词汇单元:["帮", "我", "写", "一首", "关于", "量子物理", "的情诗"]
那么,它的下一步是如何做的呢?请继续看:本章:数据清洗。
在大模型的数据处理流程中,分词后的数据清洗是提升模型理解和生成能力的关键步骤。下面以中文输入“帮我写一首关于量子物理的情诗”为例,结合分词结果(“帮”“我”“写”“一首”“关于”“量子物理”“的情诗”),详细说明清洗步骤。
一、清洗步骤及算法原理
1.停用词过滤
原理:去除对语义理解贡献较低的高频词(如助词、代词、介词等),减少噪声并降低计算复杂度。
比如:“的”,“帮”,“请”等,就会被处理点,避免后续变为噪声,影响后续处理。因此,和大模型对话无需礼貌,因为礼貌用语是噪声,它根本不会接收。
算法:
• 预定义停用词表:使用预先构建的停用词列表,直接过滤掉匹配的词汇。这些停用词通常是语言中频繁出现但语义贡献较小的词汇,例如“的”“了”“在”等。
• 动态停用词学习:基于统计模型(如TF-IDF)动态识别低频词作为停用词。通过计算词汇的词频(TF)和逆文档频率(IDF),筛选出在语料中频繁出现但对语义贡献不大的词汇作为停用词。
处理:
分词结果中的“帮”和“我”可能被判定为停用词(若模型侧重核心语义)。但若任务需要保留请求意图(如生成对话系统),则可能保留。
结果调整:可能移除“帮”和“我”,保留“写一首关于量子物理的情诗”。
2.分词纠错与边界优化
原理:修正分词错误或优化分词边界,确保词汇单元的准确性。
算法:
• 规则引擎:基于预定义的分词规则进行边界调整。例如,“的情诗”可能被拆分为“的”和“情诗”(若“的”为停用词则进一步过滤)。
• 统计模型:基于隐马尔可夫模型(HMM)或双向长短期记忆神经网络重新标注边界概率。HMM通过状态转移概率和发射概率来确定最优分词路径;
BiLSTM-CRF则利用双向LSTM捕捉上下文信息,并通过CRF层进行序列标注,从而更准确地优化分词边界。
• 大模型反馈:利用预训练模型(如BERT)的上下文理解能力,判断分词合理性。BERT通过其强大的上下文建模能力,能够识别分词结果是否符合语言习惯和语义逻辑。
处理结果:
• 拆分“的情诗”为“的”和“情诗”,并根据停用词表移除“的”,最终得到“情诗”。
3.实体识别与标准化
原理:通过与大模型知识图谱对齐的方式,识别并统一专业术语、实体名称,确保语义一致性。例如,我输入了“量子物里",而大模型能够识别并定位到“量子物理”。
算法:
• 命名实体识别(NER):通过BiLSTM-CRF或大模型(如GPT)标注实体。BiLSTM-CRF利用双向LSTM捕捉上下文信息,并通过CRF层进行序列标注,能够准确识别出句子中的实体;GPT等大模型则通过其预训练的上下文理解能力,直接识别并标注实体。
• 知识图谱对齐:将识别出的实体与标准术语库(如学术词典)进行匹配,避免歧义。例如,将“量子物理”与学术词典中的标准术语进行对齐,确保其语义一致性。
处理结果:
• “量子物理”被确认为专业实体,无需调整。
4.冗余词与重复结构处理
原理:通过词向量判断是否重复或冗余词,删除重复或冗余词汇,提升数据简洁性。
词向量简单来说就是按照各个纬度对一个词的评价。
例如:
“量子物理”这个词`[0.72(技术相关), -1.3(浪漫程度), 0.05, ..., 2.4]`
“情诗”这个词`[-0.8(技术相关), 1.2(浪漫程度), 0.6, ..., -0.3]`
算法:
• 相似度检测:通过余弦相似度或编辑距离判断重复。余弦相似度通过计算两个向量的夹角余弦值来衡量其相似度;编辑距离则通过计算将一个字符串转换为另一个字符串所需的最少编辑操作数来判断其相似度。
• 句法分析:基于依存句法树识别冗余修饰词。依存句法分析通过分析句子中词汇之间的依存关系,构建依存句法树,从而识别出冗余的修饰词。
处理:
• 本例中无冗余词,但若存在类似“一首一首”,则删除重复项。
5.语义完整性校验
原理:通过大模型预训练的概率分析语句合理性(比如,“写王者”为低概率,“打王者”为高概率),确保分词后的序列能完整表达原句语义。
算法:
• 语言模型评分:使用GPT等模型计算分词后的句子概率,低概率则触发重新清洗。GPT通过其预训练的语言模型能力,能够评估句子的合理性,若句子概率较低,则说明分词结果可能存在问题,需要重新清洗。
• 规则校验:例如检查动词(“写”)与宾语(“情诗”)的搭配合理性。通过预定义的语法规则,检查句子中的词性搭配是否符合语言习惯。
处理:
• 校验“写/情诗”是否符合语法规则,确认无误。
二、清洗全流程展示
以输入句子的分词结果为例,清洗流程如下:
1. 初始分词:帮/我/写/一首/关于/量子物理/的情诗
2. 停用词过滤:移除“帮”“我”写/一首/关于/量子物理/的情诗
3. 分词纠错:拆分“的情诗”为“的”和“情诗”写/一首/关于/量子物理/的/情诗
4. 二次停用词过滤:移除“的”写/一首/关于/量子物理/情诗
5. 实体标准化:确认“量子物理”为标准术语无调整
6. 语义校验:通过语言模型验证“写情诗”合理性保留
最终输出:写/一首/关于/量子物理/情诗
三、清洗步骤总结
大模型的分词后清洗是通过综合规则、统计模型和大模型反馈,将有毒有害信息或无用信息过滤掉,保证后续处理的精确高效。在清洗后,数据预处理已好了,那我们继续学习后续处理步骤吧。
四,数据清洗相关文章地址
代码地址:
论文地址:
领取专属 10元无门槛券
私享最新 技术干货