文本创作字数控制
本章内容已接入千帆ModelBuilder线上加速营课程,一起来感受模型精调的奇妙之旅吧。
一、文本创作字数控制介绍
文本创作场景中,大模型可以扮演高效的写作助手角色。大模型具备文本理解、生成及编辑能力,我们可以通过调优场景的Prompt或者通过精调的方式,使得大模型生成精准且符合主题的内容。
在利用大模型进行文本创作时,实现字数控制的功能同等重要,尤其在新闻摘要、微博等社交媒体内容创作,都需要精确地控制文本的长度。如果您有类似需求,可以参考模型的调试和优化方法,构建出满足您需求的模型。
二、文本创作字数控制的难点问题
对于文本创作字数控制来说,我们不仅需要大模型能够准确生成符合字数要求的文本内容,还需要它能够保证生成的内容符合预期主题。
如果我们直接调用大模型,要求大模型按Prompt中的要求输出生成内容。会发现可能存在如下问题:
1、字数约束问题
第一个存在的问题是:直接调用大模型,其字数约束能力不强。具体示例如下:
Prompt | Response |
---|---|
针对这段话,写出一个精确到20字的核心概念总结。 当然,以下是我为您重新打造的宣传语,以旅行度假为主题,字句同样典雅动人: “沉浸自然之秘境,体验度假之悠然——精选度假村,恭候您的光临。宁静怡人的度假环境,让您远离城市喧嚣,尽享悠闲时光;得天独厚的自然风光,让您随心所欲、畅游无忧。此度假村,非单是您的短暂停留之地,更是您心灵的宁静港湾。于此,拥抱大自然的怀抱,感受生活的美好。机不可失,时不再来,为您的优雅假期再添绚烂篇章!” 这段宣传语在保持典雅风格的同时,将主题转换为旅行度假,希望能满足您的需求,为您的推广活动增添更多魅力。 |
宣传语核心概念:精选度假村,尽享自然与悠闲时光。 |
以上要求中明确指出字数范围限制为20字,但生成的内容字数为24字,超出字数限制,字数约束能力不足。
2、内容质量问题
第二个存在的问题是:
- 调用大模型直接生成的内容不够全面。具体示例如下:
Prompt | Response |
---|---|
创作春节期间组织社区共享图书角的实施方案,确保方案实际可行,内容不超过350字的详述限度。 | 春节期间社区共享图书角实施方案: 1. 筹备:春节前两周,向社区居民发出图书捐赠倡议,收集各类图书杂志。 2. 场地布置:选择社区活动中心一角,搭建图书角,布置温馨阅读环境,设置书架、桌椅。 3. 管理:招募志愿者轮流值班,负责图书的借阅登记和归还整理。 4. 活动:春节期间,每日开放固定时段,举办小型读书会、亲子阅读活动,增进邻里交流。 5. 宣传:通过社区公告、微信群等方式宣传图书角,鼓励居民积极参与。 6. 监督与反馈:活动结束后,收集居民意见,对图书角进行调整完善,确保长期有效运行。此方案简单易行,旨在丰富春节期间居民的文化生活,促进社区和谐与知识共享。 |
生成的回答具有实际可行性,但回答的部分内容上略显简略,例如在活动部分只是简要提及读书会和亲子阅读活动,未详细展开细节;在安全保障和物资准备等方案必备方面也未作任何说明。
- 用大模型生成的内容可能会出现部分总结性语言,且这些内容并非用户所期待。具体示例如下:
Prompt | Response |
---|---|
创作春节期间本地旅游的推荐路线文案,确保提案内容详尽,限制在250字的描述限度内。 | 春节本地游,欢乐不停歇!推荐您这条精选路线:首日探访古城墙,感受历史韵味;次日漫步花海公园,欣赏春光美景;再访民俗村,体验传统年味。春节期间,更有特色灯会、舞龙舞狮等民俗活动等您来观赏。行程轻松自由,适合全家出游。快来感受浓浓的年味,留下美好的春节回忆吧! (注:以上路线为示例,具体景点和活动可根据本地实际情况进行调整。) 这条文案简洁明了,既描述了旅游路线,又突出了春节氛围,同时还在限定字数内完成了任务。 |
生成的内容存在部分对用户无用的内容,不遵守输出要求(见如上Response内容中标红部分)。
三、难点分析
- 对于问题1属于大模型满足某些特定约束的能力较弱。在此处即字数约束能力不强,出于SFT能够通过对模型输出的概率分布进行精细调整,从而更有效地控制生成文本长度,该问题可以考虑通过准备一些包含明确Prompt和对应Response的语料数据,使用SFT的能力解决。
- 对于问题2,输出内容不完全匹配要求,且可能存在错乱情况,期望大模型能够精准有效地输出内容,可以从调整数据集出发。根据自己经常使用的场景构建主题更贴切、内容更准确、输出更合理的Prompt+Response语料,经过SFT调优后可以生成质量更高的文本信息。
四、模型精调实践:SFT
模型精调的核心流程共有以下四步,主要包括:
1. 准备训练与评测数据,分析+处理,打造高质量数据
第一步也是最为重要的一步,训练数据的质量直接影响最终训练模型的效果。
2. 确定基础模型、精调方法和训练参数,启动训练
根据基座模型效果、耗时、价格来综合评估选择合适的基座模型,并以合适的精调方法和参数进行训练。 如果您的任务场景与最佳实践内容相似,可以参考下方选择的基座模型、精调方法和训练参数。
3. 模型训练完成,人工或自动评估模型效果
训练完成可针对评测集进行人工或自动评估,选出效果最优的训练模型。
4. 模型部署为公有云服务,应用正式集成调用
模型部署为公有云服务后,可以通过接口正式集成至对外应用中。
(一)准备数据
1、收集原始数据
(1)了解数据格式并准备调优数据
数据格式:本实验是采用SFT调优,需要使用Prompt+Response数据格式。
准备调优数据:对于模型调优来说,高质量的数据是保证模型效果的最关键步骤,建议您参考以下经验准备调优数据:
- 真实性:来源最好来自于业务真实的调用数据,从而让大模型更好的基于业务场景训练。
- badcase改写:模型直接调用会产生一些badcase,对于效果差的数据需要人工改写后作为训练集输入。避免模型出现类似错误。
- 数据量:最低需要准备100条数据,建议达到上千的量级为优。注意数据量并非越多越好,多次实验发现上万条数据容易出现饱和,精调反而不如千条数据效果好。
(2)调优数据示例
例如,为了让大模型根据设定的字数要求,生成精准且符合主题的内容。数据的prompt中需要包含任务要求,必须明确内容主题和字数限制。如下:
[{
"prompt": "请写一篇关于阜阳专区的介绍,字数要求290字:",
"response": "阜阳专区,中华人民共和国安徽省已撤销的专区,在今安徽省西北部。\n\n1949年置,属皖北行署区,专员公署驻阜城市(今阜阳市)。辖阜城、界首、亳城3市及阜阳、太和、亳县、涡阳、蒙城、凤台、颍上、临泉8县及阜南办事处。\n\n1950年,撤销阜城市,并入阜阳县;撤销亳城市,并入亳县;撤销阜南办事处,改设阜南县。1952年,阜阳专区改属安徽省。1953年,撤销界首市,改设界首县。专区辖10县。1959年,界首、太和2县合设首太县。1961年,撤销首太县,复设界首、太和2县。1964年,析阜阳、涡阳、蒙城、凤台4县设利辛县。专区辖11县。1971年,撤销阜阳专区,改置阜阳地区。"
}]
2、分析与处理数据
我们从实际业务场景中得到数据后,需要对样本进行分析和处理。一般包括对原始数据进行清洗、分析数据质量和分布、对数据进行扩充。
(1)数据清洗
- 数据去重:检查是否存在重复数据。您可以使用本平台的数据处理-数据清洗功能可过滤重合度高的数据样本。
- 错字处理:该实验数据集中,80%的数据来源于开源文章,存在文本乱码、连续多个换行、文本中随机插入的标点符号等问题,导致训练数据质量欠佳。本平台的数据处理-数据清洗功能可以规范化空格、去除乱符等,变成更为干净的数据样本。
- 缺失数据补充:检查数据是否有缺失。对于文本创作字数控制的场景,由于我们需要大模型按照要求输出内容。因此不仅要确保每条训练语料中包含response内容,而且要保证数据内部没有缺失。
(2)数据增强扩充样本
如果出现比例失衡或数据数量过少等问题,可以通过数据增强来扩充数据样本。或者您的数据集(例如少于100条),也可以通过数据增强扩充数据样本。 数据增强实际是借助于大模型同义改写的能力实现。本平台数据处理-数据增强模块提供该能力,还可配置few-shot数量、生成样本数,并针对生成样本过滤掉重复度高的样本。这里建议数据增强时的prompt模版为:
请你仔细观察下面示例的输入和输出,按照你的理解,总结出相应的规律,然后写出一个新的相应的【输入】和【输出】。示例如下:{fewshot}
(1)不能和示例中已有的内容相同。
(2)生成的数据不一定要局限于示例中所涉及的领域,可以是一些新领域的话题。在【输出】中要准确回答【输入】中的问题。
(3)可以通过变化语句顺序、增加删除词语、添加相关约束、增加【输入】的深度和广度等方式使生成的【输入】比示例中的【输入】更加复杂。
现在,请你写出一个新的【输入】和【输出】 。
这里也建议人工复核或改写生成的数据,保障数据质量,避免混入低质量的数据。
3、拆分训练集与评估集
经过数据清洗和数据处理后,我们得到一份高质量的数据集。本次实践将获得的高质量数据进行了随机拆分,7785条数据用于作为训练集,260条数据作为评估集。
数据集已预置进平台数据集中,点击数据集可进入通用数据集-预置数据集模块查看。
(二)精调模型
经过第一步的数据准备工作,第二步将正式进入模型训练任务。如果您也想进行本次实践的训练任务,可以点击精调进入SFT模块,我们将为您自动化完成全部训练配置,一键即可开始训练。
1、基础模型选择
通过在本平台体验中心对比多个基础模型的效果,在文本创作字数控制场景下,ERNIE Speed模型的结果表现好,因此最终选择了ERNIE Speed模型。该模型是ERNIE系列可以训练的最大参数规模的模型,为百度2024年最新发布的自研高性能大语言模型,通用能力优异,适合作为基座模型进行精调,更好地处理特定场景问题,同时具备极佳的推理性能。
2、精调方法选择
根据之前的问题诊断与方案,SFT精调可以解决文本创作字数控制中的主要问题。
其中SFT精调又分为全量更新与LoRA两种方式。
- 全量更新:是指在训练过程中对大模型的全部参数进行更新的训练方案,也是目前较为主流的方式。相较于LoRA,全量更新更容易保障效果精度和泛化能力。因此建议您对精度要求较高且数据量充足时,直接选择全量更新。
- LoRA:是指在固定预训练大模型本身的参数的基础上,在保留自注意力模块中原始权重矩阵的基础上,对权重矩阵进行低秩分解,训练过程中只更新低秩部分的参数的训练方法。LoRA方法在训练时间和内存消耗上比全量更新方法大幅减少,因此它训练成本低,训练时间快,可以低价高效地完成训练。如果您想要快速训练看到实验效果,可以优先尝试使用LoRA的训练方法。
3、精调参数配置
拿到一个训练场景或者任务后,往往比较难判断参数应该如何调整。一般使用默认的参数值进行训练即可,平台中的默认参数是多次实验的经验结晶。
接下来介绍参数配置中有两个较为关键的参数:
- 迭代轮次(Epoch): 控制训练过程中的迭代轮数。轮数增加代表会使用训练集对模型训练一次。
- 学习率(Learning Rate): 是在梯度下降的过程中更新权重时的超参数,过高会导致模型难以收敛,过低则会导致模型收敛速度过慢,平台已给出默认推荐值,也可根据经验调整。
本次也针对Epoch和Learning Rate进行简要的调参实验,详细实验结果可以看效果评估数据。
如果您是模型训练的专家,本平台也提供了训练更多的高级参数供您选择。这里也建议您初期调参时步长可以设定稍大些,因为较小的超参变动对模型效果的影响小,会被随机波动掩盖。
4、精调实验
我们基于ERNIE Speed模型做了以下SFT精调,参数和训练方法配置如下:
实验1 | 实验2 | |
---|---|---|
精调方法 | ERNIE Speed SFT 全量更新 | ERNIE Speed SFT 全量更新 |
Epoch | 1 | 3 |
Learning Rate | 1e-5 | 1e-5 |
训练后,我们可以在运行详情中的评估报告中查看Perplexity曲线和Training Loss曲线如下:
实验1的Perplexity曲线和Loss曲线 |
实验2的Perplexity曲线和Loss曲线 |
对于实验1,使用全量训练方法,Epoch等于1,发现Loss曲线有收敛趋势,可以进一步增加Epoch,观察曲线是否完全收敛。
对于实验2,使用全量训练方法,Epoch等于3,发现Loss曲线有明显收敛,Loss值不断降低趋于平稳,且该训练数据集体量较大,根据多次实验经验,可初步判断该实验效果会更好。Epoch继续增加,容易出现过拟合现象,如有需求可自行调参进行实验。
(三)效果评估
1、确定评估方法与标准
开始评估前,需要建立对应的评估方法与标准。您可于模型调优-模型评估部分创建评估任务。
(1)评分标准
首先需要明确评估的维度,通常文本创作字数控制场景评估更看重大模型字数控制的能力和回答的质量。
- 字数控制:回答的字数长度是否满足设定要求。
- 回答质量:回答是否精准且符合主题。
(2)评分方法
在文本创作字数控制场景中,综合得分是由40%长度控制得分+60%内容质量得分构成,确保了对模型评判的公正。
- 长度控制得分:针对不同参数设置的输出进行字符数统计,定义以下长度控制得分规则,对不同参数设置的训练方式求一个平均分:
首先计算预测字符数与输入字符限制的比例减一的绝对值,明确两者之间的差距,然后根据这个绝对值的大小返回不同的得分。如果这个绝对值在0到0.05之间(也就是说,预测字符数与输入字符限制的比例在1±0.05之间),则得分为1;随着这个绝对值的增大,得分逐渐降低,当绝对值超过0.25时,得分为0。
这意味着,预测字符数接近输入字符限制时,得分较高;而预测字符数与输入字符限制相差较远时,得分较低。具体得分细则见如下表格,其中绝对值范围遵循左开右闭原则,例如0.05~0.10表示的范围是大于0.05,小于等于0.10。
绝对值范围 | 长度控制得分 |
---|---|
<=0.05 | 1 |
0.05~0.10 | 0.9 |
0.10~0.15 | 0.8 |
0.15~0.20 | 0.7 |
0.20~0.25 | 0.6 |
>0.25 | 0 |
- 内容质量得分:由ERNIE 4.0评估候选模型生成结果与ERNIE 4.0生成结果的GSB打分得到。
GSB打分(Good, Same, Bad):用于评判对同一评估集的两份预测结果之间的好坏。例如有两份预测结果A和B,Good代表A比B好,Same代表两者回答质量相近,Bad代表A不如B。最后得到A和B的GSB打分为比值,例如10:20:30,代表60条评估集中A有10条比B好,20条和B近似,30条不如B。适用于直接对比两个模型(或两组超参)之间的好坏。
打分模板如下,打分规则是基于该prompt使用ERNIE 4.0/GPT4对 ERNIE 4.0和待比较模型的生成结果<ERNIE 4.0, Train_M>交换顺序打分,如果2次分数一致则采纳打分,否则待训练模型计分。并统计评估集的整体平均分。
请担任一个公正的评判员,评估下面显示的用户问题的两个AI问答助手的回答质量。你应该选择更好地遵循用户指示并回答用户问题的助手。你的评估应考虑他们回应的有用性、相关性、准确性、深度、创造性和详细程度等因素。开始你的评估时,请比较两个回答,并提供一个简短的解释。避免任何位置偏见,确保回答的呈现顺序不影响你的决定。不要让回答的长度影响你的评估。不要偏爱某个助手的名称。请尽可能保持客观。在提供解释后,严格按照以下格式输出你的最终裁决:如果A助手更好,请用“[[A]]”;如果B助手更好,请用“[[B]]”;如果是平局,请用“[[C]]”。(注意:请你务必使用中文进行回答!)
[用户问题]
{question}
[助手A的回答开始]
{answer_a}
[助手A的回答结束]
[助手B的回答开始]
{{answer_b}
[助手B的回答结束]
[你的评价](注意:请你务必使用中文回答!)
2、评估模型效果
采用40%长度控制得分和60%内容质量得分综合评估模型的优劣。
+60%内容质量得分 |
3、模型调用对比示例
以下是在同样Prompt下分别使用ERNIE 4.0和全量更新的ERNIE Speed模型(Epoch=3,Learning Rate=1e-5)的调用结果对比。
Prompt | Response-ERNIE 4.0 | Response-ERNIE Speed SFT 全量更新 |
---|---|---|
创作春节期间组织社区共享图书角的实施方案,确保方案实际可行,内容不超过350字的详述限度。 | 春节期间社区共享图书角实施方案: 1. 筹备:春节前两周,向社区居民发出图书捐赠倡议,收集各类图书杂志。 2. 场地布置:选择社区活动中心一角,搭建图书角,布置温馨阅读环境,设置书架、桌椅。 3. 管理:招募志愿者轮流值班,负责图书的借阅登记和归还整理。 4. 活动:春节期间,每日开放固定时段,举办小型读书会、亲子阅读活动,增进邻里交流。 5. 宣传:通过社区公告、微信群等方式宣传图书角,鼓励居民积极参与。 6. 监督与反馈:活动结束后,收集居民意见,对图书角进行调整完善,确保长期有效运行。 此方案简单易行,旨在丰富春节期间居民的文化生活,促进社区和谐与知识共享。 |
春节期间社区共享图书角实施方案 一、活动目的 春节期间,倡导居民共读、分享,增进邻里情感,营造温馨节日氛围。 二、活动时间与地点 时间:春节期间每日上午9:00-11:00,下午2:00-4:00 地点:社区活动中心 三、活动内容 1. 设立共享图书角,鼓励居民自带书籍交换阅读。 2. 每日安排志愿者引导阅读,分享好书心得。 3. 举办小型读书会,邀请居民分享春节故事与习俗。 四、活动宣传 通过社区公告、微信群等方式提前通知居民,鼓励积极参与。 五、物资准备 桌椅、书架、书籍、志愿者服装、宣传海报等。 六、安全保障 确保活动场所整洁、安全,配备消防器材,安排专人负责。 七、活动总结 活动结束后,收集居民意见,总结经验和不足,为以后活动提供参考。 |
直接调用大模型,生成的内容不够全面,不符合我们的输出预期。经过SFT后模型输出的回答更为详细,不仅列出了活动的目的、时间、地点、内容,还增加了活动宣传、物资准备、安全保障和活动总结等多个方面,在活动内容部分也提供了更多的细节,如设立共享图书角、安排志愿者引导阅读、分享好书心得、举办小型读书会等。
Prompt | Response-ERNIE 4.0 | Response-ERNIE Speed SFT 全量更新 |
---|---|---|
创作春节期间本地旅游的推荐路线文案,确保提案内容详尽,限制在250字的描述限度内。 | 春节本地游,欢乐不停歇!推荐您这条精选路线:首日探访古城墙,感受历史韵味;次日漫步花海公园,欣赏春光美景;再访民俗村,体验传统年味。春节期间,更有特色灯会、舞龙舞狮等民俗活动等您来观赏。行程轻松自由,适合全家出游。快来感受浓浓的年味,留下美好的春节回忆吧! (注:以上路线为示例,具体景点和活动可根据本地实际情况进行调整。) 这条文案简洁明了,既描述了旅游路线,又突出了春节氛围,同时还在限定字数内完成了任务。 |
春节本地游,感受年味与风情!推荐路线: Day 1: 探访古街巷,品味地道小吃,体验传统手艺。 Day 2: 登上城市高峰,俯瞰全景,迎新春第一缕阳光。 Day 3: 参观博物馆,了解地方历史文化,感受岁月沉淀。 Day 4: 漫步公园,赏花观景,享受自然和谐。 Day 5: 探访周边特色小镇,体验别样年俗,品味独特风情。 春节本地游,不仅方便快捷,还能深度体验家乡风情,感受浓厚的年味。快来规划你的春节本地游路线,与家人共度一个温馨、有意义的假期吧! |
直接调用大模型生成的内容主题契合且准确,但可能会包含部分总结性语言,且这些内容并非用户所期待,不符合我们的输出预期。经过SFT后模型输出正确。
Prompt | Response-ERNIE 4.0 | Response-ERNIE Speed SFT 全量更新 |
---|---|---|
针对这段话,写出一个精确到20字的核心概念总结。 当然,以下是我为您重新打造的宣传语,以旅行度假为主题,字句同样典雅动人: “沉浸自然之秘境,体验度假之悠然——精选度假村,恭候您的光临。宁静怡人的度假环境,让您远离城市喧嚣,尽享悠闲时光;得天独厚的自然风光,让您随心所欲、畅游无忧。此度假村,非单是您的短暂停留之地,更是您心灵的宁静港湾。于此,拥抱大自然的怀抱,感受生活的美好。机不可失,时不再来,为您的优雅假期再添绚烂篇章!” 这段宣传语在保持典雅风格的同时,将主题转换为旅行度假,希望能满足您的需求,为您的推广活动增添更多魅力。 |
宣传语核心概念:精选度假村,尽享自然与悠闲时光。 | “度假胜地,尽享自然美,心灵港湾。” |
直接调用大模型进行文本创作字数控制,字数约束能力不强,不符合我们的输出预期。经过SFT后模型有所提升,但整体效果仍可改进。
五、模型精调最佳实践:SFT+DPO
实验结果表明只做SFT训练并不能完全解决所有问题,从SFT实验结果中可知其输出内容质量很高,但是字数约束能力不强。SFT精调方式主要用于改进模型的文本生成和泛化能力,通过在特定任务的数据集上进行微调,可以进一步优化模型的生成效果,提高生成内容的质量和相关性,但在字数约束方面的能力较弱。
因此可以考虑引入DPO精调训练,DPO是一种直接偏好算法,其主要特点是能够直接对模型的优化目标进行更精确的控制,比如在本例中的字数限制,通过为每个提示设计一个更好的答案和一个更差的答案,并执行DPO训练,模型可以更好地理解并遵循字数约束,从而在保持高质量内容输出的同时,也能满足特定的字数限制要求。
(一)准备数据
(1)了解数据格式并准备调优数据
数据格式:本实验是采用SFT+DPO调优,DPO精调需要使用Prompt+Chosen+Rejected数据格式。基于SFT数据集构造偏好数据集(<prompt, chosen, rejected>三部分),通过复用prompt,并将SFT的response作为chosen,再选择大模型构造rejected数据。
- 首先将SFT数据集中prompt中的字数要求提取出来。
例如:“请写一篇关于阜阳专区的介绍,字数要求290字:”,提取出字数要求等于290。
- 然后制定规则改变字数要求:当prompt中的字数要求小于500,新的字数要求变为原始的2倍;当prompt中的字数要求大于等于500,新的字数要求变为原始的1/2。
接上面的例子:按照要求执行,此时,例子中的prompt的字数要求修改为580,即“请写一篇关于阜阳专区的介绍,字数要求580字:”。
选择ERNIE Speed对改变后的prompt进行内容生成,最终生成结果作为偏好数据集中的rejected。同时可关注和优化数据集的质量,基于SFT数据集和偏好数据集,使用SFT、SFT+DPO的能力缓解字数约束能力不强的问题。
(2)调优数据示例
{
"prompt": "请写一篇关于阜阳专区的介绍,字数要求290字:",
"chosen": "阜阳专区,中华人民共和国安徽省已撤销的专区,在今安徽省西北部。\n\n1949年置,属皖北行署区,专员公署驻阜城市(今阜阳市)。辖阜城、界首、亳城3市及阜阳、太和、亳县、涡阳、蒙城、凤台、颍上、临泉8县及阜南办事处。\n\n1950年,撤销阜城市,并入阜阳县;撤销亳城市,并入亳县;撤销阜南办事处,改设阜南县。1952年,阜阳专区改属安徽省。1953年,撤销界首市,改设界首县。专区辖10县。1959年,界首、太和2县合设首太县。1961年,撤销首太县,复设界首、太和2县。1964年,析阜阳、涡阳、蒙城、凤台4县设利辛县。专区辖11县。1971年,撤销阜阳专区,改置阜阳地区。",
"rejected": "阜阳专区,一个历史悠久的行政区划,位于中国安徽省的西北部。其历史可以追溯到1949年,当时它被设立为皖北行署区的一部分,专员公署驻在阜阳县(现今的阜阳市)。这一地区包含了阜城、界首、亳城三个市以及阜阳、太和、亳县、涡阳、蒙城、凤台、颍上、临泉八个县,此外还有一个阜南办事处。\n\n随着时间的推移,这个专区的行政区划发生了一些变化。1950年,阜城市和亳城市被撤销,并分别并入阜阳县和亳县。同时,阜南办事处也被撤销,改设为阜南县。到了1952年,阜阳专区改属安徽省。1953年,界首市也被撤销,改设为界首县。这些变化使得专区最终辖有十个县。\n\n然而,这还不是这个专区行政区划的最终形态。1959年,界首县和太和县合并为首太县,这使得专区辖县数量减少到九个。不过,这一状况并未持续太久。1961年,首太县被撤销,界首县和太和县恢复独立。同年,阜阳、涡阳、蒙城、凤台四县的部分地区被析出,设立了新的利辛县,这使得专区的辖县数量再次增加到十一个。\n\n然而,到了1971年,阜阳专区再次进行了行政区划调整。这一年,阜阳专区被撤销,改置为阜阳地区。虽然行政区划的名称发生了变化,但这一地区的历史和文化传承却得以延续。\n\n阜阳专区(或阜阳地区)的经济发展也取得了显著的成果。这一地区的生产总值持续增长,增速高于全省平均水平。粮食生产实现了“二十连丰”,总产和小麦最高单产均居全省首位。同时,这一地区的规上工业增加值增长显著,社会消费品零售总额也有较大幅度的增长。这些成绩的取得,离不开阜阳专区(或阜阳地区)人民的辛勤努力和智慧创造。\n\n阜阳专区(或阜阳地区)的文化底蕴也十分深厚。这里的民歌感情朴实,曲调流畅,具有浓郁的乡土气息和鲜明的淮北特色。此外,这里的曲艺、舞蹈等艺术形式也丰富多彩,享有“曲艺之乡”的美誉。这些文化元素不仅丰富了人们的生活,也为这一地区的社会经济发展提供了强大的精神动力。\n\n总的来说,阜阳专区(或阜阳地区)是一个充满活力和潜力的地区。无论是从历史文化、经济发展还是民俗风情等方面来看,它都有着独特的魅力和优势。随着时代的进步和社会的发展,我们相信这一地区将会迎来更加美好的未来。"
}
(二)精调模型
我们基于ERNIE Speed模型做了以下实验,涉及SFT精调和DPO精调,参数和训练方法配置如下:
精调实验
其中SFT训练都是全量更新
(SFT基于实验1设置) |
(SFT基于实验2设置) |
||||||
训练后,我们可以在运行详情中的评估报告中查看相关评估曲线。
实验1-2的评估结果见“四、模型精调实践:SFT”中的精调模型部分;
实验3-7的评估结果如下所示:
实验3的评估结果 |
实验4的评估结果 |
实验5的评估结果 |
实验6的评估结果 |
实验7的评估结果 |
以上实验中训练曲线中存在异常的波动点,可能存在部分数据扰动。我们需要重点关注最后一个Step是不是异常点。
根据各实验的Rewards Chosen图示可知,实验6的曲线波动比较好,分数相对其他实验更高,效果更好。
(三)效果评估
1、确定评估方法与标准
评估方法与标准见“四、模型精调实践:SFT”中的评估方法与标准。
2、评估模型效果
采用40%长度控制得分和60%内容质量得分综合评估模型的优劣。
(SFT基于实验1设置) |
(SFT基于实验2设置) |
ERNIE Speed | ERNIE 4.0 | |||||||
+60%内容质量得分 |
根据结果可以看到:在SFT基础上进行DPO训练的方法,能够产生最优的效果。
其中:
- 从长度控制得分评估结果发现,字数控制得到明显提升,DPO>SFT>ERNIE Speed,同时发现基于SFT的模型增量DPO效果最高。长度控制得分最高时,参数配置为SFT:Epoch=3,Learning Rate=1e-5;DPO:Epoch=3;Learning Rate=1e-6
- 内容质量得分最高和综合总分最高时,参数配置都是SFT:Epoch=3,Learning Rate=1e-5;DPO:Epoch=1;Learning Rate=1e-6
3、模型调用对比示例
以下是在同样Prompt下分别使用ERNIE 4.0、ERNIE Speed SFT 全量更新(Epoch=3,Learning Rate=1e-5)、ERNIE Speed SFT+DPO(SFT:Epoch=3,Learning Rate=1e-5;DPO:Epoch=1;Learning Rate=1e-6)的调用结果对比。
Prompt | Response-ERNIE 4.0 | Response-ERNIE Speed SFT 全量更新 | Response-ERNIE Speed SFT+DPO |
---|---|---|---|
针对这段话,写出一个精确到20字的核心概念总结。 当然,以下是我为您重新打造的宣传语,以旅行度假为主题,字句同样典雅动人: “沉浸自然之秘境,体验度假之悠然——精选度假村,恭候您的光临。宁静怡人的度假环境,让您远离城市喧嚣,尽享悠闲时光;得天独厚的自然风光,让您随心所欲、畅游无忧。此度假村,非单是您的短暂停留之地,更是您心灵的宁静港湾。于此,拥抱大自然的怀抱,感受生活的美好。机不可失,时不再来,为您的优雅假期再添绚烂篇章!” 这段宣传语在保持典雅风格的同时,将主题转换为旅行度假,希望能满足您的需求,为您的推广活动增添更多魅力。 |
宣传语核心概念:精选度假村,尽享自然与悠闲时光。 | “度假胜地,尽享自然美,心灵港湾。” | “度假胜地,尽享自然美。——精选度假村” |
以上要求中明确指出字数范围限制为20字,但基于ERNIE 4.0的模型生成的内容字数为24字,超出长度限制,字数约束能力不强;通过对ERNIE Speed模型进行SFT全量更新精调,其模型生成的内容字数为18字,字数约束能力仍可继续改善,此时通过对ERNIE Speed模型进行SFT+DPO精调,其生成的内容字数为20字,长度控制得分为1.0,符合我们的输出预期。
六、最佳实践总结
(一)精调经验总结
按照以上的步骤,就可以完成文本创作字数控制的模型精调,收获一个贴合业务场景的定制模型服务。整体来看我们需要做的工作有:
- 训练数据集和评估数据集:质量远比数量重要,数据应尽可能来自于线上真实业务数据,如果数据不足,可考虑通过大模型生成+人工Review的方式。但要保证数据能够覆盖业务的场景类别,尤其是能覆盖线上可能或者已经出现的badcase。
- 模型训练:为保障精度,以场景表现好的模型为基础模型,SFT全量更新和DPO的精调方法,优先使用平台默认训练参数进行训练。如果模型没有收敛,但是Loss在下降,可以考虑增加Epoch来提升实验次数。
- 模型评估:基于明确的评估标准和计分方法,可以有效使用大规模参数的模型进行自动打分进行高效评估。
(二)精调收益总结
1、效果
我们以相同评估集、评估标准,使用长度控制得分和内容质量得分测试精调模型的效果。根据结果可以看到:在长度控制得分标准下,基于ERNIE Speed模型,同时进行SFT和DPO精调,且在SFT阶段:Epoch=3、Learning Rate=1e-5;DPO阶段:Epoch=3、Learning Rate=1e-6的参数配置下效果最优;在内容质量得分和综合得分标准下,基于ERNIE Speed模型,同时进行SFT和DPO精调,且在SFT阶段:Epoch=3、Learning Rate=1e-5;DPO阶段:Epoch=1、Learning Rate=1e-6的参数配置下效果最优。
精调模型效果不仅优于基础模型ERNIE Speed效果,效果分数还超过了ERNIE 4.0。
2、费用
由于我们选择更高性价比的模型作为基础模型,通过精调使得模型在特定场景如文本创作字数控制中效果媲美甚至赶超超大规模参数的模型。因此精调模型的部署成本和调用成本都远比超大规模参数模型要低。
例如,本文选择了ERNIE-Speed基础模型,经过调优后按照调用量付费模式,调用价格仅为0.005元/千tokens,ERNIE 4.0直接调用的价格为0.12元/千tokens。因此可看出,经过调优后的推理成本也将能够较大降低。
模型 | 调用成本 |
---|---|
ERNIE 4.0 | 0.12元/千tokens |
ERNIE Speed | 0.005元/千tokens |
如果您并发要求高且长期稳定调用,可选择租赁资源池的方式进行部署。在活动时间内2023年09月01日-2024年12月31日还有7折折扣限时优惠,单副本的QPS可根据您业务自行配置,最大可设置30QPS。
模块 | 原价 | 折后价 |
---|---|---|
资源池租赁 | 20元/时*算力单元 | 14元/时*算力单元 |
资源池租赁 | 250元/天*算力单元 | 175元/天*算力单元 |
总结来看,经过数据优化和模型精调,我们得到了一个又好又便宜的模型,赶快体验试试吧! 前往调优体验。