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

ChatGPT项目实战

2023-09-01 - 黑马程序员 浮云
报告封面

理解真实业务场景中,ChatGPT的使用方式 u1.项目背景u2.项目架构u3.RNN介绍u4.数据获取u5.数据预处理u6.基于ChatGPT完成模型的搭建u7.模型评估与结果分析项目主要解决哪种实际业务?从数据获取到模型搭建与预测RNN能够解决什么问题?如何选择数据处理方案?ChatGPT生成模型代码如何验证模型效果?如何获取数据? 多一句没有,少一句不行,用最短时间,教会更实用的技术! 项目背景 项目背景是什么?实际业务是什么? •项目介绍 项目名称 项目价值 业务含义 根据人名预测是哪一个国家(18个国家) AI赋能互联网业务,提高业务效率 业务加持 用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项 高级数字化人才培训专家 •项目背景 •以一个人名为输入,使用模型帮助我们判断它最有可能是来自哪一个国家的人名, •这在某些国际化公司的业务中具有重要意义,在用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项,以及该国家或地区的国旗,限制手机号码位数等等. •项目背景 •以一个人名为输入,使用模型帮助我们判断它最有可能是来自哪一个国家的人名,这在某些国际化公司的业务中具有重要意义,在用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项,以及该国家或地区的国旗,限制手机号码位数等等. 通过深度学习模型根据名字获取国家和地区 •项目解决方案确定 项目解决方案确定 文本分类/情感分析比如情感分类情感分类精度很高,即好中差三类 文本摘要 从给定的文本中,聚焦到最核心的部分,自动生成摘要。 文本分类/情感分析文本摘要问答系统对话系统文本聚类知识图谱.............. 问答系统\对话系统 问答系统旨在直接给出精准回答,而对话系统旨在以口语化的自然语言对话的方式解决用户问题。ChatGPT是两类系统整合的工具。 •项目解决方案确定 属于哪种类型? Ø根据人名预测用户是哪一个国家Ø属于典型文本分类问题 1.项目背景有哪些? 用户注册过程中,会根据用户填写的名字直接给他分配可能的国家或地区选项等 2.NLP包含几大领域问题? 文本分类、文本摘要、问答系统、机器翻译、文本纠错等等 3.本项目属于NLP那种类型问题? 文本分类问题 多一句没有,少一句不行,用最短时间,教会更实用的技术! 项目架构 02 项目架构如何理解? •项目整体架构 l项目案例属于典型文本分类问题 多一句没有,少一句不行,用最短时间,教会更实用的技术! •项目整体架构 模型构建与训练 目的:将文本数据处理成符合模型输入的文本文本张量化:将文本转化为符合模型输入x以及对应标签y(lucy---English)原因:人名属于短文,同时字母之间的联系不紧密(如:lucy,zhangsan)构建数据迭代器:将上一步数据源进一步封装,方便模型输入 •项目整体架构 项目代码结构 •项目整体架构 Windows测试环境 pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple安装Pytorch1.13最新版 【扩展】UCloud云服务测试环境 1.项目实现流程有哪些? 数据获取,数据处理,模型构建与训练,模型预测,模型评估 2.数据处理的目的什么? 将文本数据处理成符合模型输入的文本 采用的是文本张量化(字符张量化),通过onehot解决 多一句没有,少一句不行,用最短时间,教会更实用的技术! RNN简介 RNN的结构?RNN特点及应用场景? •什么是RNN? l什么是RNN? RNN(Recurrent Neural Network),循环神经网络 Ø一般以序列数据为输入Ø通过网络内部的结构设计有效捕捉序列之间的关系特征Ø一般也是以序列形式进行输出 •RNN网络结构 ØRNN的循环机制使模型上一时间步产生的结果,能够作为当下时间步输入的一部分,对当下时间步的输出产生影响. •RNN网络结构 lRNN神经网络结构? Ø输入层,隐藏层,输出层Ø每一个时间步的输入有2个Ø每一个时间步的输出有2个 多一句没有,少一句不行,用最短时间,教会更实用的技术! •RNN使用举例 •RNN使用举例 第二步:首先将单词"What"输送给RNN,它将产生一个输出O1. 第三步:继续将单词"time"输送给RNN,但此时RNN不仅仅利用"time"来产生输出O2,还会使用来自上一层隐层输出O1作为输入信息. 多一句没有,少一句不行,用最短时间,教会更实用的技术! •RNN使用举例 第四步:重复这样的步骤,直到处理完所有的单词. 第五步:最后,将最终的隐层输出O5进行处理来解析用户意图. •RNN作用和应用场景 lRNN模型作用? 因为RNN结构能够很好利用序列之间的关系,因此针对自然界具有连续性的输入序列,如人类的语言,语音等进行很好的处理, lRNN应用场景有哪些? 广泛应用于NLP领域的各项任务,如文本分类,情感分析,意图识别,机器翻译等. •RNN的API import torch.nn as nnnn.RNN(5,6,1) 定义模型第一个参数:5输入数据的尺寸第二个参数:6输出数据的尺寸第三个参数:隐藏层个数 还可以设置batch_size 1.什么是RNN?Ø循环神经网络 2.RNN模型作用?Ø针对自然界具有连续性的输入序列,进行很好的处理Ø如人类的语言,语音等 多一句没有,少一句不行,用最短时间,教会更实用的技术! 数据获取 04 如何读取数据?了解数据的构成? •数据获取 步骤如下 Ø数据存放路径: $(home)/data/train.txt Ø数据展示 格式说明如下: 数据共分两列:数据处理思路: Ø第一列代表人名 Ø第二列代表国家 Ø中间以制表符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独热编码) 多一句没有,少一句不行,用最短时间,教会更实用的技术! 数据预处理 05 文本如何转换为数字?模型输入如何处理? 多一句没有,少一句不行,用最短时间,教会更实用的技术! •数据预处理 多一句没有,少一句不行,用最短时间,教会更实用的技术! •数据预处理 步骤如下 字符数值化、数值张量化,统一由one-hote编码来实现:字符张量化 高级数字化人才培训专家 •数据预处理 独热编码onehot 比如原始预料为lucy ---english lucy作为预料,定义长度为4的列表,如果l出现在第一位置,第一位置为1,其他全为0 [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) •数据预处理 步骤如下 第一步:获取常用的字符数量 导入必备的工具包 获取常用字符 人名特点:以字母、空格、标点符号等组成;常用字符共计57个 高级数字化人才培训专家 •数据预处理 步骤如下 第二步:获取国家名种类和个数 代码展示: 多一句没有,少一句不行,用最短时间,教会更实用的技术! •数据预处理 步骤如下 第一步:构建数据源NameClassDataset 1-原始数据 •数据预处理 步骤如下 第一步:构建数据源NameClassDataset 该步骤的目的,:主要将英文单词转换为模型可以识别的数字形式: 文本转化为one-hot编码形式:向量中只有一个元素是1,其余全是0 高级数字化人才培训专家 •数据预处理 步骤如下 该步骤的目的,将之前自定义的Dataset进行再次封装,用于后面的训练. 第二步:构建迭代器DataLoader遍历数据 Ø处理后数据形状:[batch_size, seq_length, hidden_size]. Ø参数解释: batch_size代表一次输入模型几个样本;seq_length代表输入长度,hidden_size代表文本中每个词的词嵌入维度. 高级数字化人才培训专家 1.数据预处理步骤有哪些? Step1:获取常用的字符数量Step2:获取国家名种类和个数Step3:将文件数据读取到内存Step4:构建数据源NameClassDatasetStep5:构建迭代器遍历数据 多一句没有,少一句不行,用最短时间,教会更实用的技术! 基于ChatGPT完成模型的搭建 人名分类模型如何构建?模型如何训练? 多一句没有,少一句不行,用最短时间,教会更实用的技术! •RNN人名分类模型 步骤如下 思路:输入人名,预测18国家具体分类 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN人名分类模型 步骤如下 第一步:登录网址https: //chat.openai.com/auth/login,打开ChatGPT聊天界面 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN人名分类模型 步骤如下 第二步:在对话框中输入:基于Pytorch框架,实现RNN模型进行文本分类的代码 •借助ChatGPT构建RNN人名分类模型 步骤如下 第三步:粘贴复制代码,并进行微调 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN人名分类模型 步骤如下 第四步:测试模型 模型结构: RNN+全连接层 模型输出结果: [1, 18],代表一个样本有18种结果可能 多一句没有,少一句不行,用最短时间,教会更实用的技术! 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN模型训练函数 步骤如下 第一步:在对话框中输入: “模型训练代码如何实现” •借助ChatGPT构建RNN模型训练函数 步骤如下 第二步:模型训练代码微调 多一句没有,少一句不行,用最短时间,教会更实用的技术! 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN模型预测函数 步骤如下 第一步:在ChatGPT对话框中输入: “模型预测代码如何实现”?下图是ChatGPT给的结果展示: 多一句没有,少一句不行,用最短时间,教会更实用的技术! •借助ChatGPT构建RNN模型预测函数 步骤如下 第二步:模型预测代码微调 定义文本转化函数: 将人名转为数字张量形式,供模型调用 定义模型预测函数 高级数字化人才培训专家 1.基于ChatGPT完成模型的搭建的步骤? Step1:使用ChatGPT构建RNN人名分类模型的搭建Step2:使用ChatGPT完成模型训练代码的实现Step3:使用ChatGPT完成模型预测代码的实现 多一句没有,少一句不行,用最短时间,教会更实用的技术! CHATGP