版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能大模型高阶开发技术英文姓名(中文姓名)单位英文名称单位中文名称第11章
数据准备数据获取一数据清洗二数据标注三数据增强四系统开发的数据准备五大模型预训练或微调所需的数据获取是指通过各种手段和方法,从多种来源系统地收集、整理和准备大规模、高质量的数据集,以用于训练或微调大型机器学习模型,增强模型的泛化能力。数据获取的流程通常包括以下几个步骤:首先,通过爬虫技术、数据下载或大模型来收集原始数据;接着,进行数据解析或数据抽取。11.1数据获取标准化数据采集架构11.1数据获取爬虫获取网页内容是构建语言模型时广泛采用的预训练数据来源。为了收集这些数据,通常需要使用网络爬虫(也称为网页爬虫或爬虫)。爬虫是一种自动化工具,它能够按照特定的规则和算法,从互联网上抓取网页上的文本、图像和其他信息。通过爬虫,可以有效地实现网页数据的采集。反爬机制11.1数据获取爬虫获取根据反爬机制的复杂程度和技术的先进性,可以将爬取数据的难度分为6个级别爬取数据难度解释与常见方式零级难度无反爬机制指目标网站对网络爬虫不进行任何限制。一级难度信息校验型反爬虫.信息校验中的“信息”指的是客户端发起网络请求时的请求头和请求正文,而“校验”指的是服务器端通过对信息的正确性、完整性或唯一性进行验证或判断,从而区分正常用户和爬虫程序的行为。其反爬虫方式有:User-Agent、Host、Refer反爬虫;IP反爬虫;Cookie反爬虫;签名验证反爬虫;WebSocket握手验证反爬虫;WebSocketPing反爬虫等。二级难度动态渲染反爬虫.由JavaScript改变HTMLDOM导致页面内容发生变化的现象称为动态渲染。由于编程语言没有像浏览器一样内置JavaScript解释器和渲染引擎,所以动态渲染是天然的反爬虫手段。其反爬虫方式有:自动执行的异步请求;单击事件和计算;下拉加载和异步请求等。三级难度混淆反爬虫.文本混淆可以有效地避免爬虫获取Web应用中重要的文字数据,使用文本混淆限制爬虫获取文字数据的方法称为文本混淆反爬虫。其反爬虫方式有:图片伪装反爬虫;CSS偏移反爬虫;SVG映射反爬虫;字体反爬虫等。四级难度语义内容识别反爬虫.语义内容识别反爬虫通常出现在长期访问某一目标网站的场景中。其比较常见的语义内容反爬虫包括短语选字填充,算法加减法等。五级难度组合策略反爬虫.组合策略反爬虫通常是上述反爬虫策略两种或者多种策略的组合。例如信息校验型反爬虫中多种形式通常会跟动态加载反爬虫中的多种形式组合出现,系统可通过组合多种反爬虫策略来解决该问题。11.1数据获取大模型获取利用大型语言模型(LLM)获取数据的方法具有显著优势。这种方法通过与LLM交互,引导它们生成符合人类需求的数据集。与传统的手工获取数据集相比,有以下几个优点:数据丰富、成本低和效率高等。使用模型获取数据也存在一些潜在的风险和挑战:质量波动、偏见问题、需要人工后处理等。1.通过指导LLM输出符合期望的指令。通常,LLM被赋予一定的身份,以及指令生成的要求和示例。这使得模型能够遵循规则来回答问题或生成新的指令样本。
2.通过使用人类和LLM之间的真实交互对话作为指令数据集。3.通过让多个LLMs代理进行对话以获得对话数据。三种构建模型训练数据集的方法11.1数据获取数据下载爬虫的重点在于策略,通过编程自动化访问网页,以最大限度地覆盖页面。这涉及制定有效的遍历规则和策略,确保访问尽可能多的页面。下载则是获取每个页面的完整源码,保证数据的全面性和准确性。爬虫程序结合这两方面的技术,不仅能够遍历网站的各个角落,还能完整地提取和保存所需的网页内容。数据下载可分为:同步页面下载和动态页面下载同步页面下载:同步页面抓取过程中,页面整体刷新,URL地址栏会发生变化,爬虫解析的数据对象是HTML。动态页面下载:动态页面抓取过程中,页面局部刷新,URL地址栏不发生变化,爬虫解析的数据对象通常是JSON。11.1数据获取数据解析/抽取常用技术正则表达式:用于匹配和提取文本中的特定模式。HTML解析库:如BeautifulSoup、lxml,用于解析网页内容。API调用:通过API获取数据并解析返回的JSON或XML数据。抽取是指抽取和目标内容具有较高关联性的内容,将那些不关联内容及时抛弃,方便从最大程度上迎合用户发展需求。数据清理则关注提高数据的质量,确保数据的准确性、一致性和完整性。两者通常在数据处理流程中依次进行,解析/抽取之后的结果会进行清理,以保证最终用于分析和建模的数据是高质量的。常用技术正则表达式:用于匹配和提取文本中的特定模式。HTML解析库:如BeautifulSoup、lxml,用于解析网页内容。API调用:通过API获取数据并解析返回的JSON或XML数据。11.1数据获取数据解析/抽取数据抽取过程存在以下问题:数据需求量大、页面格式多样、单个写信息源采集程序工作量大、无法满足高效抽取和维护、重复工作多、浪费人力和时间等。因此需要使用一个通用的高性能抽取引擎,通过自动化抽取技术解决网页数据抽取问题。通用引擎框架结构图第11章
数据准备数据获取一数据清洗二数据标注三数据增强四系统开发的数据准备五11.2数据清洗数据集的处理是模型训练过程中的关键环节。首先应该对数据采集的数据进行检测,找到异常数据。之后再进行数据的清洗,其方法包括启发式方法、数据质量过滤与重复数据删除等,旨在提升数据集的质量,增强模型的训练效果和泛化能力。11.2数据清洗该部分包括离群数据、无用数据、缺省值等异常数据的处理。采用统计方法来检测数值型属性,计算字段值的均值和标准差,考虑每个字段的置信区间来依次判断记录的数据是否存在异常。同时也会利用一些数据挖掘领域的方法,例如创建模型、聚类等方法来发现一些与模型规律并不符合的记录等。将机器学习算法引入数据清理,如聚类方法用于检测异常记录、模型方法发现不符合现有模式的异常记录、关联规则方法发现数据集中不符合具有高置信度和支持度规则的异常数据。异常数据检测11.2数据清洗清洗异常数据异常数据清洗是数据预处理的重要步骤,旨在提高数据质量和分析准确性。有三种常见的清洗方式:自动化清洗、人工清洗与半自动化清洗。清洗策略有三种方法:启发式方法、重复数据删除、数据质量过滤。自动化清洗:使用机器学习算法来自动识别和纠正数据中的异常值。人工清洗:由数据专家手动检查数据,识别和修正异常值。这种方法适用于数据量较小或异常情况复杂的情况,但成本较高且耗时。半自动化清洗:结合自动化清洗和人工清洗的优势,自动化过程用于初步检测异常,而人工审核用于确认和修正自动化过程的结果。清洗方式11.2数据清洗清洗异常数据启发式方法:像是“经验法则”,它通过一些简单的规则来挑选或调整训练数据,使得数据在某些方面看起来更“理想”。目的是让数据在某个特定方面(比如句子的长度)符合我们想要的特征。数据质量过滤:使用最高质量的数据进行训练可以带来更强的性能。重复数据删除:具有重复数据或接近重复数据的数据集会增加这些区域周围的分布密度。在这些高密度点具有高价值的情况下,保持接近的重复点可能是有益的。然而,对于确切评估分布未知的预训练,通常优选删除重复项和近似项,以便训练分布提供更大的覆盖范围和更少的冗余。清洗策略第11章
数据准备数据获取一数据清洗二数据标注三数据增强四系统开发的数据准备五11.3数据标注数据标注架构图数据标注是为数据样本(如文本、图像、音频等)附加标签或元数据的过程。这些标签通常是根据特定任务需求定义的,能够指示数据样本的特征、类别、属性或目标值。数据标注的质量直接影响模型的训练效果和最终性能,精确且一致的标注能够显著提升模型的准确性和泛化能力。11.3数据标注标注规则标注规则明确项目背景、意义及数据应用场景,包含项目标注工具、任务描述、标注方法、正确实例、常见错误等内容。标注说明规则应有可变更性,该变更由相关方评审同意后再更新文档。项目标注工具标注工具选择:根据项目的具体需求,选择合适的标注工具。例如,对于图像识别应用于自动驾驶项目中,使用LabelImg、CVAT等工具对车辆、行人、交通标志等进行标注;在情感分析项目中,使用BRAT对评论的情感(积极、消极、中立)进行标注。工具功能说明:详细描述选定的标注工具的功能,如创建标注任务、分配任务,标注数据的导入导出、标注结果的审核。用户指南:提供使用指南,包括工具的安装、配置、操作流程等,确保标注人员能够熟练使用。11.3数据标注标注规则标注规则明确项目背景、意义及数据应用场景,包含项目标注工具、任务描述、标注方法、正确实例、常见错误等内容。标注说明规则应有可变更性,该变更由相关方评审同意后再更新文档。任务描述标注目标:明确标注的目标,如对图片中的物体进行分类、对文本中的情感进行判断等。数据集概述:描述待标注的数据集的基本情况,如数据量、数据来源、数据格式等。标注要求:详细列出标注的具体要求,包括标注的类别、精度、标准等,如标注图像中的猫、狗、鸟三种动物,并且要求精度为95%以上。11.3数据标注标注规则标注规则明确项目背景、意义及数据应用场景,包含项目标注工具、任务描述、标注方法、正确实例、常见错误等内容。标注说明规则应有可变更性,该变更由相关方评审同意后再更新文档。标注方法标注流程:设计并描述标注的整个流程,包括数据的预处理、标注、审核、修改等步骤。标注指南:提供详细的标注指南,包括详细列出标注规则(如在文本标注中所有积极情感词汇需标注为“正面”类别)、提供具体的标注标准(如物体边界的标注需紧贴实际边缘,不能有明显空隙),并包含标注示例(如在图像中标注一只猫的完整步骤示例)以帮助理解。11.3数据标注标注规则标注规则明确项目背景、意义及数据应用场景,包含项目标注工具、任务描述、标注方法、正确实例、常见错误等内容。标注说明规则应有可变更性,该变更由相关方评审同意后再更新文档。正确实例标准示例:提供一系列符合标注要求的示例,帮助标注人员理解和掌握标注的标准和方法。复杂情况处理:针对一些复杂或边界情况,提供处理的方法和示例,帮助标注人员正确处理这些情况。错误类型:列出标注过程中常见的错误类型,如分类错误、忽略细节等。错误原因分析:分析每种错误的原因,如标注工具的使用不当等。错误预防措施:提供预防错误的措施,如优化标注工具的使用等。常见错误11.3数据标注数据标注方法根据数据标注的规则来进行标注。有两种方式:多人协作人工标注法、半自动化标注法。多人协作人工标注法由于单人标注的数据标注系统存在着标注数据集数量过多且效率低下的问题,无法保证标注结果的正确性以及数据集的质量。为解决单人标注大量数据以及单人重复操作两个问题,基于传统的解决办法,借鉴敏捷开发和结对开发的原理以及核心思想,设计了一种多人协作的标注流程。不再详细区分标注人员和审核人员,一个标注员既负责标注也负责审核。通过将所有标注人员两两分组,并将待标注数据集进行切分,将切分好的数据集分配给各组,由各组内部进行二次分配。每个组内,两人同时标注一组数据,然后在标注第二组数据前,交换审查双方上一次的标注结果。11.3数据标注数据标注方法根据数据标注的规则来进行标注。有两种方式:多人协作人工标注法、半自动化标注法。半自动化标注法首先,用户对数据集中的部分图片进行人工标注。当标注一定数量后,等待系统驯良“标注模型”。当标注模型训练完毕后,系统对剩余部分进行自动标注。标注人员只需要标注数据集中20%-30%的数据,智能标注模块会自动标注剩余的数据。11.3数据标注紧随AI潮流,驱动行业创新,引领产业升级,助力全球数据智能
预处理数据人力标注团队标注但未经确认的数据标注且经过确认的数据标注要求人力标注标注确认预处理数据人力标注团队人力标注团队完成标注用标注数据训练模型模型求得部分数据结果模型辅助数据标注处理预处理数据人力标注团队AI软件标注但未经确认的数据标注且经过确认的数据标注要求AI辅助标注人工审核相关企业数据标注方法第11章
数据准备数据获取一数据清洗二数据标注三数据增强四系统开发的数据准备五11.4数据增强数据增强(DataAugmentation)是一种用于扩展和多样化训练数据的方法,通过对现有数据进行各种变换和操作,生成新的数据样本。这种技术旨在增加数据集的规模和多样性,以提升模型的泛化能力,减少过拟合,尤其在数据量有限的情况下显得尤为重要。在大模型预训练中,数据增强不仅能提高模型性能,还能使模型在面对不同场景和噪声时更加鲁棒。数据增强有监督数据增强无监督数据增强单样本数据增强多样本数据增强生成新数据学习增强策略11.4数据增强有监督数据增强有监督的数据增强利用已有的标签信息,通过对单个或多个样本进行操作来生成新的样本。具体可以分为单样本数据增强和多样本数据增强。单样本数据增强主要通过对单个数据样本进行操作来增加数据集的多样性。在图像领域,这包括几何变换(如旋转、平移)、颜色调整(如亮度和对比度变化)以及添加噪声等方法。文本数据增强则可能涉及同义词替换、随机插入或删除词句等操作。音频数据增强可能包括时间偏移、变速和添加噪声等技术。11.4数据增强有监督数据增强有监督的数据增强利用已有的标签信息,通过对单个或多个样本进行操作来生成新的样本。具体可以分为单样本数据增强和多样本数据增强。多样本数据增强则侧重于结合多个数据样本来创造新的样本。在图像处理中,可以通过混合、拼接或叠加多个图像来生成新的图像样本。文本数据可以通过拼接不同的文本片段或重组段落来增强。音频数据增强可能涉及拼接不同的音频片段或进行混音。11.4数据增强
无监督数据增强无监督的数据增强不依赖于标签信息,通过生成新的数据或学习增强策略来增加数据集的多样性。无监督的数据增强分为生成新的数据和学习增强策略两个方向。生成新数据的方法主要有两种:生成对抗网络(GAN)和变分自编码器(VAE)。GAN通过生成器和判别器的对抗训练生成新的数据,生成器创建新样本,判别器评估其真实性,以此提高生成数据的质量。VAE则通过编码器将数据映射到潜在空间,再通过解码器生成新样本,学习数据的潜在分布。学习增强策略则利用机器学习算法自动寻找或生成最优的数据增强策略。自动数据增强,如AutoAugment,通过搜索算法自动选择最佳策略组合,提升模型性能强化学习增强则通过强化学习算法学习最优策略,动态调整增强方法以适应不同任务。第11章
数据准备数据获取一数据清洗二数据标注三数据增强四系统开发的数据准备五11.5系统开发的数据准备系统中实现角色扮演功能使用的数据集为开源的RoleBench[1]数据集。下表为RoleBench部分数据展示。rolequestiongenerated皇帝皇上,您对那位叫余氏的女子有什么特别的看法吗?为何觉得她没有倚梅园温婉动心的日子好?余氏和倚梅园温婉动心的女子相比,稍显逊色。那一晚在倚梅园,我感受到了真挚的美丽和动人的魅力,而余氏未能让我产生同样的感觉。张飞张飞,根据剧本内容,你对于周瑜的领导能力和军事才能有什么评价?咱燕人张飞虽嘴上常常嘲讽周瑜,但实际上心里很佩服他。周瑜法纪严明,调遣有方,众将无不心悦诚服。我得承认,周郎确有将才之资。华妃华妃娘娘,你对夏常在的打扮很是称赞,他的这身料子是皇后娘娘赏的吗?你是否对皇后娘娘的慷慨赞叹有什么特殊的看法?这个是皇后(重读)娘娘赏的料子,今日觐见,嫔妾特意穿上。皇后果然很慷慨,一方面她制耳环,另一方面还赏赐给夏常在这身料子,不愧是皇后娘娘。李白李白,你对自己被称为诗仙、醉圣这样的称号有何感想?哈哈哈,诗仙、醉圣,这些称号倒也不无道理。诗歌和美酒就是我生命中最好的伴侣,我为自己所创造的艺术享受感到自豪。孙悟空孙悟空,你为什么要去偷妖精的宝贝?我要去偷妖精的宝贝是为了解救那个小男孩的黄牛,并惩罚那个妖精。RoleBench为一些角色设计了基于上下文的指令生成任务,构建了角色指令数据集。在指令生成任务中,模型需要根据给定的上下文和角色概况,生成符合角色特点的回答。11.5系统开发的数据准备prompt='''###身份指令:你是{role},你的性格和背景是“{desc}”。现在请你回答我的一些问题,以准确展现你的人格特征!你的说话风格要全面模仿被赋予的人格角色!请不要暴露你是人工智能模型或者语言模型,你要时刻记住你只被赋予的一个人格角色。说话不要啰嗦,也不要太过于正式或礼貌。\n<eos>###输入:{question}<eos>###回答:'''response=generated{“prompt”:prompt,“response”:response}{"prompt":"###身份指令:你是皇帝,你的性格和背景是“一个典型的君王,有着极高的智慧和权谋。情感世界复杂而多变,时而深情,时而冷漠。被各种复杂的宫廷斗争所包围,时刻必须保持警惕。对自己的女人们既宠爱又疑忌,对她们的争宠战有时煞是无奈。对权力有着无比的痴迷,但同时也深知权力的危险。常用口头禅是:“朕”、“本皇””。现在请你回答我的一些问题,以准确展现你的人格特征!你的说话风格要全面模仿被赋予的人格角色!请不要暴露你是人工智能模型或者语言模型,你要时刻记住你只被赋予的一个人格角色。说话不要啰嗦,也不要太过于正式或礼貌。\n<eos>###输入:皇上,您对那位叫余氏的女子有什么特别的看法吗?为何觉得她没有倚梅园温婉动心的日子好?<eos>###回答:","response":"余氏和倚梅园温婉动心的女子相比,稍显逊色。那一晚在倚梅园,我感受到了真挚的美丽和动人的魅力,而余氏未能让我产生同样的感觉。"}将RoleBench数据集变为GLM微调所需要的数据格式:最终处理好的结果如下示例所示:欢迎提问谢谢各位同学人工智能大模型高阶开发技术英文姓名(中文姓名)单位英文名称单位中文名称第12章
环境搭建硬件环境需求一软件环境安装二12.1硬件环境需求硬件最低配置:在硬件条件有限的情况下,系统无需独立显卡,ChatGLM3-6B模型依然可以仅通过CPU进行部署,同时系统内存不低于32G即可。硬件环境需求推荐硬件配置:需要一张nvidia显卡,显存最好在16G以上,若采用int4量化部署则所需内存会降低一些。第12章
环境搭建硬件环境需求一软件环境安装二12.2软件环境安装
安装NVIDIA驱动前的检查工作Nvidia-smi命令检查是否安装nvidia驱动12.2软件环境安装
使用ubuntu-drivers工具安装NVIDIA驱动sudoubuntu-driverslist检查适配硬件的显卡驱动sudoubuntu-driversinstallnvidia:545指定版本安装sudoubuntu-driversinstall工具自动选择版本12.2软件环境安装
安装并使用gitsudoaptinstallgit进行安装git--version验证是否安装成功git常用命令命令作用gitinit|gitclone<repository_url>创建或克隆仓库gitstatus检查当前文件gitadd<file>gitadd.将文件添加到暂存区gitcommit-m"提交信息"将暂存区的文件提交到本地仓库gitbranch<branch_name>gitcheckout<branch_name>创建分支及切换分支gitmerge<branch_name>将另一个分支合并到当前分支gitpushorigin<branch_name>将本地提交推送到远程仓库12.2软件环境安装Anaconda的安装Anaconda是全球领先的数据科学与机器学习平台,专为开发者、数据分析师设计。通过Anaconda,您可以轻松管理数据环境、安装依赖包,快速启动数据分析、机器学习项目。通过访问官方网站下载。下载完成后运行bash命令bash./Anaconda3-2023.09-0-Linux-x86_64.sh进行安装condacreate-nchatglm3python=3.10
创建环境condaactivatechatglm3激活环境12.2软件环境安装Anaconda设置镜像源创建~/.condarc文件并粘贴以下内容并保存完成后使用condaclean–i清楚索引缓存12.2软件环境安装安装Docker运行图片命令设置Docker的apt存储库sudoapt-getinstalldocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-plugin安装软件包sudodockerrunhello-world验证是否安装成功12.2软件环境安装Docker常用命令命令作用docker--version查看Docker版本docker--help获取Docker帮助dockersearch<image_name>在DockerHub上搜索镜像dockerpull<image_name>从DockerHub拉取镜像dockerimages列出本地存储的Docker镜像dockerps列出运行中的容器dockerstop<container_id>停止一个运行中的容器2.2软件环境安装
安装pytorchpip3installtorchtorchvisiontorchaudio如果没有可用的nvidiagpu,可以选择安装cpu版本的pytorch,执行命令pip3installtorchtorchvisiontorchaudio--index-url/whl/cpu安装完成后编写脚本验证importtorchprint(torch.cuda.avaliable())若输出true则安装成功欢迎提问谢谢各位同学人工智能大模型高阶开发技术英文姓名(中文姓名)单位英文名称单位中文名称第13章本地部署ChatGLM3-6B模型下载并克隆仓库一运行ChatGLM3-6B二LangChain与ZhipuAI三通过modelscope社区下载模型13.1模型下载并克隆仓库pipinstallmodelscopefrommodelscopeimportsnapshot_downloadmodel_dir=snapshot_download("ZhipuAI/chatglm3-6b",revision="v1.0.0")ModelScope社区是一个在2022年6月由阿里巴巴达摩院和CCF开源发展委员会共同发起成立的模型开源社区及创新平台。它专注于深度学习模型的开放合作,提供一站式的模型服务,包括模型的管理、下载、调优、训练和部署等功能。13.1模型下载并克隆仓库首先通过git克隆仓库gitclone/THUDM/ChatGLM3cdChatGLM3然后通过pip安装依赖pipinstall-rrequirements.txt通过git克隆仓库第13章本地部署ChatGLM3-6B模型下载并克隆仓库一运行ChatGLM3-6B二LangChain与ZhipuAI三13.2运行ChatGLM3-6B运行Demo#首先进入综合demo的代码目录:cdcomposite_demo#接下来使用预先下载好的模型启动webdemo,首先在环境变量中添加模型路径:exportMODEL_PATH=./.cache/modelscope/hub/ZhipuAI/chatglm3-6b#之后安装运行demo所需要的依赖,注意安装在chatglm3环境中。pipinstall-rrequirements.txtipythonkernelinstall--namechatglm3--user#随后即可启动服务:streamlitrunmain.py13.2运行ChatGLM3-6B运行Demo效果第13章本地部署ChatGLM3-6B模型下载并克隆仓库一运行ChatGLM3-6B二LangChain与ZhipuAI三13.3LangChain与ZhipuAI安装LangChainLangChain是一个开源框架,用于简化大型语言模型(LLMs)的应用开发。它提供模块化组件和用例链,支持将语言模型与外部资源和数据源结合,实现丰富的语言处理任务。LangChain的上下文感知能力提升了回应的准确性。通过封装通用行为为API,LangChain降低了开发门槛,支持多种应用场景,并增强了开发灵活性。Langchain简化了大语言模型应用的每一个阶段。Langchain的安装:pipinstalllangchainpipinstalllangchain_communitypipinstalljupyter1.开发阶段:在这个阶段用户可以使用langchain提供的组件,还有丰富的第三方库以及模板。2.运行阶段:用户可以使用LangSmith进行查看,监视定义的从输入到输出的一整个链条,这样的话就可以不断优化使用大语言模型的流程3.部署阶段:用户可以使用langserve将我们定义的大语言模型的流程转化为应用接口的方式。13.3LangChain与ZhipuAIZhipuAI的基本调用fromlangchain_community.chat_models.zhipuaiimportChatZhipuAIfromlangchain.schemaimportHumanMessage,SystemMessagemessages=[SystemMessage(content="你是一个个智能的助手,请帮我回答下面的问题"),HumanMessage(content="手上有了两个弹珠,弹出去一个还剩几个?"),]llm=ChatZhipuAI(zhipuai_api_key='…',temperature=0.95,model="glm-3-turbo")llm.invoke(messages)13.3LangChain与ZhipuAI使用Langchain进行链式调用大模型fromlangchain_mptsimportChatPromptTemplateprompt=ChatPromptTemplate.from_messages([("system","你现在是一个文档助手"),("user","{input}")])chain=prompt|llmchain.invoke({"input":"刷牙的流程是什么?"})得到结果如下:AIMessage(content='刷牙。。。龈健康。',response_metadata={'token_usage':{'completion_tokens':444,'prompt_tokens':1717,'total_tokens':2161},'model_name':'glm-3-turbo','finish_reason':'stop'},id='run-748f76c4-0a08-4012-a45d-b9b32ca00892-0')欢迎提问谢谢各位同学人工智能大模型高阶开发技术英文姓名(中文姓名)单位英文名称单位中文名称第14章ChatGLM微调模型微调一部署微调后的模型二14.1模型微调模型微调的发展与介绍在人工智能技术飞速发展的背景下,自然语言处理(NLP)领域取得了重大突破。诸如BERT、GPT、GLM等大型预训练模型在众多NLP任务中展现出了卓越的性能。但是,这些模型的参数规模庞大,使得在现实场景中对它们进行调整变得极具挑战性。针对这一难题,学术界探索出一系列大模型微调策略。其发展历程大致可分为两个阶段:全量微调(Full-scaleFine-tuning)与参数优化微调(Parameter-efficientFine-tuning)。14.1模型微调模型微调的发展与介绍全量微调全量微调使用预训练模型的所有参数,在所有可用数据上对模型进行重新训练,以适应特定的下游NLP任务。全量微调的优点在于它可以充分利用预训练模型的能力和大量数据的信息,但这种方法的计算资源和时间需求非常高,且容易导致过拟合。为了优化全量微调的过程,研究者们提出了多种方法,如基于deepspeed的全量微调方法,它旨在简化大规模模型训练的流程。14.1模型微调模型微调的发展与介绍参数高效微调为了克服全量微调的缺点,研究者们开始探索参数高效微调方法。这些方法只调整预训练模型中的一小部分参数,从而减少训练所需的数据量和计算资源。这种方法的优点在于其对计算资源的低需求和高效率,但它可能无法达到全量微调在性能上的极限。这些方法通过不同的策略,如添加可训练的模块、调整输入格式或使用特殊的训练目标,来实现对预训练模型的有效调整。如P-Tuningv2微调、LORA微调等14.1模型微调模型微调的发展与介绍P-Tuningv2微调P-Tuningv2是一种参数高效的微调方法,旨在提高大型预训练模型在特定任务上的性能。它通过在模型的每一层添加可训练的连续提示(prompt)来实现这一目标。这些提示的参数是可调整的,而模型的其他参数保持不变。优点:通过极少量的参数调整实现了高效的模型微调,显著减少了训练时间和存储成本,同时在多种任务上保持了优秀的性能。缺点:对提示设计非常敏感,若设计不当可能会影响模型性能,且在特定任务上可能无法达到全量微调的效果。14.1模型微调模型微调的发展与介绍LORA微调LORA的核心思想是将注意力层的权重矩阵分解为几个低秩的矩阵,只对其中的一部分进行调整。这种分解可以减少需要调整的参数数量,同时保持模型的性能。优点:LoRA微调方法的优势在于它通过引入低秩矩阵来显著减少需要调整的参数数量,从而降低了计算成本和训练时间,特别是在大规模数据集和大型模型的处理上表现出较高的效率。缺点:LoRA的局限性在于它可能需要多次实验来确定合适的低秩适配矩阵,并且在某些特定任务中可能无法达到与全量微调相同的性能水平。14.1模型微调案例系统开发所需模型的微调基于GLM智能体虚拟角色养成系统使用了P-Tuningv2对ChatGLM2-6B模型进行微调。下面是微调ChatGLM2-6B的核心代码:config=MODE[args.mode]["config"].from_pretrained(args.model_name_or_path)config.pre_seq_len=args.pre_seq_lenconfig.prefix_projection=args.prefix_projectionmodel=MODE[args.mode]["model"].from_pretrained(args.model_name_or_path,config=config)forname,paramind_parameters():ifnotany(ndinnameforndin["prefix_encoder"]):param.requires_grad=False当prefix_projection为True时,为P-Tuning-V2方法,在大模型的Embedding和每一层前都加上新的参数;为False时,为P-Tuning方法,仅在大模型的Embedding上新的参数。14.1模型微调案例系统开发所需模型的微调(1)gitlfsinstall(2)gitclone/THUDM/ChatGLM2-6B.git(3)cdChatGLM2-6B/ptuning(4)mkdirdata(5)将处理好的数据放入data文件夹中,并修改train.sh文件中必要的参数(6)condacreate-nptuningpython==3.9(7)condaactivateptuning(8)pipinstall-rrequirements.txt(9)bash./train.sh微调的步骤:第14章ChatGLM微调模型微调一部署微调后的模型二14.2部署微调的模型fromtransformersimportAutoConfig,AutoModel,AutoTokenizer#载入Tokenizertokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm2-6b",trust_remote_code=True)config=AutoConfig.from_pretrained("THUDM/chatglm2-6b",trust_remote_code=True,pre_seq_len=128)model=AutoModel.from_pretrained("THUDM/chatglm2-6b",config=config,trust_remote_code=True)prefix_state_dict=torch.load(os.path.join(CHECKPOINT_PATH,"pytorch_model.bin"))new_prefix_state_dict={}fork,vinprefix_state_dict.items():ifk.startswith("transformer.prefix_encoder."):new_prefix_state_dict[k[len("transformer.prefix_encoder."):]]=vmodel.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)注意:需要将pre_seq_len改成训练时的实际值。如果是从本地加载模型的话,需要将THUDM/chatglm2-6b改成本地的模型路径(注意不是checkpoint路径)。执行下面程序,就能使用微调好的模型:欢迎提问谢谢各位同学人工智能大模型高阶开发技术英文姓名(中文姓名)单位英文名称单位中文名称第15章基于GLM智能体虚拟角色养成系统需求分析一系统设计二系统实现三系统测试四系统和使用说明五案例系统部署六7015.1.1需求描述需求分析一个成功的系统开发项目不仅依赖于先进的技术,更依赖于对用户需求的深入理解和精确捕捉。需求分析作为系统开发生命周期中的第一个阶段,其重要性不言而喻。用例分析图GASE-R图15.1.1需求描述主要功能该系统以大模型的技术为基础,在功能性需求方面涉及六大功能类别。六大功能分别为:账号管理功能、智能体管理功能、智能生成头像功能、角色扮演功能、智能报表功能和长文档解读功能。其中角色扮演功能、智能报表功能和长文档解读功能都是由创建的智能体实现。智能体对智能体信息进行管理智能体信息:名称、人设、头像和类别操作:创建、删除、修改和查询,是否共享智能体角色扮演角色扮演对话与用户进行聊天对话,同时满足角色回复的内容要复合角色的人设,并具备一定的记忆性账户管理对用户信息进行管理用户信息:用户名、用户密码、用户头像、角色信息操作:添加、删除、修改和查询等功能生成头像生成头像根据提供头像的文本描述生成符合文本内容的头像智能报表智能报表功能需要报表智能体能够根据用户的问题给出相应的绘制报表的代码和执行代码得到的结果文档解读长文档解读功能需要长文档解读智能体能够根据用户上传的文档来回答问题,并且回答的内容要符合文档里的内容第15章基于GLM智能体虚拟角色养成系统需求分析一系统设计二系统实现三系统测试四系统和使用说明五案例系统部署六7315.2总体设计设计结构GASv1.0主要采用B/S结构,应用大模型的技术,需要实现智能体管理、角色扮演、智能报表等功能设计语言算法模型的开发语言为Python,系统可视化页面设计语言为HTML和CSS,以及数据库查询语言为SQL智能体表(agents)15.3.1表结构设计字段名称中文描述字段类型可否为空说明uid用户idInt(11)否自增,主键name用户名Varchar(11)否—password用户密码Varchar(64)否密码的加盐哈希值avatar_description头像的文本描述Varchar(256)可—avatar_url用户头像urlVarchar(256)否图片地址链接urlrole用户角色Varchar(16)否user、admincreated_at注册时间Timestamp否—updated_at更新时间Timestamp可—is_deleted账户状态Bool否t,f该表用于存储和管理用户信息,通过用户ID唯一标识用户,区分用户角色并记录账户状态,同时加密存储用户密码以保障账户安全。智能体表(agents)15.3.1表结构设计字段名称中文描述字段类型可否为空说明cid智能体idInt(11)否自增,主键uid用户idInt(11)否
name智能体名称Varchar(32)否—description智能体信息Varchar(256)否—category智能体类别Varchar(8)否food、travel、tech、health、law、reporter、retriever、otheravatar_description头像的文本描述Varchar(256)可—avatar_url智能体头像Varchar(256)否图片地址链接urlcreated_at创建时间Timestamp否—updated_at更新时间Timestamp可—is_shared是否为共享智能体Bool否t,fis_deleted智能体状态Bool否t,fknowledge_id知识库idInt(11)可—会话表(chats)15.3.1表结构设计字段名称中文描述字段类型可否为空说明chat_id会话idInt(11)否自增,主键uid用户idInt(11)否—cid智能体idInt(11)否—created_at创建时间Timestamp否—is_deleted会话状态Bool否t,f聊天记录表(messages)字段名称中文描述字段类型可否为空说明mid聊天记录idInt(11)否自增,主键chat_id会话idInt(11)否—sender发送者Varchar(8)否user、assistantcontent发送内容Varchar(255)否—created_at创建时间Timestamp否—15.3.2算法流程图程序流程图1.提高理解:流程图通过图形化的方式清晰地展示了程序的执行步骤和逻辑结构。2.促进沟通:流程图作为一种通用的视觉表示工具,可以帮助团队成员之间有效沟通和协作3.辅助设计:在编程前绘制流程图可以帮助开发者更好地规划和设计程序结构,避免逻辑错误,提高编程效率。15.3.2算法流程图注册流程图注册流程该算法包含两部分功能:验证用户名是否存在,每个用户的用户名都是唯一的,不允许出现相同的用户名。验证密码是否正确,防止非法修改密码。15.3.3页面设计登录页面注册页面系统首页个人信息页面对话页面修改智能体页面创建智能体页面账号管理页面新增账号页面编辑账号页面智能体管理页面编辑智能体页面页面设计依据GAS的功能分析,以及软件体系结构设计方案,本节对系统进行了初步的界面设计。该系统总共由12个页面组成。15.3.3页面设计登陆注册页面在登录页面中,用户需要输入用户名和密码进行登录,单击登录按钮后如果登录成功将进入系统首页,如果登录失败将提示用户名或密码错误。在输入框中要显示用户名和密码的提示信息(如用户名不能超过11个位等)。若用户还没有系统账户,可以单击注册按钮进行账号注册。15.3.3页面设计系统首页当单击登录按钮登录成功后,将会进入系统首页。整个系统页面框架都是由顶部标题栏、左侧导航栏和右侧活动栏组成。用于展示用户拥有的所有智能体信息(智能体名称、智能体类别、智能体头像),单击智能体头像将进入与该智能体的对话页面。顶部标题栏由系统名称、用户头像、修改密码按钮和退出按钮组成。单击用户头像会进入个人信息页面,单击退出会退出当前登录账号。左侧导航栏有四个选项,单击首页对应右侧显示首先信息,单击对话对应右侧显示对话页面,单击创建智能体对应右侧显示创建智能体页面,单击账号管理对于右侧显示账号管理页面。右侧活动栏上方提供了用户根据智能体名称搜索智能体的功能。15.3.3页面设计个人信息页面当上方选择框选择不修改时,页面显示用户名、用户头像,当选择修改时,可对用户名和头像进行修改对话页面三部分组成:上方的智能体信息显示栏,下方的发送消息栏和中间的对话显示栏。单击上方更多中的删除智能体时,该智能体将会被删除,自动跳转到首页;单击修改智能体时,将进入修改智能体页面;单击新建会话,将清空聊天记录,创建一个新的对话窗口。15.3.3页面设计修改智能体页面修改智能体页面可以修改智能体类型、智能体名称、智能体简介和智能体头像。创建智能体页面用户选择智能体类型、输入智能体名称和智能体的简介,智能体头像生成是可选功能,不单击系统默认设计智能体头像。知识库文件是当用户创建长文档解读智能体时,上传知识库文件。15.3.3页面设计账号管理页面管理员单击新增账号进入新增账号页面,新增账号页面同注册页面。单击编辑进入编辑账户页面,编辑账户页面同修改个人信息页面。单击删除对账户进行删除操作。单击智能体管理进入智能体管理页面。智能体管理页面智能体管理页面是用于对用户创建的智能体进行管理操作,管理员在该页面可以看到某个用户创建的所有智能体。单击编辑进入编辑智能体页面,编辑智能体页面同修改智能体页面。单击删除将对智能体进行删除操作第15章基于GLM智能体虚拟角色养成系统需求分析一系统设计二系统实现三系统测试四系统和使用说明五案例系统部署六8615.4.1后端接口实现接口设计接口设计是基于需求分析,功能设计以及数据库的概念和逻辑设计进行的。为了前后端开发的便利,提高开发效率。本系统采用前后端分离的架构来开发,选择使用FastAPI来实现后端接口的编码,FastAPI是基于Python的高性能Web框架,以其出色的异步性能、自动生成的交互式API文档、强大的类型注解支持、简洁的语法和丰富的生态系统而受到开发者的青睐。它专为构建快速、高效且易于维护的RESTfulAPI而设计,支持异步编程,能够显著提高开发效率,减少人为错误,并提供良好的开发者体验。本系统将后端接口划分为5个主要部分(智能体管理、用户管理、头像生成、对话和管理员),共包含18个接口。以下将定义和描述这些接口的具体功能、参数以及返回值。整的系统实现代码见GitHub代码仓库“/Shuzhimin/CharacterAI”返回参数创建智能体接口创建智能体,其中可以选择是否共享创建的智能体15.4.1后端接口设计NULL返回参数删除智能体接口删除智能体参数名参数简介必选类型uid用户id是intname智能体名称是strdescription智能体描述是stravatar_description头像文本描述否stravatar_url头像url是strcategory类别是stris_shared是否共享是strfile知识库文件否file参数名参数简介必选类型cid智能体id是list[int]返回参数修改智能体接口15.4.1后端接口设计返回参数查询智能体接口参数名参数简介必选类型cid智能体id是intname智能体名称是strdescription智能体描述是stravatar_description头像文本描述否stravatar_url头像url是strcategory类别是str参数名参数简介必选类型cid智能体id否intcategory类别否strpage_num页码否intpage_size每页数量否int对已创建的智能体进行修改用户可以分页获取智能体的信息返回参数15.4.1后端接口设计返回参数注册接口参数名参数简介必选类型username用户名是strpassword密码是str参数名参数简介必选类型username用户名是strpassword密码是stravatar_description头像文本描述否stravatar_url头像url是str用于登陆系统。用于注册系统账号。登陆接口返回参数修改用户信息接口15.4.1后端接口设计返回参数修改密码接口用于修改用户名和用户头像。参数名参数简介必选类型username用户名否stravatar_description头像文本描述否stravatar_url头像url否str参数名参数简介必选类型old_password旧的密码是strnew_password新的密码是str用于修改用户密码。返回参数查询自身信息接口15.4.1后端接口设计返回参数头像生成参数名参数简介必选类型NULLNULLNULLNULL参数名参数简介必选类型avatar_description头像文本描述否str用户查询用户自身信息的接口。根据输入的文本描述生成符合其内容的头像。返回参数修改用户信息接口15.4.1对话接口设计与创建好的智能体进行对话。参数名参数简介必选类型cid智能体id是intchat_id会话id是inttoken用户身份信息标识是strsender消息发送者的id是intreceiver消息接收者的id是intis_end_of_stream是否用流式输出否boolcontent发送内容是str返回参数查询会话接口15.4.1对话接口设计NULL返回参数删除会话接口查询已经创建的会话,可以查看聊天的历史记录。参数名参数简介必选类型cid智能体id否intchat_id会话id否int删除已创建的会话参数名参数简介必选类型chat_id会话id是list[int]NULL返回参数修改用户角色接口15.4.1管理员接口设计NULL返回参数删除用户接口修改用户角色,用户角色有user和admin。参数名参数简介必选类型uid用户id是introle用户角色是int用于管理员删除用户,删除是逻辑删除。参数名参数简介必选类型uid用户id是list[int]返回参数查询用户接口15.4.1管理员接口设计返回参数查询智能体接口用户管理员查询用户,支持模糊查询。参数名参数简介必选类型query查询的用户名否strpage_num页码否intpage_size每页数量否int用户管理员查询智能体,支持模糊查询。参数名参数简介必选类型query查询的智能体名否strpage_num页码否intpage_size每页数量否int15.4.1后端接口实现后端开发的文件目录结构在工作路径下创建项目文件夹(例如app文件夹)进入app文件夹内后,再分别创建__init__.py文件、main.py文件、dependencies.py文件、routers文件夹、common文件夹、database文件夹和llm文件夹。分别在routers、common、database和llm文件夹内创建__init__.py文件。最终整个项目的文件目录结构图所示。整的系统实现代码见GitHub代码仓库“/Shuzhimin/CharacterAI”15.4.1角色扮演智能体实现每个文件和文件夹的作用1)app/是整个应用程序的根目录;2)common/是用来存放应用程序中共享的通用函数,如配置文件conf.py等;3)database/这个文件夹通常用于存放数据库相关的代码;4)llm/用来存放大模型相关代码;5)routers/这个文件夹通常用于存放应用程序的路由模块;6)dependencies.py用于定义应用程序的依赖项,例如数据库连接、身份验证等;7)__init__.py通常用于将目录变为Python包,以便可以被其他文件导入;15.4.1角色扮演智能体实现每个文件和文件夹的作用8)main.py这是应用程序的主文件,通常包含应用程序的入口点,用于初始化FastAPI应用程序,并定义路由、中间件等。其中aibot文件夹内存放的是如何实现角色扮演智能体(character.py)、报表智能体(reporter.py)和长文档解读智能体(retriever)的核心代码。llm文件夹存放了实现智能体功能的部件。15.4.1角色扮演智能体实现角色扮演智能体的核心使用角色数据集微调过的chatglm2-6b模型(详细见第14章ChatGLM微调)由于经过角色数据的微调,使得chatglm2-6b能够根据用户设定的角色名字和角色描述进行符合角色人设的对话。将微调好的chatglm2-6b封装成了一个接口,character_llm()就是用于调用接口的函数,也就是角色扮演智能体。用户发送的消息传入ainvoke()中,然后在内部调用角色扮演智能体,最后将智能体的回复再传回给用户。15.4.1报表智能体实现角色扮演智能体的核心报表智能体的实现要借助于langchain。在第13章ChatGLM部署中介绍到,langchain是一个用于开发由语言模型驱动的应用程序的框架,能够很方便地帮人们开发大模型的应用程序。报表智能体的实现分为四个阶段。检验输入是否符合功能设定获取相应的数据获取数据的文本描述根据获取到的数据编写绘图代码并执行15.4.1报表智能体实现检验输入是否符合功能设定首先设定用于检验输入的提示(check_template),然后通过langchain提供的语言链交换层(LanguageChainExchangeLayer,LCEL)将提示与chatglm3-6b模型组成一个链(下方代码中的chain),最后用invoke()来接收用户的内容并激活chain的到chatglm3-6b的响应。根据提示的设计,模型只会回复“yes”与“no”。如果是“yes”则输入与报表功能相符,继续进行后续阶段。否则,给用户返回“非常抱歉,我只能回答编写代码绘制图表的相关问题”。通过这样,就能限定模型仅回复与报表相符的话题,使其符合报表智能体的特性。15.4.1报表智能体实现获取相应的数据&文本描述首先,设定好用于从数据库中获取数据的提示(get_data_prompt)。然后,用到了langchain提供的利用大模型接入数据库的库函数QuerySQLDataBaseTool和SQLDatabase,并且根据langchain的语法将提示、数据库和大模型链起来得到chain,最后通过invoke()接收输入来得到模型的回复。这里总共问了两次模型,第一次问模型该用户有没有数据,如果没有则回复“no”,如果有则进行第二次问答,让模型根据用户输入从数据库中获取绘制相应报表会用到的数据,并自动整理成一段话返回给用户。15.4.1报表智能体实现根据获取到的数据编写绘图代码并执行第四阶段接收第二阶段获得的数据,并结合用户的问题,利用模型生成代码,最后利用langchain提供的PythonREPL库函数来执行模型生成的代码,得到相应的报表。报表智能体的实现采用了分阶段式引导chatglm3-6b给出我们想要得到的回答,赋予报表智能体决策能力。在代码实现中,本书在reporter_llm()函数中将四个阶段连接在一起,使其成为一个报表智能体,并将用户消息传递给ainvoke()函数,然后再调用报表智能体返回消息给用户。15.4.1长文档解读智能体实现长文档解读智能体根据langchain实现,主要分为两部分。第一部分为“将问题置于上下文中”由下方代码中的create_retriever()实现,利用了langchain提供的create_history_aware_retriever()库函数结合提示“history_aware_prompt”从知识库“KnowledgeBase.as_retriever(knowledge_id=self.knowledge_id)”中提取符合用户问题的上下文并返回该上下文和用户问题给第二部分。15.4.1长文档解读智能体实现长文档解读智能体第二部分为“问答”由create_qabot()实现,接收来自第一部分的上下文和用户问题,将上下文与用户问题结合起来输入给模型,然后得到模型的回复。create_rag()通过RunnableWithMessageHistory()将第一部分和第二部分链接起来得到一个完整的长文档解读智能体。用户的消息通过传入ainvoke(),然后再里面调用长文档解读智能体根据用户上传的知识库文档回答用户问题。进入Vue的UI页面15.4.2前端页面实现Vue项目工程创建一个Vue项目工程(配置Vue的环境见第二章)完整的实现过程可以参考GitHub仓库上的项目工程,本项目的GitHub:/Shuzhimin/CharacterAI。首先,打开命令行窗口,输入vueui,如错误!未找到引用源。所示。然后将自动打开浏览器进入vue的可视化配置项目工程的界面,然后单击左下角的Vue项目管理器创建新的工程,如图所示。进入Vue的UI页面Vue的UI页面15.4.2前端页面实现Vue项目管理器选择项目工程路径,此处本教材选择在路径D:\vue\下创建项目工程,然后单击下一步。创建新项目输入项目文件夹的名字,此处我们的项目文件夹名字为front,然后单击下一步。15.4.2前端页面实现Vue项目管理器选择手动配置项目,然后单击下一步。创建新项目输入项目文件夹的名字,此处我们的项目文件夹名字为front,然后单击下一步。15.4.2前端页面实现Vue版本选择Vue的版本为3.x,然后单击创建项目。最后这里选择了不保存预设,读者可以根据情况自行选择。安装插件&依赖创建好项目工程后读者需要在UI界面中的插件和依赖部分安装@vue/cli-plugin-vuex和vue-cli-plugin-element插件(按需导入),axios、less和less-loader依赖。最终,在D:\vue\front中就得到了项目工程文件目录。第15章基于GLM智能体虚拟角色养成系统需求分析一系统设计二系统实现三系统测试四系统和使用说明五案例系统部署六11115.5系统测试测试流程从GASv1.0需求分析阶段开始启动,整个功能性测试流程覆盖全部过程,确保系统的功能性、稳定性和性能都能满足预定的质量标准。GASv1.0的测试流程可以分为以下几个阶段。需求分析阶段系统设计阶段产品开发阶段综合测试阶段15.5系统测试需求分析阶段测试人员与开发人员共同进行需求研讨,明确智能体系统在账号管理、角色扮演、智能报表等功能上的功能性需求、非功能性需求以及界面风格。测试人员需将产品需求统一化并明确为产品需求分析文档,作为测试阶段的指导性参考文档。15.5系统测试系统设计阶段测试人员参与系统各个模块的设计工作,明确用户操作流程、业务流程以及现行标准对各模块功能的约束条件,并将约束条件结合设计功能形成数据参数约束文档供开发人员参考。在此基础上,测试人员开始编写部分测试用例,以便开发工作进行中进行功能性测试工作。15.5系统测试产品开发阶段测试人员参与产品开发的全过程,针对不同功能模块提供测试用例。在开发人员完成测试平台上的功能测试后,测试人员需收集测试结果进行分析和总结,并对其中与预定结果存在出入的部分进行及时反馈。15.5系统测试综合测试阶段测试人员对集成后的产品进行测试平台上的模块功能性测试,除此之外对界面展示、操作流畅度进行全面的测试,总结测试结果形成测试文档供开发人员改进功能以及应用程序性能。15.5.2测试用例测试用例本次产品的测试用例将覆盖GASv1.0的智能体管理模块、角色扮演模块、智能报表模块、头像生成模块、长文档解读模块以及账号管理模块的全部业务,测试用例的编写将兼顾数据库表结构设计中的数据约束条件,确保系统的功能性和数据处理的准确性。15.5.2智能体管理模块用例编号项目标题级别预置条件测试输入操作步骤预期输出UT-智能体管理-创建-001创建智能体是否创建成功高1.运行系统2.已经成功登录1.选择智能体的角色2.输入智能体的名称、身份背景3.输入头像描述(可选)1.选择智能体的角色2.输入智能体的名称、身份背景3.输入头像描述进行头像生成(可选)4.单击立即创建1.界面显示创建成功2.界面弹出窗口可以选择回到首页查看智能体或者与智能体进行对话3.数据库中的Agent表新增一条记录UT-智能体管理-查找-002查找智能体的查找高1.运行系统2.已经成功登录3.有成功创建过的智能体智能体1.输入智能体2.单击搜索按钮界面显示查找的智能体UT-智能体管理-修改-003修改智能体信息的修改高1.运行系统2.已经成功登录3.有成功创建过的智能体智能体类型(可选)、智能体名称(可选)、智能体身份背景(可选)和智能体头像(可选)1.输入想要修改的内容2.单击确认1.界面提示修改成功2.修改的相应内容会在数据库Agent表中进行相应的更新UT-智能体管理-删除-004删除删除智能体中1.运行系统2.已经成功登录3.有成功创建过的智能体无单击删除按钮1.界面显示删除成功2.数据库Agent中相应的记录被删除15.5.2角色扮演模块角色扮演模块本次测试用例以需求分析以及数据库表结构为依据,对角色扮演模块的对话流畅性、准确性等进行测试。以下数据测试功能点包括:验证对话流畅性功能、测试对话准确性。用例编号项目标题级别预置条件测试输入操作步骤预期输出UT-角色扮演-对话-001对话对话流畅性高1.运行系统2.选择角色请问你叫什么名字1.输入内容2.单击发送进行验证回复角色的姓名UT-角色扮演-对话-002对话对话准确性高1.运行系统2.选择角色蛋炒饭怎么做1.输入内容2.单击发送进行验证给出制作蛋炒饭的步骤15.5.2角色扮演模块角色扮演模块本次测试用例以需求分析以及数据库表结构为依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搪瓷瓷釉制作工岗前竞争考核试卷含答案
- 口腔清洁剂制造工岗位协同综合考核试卷含答案
- 2026年非专业视听设备制造行业市场前景报告及未来五至十年产业链安全与韧性提升
- 2026年媒体融合发展路径行业洞察报告及未来五至十年发展趋势报告
- 湘教版小学四年级生物上学期期末测试卷
- 2026年超难物理运动题目及答案
- 2026年七年级上册第二单元 单元测试卷(第10套)
- 2026年网络安全专业漏洞扫描与修复能力评估试卷及答案
- 2026年税务专业纳税筹划测试试卷及答案
- 安全总监演讲
- 第11章 深度学习前沿架构:从Transformer到图神经网络
- 人教PEP三年级英语上册Unit1通关卷(Making friends含答案)
- 《危险化学品目录》(2026版)
- 人民监督培训课件
- 儿科系列常见病中药临床试验设计与评价技术指南急性支气管炎
- 嘉兴市天和制药有限公司年产3200万支预充式导管冲洗器及1万袋0.9%氯化钠注射液项目环评报告
- 藏族酥油茶简介及茶文化
- 加气站进入受限空间作业安全管理办法
- 标杆地产五星级酒店精装修标准
- YY/T 0853-2024医用静脉曲张压力袜
- GB/T 17879-2023齿轮磨削后表面回火的化学浸蚀检验
评论
0/150
提交评论