Datawhale冬令营
学习:Task01,作者:Reacal_子轩
前言
大模型是指具有大规模参数和复杂计算结构的机器学习模型。它们通常拥有数百万到数十亿的参数,需要大量的数据和计算资源进行训练和推理。大模型在深度学习领域中占据重要地位,能够处理复杂的任务,如自然语言处理、计算机视觉和语音识别等。
了解如何制作专属大模型
1、大模型制作平台
讯飞星辰 MaaS 平台,零代码低门槛领域精调,全栈工具链加速大模型效果定制。
2、数据集制作
我们常见的微调数据集需要符合 Alpaca 格式 。数据存储形式:通常以 JSON 文件格式存储。这样方便数据的读取、处理和在不同的机器学习框架中使用。例如一个简单的 Alpaca 格式的 JSON 数据示例如下:
[
{
"instruction": "用“梦想”、“坚持”和“成功”这三个词组成一个句子。",
"input": "",
"output": "只有坚持追逐梦想,才能最终取得成功。"
},
{
"instruction": "对《三国演义》这本书做一个简短的介绍。",
"input": "",
"output": "《三国演义》是中国古典四大名著之一,描写了从东汉末年到西晋初年之间近百年的历史风云,诉说了东汉末年的群雄割据混战和魏、蜀、吴三国之间的政治和军事斗争,塑造了一群叱咤风云的三国英雄人物。"
}
]
-
instruction:任务的指令,模型需要完成的具体操作,一般可以对应到用户输入的 Prompt。
-
input:任务所需的输入内容。若任务是开放式的,或者不需要明确输入,可以为空字符串。
-
output:在给定指令和输入的情况下,模型需要生成的期望输出,也就是对应的正确结果或参考答案。
{
"instruction": "人类指令(必填)",
"input": "人类输入(选填)",
"output": "模型回答(必填)",
"system": "系统提示词(选填)",
"history": [
["第一轮指令(选填)", "第一轮回答(选填)"],
["第二轮指令(选填)", "第二轮回答(选填)"]
]
}
]
动手定制专属大模型


1、如何定制大模型?用到的技术主要是什么?
-
微调 (Fine-tuning): 这是最常用的方法。利用预训练的大模型(如GPT-3、LLaMA等),在其基础上使用特定任务的数据集进行进一步训练。这个过程会调整模型的参数,使其更擅长处理目标任务。数据集通常包含与目标应用相关的输入-输出对。 -
提示工程 (Prompt Engineering): 这是通过精心设计输入提示来引导模型产生期望输出的方法。它更侧重于控制模型输出,而非改变模型本身。技术包括少样本学习(在提示中提供少量示例)、思维链提示(引导模型进行推理过程)以及在提示中指定约束条件等。 -
参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT): 这类技术旨在降低微调的计算成本和内存需求。它们只更新模型参数的一个小子集,即使资源有限也能进行定制。 -
低秩适应 (LoRA): 在原始模型权重中添加低秩分解矩阵。只有这些小矩阵在微调过程中被更新。 -
前缀微调 (Prefix-Tuning): 学习一组小的前缀token,添加到输入序列的前面。这些前缀引导模型的行为。 -
适配器模块 (Adapter Modules): 在模型的每一层添加小的适配器模块。这些模块在训练时,原始模型的权重保持不变。 -
指令微调 (Instruction Fine-tuning): 专注于训练模型更好地遵循指令。数据集通常由指令和相应的回应组成。这种方法提高了模型理解和执行用自然语言描述的不同任务的能力。 -
基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF): 这是一种高级技术,使用强化学习来训练模型,其中人类反馈作为奖励信号。它旨在使模型的输出与人类偏好一致,使其生成更有帮助和更安全的回应。
2、什么是微调?为什么要微调?微调得到的是什么?
-
节省计算资源: 从头开始训练一个大型模型需要海量的计算资源和时间,这对于大多数个人或机构来说都是不可行的。微调利用预训练模型作为起点,只需要在新的数据集上进行相对较少的训练,就能取得不错的效果,大大节省了计算成本和时间。 -
提升模型性能: 预训练模型虽然具备一定的通用能力,但在特定任务上的表现可能并不理想。微调可以利用特定任务的数据集,调整模型的参数,使其更擅长处理该任务,从而提高模型的准确性和效率。 -
适应新领域: 预训练模型通常是在通用的数据集上训练的,可能无法很好地适应特定领域的数据特征。微调可以将模型适配到新的领域,使其更好地理解和处理该领域的数据。
3、微调得到的模型可以用来做什么?怎么用?
4、微调的关键步骤是什么?
-
数据集的收集和处理。数据集的好坏也决定了微调后模型的好坏。 -
基础模型的选择。不同的底座模型对于所对应的方向不同。 -
微调方法的选择。lora,Q-lora,P-turning……
5、什么样的数据可以用来微调?从哪里可以找到?
-
根据目标任务,确定你需要收集的数据类型。例如,对于情感分类,你需要文本数据及其对应的正负面情感标签;对于图像识别,你需要图像数据及其对应的类别标签。 -
确定数据规模: 你需要多少数据?这取决于任务的复杂性和模型的大小。 -
数据格式化:将你的数据转换成模型可以接受的格式,例如CSV,JSON,或特定框架(如 TensorFlow Records)支持的格式。这需要根据你使用的模型和框架进行调整。

(文:Datawhale)