(1)大模型的“7B”是什么意思?
"B"通常代表“Billion”,即十亿。因此,当提到7B时,指的是该模型拥有7 billion(70亿)个参数。
(2)模型后面标的“instruct”是什么意思?
在基础模型上进行指令微调后的版本。“instruct”版本的大模型是为了增强模型对指令的理解和执行力,使得用户可以通过给出明确的指令来引导模型完成特定任务或获得所需信息。这类模型通常会在包含大量指令-响应对的数据集上进行额外的训练或微调,以提高其在这类任务上的性能。
(3)大模型量化什么意思?
量化主要涉及到减少模型权重和激活的精度以降低计算复杂度和存储需求,从而使得模型能够在资源受限的设备上更高效地运行。量化可以显著减少模型的大小,并加速推理过程,但需要仔细处理以避免对模型性能产生负面影响。
(4)量化等级是什么意思?
量化等级指的是将浮点数表示的权重和激活值 转换为低精度数值(如整数)的程度或精细度 。常见的量化等级包括:● 8-bit量化:这是最常用的量化级别之一,将32位浮点数权重压缩至8位整数,大大减少了模型的存储需求和计算量,同时保持较高的准确率。
● 4-bit量化:进一步降低精度到4位,能提供更高的压缩比和更快的推理速度,但可能会影响模型的准确性。
(5)量化方法是什么意思?
量化方法是指实现从高精度到低精度转换的具体技术。不同的量化方法在如何处理量化误差、选择代表值等方面有所不同。一些常见的量化方法包括:● 线性量化:最简单的量化形式,通过均匀划分范围来映射浮点数到整数。
● 非线性量化(如伪量化):使用非均匀的量化间隔,通常在重要区域(如数据分布密集的地方)使用更小的间隔,以更好地保留信息。
(6)啥是Alpaca数据集?
Alpaca 数据集主要用于微调语言模型,使其能够更好地遵循指令。这个数据集是通过模仿自动生成的指令-响应对创建的。结构:每个样本通常包括三部分——instruction(指令)、input(输入,可选)、和output(输出)。● instruction 描述了要执行的任务。
● input 提供了额外的信息或上下文(不是所有样本都包含这一部分)。
● output 是对应指令的预期响应。
# 单轮对话
[
{"instruction": "描述一下如何制作一杯拿铁咖啡。","input": "","output": "制作一杯拿铁咖啡首先需要准备一份浓缩咖啡,然后在杯子里倒入热牛奶,并且保证牛奶的量大约是杯子容量的三分之二,最后轻轻地将浓缩咖啡倒在牛奶上面即可。"
}
]
下面提供一个 alpaca 格式多轮对话的例子,对于单轮对话只需省略 history 列即可。
# 多轮对话
[{"instruction": "今天的天气怎么样?","input": "","output": "今天的天气不错,是晴天。","history": [["今天会下雨吗?","今天不会下雨,是个好天气。"],["今天适合出去玩吗?","非常适合,空气质量很好。"]]}
]
(6)BLEU评估指标是什么?怎么算的?
BLEU(Bilingual Evaluation Understudy)是一种用于评估机器翻译质量的指标,它通过比较机器生成的文本与一个或多个参考译文之间的相似度来给出评分。BLEU得分范围从0到1,值越接近1表示机器翻译的结果越好,但实践中很少能达到1,除非机器翻译输出与参考译文完全一致。BLEU评估主要基于n-gram的精确度,并且考虑了句子长度的因素。● N-gram匹配:首先将机器翻译结果和每个参考译文都分解为n-gram(连续的n个词)。然后计算机器翻译中出现的n-gram在参考译文中也出现的比例,这被称为“修改后的n-gram精确度”。通常会计算1-gram、2-gram、3-gram甚至4-gram的精确度。
● 修正的n-gram精确度:为了避免简单重复高频词汇以提高精确度的问题,BLEU使用了一种称为“clip”的操作。即对于每一个n-gram,如果机器翻译中的出现次数超过所有参考译文中该n-gram的最大出现次数,则将其计数裁剪为最大出现次数。
● BP(Brevity Penalty,简洁惩罚):为了惩罚过短的翻译,BLEU引入了简洁惩罚因子。如果机器翻译的长度短于所有参考译文中最短的一个,则BP小于1;否则BP等于1。
● 加权几何平均:最后,将不同n-gram的精确度结合起来,通常是取它们的加权几何平均值。标准的BLEU分数是1-gram至4-gram精确度的几何平均值乘以BP。
假设有一个简单的例子:
机器翻译输出为:“the cat”,
而参考译文之一是:“the cat sits on the mat”。
● 对于1-gram,“the”和“cat”都在参考译文中出现,所以1-gram精确度为1。
● 对于2-gram,“the cat”也在参考译文中出现,因此2-gram精确度也为1。
然而,由于机器翻译较短,BP将会小于1,从而降低最终的BLEU得分。
BLEU虽然广泛应用,但它也有局限性,比如不能很好地处理语义准确性问题,以及对较长序列的评价不够敏感等。BLEU主要关注的是精确率(Precision),即候选文本中出现的n-gram有多少是出现在参考文本中的。它试图衡量机器生成的文本中有多少部分是正确的或与参考文本相匹配的。
(7)ROUGE评估指标是什么?怎么算的?
ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一系列用于自动评估文本生成质量的指标,特别是针对摘要生成和机器翻译任务。它通过比较候选文本(如系统生成的摘要)与一组参考文本(如人工编写的摘要)之间的相似度来工作。ROUGE关注的是召回率(recall),即参考文本中的信息有多少被候选文本覆盖了。主要的ROUGE变种
● ROUGE-N:基于n-gram共现的重叠情况计算得分,衡量候选文本和参考文本之间n-gram的匹配程度。
● ROUGE-L:利用最长公共子序列(LCS, Longest Common Subsequence)来计算得分,考虑到词序的重要性。
● ROUGE-S:基于skip-bigram共现的重叠情况计算得分,其中skip-bigram允许跳过某些词汇但仍保持其余词汇的顺序不变。这种方式更适合捕捉句子结构上的相似性。
(8)什么是QLoRA?
QLoRA 是一种结合了量化(Quantization)和低秩适配(Low-Rank Adaptation, LoRA)的技术,简单说就是在微调的时候对参数做了量化用于高效地微调大型语言模型(LLMs)。这种方法旨在减少计算资源需求并加速推理过程,同时保持较高的性能水平。QLoRA 已被证明可以在显著减少内存使用的同时保持接近全精度微调的性能。
(9)为什么要做分布式微调训练?
模型规模 :模型的规模太大,单张显卡的显存无法加载全部参数。一般24G显存,最多加载7B左右参数规模的大模型。因此,需要通过分布式训练将模型分割到多个计算节点上。计算效率:分布式训练可以大幅度减少训练所需时间。
(10)怎么实现大模型的分布式微调的?原理策略?
分布式训练的原理主要通过三种并行策略来实现:数据并行、模型并行以及流水线并行。● 数据并行(Data Parallelism)
基本概念:在数据并行中,整个模型被复制到每个计算节点上,而训练数据则被分割成多个小批次,并分配给不同的节点。每个节点独立地执行前向传播和反向传播计算梯度。
同步机制:在完成本地梯度计算后,所有节点需要通过一个全局操作(如AllReduce)来汇总各自的梯度,并同步更新模型参数。这种方式保证了所有节点上的模型副本保持一致。适用场景:适用于可以将数据均匀分割且模型大小适合单个设备内存的情况。
● 模型并行(Model Parallelism)
基本概念:当模型过于庞大无法完全放入单一设备的内存中时,可以采用模型并行的方法。该方法涉及将模型的不同部分放置在不同的设备上,使得每个设备仅需存储和处理模型的一部分。通信需求:由于模型的不同部分可能需要相互传递中间计算结果,因此模型并行通常要求较高的节点间通信带宽。适用场景:特别适合于超大型模型,例如具有数十亿乃至更多参数的语言模型或推荐系统模型。
● 流水线并行(Pipeline Parallelism)
基本概念:流水线并行是一种更复杂的并行策略,它结合了数据并行和模型并行的优点。其核心思想是将模型分为几个阶段,并让不同的设备负责不同阶段的计算。每个批次的数据会依次经过这些阶段进行处理。工作流程:为了最大化资源利用率,一种常见的做法是在前一批次的数据仍在后续阶段处理的同时,开始对新批次的数据进行初步处理。
适用场景:适用于深度网络结构,尤其是那些可以通过自然切分的方式划分为多个相对独立的阶段的情况。