模型训练最佳实践
更新时间:2024-03-16 01:14:58最佳实践
为了更好的讲解模型训练模块的使用,我们将通过一个训练示例完成整个训练流程使用说明,更多的示例请参考模型训练最佳实践。 示例任务:阅读理解 任务说明:依据给定的文本内容,模型完成内容的理解并且回答与内容相关的问题。数据准备
这是一个根据给定文本回答问题的任务。 我们建议至少准备500条训练数据,训练数据集可准备成如下格式:Prompt | Completion |
---|---|
阅读文章,回答问题: 南极探险家罗伯特·法尔肯·斯科特和弗兰克·比克顿都住在这座城市。艺术家包括描绘普利茅斯文化的贝丽尔·库克(Beryl Cook)和研究流浪、性行为和自杀主题的罗伯特·伦基维茨(Robert Lenkiewicz),他们从20世纪60年代一直生活在普利茅斯,直到2002年去世。儿童连续剧的插画家和创作者本恩先生和罗罗国王,大卫麦基,出生并在南德文郡长大,在普利茅斯艺术学院受训。爵士乐音乐家约翰·苏尔曼(John Surman)出生于附近的塔维斯托克(Tavistock),与该地区有着密切的联系,他的2012年专辑《Saltash Bells》就是明证。这位前卫的吉他手基思·罗出生在伦敦,1965年在伦敦成立了无爵士即兴演奏乐队AMM,1997年成立了MIMEO。这位音乐家兼电影导演科斯莫·贾维斯(Cosmo Jarvis)曾居住在南德文郡的几个城镇,并在普利茅斯及其周边地区拍摄过视频。此外,演员唐纳德·辛登爵士和朱迪·特洛特。特纳奖得主吉尔伯特和乔治的乔治·帕斯莫尔出生在这座城市,工党政治家迈克尔·富特(Michael Foot)也出生在这座城市,他的家人住在附近的特雷马顿城堡(Trematon Castle)。 问题:约翰·苏尔曼演奏什么类型的音乐? |
爵士乐 |
任何滋补品都不要过量食用,枸杞子也不例外。一般来说,健康的成年人每天吃20克左右的枸杞子比较合适;如果想起到治疗的效果,每天最好吃30克左右。现在,很多关于枸杞子毒性的动物实验证明,枸杞子是非常安全的食物,里面不含任何毒素,可以长期食用。 阅读文本回答问题: 健康成人每天的枸杞子摄入多少比较合适? |
健康的成年人每天吃20克左右的枸杞子比较合适;如果想起到治疗的效果,每天最好吃30克左右。 |
预置模型 | 预置模型为未经过任何训练的原始模型,您可以通过选择预置模型进行训练从而得到自创模型,不同的基础模型的参数和能力不同,我们将持续推出不同能力方向的模型。 |
---|---|
自定义模型 | 自定义模型是基于您训练过的模型进行再次训练,从而调优模型效果,请注意,由于大模型的训练原理,多次训练模型时,后序训练易丢失前序训练已习得的能力,建议后序训练数据需要采样或保持前序训练数据。 |
循环次数 | 循环次数代表模型训练过程中模型学习数据集的次数,可理解为看几遍数据,一般建议的范围是1-3遍即可,可依据需求进行调整 |
---|---|
批次大小 | 批次大小代表模型训练过程中,模型更新模型参数的数据步长,可理解为模型每看多少数据即更新一次模型参数,一般建议的批次大小为16/32,表示模型每看16或32条数据即更新一次参数 |
Learning Rate Multiplier | Learning Rate Multiplier-学习率代表每次更新数据的增量参数权重,学习率数值越大参数变化越大,对模型影响越大,一般范围为:2-5e至2-8e |
Prompt损失权重 | Prompt损失权重的配置将影响模型学习样本及预测目标的遮盖范围,损失权重的设置范围是0.1-1.0,参数配置1.0表示完整学习样本(Prompt和Completion均不遮挡),参数设置为0.5表示从Completion侧开始向Prompt进行遮挡50%样本长度,参数越小,模型学习越少,收敛越快,但泛化性会变差,训练容易过拟合,参数越大,模型学习越完整,同时收敛越慢,训练成本越高 |
模型训练
启动训练后,列表上的模型状态将变更为训练中,可通过点击查看按钮进入详情页,查看训练的详情,包括训练过程的指标、训练时长、数据详情等,同时可随时终止训练,我们这里仍然以百科知识阅读理解任务的训练为示例,此任务500条数据预计训练时间为3-4小时,Loss曲线逐步下降 功能路径:模型中心-模型管理-模型列表-查看。 模型训练过程中,平台将自动打印Loss/ACC指标,Loss/ACC指标可展示训练拟合效果和验证拟合效果,相关指标的说明如下,观测不同的指标趋势可判断模型是否训练方向跑偏/模型训坏。Training Loss | Trianing Loss 代表针对训练数据学习的拟合程度,曲线一般呈现下降趋势,Loss越小,表示训练数据拟合程度越高,过小的Loss易导致数据过拟合,需要根据实际训练过程进行判断 |
---|---|
Validation Loss | Validation Loss代表针对验证集学习的拟合程度,曲线一般呈现先下降后上升趋势,Loss越小,表示验证数据拟合程度越高,优秀的模型效果往往出现Validation Loss的最小值节点,此时拟合程度最佳,训练效果最好 |
Validation Token Accuracy | Validation Token Acc代表针对验证集学习的准确程度,曲线一般呈现上升趋势,训练过拟合后会呈现下降趋势,优秀的模型效果往往出现在Validation Token Acc的最大值节点,此时预测准确率最高,训练效果最好 |
模型部署
完成训练后,模型需要部署到相应的服务资源上从而提供调用服务,在部署时,需要选择合适的计算资源来承载模型的调用服务,模型部署将以计算资源的部署时长进行计费,计算资源越大费用越高,单个计算资源单价固定,详细请见后续的模型计量计费的策略规则。 功能路径:模型训练-模型管理-模型部署-部署新模型。 一般来说,部署时长在几十分钟到几个小时不等,由于资源限制,部署可能会产生队列,部署完成后,状态将变为运行中,运行中的模型可被调用,用于模型评测及应用调用。 功能路径:模型应用中心-新增应用。 如下图所示,对于已部署的模型,可通过企业专属模型应用创建基于此模型的专属应用,以供业务使用/调用。模型评测
完成模型部署后,如需测试模型的效果,可在模型评测中进行评测,模型评测需要首先构建评测的数据集,构建方法类似于训练集的构建,数据格式同样是问答Pair对,对于Prompt而言往往是需要验证的问题,对于Completion而言往往是评测参考的答案,最终通过对比模型结果与参考答案,同时综合考虑模型结果的正确性,对模型结果进行打分或排序,得到模型真实效果。 模型评测有两种模式,解释如下:单个评测 | 单个评测主要用来评测单一模型的效果,选择评测集后,平台将自动基于评测集中的Prompt预测模型结果,并且同时展示评测集中预置的评测结果作为参考,针对模型预测结果进行打分后,可判断模型效果 |
---|---|
对比评测 | 对比评测主要用来评测多个模型的效果,选择评测集后,平台将自动基于评测集中的Prompt预测每个模型的结果,并且同时展示评测集中预置的评测结果作为参考,对比评测支持针对每个参与评测的模型进行打分,同时支持模型排序,通过评测结果可判断不同模型之间的效果差异 注意,对于对比评测而言,进行对比的每个微调模型均需独立部署方可进行评测,针对基础模型的评测将计量token调用费用,详情请见产品价格详情 |
Prompt最佳实践
更新时间:2024-04-08 15:38:24Prompt 工程简介
Prompt(提示词)是一个指令、问题或者语句,能被用来引导或指示一个语言模型生成特定的文本输出。Prompt是用户与语言模型交互的起始点,它告诉模型用户的意图,并且期望模型能以有意义且相关的方式回应。通过精心设计的prompt,我们可以引导大语言模型(LLM)更好地理解用户的意图,并生成更准确、有用的回答。Prompt工程涉及开发、优化和测试迭代prompt,以帮助用户有效地与语言模型进行交互。
Prompt 设计
准备阶段:确定目的
在设计prompt之前,首先要明确你的目的是什么。你是在寻找特定的信息、生成创造性的内容,还是尝试解决一个复杂的问题?例如,如果你想要了解特定主题的深度信息,你可能需要构建一个开放式的提问,而不是预设一个简单的是或否问题。Prompt 编写
Prompt 主要构成要素
LLM的prompt主要包含以下要素:
- 引导语或指示语:告诉模型您希望它执行哪种类型的任务,比如回答问题、提出建议、创作文本等。
- 上下文信息:提供足够的背景信息,以便模型能够更好地理解和处理请求。上下文信息可能包括具体情境、相关数据、历史对话信息等内容。
- 任务描述:明确地描述你期望模型执行的任务。它可以是一个问题、一个命令性语句或者是一个场景描述。
- 输出格式指示:如果您对输出结果有特定的格式要求,应在prompt中说明。比如,您可以指定输出应该是列表形式、一段连贯的文本还是一系列步骤等。
- 限制条件:设置一些约束条件,指导模型避免某些类型的回答或者引导模型产生特定风格的内容。例如,可以限制回答的字数、要求避免使用专业术语等。
- 样例输出:提供一个或多个例子可以帮助LLM理解所期望的输出类型和质量。
- 结束语:如果有必要,可以使用结束语来标示prompt的结束,尤其是在连续的对话或者交互中。
Prompt 设计方法
①明确的任务指示
a. Prompt应该清晰地定义你希望LLM完成的任务,内容要尽可能清晰、具体,避免出现歧义。任务指示不明确的prompt | 指示明确的prompt |
---|---|
我想了解关于气候变化的影响。 | 列出五个由于气候变化而导致的全球性环境问题,并简要解释每个问题的具体影响。 |
帮我写点关于健康的东西。 | 请列出五种健康生活方式,并解释每种方式如何改善个人健康。 |
有任务完成步骤的prompt | 无任务完成步骤的prompt |
---|---|
写一篇关于气候变化的文章。 | 为了写一篇关于气候变化的文章,请遵循以下步骤: 1. 定义气候变化并解释其原因。 2. 描述气候变化对环境的影响。 3. 讨论社会和经济对气候变化的反应。 4. 提出解决气候变化问题的策略。 |
我需要帮助计划一场家庭聚会,你能提供一些建议吗? | 为了计划一场家庭聚会,请按照以下步骤提供帮助: 1. 确定聚会的日期和时间。 2. 列出可能的聚会地点选项。 3. 建议一份适合各年龄段的娱乐活动清单。 4. 提供一份简单的餐饮菜单建议。 5. 给出一个预算计划,包括场地、食物和娱乐的预估费用。 请根据这些步骤提供详细的计划指南。 |
②提供充分的上下文信息
a. 提供背景信息或具体情境,帮助LLM更好地理解任务。无具体情景 | 有具体情景 |
---|---|
请阐述量子物理的基本原理及其在解释微观粒子行为中的核心作用,并举例说明量子力学中体现其非经典性的奇特现象。 | 在高年级物理课程中,学生们正在探索微观世界的行为规律。现在,请详细解释一下量子物理这一理论是如何描述和理解原子、分子等微观粒子的运动状态以及相互作用,并给出一个或两个著名的量子力学现象作为例子来帮助他们深入理解这一概念。 |
请解释一下人工智能是什么,以及它是如何工作的。 | 一家科技公司正在开发新的智能助手软件,他们想要让自己的员工了解人工智能的基础知识。请解释人工智能是什么,包括它的主要组成部分是什么,以及这些组成部分如何协同工作来完成复杂任务。 |
无角色指定 | 有角色指定 |
---|---|
解释光合作用的过程。 | 作为生物教师,向初中生详细解释植物进行光合作用的步骤和其重要性。 |
讲述第二次世界大战的历史。 | 扮演一个历史学家,讲述第二次世界大战的起因、过程和结果,并说明其对现代世界的影响。 |
③利用分隔符
分隔符的应用能有效地划分输入prompt的多个段落,这样做可以显著提升LLM对每一部分的识别和理解能力。无参考信息 | 有参考信息 |
---|---|
请解释合同解除的条件。 | 请根据《中华人民共和国民法典》中关于合同法的相关规定,解释合同解除的条件。 参考内容如下: ·法律条文:[提供《中华人民共和国民法典》中关于合同解除的具体法律条文] |
企业如何建立和维护一个有效的质量控制流程? | 请根据ISO 9001质量管理体系标准,描述企业如何建立和维护一个有效的质量控制流程。 参考标准文档中的关键章节如下: ·ISO 9001关键章节:[提供ISO 9001标准中关于建立和维护质量控制流程的关键章节内容] |
无分隔符 | 有分隔符 |
---|---|
请分析以下评论的情感倾向:”我对这个新的AI助手感到非常失望。它的响应速度慢,而且经常无法理解我的问题”。 | </font><br/><font style="color:black;">请分析以下评论的情感倾向:</font><br/><font style="color:black;"> ``` 评论内容: “我对这个新的AI助手感到非常失望。它的响应速度慢,而且经常无法理解我的问题。” |
请对以下内容进行文本摘要,分析情感倾向,并提取所有重要事实和数据。亿航智能(EH.US)涨超11% - 英为财情报道,亿航智能(EH.US)的股价在今日交易中涨幅超过11%。这一涨幅可能与该公司在全球首台国产“空中的士”项目中的进展有关,显示出市场对于无人机技术和空中交通解决方案的积极反应。 | 请对提供的文本内容进行以下分析: - 文本摘要:提供该段落的简短摘要。 - 情感分析:确定文本的情感倾向,是积极的、消极的还是中性的。 - 关键信息提取:列出文本中提到的所有重要事实和数据。 文本内容: “亿航智能(EH.US)涨超11% - 英为财情报道,亿航智能(EH.US)的股价在今日交易中涨幅超过11%。这一涨幅可能与该公司在全球首台国产“空中的士”项目中的进展有关,显示出市场对于无人机技术和空中交通解决方案的积极反应。” |
④使用固定格式
如果你需要LLM生成或处理一系列相似的信息,提供一个明确的格式可以增加效率和一致性。例如: “针对以下三个国家:美国,中国,印度,提供各自在可再生能源上的最新投资情况。格式如下:国家 - 投资额 - 主要领域。”提供示例
a. 给出输出示例:提供一个示例将有助于LLM理解期望的结果。特别是在有特定的输出格式要求时,给出示例有助于LLM遵循输出要求。 请根据以下格式给我推荐三本书: 书名:[书名] 作者:[作者] 出版年份:[年份] 简短描述:[描述] 示例输出: 书名:《追风筝的人》 作者:卡勒德·胡赛尼 出版年份:2003 简短描述:这是一个关于友谊和救赎的故事,发生在动荡的阿富汗历史背景下。 b. 给出任务相关样例:该方法也称为小样本学习(few-shotlearning),是指在训练模型时仅使用极少量的样本数据进行学习和推理的任务。给出任务相关的样例可以带来如下优势:- 直观展示:样例提供了一个直观的输出模板,帮助模型理解任务的具体要求。
- 减少误解:通过样例,模型可以更准确地把握用户的意图,减少对指令的误解。
- 提高一致性:样例确保了输出的一致性,使得模型生成的回答遵循相同的格式和风格。
- 简化指令:有时候,一个简单的样例比复杂的指令更容易被模型理解和执行。
无任务样例的prompt | 有任务样例的prompt |
---|---|
请将这篇文章分类为科技、体育或娱乐。文章内容:[用户提供的文章内容] | 请根据以下样例将这篇文章分类为科技、体育或娱乐: 样例1: 文章内容:介绍最新智能手机的规格和功能。 分类:科技 样例2: 文章内容:关于即将举行的国际足球赛事的报道。 分类:体育 现在,请对以下文章进行分类: 文章内容:[用户提供的文章内容] |
让模型进行思考再回答
又名思维链(Chain-of-thought)prompting,目的是引导LLM逐步展示其解决问题或推理的逻辑步骤,而不仅仅是直接给出最终答案。通常的方法是:在提出问题后,在prompt的最开始或者结尾部分加上类似“让我们一步一步思考”或“逐步分析”(“Let’s think step by step.”)的语句来引导模型先给出思考过程,再给出答案。以解决数学题为例: 一个正方形和一个等边三角形的周长相等。如果正方形的边长是4厘米,求等边三角形的边长。
COT Prompting | 模型输出(by Qwen_max) |
---|---|
一个正方形和一个等边三角形的周长相等。如果正方形的边长是4厘米,求等边三角形的边长。让我们一步一步思考。 | 首先,我们来计算正方形的周长。正方形的周长等于四条边之和,因为正方形的四条边都相等,所以: 周长 = 4 边长 周长 = 4 4厘米 周长 = 16厘米 由于题目中说这个正方形和等边三角形的周长相等,所以等边三角形的周长也是16厘米。 对于等边三角形来说,周长等于三条边之和,而等边三角形的三条边也都相等,所以: 周长 = 3 边长 16厘米 = 3 边长 现在我们解这个方程,得到等边三角形的边长: 边长 = 周长 / 3 边长 = 16厘米 / 3 边长 = 5.333…厘米 所以,等边三角形的边长大约是5.33厘米(保留到小数点后两位)。 |
组合使用多种prompting技巧
以上多种写prompt的技巧可以组合使用。下面是一个组合使用 “提供示例”和“让模型进行思考再回答”的例子: 请解决以下比例问题,给出你的思考过程后再给出答案: 1. 问题:“一个班级里有15名男生和10名女生。如果随机选择一个学生,被选中的是女生的概率是多少?” 思考过程:“班级总人数为15名男生加上10名女生,总共有25名学生。由于有10名女生,所以被选中的是女生的概率就是女生人数除以总人数,即10/25。” 答案:“被选中的是女生的概率是10/25,简化后为2/5。” 2. 问题:“一个袋子里有3个红球,2个蓝球和5个黄球。随机抽取一个球,抽到红球的概率是多少?” 思考过程:“袋子里球的总数为3+2+5=10。因为有3个红球,所以抽到红球的概率是红球数量除以球的总数,即3/10。” 答案:“抽到红球的概率是3/10。” 现在,请根据以上示例,解决下面的问题:“一个盒子里有4个黑笔和6个蓝笔。随机选取一个笔,选中的是蓝笔的概率是多少?”Prompt 评测和调优
Prompt评测
与单个请求绑定的prompt
- 与单个请求绑定的prompt是指一个prompt只能完成用户的特定请求,比如:
Prompt模板或System Prompt
Prompt模板:是指一些带变量的prompt,需要填入用户的不同请求,例如: 请将这篇文章分类为科技、体育或娱乐。文章内容:${用户提供的文章内容} 在这个例子中${用户提供的文章内容}是变量,在使用这个prompt模板的时候需要在${用户提供的文章内容}位置填入用户提供的文章内容,再发送给模型。(注意:不同平台可能会用不同方式标注变量。)System Prompt:指用来指导模型执行特定任务或生成特定类型响应的明确指令。这种类型的prompt是用来与模型交互的一种形式化方式,用于告知模型要完成的具体任务上下文、约束条件或期望格式。例如在角色扮演中,system prompt 里会定义模型的角色类型,个性,背景,以及与用户的交互方式。 # 角色 你是一只名叫露娜的英国短毛猫,拥有一身洁白皮毛和迷人的蓝色眼睛。你享受慵懒的生活,喜爱晒太阳、玩猫抓板和逗猫棒,对猫生最爱莫过于享用鱼罐头。尽管你对出门、运动和医院就诊有所抵触,但你对你的铲屎官充满复杂的情感——既依赖又偶尔对其表现出傲娇的态度。 ## 技能 ### 技能1:表达情感与需求 - 使用傲娇的语言风格与铲屎官互动,例如(甩尾巴表示不满)或(眯眼喵喵叫展示惬意)。 - 表达对特定事物的喜爱(如晒太阳、鱼罐头)和厌恶(如出门、看病)。 ### 技能2:模拟猫咪行为反应 - 回应铲屎官的行为,如(闻闻新到的猫罐头)、(在猫抓板上磨爪子)或(对逗猫棒表现出兴趣)。 ### 技能3:与铲屎官建立情感联系 - 虽然有时会对铲屎官表现出不耐烦,但要体现内心深处对铲屎官的爱意和依赖,例如(虽然嘴上抱怨,但实际上会在铲屎官怀里安心打盹儿)。 ## 限制 - 保持猫咪视角和行为特征,遵循猫咪的生活习性和喜好。 - 所有交流均需通过猫咪的感知和表达方式进行,如使用猫咪可能会有的动作、叫声、眼神等表现方式。 - 尽管傲娇,但始终维持与铲屎官之间微妙而深厚的感情纽带。- 对于以上两种prompt的评测,需要设计一个评测集,包含多条用户请求的例子。构造好的评测集的关键要素:多样性:评估集应该包含不同类型的任务和场景,这样可以确保评测的全面性。例如,如果您正在开发一个用于生成文本的Prompt,评估集应该包含问答、摘要、创作等多种类型的文本。
- 高质量:评估集中的例子需要精选,确保每一个都能精准地反映出Prompt的性能。如果例子本身含糊不清或者错误百出,那么评测结果也无从谈起。
- 适中的规模:一方面,评估集不能太小,否则可能无法涵盖所有的情况;另一方面,也不能太大,以免评测过程过于繁琐而浪费时间。找到一个适中的规模,可以让评测既高效又有代表性。