8月23日凌晨,OpenAI在官网宣布,推出GPT-3.5 Turbo微调功能并更新API,使企业、开发人员可以使用自己的数据,结合业务用例构建专属ChatGPT。GPT-4的微调功能将于今年秋天推出。
OpenAI表示,从早期测试数据来看,GPT-3.5 Turbo 的微调版本在某些特定任务上,其性能可以匹配甚至超越GPT-4 的基本功能。
什么是微调?
大语言模型的微调(Fine-tuning)是一种在预训练模型的基础上,对特定任务进行深度训练的方法。
微调的基本思想是,先在大规模文本数据上预训练一个大型的语言模型,例如,GPT-3.5,然后,使用特定任务的数据集(如法律、医疗),进一步对模型进行训练,以适应特定的任务。在这个过程中,模型的参数会进行微小的调整,使其在特定业务场景上的性能更好。
例如,如果我们有一个预训练的GPT3.5模型,想让它在法律业务上的表现更好、更专业,可以用海量法律数据集对模型进行微调。
经过微调,模型学习到如何更好地解读、生成和预测法律问题。
微调关键问题
OpenAI官网说明文档很详细,推荐大家详细阅读,我这里快速摘取了部分关键点:
-
微调让您通过提供以下内容从 API 可用的模型中获得更多
a. 比提示更高质量的结果
b. 能够在一个提示中训练更多的示例
c. 由于提示更短而节省的代币
d. 降低延迟请求
-
微调涉及哪些步骤?
a. 准备并上传训练数据
b. 训练一个新的精调模型
c. 使用您精调的模型
-
支持微调的模型
a. gpt-3.5-turbo-0613 (推荐)、babbage-002、davinci-002
b. gpt-3.5-turbo 将是大多数用户在结果和使用便利性方面的理想选择,除非您正在迁移一个经过精细调整的旧模型。
-
优先COT 、 Prompt Engineer,再微调 (划重点!)
a. 反复迭代 Prompt 和其他策略的反馈循环比微调的迭代要快得多,后者需要创建数据集并运行训练任务
b. 在需要进行微调的情况下,初步的Prompt Engineer工作并非浪费。通常会发现,当在微调数据中使用一个好的Prompt(或将COT提示链/工具使用与微调结合)时,可以得到最好的结果
-
适合微调提升的场景?一句话总结:更适合演示,而非直接指示(One high-level way to think about these cases is when it’s easier to "show, not tell".)
a. 设定风格、语气、格式或其他质量方面的要素
b. 提高产出所需结果的可靠性
c. 纠正未能遵循复杂提示的错误
d. 以特定方式处理许多边缘情况
e. 执行一项难以在提示中明确表述的新技能或任务
-
微调 VS 检索 embedding(embeddings with retrieval)?
a. 当你需要拥有一个包含相关上下文和信息的大型文档数据库时, 嵌入式检索是最适合的选择。
b. 默认情况下,OpenAI的模型被训练成为有用的通用助手。微调可以用来制作一个专注度高、展现特定深层行为模式的模型。
c. 检索策略可以用来通过在生成模型响应之前提供相关上下文,使新信息对模型可用。检索策略并非微调的替代品,实际上,它们可以互为补充。
-
微调过的模型还能继续微调吗?
a. 不,目前不支持在工作完成后继续进行微调过程。计划在不久的将来提供这项支持。
-
微调成本如何? 分为两部分:初始训练成本和使用成本
a. 培训:每1000个标记 $0.008
b. 使用输入:每1000个令牌 $0.012
c. 使用输出:每1000个令牌$0.016