通用基座大模型是否可以超越领域专有大模型?微软最新论文证明这是可以的!微软最新动态Prompt技术——MedPrompt详解

本文来自DataLearnerAI官方网站:通用基座大模型是否可以超越领域专有大模型?微软最新论文证明这是可以的!微软最新动态Prompt技术——MedPrompt详解 | 数据学习者官方网站(Datalearner)icon-default.png?t=N7T8https://www.datalearner.com/blog/1051701842078748

在GPT-4这种超大基座模型发布之后,一个非常活跃的方向是专有模型的发展。即一个普遍的观点认为,基座大模型虽然有很好的通用基础知识,但是对于专有的领域如医学、金融领域等,缺少专门的语料训练,因此可能表现并不那么好。如果我们使用专有数据训练一个领域大模型可能是一种非常好的思路,也是一种非常理想的商业策略。但是,微软最新的一个研究表明,通用基座大模型如果使用恰当的prompt,也许并不比专有模型差!同时,他们还提出了一个非常新颖的动态prompt生成策略,结合了领域数据,非常值得大家参考。

微软的动态prompt——MedPrompt表现超过微调领域模型

下图是微软测试的结果:

MedPrompt大幅提升GPT-4在医学里面的水平

微软Prompt新方法MedPrompt

微软提到的这个Prompt方法实际上是一种结合了训练数据的few-shot方法。简单来说,在prompt中加入few-shot案例,可以大幅提高模型的性能。但是传统技术上都是直接使用固定的few-shot案例,这显然是低效的。在大量的领域知识中这种使用方式几乎不可行。为此,微软考虑让模型自动搜索领域知识,然后生成few-shot样例再为用户提供答案

在微软的案例中,具体来说,就是为GPT-4准备医学领域的预训练数据,在GPT-4回答用户领域问题之前,先通过检索的方法从训练数据中找到近似的问答结果,然后构造few-shot案例,嵌入用户的输入中,再让模型回答问题。

而微软这种通过训练数据构造few-shot的MedPrompt也不是简单的选择训练数据回答,而是包括三个方法的框架:

动态少样本选择(Dynamic few-shot)

根据测试样本选择k个训练样本,使其与测试样本语义最相似,构成少样本展示。使用text-embedding-ada-002模型将样本映射为向量表示,基于向量空间距离计算相似性。

这个动态选择样本的方式相比此前那种固定的few-shot方式有个最大的好处是可以借助领域数据动态构建few-shot案例,而不是固定的结果,这种方式更加灵活高效。这种方法还可以结合传统的kNN技术获得更好的效果。

而使用向量相似度检索可以大幅提升找到相关数据的概率。

自生成思维链(Self-generated chain of thought)

微软结合前面的动态选择训练数据,使用GPT-4来自主生成每道题目的详细思维展示,作为Prompt(提示)给GPT-4使用

这个过程发生在预处理阶段,将所有的领域数据通过自生成思维链技术进行处理,生成一个更加优质的Prompt示例,这样在动态few-shot选择的时候可以获得更加高质量的prompt模板。

作者对比了GPT-4生成的思维链与专家生成的对比,相比较而言GPT-4的CoT细节更丰富,甚至比专家设计的更好。

也就是说微软先用GPT-4在领域数据中自动生成CoT的数据,然后动态prompt生成few-shot时候基于这些改造成CoT回答的样例告诉模型如何回答。

选项洗牌集成(Choice Shuffling Ensemble)

这个方法主要解决大模型的一些不稳定的问题。我们都知道大模型的问题的回答通常有一定的随机性。这种方法的核心在于通过改变问题中的选项顺序,然后观察模型对不同顺序下选择的一致性,以此来减少模型对某些选项的偏好。

具体来说,它是在模型已经接收到问题和任何相关提示(如在Medprompt方法中的动态少样本选择和自动生成的思维链)之后,但在最终决定答案之前使用的。

总结

这个论文其实贡献了很多重要的有价值的结论,主要包括:

  1. 它证明了使用Prompt技术配合领域数据是可以提高基座模型在特定领域的能力的,媲美甚至超过fine-tuning
  2. 动态Prompt和自生成CoT技术给了一种非常好的结合领域数据和prompt的方法,为领域大模型微调提供了另外一种思路。

关于MedPrompt的详细介绍和对比结果,参考原文:通用基座大模型是否可以超越领域专有大模型?微软最新论文证明这是可以的!微软最新动态Prompt技术——MedPrompt详解 | 数据学习者官方网站(Datalearner)

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 03:16:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 03:16:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 03:16:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 03:16:01       18 阅读

热门阅读

  1. python起步

    2023-12-07 03:16:01       36 阅读
  2. SpringBoot常用注解

    2023-12-07 03:16:01       37 阅读
  3. 在Spring Boot中使用不同的日志

    2023-12-07 03:16:01       29 阅读
  4. QPropertyAnimation

    2023-12-07 03:16:01       38 阅读
  5. 总结vue3 的一些知识点:MySQL 排序

    2023-12-07 03:16:01       41 阅读
  6. vue,uniapp生成二维码

    2023-12-07 03:16:01       38 阅读
  7. 微信小程序中block和View组件的使用区别

    2023-12-07 03:16:01       38 阅读
  8. uniapp如何与原生应用进行混合开发?

    2023-12-07 03:16:01       34 阅读