10.3 模型训练与发布实战:ChatGPT
ChatGPT作为一种先进的自然语言处理模型,已经引起了广泛的关注。本节将以 Dify平台为例,详细介绍训练和发布ChatGPT模型的步骤,最终创建出一个对话型机器人的AI应用。
10.3.1 第一步:创建ChatGPT应用
Dify是一个直观、可操作、可优化的LLM(Large Language Model,大型语言模型)训练平台,赋予了强大的LLMOps能力。不仅如此,它还支持Web App的构建, 可以让用户迅速开发出专属的ChatGPT应用。
同时,用户还可以在此基础上对模型进行训练和微调,直至它能够完全符合你的需求。
温馨提示
LLMOps(Large Language Model Operations,大型语言模型运维)是一套专门针对大型语言模型(如GPT系列)的开发、部署、维护和优化的实践与流程。 LLMOps 的目标在于确保这些强大AI模型在实际应用中的高效性、可扩展和安全使用,这涉及了模型训练、部署、监控、更新、安全性及合规性等多个方面。下面先在Dify平台上创建一个ChatGPT应用,具体操作方法如下。 步骤01 进入Dify官网首页,单击右上角的“Get Started”(开始)按钮,如图 10-6所示。步骤02 执行操作后,会提示用户注册或登录账号,登录后即可进入Dify的创建应用页面,单击“创建应用”按钮,如图10-7所示。 步骤03 执行操作后,弹出“开始创建一个新应用”对话框,选择相应的应用类型,如“助手”,输入相应的应用名称,如“与孔明对话”,单击“创建”按钮, 如图10-8所示。 步骤04 执行操作后,即可创建一个对话型应用,并进入该应用的“概览”页面, 在此可以开启应用和后端服务API,同时可以看到应用的访问链接,如图10-9所示。 步骤05 在“概览”页面下方,还可以查看该应用的运行数据分析图表,包括全部消息数、活跃用户数、平均会话互动数、Token输出速度、用户满意度和费用消耗等信息,如图10-10所示。
10.3.2 第二步:设置AI对话提示词
提示词用于对AI的回复做出一系列指令和约束,可插入表单变量(如{{input}}, 变量能使用户输入表单引入提示词或开场白)。注意,这段提示词不会被最终用户看到。下面介绍设置AI对话提示词的操作方法。
步骤01 在“概览”页面左侧的导航栏中,单击“编排”按钮进入相应页面,在 “提示词”文本框中输入相应的提示词,如图10-11所示。
步骤02 如果用户不会写提示词,可以单击“自动编排”按钮,弹出“自动编排” 对话框,输入相应的目标用户及希望AI解决的问题,单击“生成”按钮,即可自动生成相应的提示词,如图10-12所示。单击“应用”按钮,即可快速将AI生成的提示词填入“提示词”文本框中。下面仍然使用自定义的提示词。
10.3.3 第三步:设置训练模型及参数
在Dify平台上,用户可以选择基于不同模型的能力来开发AI应用,如OpenAI(包括 GPT-4、GPT-3.5系列等)、Azure OpenAI Service、Anthropic(包括Claude2、 Claude-instant)、Replicate、Hugging Face Hub、
ChatGLM、Llama2、 MiniMax、讯飞星火认知大模型、文心一言、通义千问等。
无论是需要强大的语言生成能力,还是需要特定领域的专业知识,用户都可以在Dify上找到合适的模型来开发自己的AI应用。下面介绍设置训练模型及参数的操作方法。
步骤01 在“编排”页面中,单击按钮,在弹出的面板中单击“模型”选项右侧的下拉按钮,在弹出的下拉列表框中可以选择需要训练的大模型,如gpt-3.5- turbo,如图10-13所示。
步骤02 在“模型及参数”面板的“模型设置”选项区中,可以自定义设置温度、 Top P、存在惩罚、频率惩罚、最大标记等参数,这里单击“平衡”按钮,将其设置为默认的标准参数,如图10-14所示。
温馨提示
温度用于控制模型生成内容的随机性。Top P是指模型在生成每个词时会计算所有可能的下一个词的概率分布,并选择概率最高的前P个词作为候选。存在惩罚用于惩罚模型预测中未出现的词或标记。频率惩罚是一种用于控制模型对高频词或标记的关注程度的机制。 最大标记用于设置要生成的标记的最大数量。
10.3.4 第四步:构建并填充知识库
在Dify上创建知识库是非常简便的,用户只需直接上传准备好的数据集即可。此外,Dify还提供API上传功能,让用户有更多的选择。下面介绍构建并填充知识库的操作方法。步骤01 在页面顶部的导航栏中,单击“知识库”进入相应页面,单击“创建知识库”按钮,如图10-15所示。
步骤02 执行操作后,进入“创建知识库”页面,切换至“导入已有文本”选项卡,单击“选择文件”链接,如图10-16所示。步骤03 执行操作后,弹出“打开”对话框,选择相应的文本文件,单击“打开” 按钮,即可上传数据集,如图10-17所示。
温馨提示
用户可以通过多种方式快速、方便地创建知识库,如使用Notion内容进行同步,或者同步来自Web站点的数据。Notion是一个灵活的笔记和项目管理工具,允许用户创建各种类型的文档、数据库、任务列表、日历等。
10.3.5 第五步:文本分段与清洗
文本分段是对输入的文本进行分词或分段操作,将连续的文字划分成单个词语或分成段落。文本清洗是指通过一系列的操作,将原始文本中的噪声、冗余和无用信息去除,以获得干净、准确的文本数据。下面介绍文本分段与清洗的操作方法。
步骤01 继续上一小节,单击“下一步”按钮,进入“文本分段与清洗”页面, “分段设置”默认为“自动分段与清洗”,让系统自动设置分段规则与预处理规则,设置“索引方式”为“经济”,这样虽然会降低准确度,但无须花费Token, 如图10-18所示。
温馨提示
在自然语言处理和文本处理中,Token是一个常用的术语,通常指的是对文本进行预处理和标记化时的一个基本单元。在很多情况下,一个Token可以是一个单词、标点符号、数字或其他语言学上的基本元素。 步骤02 在该页面下方的“检索设置”选项区中,设置Top K为3,该选项用于筛选与用户问题相似度最高的文本片段,单击“保存并处理”按钮,如图10-19所示。 步骤03 执行操作后,进入“处理并完成”页面,系统提示知识库已创建,单击 “前往文档”按钮,如图10-20所示,可以查看文档详情及进行召回测试(基于给定的查询文本测试知识库的召回效果,仅支持“高质量”的索引方式)。
10.3.6 第六步:添加数据集并发布ChatGPT应用
添加上下文数据集对于自然语言处理模型的训练和应用具有重要的意义,可以提高模型的性能、效率和可解释性,降低数据标注成本,促进多任务学习和增强泛化能力。下面介绍添加数据集并发布ChatGPT应用的操作方法。步骤01 返回“编排”页面,在“上下文”选项区中单击“添加”按钮,如图10-21 所示。
步骤02 执行操作后,弹出“选择引用知识库”对话框,选择相应的数据集,如图 10-22所示。步骤03 单击“添加”按钮,即可将数据集添加到ChatGPT应用中,在右侧“调试与预览”的底部输入相应的问题,如图10-23所示。
步骤04 单击“发送”按钮 ,即可与AI机器人进行聊天,可以看到,经过模型训练后的ChatGPT应用已经有了自己的“身份”和知识,如图10-24所示。步骤05 单击右上角的“发布”按钮,如图10-25所示,即可发布该ChatGPT应用。本章小结本章主要介绍如何管理和部署训练好的AI模型。
先介绍了4个关键流程:模型的开发与管理、数据集的管理和维护、模型部署和性能优化,以及持续监控和迭代改进;接着详细介绍4种部署方式:本地部署、服务器端部署、无服务器部署和容器化部署;最后介绍了训练和发布ChatGPT模型的6个步骤,包括创建ChatGPT应用、设置AI对话提示词、设置训练模型及参数等。
本章强调了模型管理和部署的重要性,以及如何选择合适的部署方式来满足不同应用场景的需求,同时还通过具体案例进行说明,为读者提供了实用的指导。课后习题鉴于本章知识的重要性,为了帮助读者更好地掌握所学知识,下面将通过课后习题帮助读者进行简单的知识回顾和补充。
-
部署AI模型的主要方式有哪些?
-
在Dify平台上传一个用于ChatGPT模型训练的数据集,如图10-26所示。