AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


什么是好的大模型训练数据?
发布日期:2024-03-27 15:05:30 浏览次数: 2257 来源:青稞AI



最近Lilian Weng写了一篇新的博客"Thinking about High-Quality Human Data[1] ".LLM依旧是机器学习模型, 也依旧符合ML的基础原理: Garbage-in-Garbage-out. 在人工智能里面, 数据处理依然是有多少人工, 就有多少智能的领域. 在这篇文章, 我会基于Lilian的博客, 结合自己的理解来谈谈数据.

首先, 博客开篇就是一个暴击"Everyone wants to do the model work, not the data work". 就跟以前做表格数据的时候, Everyone wants to train the model, no one wants to do feature engineering. 对于大部分的机器学习项目来说, 花精力在数据处理的投资回报比往往是大于优化模型的. 日常工作里面有很多体力活是没有意义的, 但分析数据, 理解数据, 处理数据是很有价值的体力活. 当然, 我要指出一点, 数据处理的pipeline里面也会涉及到不同的机器学习模型, e.g. 做数据做分类来downsample, 自动改写. 怎么去搭建这样的一个pipeline, 怎么去更好debug里面的模块是很有价值的工程问题.

对于大模型来说, 什么样的数据才是高质量的数据呢? 那就是"高质量人类"生成的高质量数据. Lilian的博客给出了两条通往高质量数据的途径:

  • • 让人类标注员生出数据, 并做好质量控制

  • • 通过模型找到错误的标注数据, 并且进行修正

Human Generated Data

要拿到高质量的人类数据, 难点是怎么去Scale人. 和公司的管理问题一样, Scale人永远比Scale机器难度高很多, 因为人类的工作产出会受到很多因素的影响. 随着模型的能力越来越强, 我们需要更高质量的数据, 包括理解更长的指令, 输出高质量的长文本. 如果是逻辑推理或者数学的问题, 评估回答正确与否本身就很难, 这需要受教育程度高的人类去做评估.

举个我自己的例子, 因为我日常工作中40%的问题都会先问ChatGPT (GPT-4版本的), 几周前我问了ChatGPT, "Can random projection preserve inner product for high dimensional vectors?". GPT非常有板有眼得给我解释了为什么inner product没有被preserve. 但其实用Johnson-Lindenstrauss Lemma类似的证明技巧是可以得出inner product是preserve的. 对于复杂的问题, 我们要想办法去Scale受教育程度高的人. 这可能会是有人口红利, 且平均教育程度高的国家的一个优势.

从博客里面, 我们可以看出得到高质量人类标注的难度. 人类标注员的挑选, 培训, 激励, 到标注任务的设计, 质量检验的每个环节都很有讲究. 在大模型之前, 有动力做出这整套pipeline的公司主要是搜索公司. 我记得2019年还在Google的时候看过类似的文档. Gemini这么拉胯实在是不应该.

博客还提到了怎么去做Rater agreement, 包括majority voting, Cohen's Kappa和MACE (Multi-Annotator Competence Estimation). 这个问题可以在把整套高质量的数据标注pipeline跑起来, 管理好, 再考虑. 对于大部分公司来说, 首先要考虑的问题是, 做高质量数据费时费力, 对最终模型能力的提高无法快速反映出来. 这种情况下, leadership还能不能坚持推动这件事情. 我个人觉得高质量标注数据是个很好的创业方向. 管理一般人, 管理教育程度高的人, 以及管理行业专家是不一样的管理问题.

Finding "Wrong" Data

另外一个提高数据质量的方向是利用训练好的模型去找到错误的标注数据. 找到错误的标注数据之后, 就可以修正或者剔除这些数据. 个人观点: 如果我们换个角度看RLHF, 这背后隐藏了个数据优化的pipeline, 即用Reward model找出好的AI合成数据, 并利用这个signal去优化模型.

博客里面主要讲了几类方法, 包括:

  • • Influence Functions: 评估一个特定sample对Loss的影响

  • • Prediction changes during training: 追踪模型预测在训练过程的变化, 通过预测值的变化找到错标的数据

  • • Noisy Cross-Validation: 把数据集分成两半, 各自训练一个模型来预测另外一半的label, 如果预测值和真实值是一致的, 那就看作是clean label

也许是我孤陋寡闻, 我没太见过后面的两类做法(Prediction changes during training, Noisy CV)在LLM上面的尝试. 如果读者看到过类似的的研究, 求在评论区留言. 不清楚是不是因为后面两种主要针对的是classification task.

而Influence function[2]跃的工作, 包括Anthropic的Studying Large Language Model Generalization with Influence Functions[3]Danqi Chen团队的LESS: Selecting Influential Data for Targeted Instruction Tuning[4]研究工作在时间轴上确实能有更久的影响.

Influence function主要的问题是计算量大, 因为要计算Hessian. LLM参数本来就多, 所以你细品. 我记得Anthropic那篇工作提到"他们恰好有多余算力来算了一次". 感觉一般人更算不起啊. 还有计算Hessian要求loss是二阶可导的, 所以要对ReLu这样的操作做些修改来计算influence. 上面提到的两个LLM上应用Influence function都做了不同程度的逼近, 这对最终的结果有多大的影响就说不清了. 如果只是从找到错标的数据这个角度来看, 感觉也能凑合用着.

Anthropic那篇文章Appendix里面给出了不少他们算出来的Influential的samples. 大家感兴趣的话可以看看.

结语

还是那句话, 在数据层面, 有多少人工, 就有多少智能. 在新的时代, 我们在数据质量上还有一个大的挑战, 那就是AI生出的数据在快速污染整个互联网. 在这种情况下, 怎么对数据做好quality control值得每个人去思考.



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询