open-research
open-research copied to clipboard
基于开源协作行为数据与预训练模型微调的社区问答方法研究 @TieWay59
开题报告初稿:https://www.yuque.com/tieway59/qvc10e/wtwf9o022z791tpf/edit
根据目前的报告,研究点(贡献点)可以考虑:两个微创点 + 一个工程实现点,具体如下:
- 基于 GitHub 开源协作行为数据的问答生成任务:制作首个用于开源社区问答任务的领域数据集(领域知识 + 自动化方法 + 数据质量验证)
- 基于协作交互语义的语言模型微调预训练方法:在已有模型微调方法的基础上,通过开发者协作网络拆分出高质量的标记对,进而提出基于高质量标记对的微调新方法,并和已有的方法进行性能比较;
- 基于 Hypercrx 浏览器插件的开源社区问答工具实现:将上述研究内容通过一个浏览器插件的形式进行实现,并验证其效果。
第 3 点已经完全跑通,只用把 1、2 的成果适当的集成进去即可。
关于1:可以针对开源社区问答任务,设计一套通用的领域数据制作方法(包括人工标注的引入)
关于2:可以参考目前已有的模型微调方法,做一些微创新改造的工作,例如
可以通过阅读相关论文和开源项目,进行研究点的构建~
还有一个大模型的学习资源仓库:https://github.com/Hannibal046/Awesome-LLM
感谢王老师,我一直在反复思考开题中答辩老师指出的主要问题。
- 第一部分工作,不能举出科学性上的难点,或者在方法上缺少算法优化角度的创新性。这里我要寻找一种好的叙述角度来表达。
- 第二部分工作,也是缺少算法层面的创新点。
具体表现就是要举出公式,甚至流程中的某个步骤等。
我下面的主要计划就是:
- 参考并且绘制更多流程图。
- 把潜在的,可以优化的点指出来。
最近读了些材料,做几个总结和笔记,供参考。
1、大模型与 AIGC 通用工程化流程
预训练 --> 微调 --> 领域训练 --> 领域微调 --> 推理
启示:开题工作的范围,可以聚焦再领域训练和领域微调上面
2、ChatGPT 工作流
有监督微调(SFT)--> 模拟人类偏好(RM) --> 近端策略优化(PPO/RLHF)
其中:
- SFT:Supervised Fine-Tuning
- RM:Reward Model Training
- PPO/RLHF:Proximal Policy Optimization / Reinforcement Learning from Human Feedback
启示:可以挖掘上述各个环节中的关键技术,进而寻找研究点,例如 PPO、RLHF 技术,值得深究
3、InstructGPT 训练流程(ChatGPT 背后公开的资料)
预训练与提示学习 (模仿期)--> 结果评价与奖励建模(管教期)--> 强化学习自我进化(自主期)
启示:可以挖掘上述各个环节中的关键技术,进而寻找研究点
4、预训练语言模型的发展
- 大模型之前前的中、小模型:各种深度学习模型,以深度学习技术为主
- Transformer 技术 LLM:(预训练 + 微调)范式
- Encoder 结构 LLM:如 Bert,(预训练 + 提示 + 预测)范式,新技术:提示学习
- Decoder 结构 LLM:如 GPT,新技术:上下文学习、思维链
- Encoder + Decoder 结构 LLM:如 T5
启示:提示学习、上下文学习、思维链等方面,结合领域知识(如开源社区问答),是很有机会形成研究点的
5、类 ChatGPT 实践流程
任务设计 --> 数据准备 --> 特定任务( SFT --> RM --> RL )-->应用推理
其中,“特定任务”代表某一具体任务,例如文档摘要生成、情感分类、问答等。
启示:结合具体的特定任务(如问答),开展( SFT --> RM --> RL )技术的研究,比较容易落地
最后推荐一本中文教材,可以快速掌握 LLM 领域现状:https://item.jd.com/14103180.html
以及陆老师团队那边的一个现状调研:开源垂类领域大模型现状.pdf
@will-ww 非常感谢王老师的热心帮助❤,我这边也焦虑了很久,我进一步思考下来的核心还是我的问题定义不有效:
首先研究问题要具备:创新性、重要性、可行性。
我最初思考的问题的逻辑是这样的:
- 存在客观需求:需要开源问答助手的模型
- 训练开源代码协作仓库的问答助手的模型有什么方法?
- 数据构造上有一些方法
- 微调训练上有一些方法
- 我原本以为只要用现有方法都是在解决我的大问题就可以了。
- 于是我掉入现有的方法与已解决的问题,没有在进一步提出新的问题,
- 对于答辩老师而言,我这里的大问题是一个软件需求,缺少科学问题的支持,导致看起来不符合要求。
所以我的解决办法应该是在大问题的基础上,提出有科学背景的子问题。比如:
- 从数据增广的角度,探索我构造的数据集通过结合扩写任务活摘要任务的方法,是否会达到更高的评分效果。
- 从微调训练的泛化性的角度,因为微调训练后,模型会损失一定的泛化性,所以可以探索一种改善新的,在我们这个领域的泛化性的方法,包括模型混合之类。
目前我在朝着这两个问题的方向找资料。
[[2024-02-01]]
@will-ww
已完成事项:
- 数据采集是正常
- 部 CodeQA 的实验(在他们的数据集)上是正常的
遇到的困难:
- 实验:在对比的过程中,我发现大部分 issue 和 PR 中的对话文字的有效信息比较差(说服不了我自己),正在想办法。
- 要么我可能会放弃这一块的数据(思考怎么解释),实际上项目内文档和 Discussion 的问答文本也是可以用的。
- 要么我可能根据某种分类模型 + 规则提筛选有效果的部分。
下一步安排:
- 解决上面实验的问题,给出反馈。
- 参考学长的毕业论文,写出简略版论文大纲。