为了让大语言模型的AI能力更贴近业务需求,本文详细介绍了在阿里云百炼创建自定义模型的最佳实践。即便不清楚大模型的技术细节,您也能按照本篇的操作指引创建一个有效的自定义模型,从而轻松地为业务场景添加大模型服务能力。
自定义模型概述
自定义大模型是指基于通用大语言模型,通过微调和训练,能更好地适应特定领域或任务的大语言模型。
为什么选择自定义模型?
提高特定领域的准确性:通用的大语言模型尽管强大,但在处理特定领域的任务时,可能会因为缺乏领域特定知识而表现不佳。自定义大语言模型通过领域特定的数据进行重新训练,可以显著提高在该领域的表现和准确性。
增强模型的适用性:自定义大语言模型可以根据特定应用场景的需求进行微调,使其更好地适应特定任务。例如,在客户服务中,自定义模型可以更好地理解和回应客户的特定问题,提高客户满意度。
节约开发时间和成本:利用现有的大语言模型进行定制化训练,比从头开发一个模型要节约大量时间和成本。您可以快速部署自定义模型,满足业务需求。
增强品牌和用户体验:自定义大语言模型可以根据企业的品牌语言风格进行调整,确保输出内容的一致性和品牌调性,从而提升用户体验和品牌形象。
创建自定义模型的流程
创建自定义模型涉及三个主要步骤:模型调优、模型部署、模型评测,以及三个辅助步骤:训练数据准备、评测模板设计、调整训练策略。
模型调优阶段:模型会“学习”大量训练数据的语言特征,从而理解并生成相似的自然语言。开始模型调优之前,您需要做一些训练数据准备工作,包括数据收集、数据清洗、数据集划分等操作。您需按照训练新模型向导的指引配置模型调优。根据配置的训练超参数(超参数是指在模型调优前需要提前设定的参数,包括学习率、迭代次数等),阿里云百炼将自动训练您选择的预置模型。一般情况下,训练过程是自动完成的,无需进一步操作。
模型部署阶段:您需要将自定义模型部署到独占实例上,然后调用或评测自定义模型。部署新模型向导将帮助您配置模型部署。根据配置的自定义模型规格和资源配置方式,阿里云百炼将计算预估价格。待您确认价格后,阿里云百炼会自动部署模型,一般无需干预。完成部署后,您便可以在代码或评测中配置自定义模型。
模型评测阶段:您可以评测已部署的自定义模型。您可以按照创建评测任务向导的指引配置模型评测。自定义模型不涉及评测模板设计环节。根据您选择的评测方式、数据和维度,阿里云百炼将自动完成评测,一般无需干预。
如果对模型的评测结果不满意,您还可以调整训练策略(选择不同的预置模型作为基础模型、扩充训练数据样本、选择不同的超参数配置等),再次完成训练、部署和评测。您可以重复整个流程,直到模型的评测结果满足预期。
在阿里云百炼,完成调优的模型必须部署后才能调用和评测。因此,您需要首先完成模型部署,方可继续评测模型。
前提条件
前置知识
您可能需要了解机器学习、深度学习和自然语言处理的基础概念。如果不了解这些概念,您也可以遵循本实践文档的指引完成整个创建流程。
工具和资源
您需要开通阿里云百炼大模型服务平台,并确认账号余额充足,以免无法创建自定义模型。
计费信息
创建自定义模型时,可能涉及多种计费项,包括但不限于模型调优、模型部署和模型评测。计费规则请参考计费项与定价。
训练数据准备
在开始训练前,您需要完成训练数据的准备工作。这些准备工作包括:从业务场景中收集具有代表性的业务数据,并转换为问答对的形式(数据收集);上传训练数据、评测数据、验证数据(数据上传);使用阿里云大模型服务平台百炼提供的数据清洗工具和数据增强工具,提升训练数据的质量。
1. 数据收集
您可以从各种信息来源中发掘有业务价值的数据,并将这些数据编排成特定结构。您在完成数据收集时,需仔细考虑以下策略:
来源多样化:从书籍摘录、学术论文、新闻报道和专业网站等多种来源收集数据,来确保模型的适用范围更广,可以处理不同类型的问题或理解多种表达方式。
质量控制:数据质量决定了模型质量。质量高、数量足的数据可以让模型学得更好,表现更优。
平衡性考量:确保问题类型、难度和答案的分布均匀,避免模型偏向某一特定类型的数据,导致训练偏差。
在阿里云百炼,您需要将收集到的数据编排成“Prompt-Completion”格式,便于平台解析和训练。为了尽可能提高训练效率,我们建议至少准备500条训练数据,要求如下:
文本分割:合理分割长文本,确保每个Prompt-Completion对聚焦于单一明确的主题,便于模型学习。
脱敏处理:移除个人身份信息、敏感词汇或不适宜内容,保证数据合规与安全。
小贴士:构建聊天机器人的数据收集
假设您想创建一个智能聊天机器人,能够回答客户提出的问题。
在数据收集阶段,您的目标是:为聊天机器人收集学习材料。
数据来源:
用户聊天记录:比如网站上的在线客服聊天记录。
FAQ文档:公司网站上的常见问题解答列表。
客户服务邮件:客户发送给客服团队的问题和相应的回复。
数据示例:
用户聊天记录:导出在线客服系统中的聊天记录,可以包括客户问题和客服回复。例如:
客户:你们的退货政策是什么? 客服:我们的退货政策是在购买30天内可以无条件退货。
FAQ文档:收集网站上列出的常见问题及其答案。例如:
问:如何更改我的密码? 答:请点击“设置”,然后选择“更改密码”。
客户服务邮件:导出邮件系统中跟客户的来往邮件。例如:
客户邮件:我的订单没有收到,怎么办? 客服回复:我们很抱歉,请提供您的订单号,我们会尽快处理。
数据编排:
Prompt | Completion |
你们的退货政策是什么? | 我们的退货政策是购买30天内可以无条件退货。 |
如何更改我的密码? | 请点击“设置”,然后选择“更改密码”。 |
我的订单没有收到,怎么办? | 我们很抱歉,请提供您的订单号,我们会尽快处理。 |
2. 数据上传
您需要将准备好的数据上传至阿里云百炼,以备进一步清洗和增强,或直接参与模型调优。平台自动进行格式检查和基础数据质量审核,确保数据符合训练要求。
阿里云百炼支持创建不同数据类型的数据集,包括训练集、评测集,支持多版本数据管理,发布后可前往模型调优/评测功能使用。您可以利用平台提供的工具对数据集进行标签标注、筛选和版本管理,有利于迭代训练和性能追踪。
操作步骤
登录阿里云百炼控制台,在左侧导航栏中,选择数据应用 > 模型数据。这里展示了所有上传的数据集列表,您可以在这里管理所有数据集,包括查看、导出、发布、删除等操作。
点击新增数据集,通过填写如下表单创建训练集和评测集:
数据集名称:用以标识数据集的名称,可按需创建。
数据集类型:包含训练集和评测集。每次新增数据集时,您只能选择一种类型的数据集。训练集由一轮或多轮的Prompt+Completion数据组成,而评测集仅包含Prompt数据。您需要分别创建这两种数据集。
存储位置:默认为平台存储。
导入方式:默认为本地上传。
数据导入:您可以在这里上传训练数据,打开文件浏览器或直接拖拽数据到上传区域里。阿里云百炼支持批量上传,一次最多导入10个文件,还提供了各种数据格式的模板供参考。
确认无误,您可以点击确认完成数据上传的配置。
阿里云百炼将自动完成数据的上传过程,无需额外操作。上传完成后,请您务必点击发布,数据只有被发布后才能用于训练。
小贴士:迭代优化
数据准备是一个迭代过程,初期数据集不必完美,但在模型调优过程中,根据训练反馈不断调整和丰富数据,可以逐步提升模型表现。
3. 数据清洗与数据增强(可选)
数据清洗是指检查并处理收集到的数据,以保证数据的质量、完整性和一致性。这一步骤可以显著提高模型的训练效果和预测能力。数据增强是指增加多样性并扩展训练数据的规模。
阿里云百炼提供了模型数据的版本管理能力,您的数据将在清洗或增强后自动生成一个新版本。新版本数据独立保存,不会覆盖源数据。
如果您的数据类型不适合数据清洗与增强(如法律文件、医学记录、文学作品、方言汇总、用户评论、技术手册等),建议跳过该步骤。
建议您优先清洗数据,再增强清洗后的数据。这样可以确保增强操作是在一个干净、高质量的数据集上进行的。这样可以避免在低质量数据上进行增强,从而保证模型调优的数据源是准确的。
数据清洗操作步骤
若已经准备好需要清洗的数据,您可以在任务模板页签点击数据清洗-通用卡片中的基于此模板创建,通过填写以下表单项创建清洗任务:
任务名称:用以标识清洗任务的名称,可按需创建。
数据来源:默认为模型数据,您在此处选择准备清洗的数据集(版本),并管理现有的数据集。
算子选择:阿里云百炼提供了预置算子,包括各种算子类型、算子描述及清洗效果预览。您可以根据预置算子配置清洗参数。
点击创建完成,清洗任务将自动开始,您可以在任务列表页签查看最新任务状态。清洗完成后,阿里云百炼将生成一个新版本数据,请您在使用数据时注意区分版本。
待清洗任务结束后,您可以在任务列表页签,单击数据清洗任务操作列的结果查看清洗的详细结果。
数据增强操作步骤
若已经准备好需要增强的数据,您可以在任务模板页签点击数据增强-通用卡片中的基于此模板创建,通过填写以下表单项创建增强任务:
任务名称:用以标识增强任务的名称,可按需创建。
数据来源:默认为模型数据,您在此处选择准备增强的数据集(版本),并管理现有的数据集。
参数选择:阿里云百炼提供了预置参数,包括多种参数类型、参数值及参数描述。您可以根据预置算子配置清洗参数。
Prompt配置:阿里云百炼使用大语言模型增强数据,您需要配置增强任务的Prompt,此处已经预置了Prompt模板,可以按照模板指引完成配置。
点击创建完成,增强任务将自动开始,您可以在任务列表页签查看最新任务状态。增强完成后,阿里云百炼将为您的数据生成一个新版本,请在使用数据时注意区分版本。
待增强任务结束后,您可以在任务列表页签,单击数据增强任务操作列的结果查看增强的详细结果。
小贴士:精准与多样化
在数据处理中,数据清洗和数据增强是提升数据质量和多样性的关键步骤。为了确保这两个步骤的有效性和合理性,请您参考以下建议:
逐步清洗: 分阶段进行数据清洗,每次只执行特定的一类清洗操作(如移除重复项、处理缺失值等)。这样可以更容易地检测和纠正错误,提高数据的整洁度和一致性。
验证清洗效果: 每个清洗步骤之后,检查数据的样本,以确保数据的完整性和真实性没有被破坏。
任务相关性: 在数据增强时,确保生成的增强数据与目标任务高度相关,避免引入不相关的变体,保持数据上下文和语义的一致性。
多样化策略: 使用多种数据增强策略(如同义词替换、随机抽样、翻译变换等),以最大限度地增加数据的多样性。这有助于提升模型的泛化能力。
平衡增强: 生成的增强数据应在类别、难度和结构上相对平衡,避免让模型接触过多的特定类型数据,导致过拟合。确保在数据增强过程中,不偏离数据的真实分布。
模型调优
完成训练数据的准备后,您便可以开始模型调优。模型调优,即使用训练数据集和验证数据集训练模型。
阿里云百炼提供Fine-tuning的训练方式,还提供多种参数的调整,可以根据业务需求调整参数,优化模型调优效果。以下是新建模型训练任务和关联模型训练任务的操作方法:
新建训练任务
您可通过模型调优页面的训练新模型操作向导,完成训练的参数设置,具体操作如下:
登录阿里云百炼控制台,在左侧导航栏中,选择模型工具 > 模型调优。这里展示了所有调优任务。
点击训练新模型,阿里云百炼将会引导您配置训练参数:
训练方式:阿里云百炼支持全参训练和高效训练两种方式,以下是选择建议:
训练方式
优点
缺点
全参训练
最大灵活性:全参数训练可使模型适应新的数据和任务,具有最大的调整灵活性。
高性能:在理论上,全参数训练可以获得最高的性能,因为所有参数都经过调整以优化特定任务。
时间成本高:训练时间长,特别是在大型数据集上的训练。
过拟合风险:如果数据量不足或不平衡,全参数训练可能导致模型过拟合于特定训练数据。
高效训练
快速训练:比全参数训练更快,适合快速迭代和原型开发。
减小过拟合风险:微调部分参数可以降低过拟合风险。
性能可能受限:在某些任务上,性能可能略低于全参数训练。
适用范围有限:当任务的性质高度变化或与预训练任务显著不同,高效训练可能无法有效迁移已有的知识。
高效训练能较好地平衡训练时长和训练效果,一般建议您选择高效训练。
选择模型:阿里云百炼支持基于预置模型或自定义模型的调优。
如果您是第一次训练模型,建议选择预置模型;如果您调整了训练策略,希望基于已训练的模型进行再次训练,则可选择自定义模型。
阿里云百炼提供了多种可调优的预置模型,各模型特性请参阅模型调用。
选择训练数据:选择参与训练的数据集,您在已上传的数据集列表中选择训练集。
说明如果清洗或增强了数据,您需要注意数据集的名称和版本,以免误选未经处理的数据。
选择验证数据:选择参与验证训练效果的数据集,您可以选择自动切分或从数据列表中选择验证集。
如果您没有准备验证数据集,建议选择自动切分,阿里云百炼将从选定的训练集中划分一部分数据作为验证集。反之,建议从数据列表中选择验证集。
说明如果您清洗或增强了数据,您需要注意数据集的名称和版本,以免误选未经处理的数据。
混合训练:为了避免基础模型能力的遗失并提高训练效果,阿里云百炼支持您将自备的训练数据与预置通用数据混合训练。您可以调整自备训练数据与预置通用数据的比例,如果所有类型的预置通用数据的比例设置为0,您将不使用预置数据。
超参配置:模型的超参配置决定一定程度的模型调优效果,您可按照自己的训练经验进行配置。如果您不了解超参数,阿里云百炼也提供一套基于实验所得的默认配置,您可以遵循默认配置。
开始训练:这一步将展示您的所有训练配置,阿里云百炼会自动计算预估的训练费用(稍后您也可以在训练任务列表中浏览预估费用明细,实际产生费用以生成账单为准)。待您确认配置和价格信息无误后即可开始训练。
开始训练后,您可以在模型调优列表中查看模型的训练进度、预估费用和其他管理操作。有关训练费用的详细信息,请参考计费项与定价。
小贴士:模型训练入门指南
如果您是大语言模型训练的新手,以下是一些简单且实用的小贴士,帮您轻松入门并提高训练效果:
优化学习率:
简单理解:学习率决定模型每次调整的步伐大小。开始训练时,可以从较小的学习率(如0.001)开始,如果训练速度很慢或效果不好,可以逐步增加。
如何调整:如果验证集性能没有提升,可以尝试调整学习率,通常缩小10倍或增加10倍是一个好的做法。
选择合适的批次大小:
简单理解:批次大小是每次训练中用来更新模型的样本数。更大的批次大小可以提高训练效率。
推荐设置:常见的批次大小是8、16或32,默认选择16.
学习监控损失和准确率:
简单理解:损失(Loss)表示模型在训练数据上的误差,准确率(Accuracy)表示模型的性能。如果损失一直下降而准确率提升,说明训练进展顺利。
如何操作:您可以进入训练任务详情页,实时监控训练过程中的损失和准确率变化。验证集上的损失可以帮助您决定是否需要调整超参数。
简单的数据增强方式:
简单理解:数据增强可以增加数据的多样性,提高模型的泛化能力。例如,同义词替换、随机遮盖等。
如何操作:在数据预处理阶段,进行简单的同义词替换或其他文本增强。
管理训练任务
待您启动训练后,您新建的模型训练任务将出现在模型调优的列表里,其训练状态将变更为训练中。此时,您可点击训练任务的查看操作进入训练详情页,浏览训练任务的配置和训练的过程指标。您可以点击查看预估来浏览本次训练任务预估的计费信息。您也可以随时点击终止训练来结束训练任务。
训练过程指标主要有以下三个,大致体现了模型的训练效果。如果您不了解这些指标的含义,也可以等待训练结束后,使用阿里云百炼的模型评测工具评价训练效果。
指标 | 解释 |
Training Loss | Training Loss 代表针对训练数据学习的拟合程度,曲线一般呈现下降趋势。Loss越小,表示训练数据拟合程度越高。过小的Loss易导致数据过拟合,需要根据实际训练过程进行判断。 |
Validation Loss | Validation Loss代表针对验证集学习的拟合程度,曲线一般呈现先下降后上升趋势。Loss越小,表示验证数据拟合程度越高。优秀的模型效果往往出现Validation Loss的最小值节点,此时拟合程度最佳,训练效果最好。 |
Validation Token Accuracy | Validation Token Acc代表针对验证集学习的准确程度,曲线一般呈现上升趋势。训练过拟合后,该曲线会呈现下降趋势。优秀的模型效果往往出现在Validation Token Acc的最大值节点,此时预测准确率最高,训练效果最好。 |
一般情况下,千条以下的数据训练所需的时长为2-3个小时。由于平台承载能力有限,可能出现排队状态,还请您谅解。训练任务完成后,列表及详情页中模型的状态将变更为训练成功,此时您已经获得自定义模型,该模型已处于等待部署状态,您可以直接点击模型部署跳转到部署页面。
模型部署
待您获得自定义模型后,您需要将该模型部署到计算资源上,方可调用该模型。
阿里云百炼提供了多种资源配置方式,您可以按需选择。如果需要评测模型的训练效果,您需要先部署自定义模型,再使用模型评测评估自定义模型的训练效果。
新建部署任务
登录阿里云百炼控制台,在左侧导航栏中,选择模型工具 > 模型部署。您也可以在模型工具 > 模型调优中等待模型训练结束后,直接点击模型部署。这里展示了所有模型部署任务。
点击部署新模型,您将跟随向导的指引完成部署配置:
选择模型:阿里云百炼提供了两类可部署的模型,此处请您选择之前训练的自定义模型。
选择资源配置:阿里云百炼提供了两类资源配置方式。包月资源是按月购买计算资源的方式,不同版本的包月资源在部署模型的能力上有差别。按量付费是按实际使用时长购买计算资源的方式,您可以按需购买一定数量的计算资源,也可以随后变更计算资源的数量。为完成后续的模型评测,对训练效果做进一步评估,此处推荐您选择按量付费。
开始部署:这一步将展示您的所有部署配置和预估费用,待您确认所有信息后即可开始部署。
开始部署后,您可以在模型部署列表中查看模型的部署进度、预估费用和其他管理操作。有关部署费用的详细信息,请参考计费项与定价。
一般情况下,模型部署时长在几十分钟到几个小时不等,由于阿里云百炼资源限制,部署可能会产生队列,部署完成后,状态将变为运行中,运行中的模型可被调用,用于模型评测及应用调用。
小贴士:实例管理与性能优化
什么是实例:
简单定义:实例是运行模型和处理请求的独立计算单元,通常对应一台服务器、一块GPU,或在容器化环境中对应一个容器。
实例用途:实例用于将模型加载到内存中,接受用户请求,执行推理任务(如文本生成、分类等),并返回结果。
实例数量对性能的影响:
响应时间:增加实例数量能有效分担负载,降低每个实例处理请求的时间,提高整体响应速度。
并发处理:更多实例可以并行处理更多请求,提高系统的并发处理能力。
成本效益:增加实例数量能提高性能和用户体验,但成本可能增加,需要权衡。
模型评测
完成模型部署后,如需测试模型的效果,可在模型评测中进行评测。对于本篇介绍的自定义模型,阿里云百炼提供了基线评测方法。基线评测预置多种常用的能力评测集及评测脚本,可自动评测模型多种基本能力。
新建评测任务
登录阿里云百炼控制台,在左侧导航栏中,选择模型工具 > 模型评测。这里展示了所有模型评测任务。
点击创建评测任务,您将遵循向导完成评测任务的配置:
评测方式:阿里云百炼提供了多种评测方式。对于自定义模型,请您选择基线评测。
选择模型:请在下拉框中选择已部署的目标评测模型。
选择评测数据:阿里云百炼预置了基线评测集(包括C-Eval/CMMLU等主流榜单评测集)对待测模型的各项基础通用能力进行自动评测。您可以任选评测数据,以此构建您的所有评测数据。
开始评测:这一步将展示您的所有评测配置和预估费用,待您确认所有信息后即可开始评测。
开始评测后,您可以在模型评测列表中查看模型的评测进度、预估费用和其他管理操作。有关评测费用的详细信息,请参考计费项与定价。
管理评测任务
当评测开始后,该评测任务的状态将变更为执行中或队列中,您可以随时点击中止来结束评测。待评测完成后,您可以点击结果查看详细的评测结果。您可以点击删除删去一项评测任务。
后续操作
至此,本篇已经介绍了自定义模型调优、部署与评测的全生命周期管理。阅读完本篇后,您可以自行创建一个自定义模型,并能够在业务场景中调用该自定义模型。
如果您需要将自定义模型投入到阿里云百炼的自定义应用中,请参考应用简介选择并构建应用。
本篇涉及的所有计费信息,请参考产品计费。