您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[黑马程序员]:ChatGPT项目实战 - 发现报告
当前位置:首页/其他报告/报告详情/

ChatGPT项目实战

2023-09-01-黑马程序员浮***
ChatGPT项目实战

ChatGPT项目实战 理解真实业务场景中,ChatGPT的使用方式 目录 Contents 1.项目背景 2.项目架构 3.RNN介绍 4.数据获取 5.数据预处理 6.基于ChatGPT完成模型的搭建 7.模型评估与结果分析 项目主要解决哪种实际业务?从数据获取到模型搭建与预测RNN能够解决什么问题? 如何获取数据? 如何选择数据处理方案?ChatGPT生成模型代码如何验证模型效果? CHATGPTINTRODUCE 多一句没有,少一句不行,用最短时间,教会更实用的技术! 01 项目背景 项目背景是什么?实际业务是什么? •项目介绍 项目名称 人名分类器案例实战 业务含义 根据人名预测是哪一个国家 (18个国家) 项目价值 AI赋能互联网业务,提高业务效率 业务加持 用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项 •项目背景 •以一个人名为输入,使用模型帮助我们判断它最有可能是来自哪一个国家的人名, •这在某些国际化公司的业务中具有重要意义,在用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项,以及该国家或地区的国旗,限制手机号码位数等等. 姓名 •项目背景 •以一个人名为输入,使用模型帮助我们判断它最有可能是来自哪一个国家的人名,这在某些国际化公司的业务中具有重要意义,在用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项,以及该国家或地区的国旗,限制手机号码位数等等. 通过深度学习模型根据名字获取国家和地区 •项目解决方案确定 项目解决方案确定 文本分类/情感分析 比如情感分类情感分类精度很高,即好中差三类 NLP几大领域 文本分类/情感分析文本摘要 问答系统对话系统文本聚类知识图谱 .............. 文本摘要 从给定的文本中,聚焦到最核心的部分,自动生成摘要。 问答系统\对话系统 问答系统旨在直接给出精准回答,而对话系统旨在以口语化的自然语言 对话的方式解决用户问题。ChatGPT是两类系统整合的工具。 •项目解决方案确定 项目解决方案确定 属于哪种类型? 根据人名预测用户是哪一个国家 属于典型文本分类问题 总结 1.项目背景有哪些? 用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项等 2.NLP包含几大领域问题? 文本分类、文本摘要、问答系统、机器翻译、文本纠错等等 3.本项目属于NLP那种类型问题? 文本分类问题 CHATGPTINTRODUCE 多一句没有,少一句不行,用最短时间,教会更实用的技术! 02 项目架构 项目架构如何理解? •项目整体架构 项目案例属于典型文本分类问题 •项目整体架构 数据获取 如何读取数据? 模型构建与训练 模型构建:RNN系列模型+全连接层 模型训练:模型预测值和真实值Loss (计算损失,反向传播,梯度更新,模型保存) 03 02 01 04 数据处理模型评估 目的:将文本数据处理成符合模型输入的文本 文本张量化:将文本转化为符合模型输入x以及对应标签y(lucy---English) 原因:人名属于短文,同时字母之间的联系不紧密(如:lucy,zhangsan) 构建数据迭代器:将上一步数据源进一步封装,方便模型输入 作用:检验模型效果(实例化模型,加载保存模型,模型预测) 高级数字化人才培训专家 注意:数据处理需要人工处理,ChatGPT主要在模型构建与训练部分使用 •项目整体架构 项目代码结构 •项目整体架构 Windows测试环境 pipinstalltorchtorchvisiontorchaudio-ihttps://pypi.tuna.tsinghua.edu.cn/simple安装Pytorch1.13最新版 【扩展】UCloud云服务测试环境 PyCharm连接UCloud云服务器 PyCharm 输入IP和端口号 condalist查看环境condaactivatechatgpt激活环境 总结 1.项目实现流程有哪些? 数据获取,数据处理,模型构建与训练,模型预测,模型评估 2.数据处理的目的什么? 将文本数据处理成符合模型输入的文本 采用的是文本张量化(字符张量化),通过onehot解决 CHATGPTUSEAGE 03 RNN简介 RNN的结构?RNN特点及应用场景? •什么是RNN? 序列形式 序列数据 什么是RNN? RNN(RecurrentNeuralNetwork),循环神经网络 一般以序列数据为输入 通过网络内部的结构设计有效捕捉序列之间的关系特征 一般也是以序列形式进行输出 •RNN网络结构 RNN的循环机制使模型上一时间步产生的结果,能够作为当下时间步输入的一部分,对当下时间步的输出产生影响. 高级数字化人才培训专家 高级数字化人才培训专家 •RNN网络结构 RNN神经网络结构? 输入层,隐藏层,输出层 每一个时间步的输入有2个 每一个时间步的输出有2个 •RNN使用举例 以一个用户意图识别的例子 第一步:用户输入了"Whattimeis it?",首先需要对它进行基本的分词,因为RNN是按照顺序工作的,每次只接收一个单词进行处理. 高级数字化人才培训专家 •RNN使用举例 第二步:首先将单词"What"输送给 RNN,它将产生一个输出O1. 第三步:继续将单词"time"输送给RNN,但此时RNN不仅仅利用"time"来产生输出O2,还会使用来自上一层隐层输出O1作为输入信息. 高级数字化人才培训专家 •RNN使用举例 第四步:重复这样的步骤,直到处理完所有的单词. 第五步:最后,将最终的隐层输出 O5进行处理来解析用户意图. 高级数字化人才培训专家 •RNN作用和应用场景 RNN模型作用? 因为RNN结构能够很好利用序列之间的关系,因此针对自然界具有连续性的输入序列,如人类的语言,语音等进行很好的处理, RNN应用场景有哪些? 广泛应用于NLP领域的各项任务,如文本分类,情感分析,意图识别,机器翻译等. •RNN的API importtorch.nnasnnnn.RNN(5,6,1) 定义模型 第一个参数:5输入数据的尺寸第二个参数:6输出数据的尺寸第三个参数:隐藏层个数 还可以设置batch_size 总结 1.什么是RNN? 循环神经网络 2.RNN模型作用? 针对自然界具有连续性的输入序列,进行很好的处理 如人类的语言,语音等 CHATGPTUSEAGE 04 数据获取 如何读取数据?了解数据的构成? 步骤如下 •数据获取 数据存放路径:$(home)/data/train.txt 数据展示 格式说明如下: 数据共分两列: 第一列代表人名 第二列代表国家 数据处理思路: 字符向量化(onehot编码) 标签编码(labelencoder) 中间以制表符tab符号分开 高级数字化人才培训专家 步骤如下 •数据获取 将文件数据读取到内存 代码展示: 主要步骤: 1、打开数据文件open(filename,mode='r',encoding='utf-8')2、按行读文件、提取样本x样本yline.strip().split('\t') 3、返回样本x的列表、样本y的列表my_list_x,my_list_y 总结 1.该项目提供数据集有哪几列? 第一列代表人名 第二列代表国家, 中间以制表符tab符号分开 2.该项目采用何种方法对文本进行处理? 字符张量化(one-hot独热编码) CHATGPTUSEAGE 05 数据预处理 文本如何转换为数字?模型输入如何处理? 数据预处理方法 核心步骤 •数据预处理 字符张量化标签编码 特征标签列 数据集 lucyenglish 高级数字化人才培训专家 •数据预处理步骤如下 特征处理 字符张量化 onehot编码 字符数值化、数值张量化,统一由one-hote编码来实现:字符张量化 为什么采用这种方式?因为:人名(特别是姓)属于短文,同时字母之间的联系不紧密; 可基于字符做模型搭建,去探索人名(数据)和国家(标签)之间的关系 高级数字化人才培训专家 独热编码onehot •数据预处理 比如原始预料为lucy---english lucy作为预料,定义长度为4的列表,如果l出现在第一位置,第一位置为1,其他全为0 [lucy] l 1 0 0 0 u 0 1 0 0 c 0 0 1 0 y 0 0 0 1 [l,u,c,y] lucy的序列表示:[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] 实现思路总结:针对语料去重之后一共有多少个单词,然后以单词长度为基准建立列表,构建onehot编码形式 高级数字化人才培训专家 独热编码onehot •数据预处理 但是english国家名如何处理呢? 标签编码(18个国家用0-17标号) 高级数字化人才培训专家 标签编码(labelencoder) •数据预处理 标签列处理方式 标签编码 labelencoder编码 18个国家 从0-17进行编号 Italian-->0 English-->1 Spanish-->2 Irish-->3 Chinese-->4 高级数字化人才培训专家 步骤如下 •数据预处理 第一步:获取常用的字符数量 导入必备的工具包 获取常用字符 人名特点:以字母、空格、标点符号等组成;常用字符共计57个 步骤如下 •数据预处理 第二步:获取国家名种类和个数代码展示: 数据预处理实操 核心步骤 步骤如下 •数据预处理 第一步:构建数据源NameClassDataset 2-数据源DataSet(封装为Torch张量形式)3-DataLoader 1-原始数据 按照批次拿数据 步骤如下 •数据预处理 第一步:构建数据源NameClassDataset 该步骤的目的,: 主要将英文单词转换为模型可以识别的数字形式: 文本转化为one-hot编码形式:向量中只有一个元素是1,其余全是0 步骤如下 •数据预处理 第二步:构建迭代器DataLoader遍历数据该步骤的目的,将之前自定义的Dataset进行再次封装,用于后面的训练. 处理后数据形状:[batch_size,seq_length,hidden_size]. 参数解释:batch_size代表一次输入模型几个样本;seq_length代表输入长度,hidden_size代表文本中每个词的词嵌入维度. 总结 1.数据预处理步骤有哪些? Step1:获取常用的字符数量Step2:获取国家名种类和个数Step3:将文件数据读取到内存Step4:构建数据源NameClassDatasetStep5:构建迭代器遍历数据 CHATGPTGETTINGSTARTED 06 基于ChatGPT完成模型的搭建 人名分类模型如何构建?模型如何训练? 步骤如下 •RNN人名分类模型 思路:输入人名,预测18国家具体分类 数据 (zhang) 输入[5,1,57] RNN 输入[1,128] Linear [1,18] 结[1,18] 果 nn.Linear(hidden_size,num_classes)最终输出[1,18] nn.RNN(input_size,hidden_size)最终RNN的输出[5,1,128] tensor_x(seqlen,batch_size,input_size)输入[5,1,57] 借助ChatGPT 构建RNN人名分类模型 步骤如下 •借助ChatGPT构建RNN人名分类模型 第一步:登录网址https://chat.openai.com/auth/login,打开ChatGPT聊天