前言

在进行模型微调之前,本章先介绍关于模型微调的相关概念。包括模型训练、模型评估和Transformer语言模型相关基础知识。

模型训练

无监督学习

无监督学习是指在没有标注数据的情况下,让机器自己从数据中学习模型的方法。无监督学习包括两个步骤:掩码语言建模(Masked Language Modeling,MLM)和下一句预测(Next Sentence Prediction,NSP)。

掩码语言建模是指将文本中的一部分词汇掩盖掉,然后让模型预测掩盖的词汇。下一句预测是指给定两个相邻的句子,让模型预测他们之间是否存在逻辑上的连贯性。通过掩码语言建模和下一句预测,模型可以在大量的文本数据中学习到自然语言的语法、语义和连贯性等知识,完成模型的预训练。

微调(Fine-Tune)是指在预训练模型的基础上针对新的任务进行微调,以提高模型在新任务上的表现。例如:使用一个已预训练好的模型作为基础,根据具体的场景和需求微调到特定的任务上,比如客服系统、问答系统等。这样可以大大减小新任务的训练时间和数据量,提高模型的表现效果。根据具体的任务,微调时选择合适的数据集合和调整超参数,结合技巧和经验,选择合适的学习率、正则化和批大小等超参数。

有监督学习

有监督学习是指通过给模型提供带有标签的数据,让模型学习从输入到输出之间的映射关系的方法。

零样本学习

零样本学习(Zero-Shot Learning)是指模型在没有针对某一特定任务的标注数据时,仍然能够进行有效学习。模型通过零样本学习的方式快速学习新任务,从而扩展其应用范围。

多模型联合学习(Multi-Model Joint Learning)是指利用多个模型分别对不同领域的数据集进行训练,然后通过联合学习的方式将这些模型的知识进行整合,从而提高学习效率和准确率。

训练方式

  • 使用预训练模型(Pre-trained Model)作为训练起点,避免从零开始训练模型的时间和资源成本
  • 使用迁移学习(Transfer Learning)作为训练起点,将已经学到的知识迁移到新的领域或任务上
  • 使用一个已经训练好的模型,针对特定领域或任务进行微调
  • 提高学习效率:使用批量训练(Batch Training)、使用自适应学习率(Adaptive Learning Rate)
  • 防止过拟合:过拟合是指模型在训练数据上表现很好,但在测试数据上表现很差的现象。使用正则化(Regularization)的方法、使用dropout的方法
  • 增加训练数据的多样性、增加模型的复杂度,以及提高模型的可解析性
  • 模型训练阶段:基础模型训练,行业模型训练,细分场景模型训练

模型评估

困惑度(Perplexity)

  • 困惑度是衡量NLP模型表现的重要指标之一。对于一个给定的文本序列,模型预测出来的单词概率的倒数称为困惑度。
  • 困惑度作用:
    • 用来衡量模型对于给定序列的预测能力
    • 用来衡量对于预测出来的单词的准确性

人工评估

  • 流畅度评估:对生成的句子进行流畅度评估,包括语法、上下文连惯性等方面
  • 情感倾向分析:对生成的句子进行情感倾向标注,包括积极、中性、消极等
  • 对话质量评估:对生成的对话进行评估,包括对话的流畅度、逻辑连贯性、回答准确性等方面
  • 主题分类评估:对生成的句子进行主题分类标注,例如小说分类
  • 语义相似度评估:对生成的句子进行语义相似度比较,例如判断两个句子意思是否相同

应用性能评估

应用性能评估指标需要根据具体的应用场景和需求进行选择。常用评估指标包括:

  • 准确率(Accuracy):指模型输出的正确率,即模型生成的答案与标准答案一致的比例。 准确率是衡量模型性能的基本指标,常用于问答系统、对话系统等应用场景中。
  • 召回率(Recall):指模型正确输出的占标准答案总数的比例,即标准答案中有多少被模型正确输出了。召回率通常用于信息检索、文本分类等应用场景中。
  • 精确率(Precision):指模型正确输出的占模型总输出数的比例,即模型输出中有多少是正确的。精确率通常用于信息检索、文本分类等应用场景中。
  • F1值(F1 Score):综合考虑召回率和精确率的指标。F1值是精确率和召回率的调和平均值,F1值越高,说明模型的性能越好。
  • 多样性(Diversity):指模型生成的答案是否多样化,是否能够输出多种不同的答案。多样性通常用于聊天机器人等需要进行多轮对话的应用场景中。
  • 实时性(Latency):指模型生成答案的时间,即从接收到问题到生成答案所花费的时间。实时性通常用于在线客服等对时间要求较高的应用场景中。
  • 可靠性(Reliability):指模型生成的答案是否可靠,是否能够稳定输出正确的答案。可靠性通常用于对话机器人等需要进行长时间对话的应用场景中。

性能评估步骤

大概步骤包括:

  1. 选择合适的数据集:根据应用场景选择合适的数据集
  2. 设置合理的评估指标
  3. 设置对照组:例如对照ChatGPT模型
  4. 多次实验取平均值

评测数据集

C-Eval 是全面的中文基础模型评估套件,涵盖了52个不同学科的13948个多项选择题,分为四个难度级别,如下所示。用于帮助开发人员跟踪模型开发的进展,以及分析开发中模型的优点和弱点。测试可分为zero-shot和five-shot准确率,查看最新 排行榜 - C-Eval

Massive Multitask Language Understanding,MMLU 英文评测数据集涵盖了基础数学、美国历史、计算机科学、法律等 57 项任务,是目前流行的英文评测数据集。查看 MMLU排行榜

GAOKAO-bench 是一个以中国高考题目为数据集,旨在提供和人类对齐的,直观,高效地测评大模型语言理解能力、逻辑推理能力的测评框架。收集了2010-2022年全国高考卷的题目,其中包括1781道客观题和1030道主观题,构建起GAOKAO-bench的主要评测数据。数据集如下:

题目类型 题目数量 数量占比
选择题 1781 63.36%
填空题 218 7.76%
解答题 812 28.89%
题目总数 2811 100%

GSM8K是一个包含 8.5K 高质量语言多样化小学数学应用题的英文数据集。这些问题分为 7.5K 个训练问题和 1K 个测试问题。这些问题需要 2 到 8 个步骤来解决,解决方案主要涉及使用基本算术运算 (+ - / *) 执行一系列基本计算以获得最终答案。

Transformer语言模型

Transformer模型是一种基于自注意力机制和多头注意力机制的神经网络模型,它可以有效地学习自然语言的复杂性和多样性,从而在生成语言方面具有创造力。 Transformer模型的主要组件包括编码器和解码器。

编码器将输入序列中的每一个单词映射到一个高维空间中,并使用自注意力机制来学习单词之间的关系。自注意力机制是一种可以计算每个单词与其他单词之间的关系的机制。解码器使用编码器的输出向量来生成目标语言的序列,解码器也使用自注意力机制来学习目标语言序列中的单词之间的关系。

多头注意力机制是Transformer模型的关键组件之一,它可以让模型同时关注输入序列的不同部分,从而更好地捕捉序列中的信息。与单头注意力机制不同,多头注意力机制可以同时在不同的空间进行关注,并从多个角度对输入序列进行编码,并将多个注意力头的结果合并成一个输出向量。

上下文长度(Context Length)是指模型接受的输入长度。例如模型上下文长度为2K,是指模型一次性授受的输入tokens数量为2048个。

对话长度(max length)是指模型单次输出结果的长度。例如单次回复限制为8K,是指模型单次回复最大长度为8192个tokens。

参考链接

参考书籍

  • 《你好,ChatGPT》 通证一哥著