JieGenius/OculiChatDA

求教训练数据构建经验

Opened this issue · 4 comments

  • 请问眼科专业书籍是作为增量预训练的数据喂进去的吗?
  • 可否分享下训练数据的制作经验,感谢~(感觉人工的话工作量是不是很大)

谢谢~

我们粗暴的把眼科书籍中的任意一段话,扔给大语言模型(比如,自己搭建一个interlm2-chat-20b-4bit),然后让大语言模型根据这段话构建 对话数据。这个可以参考 chat huanhuan项目的如何从小说中构建数据集。https://github.com/KMnO4-zx/extract-dialogue。 我们还加了眼科习题的数据(单选题)

我根据实际训练结果来提供一些经验:

  1. MedDialog数据集,我们只筛选了和眼科相关的。 对话轮次2-64,没有做数据清洗。
    a. 这一步我的想法是一定要清洗,对话轮次为2的很可能是无效对话。我建议删掉对话轮次较少的,具体多少,需要你去分析一下。
    b. 有些医生是比较不耐心的,回复内容比较短。(问啥回复啥,也不做详细解释,可能医生很忙,打过多的字来解释有点浪费时间吧),我觉得需要一定的手段过滤。 --- 这个是根据我们微调完以后,发现医生的回复内容都比较短得出的结论。
    c. 数据的构建要考虑我们期望的应用场景。我发现用这些数据微调完以后,随意问两句,医生就立马推荐去医院检查,根本不敢稍微的给推测一下子,这可能和互联网医疗的政策相关? --- 我觉得我们的项目起码要做到预诊断。所以数据集的构建要和应用的使用场景匹配。
  2. 医学课后习题虽然添加到了训练集,但是是否有用,效果如何并没有测试。
  3. 微调后,发现工具调用的能力和Internlm2-chat-7b未微调版相比,明显减弱,所以,如果可以的话,微调时加一部分msagent的数据集试试。

在微调阶段,一定要保证数据的质量,不然性能不升反降。

学习了,感谢分享 👍

请问大佬,增量预训练数据量大约有多少?领域数据:通用数据比多少呢?

请问大佬,增量预训练数据量大约有多少?领域数据:通用数据比多少呢?

如果仅仅用来体验 agent 工具调用能力,可以不微调,使用 InternLM2-chat-7b就行

如果想在医疗领域回答的更好,这需要微调。但是微调的数据量/以及与通用数据的比例你还是参考权威文献吧,我没找到最佳实践,不敢误导别人。