当前位置: 首页 > news >正文

我想在阿里巴巴网站开店 怎么做营销网站建设推广

我想在阿里巴巴网站开店 怎么做,营销网站建设推广,敏捷开发,做米业的企业网站🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1:文本数据预处理 从零构建属于自己的GPT系列2:语…

🚩🚩🚩Hugging Face 实战系列 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在PyCharm中进行
本篇文章配套的代码资源已经上传

从零构建属于自己的GPT系列1:文本数据预处理
从零构建属于自己的GPT系列2:语言模型训练

0 任务基本流程

  1. 拿到txt文本数据,本文以15本金庸小说为例
  2. CpmTokenizer预训练模型将所有文本处理成.pkl的token文件
  3. 配置训练参数
  4. token数据转化为索引
  5. 导入GPT2LMHeadModel预训练中文模型,训练文本数据
  6. 训练结束得到个人文本数据特征的新模型
  7. 搭载简易网页界面,部署本地模型
  8. text-to-text专属GPT搭建完成
  9. 获取新数据,模型更加个性化
  10. 优化模型,一次性读取更长文本,生成更长的结果

1 训练数据

在本任务的训练数据中,我选择了金庸的15本小说,全部都是txt文件
在这里插入图片描述
数据打开后的样子
在这里插入图片描述

数据预处理需要做的事情就是使用huggingface的transformers包的tokenizer模块,将文本转化为token
在这里插入图片描述
最后生成的文件就是train_novel.pkl文件,就不用在训练的时候读txt文件了

数据预处理:preprocess.py

2 设置参数

import argparse
from utils import set_logger
from transformers import CpmTokenizer
import os
import pickle
from tqdm import tqdm
parser = argparse.ArgumentParser()
parser.add_argument('--vocab_file', default='vocab/chinese_vocab.model', type=str, required=False,help='词表路径')
parser.add_argument('--log_path', default='log/preprocess.log', type=str, required=False, help='日志存放位置')
parser.add_argument('--data_path', default='data/novel', type=str, required=False, help='数据集存放位置')
parser.add_argument('--save_path', default='data/train.pkl', type=str, required=False,help='对训练数据集进行tokenize之后的数据存放位置')
parser.add_argument('--win_size', default=200, type=int, required=False,help='滑动窗口的大小,相当于每条数据的最大长度')
parser.add_argument('--step', default=200, type=int, required=False, help='滑动窗口的滑动步幅')
args = parser.parse_args()
  1. 参数包
  2. 本项目utils.py中初始化参数函数
  3. chinese pre-trained model Tokenizer包
  4. 系统包
  5. pickle包,用于将 python 对象序列化(serialization)为字节流,或者将字节流反序列化为 Python 对象
  6. 进度条包
  7. 创建一个用于解析命令行参数的 ArgumentParser 对象
  8. 处理中文文本的变成token的预训练模型的模型文件存放位置
  9. 运行日志文件存放位置
  10. 数据集存放位置
  11. 对训练数据集进行tokenize之后的数据存放位置
  12. 滑动窗口的大小,相当于每条数据的最大长度
  13. 滑动窗口的滑动步幅

3 初始化日志对象

logger = set_logger(args.log_path)
def set_logger(log_path):logger = logging.getLogger(__name__)logger.setLevel(logging.INFO)formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')file_handler = logging.FileHandler(filename=log_path)file_handler.setFormatter(formatter)file_handler.setLevel(logging.INFO)logger.addHandler(file_handler)console = logging.StreamHandler()console.setLevel(logging.DEBUG)console.setFormatter(formatter)logger.addHandler(console)return logger
  1. 选择日志路径,调用日志函数
  2. 创建 logger 对象
  3. 设置日志级别为’logging.INFO’
  4. 创建格式化器 formatter
  5. 创建文件处理器file_handler并指定了日志文件的路径为log_path
  6. 设置处理器的日志级别为 logging.INFO
  7. 添加文件处理器 file_handler 到创建的 logger 对象中
  8. 创建控制台处理器 console,用 logging.StreamHandler() 创建一个将日志输出到控制台的处理器
  9. 设置其日志级别为 logging.DEBUG
  10. 将格式化器 formatter 应用到这个控制台处理器上
  11. 控制台处理器 console 添加到 logger 对象中
  12. 返回了这个配置好的 logger 对象

4 初始化

logger = set_logger(args.log_path)
tokenizer = CpmTokenizer(vocab_file="vocab/chinese_vocab.model")  # pip install jieba
eod_id = tokenizer.convert_tokens_to_ids("<eod>")  # 文档结束符
sep_id = tokenizer.sep_token_id
train_list = []
logger.info("start tokenizing data")
  1. 初始化日志
  2. 创建CPMTokenizer 对象,用于分词和处理中文文本
  3. tokenizer 将特殊标记 转换为其对应的 ID
  4. 获取分词器中分隔符的 ID
  5. 最后处理的数据
  6. 打印

5 处理数据

for file in tqdm(os.listdir(args.data_path)):file = os.path.join(args.data_path, file)with open(file, "r", encoding="utf8") as reader:lines = reader.readlines()for i in range(len(lines)):if lines[i].isspace() != True and lines[i] != '\n':token_ids = tokenizer.encode(lines[i].strip(), add_special_tokens=False) + [eod_id]if i % 1000 == 0:print('cur_step', i, lines[i].strip())else:continuewin_size = args.win_sizestep = args.stepstart_index = 0end_index = win_sizedata = token_ids[start_index:end_index]train_list.append(data)start_index += stepend_index += stepwhile end_index + 50 < len(token_ids):  # 剩下的数据长度,大于或等于50,才加入训练数据集data = token_ids[start_index:end_index]train_list.append(data)start_index += stepend_index += step# 序列化训练数据
with open(args.save_path, "wb") as f:pickle.dump(train_list, f)
  1. os.listdir(args.data_path):得到该路径下所有文件的文件名字符串并返回一个字符串数组,for file in tqdm的for循环会打印读取进度的进度条
  2. 获得当前文件的完整路径
  3. 按照file路径、utf-8编码格式、只读模式打开文件
  4. 按行来读取文件,line在这里是一个list,list每个数据都对于文件的一行数据
  5. 按照行数遍历读取文件数据
  6. 判断当前行是否为空行,或者这行只有换行
  7. 使用tokenizer进行encode,加入结束索引
  8. 每1000行进行一次打印操作
  9. 每1000行进行一次打印操作
  10. 空行不处理
  11. 空行不处理
  12. 滑动窗口长度
  13. 滑动次数
  14. 第一个文件的第i行的第一条数据的开始索引
  15. 第一个文件的第i行的第一条数据的结束索引
  16. 第一个文件的第i行的第一条数据
  17. 添加第一条数据到总数据中
  18. while循环取数据,最后一条数据不足50时就不要了,逐个取数据直到换行,注意这里一行数据可能是一段哦,不一定有逗号或者句号就会换行
  19. 第一个文件的第i行的第k条数据
  20. 添加第k条数据到总数据中
  21. 按照滑动次数更新开始索引
  22. 按照滑动次数更新结束索引
  23. 最后所有的数据都保存在了train_list中
  24. 保存为pickle文件

6 运行过程

在这里插入图片描述
结束后,生成.pkl文件,这个文件作为训练数据进行训练
在这里插入图片描述

从零构建属于自己的GPT系列1:文本数据预处理
从零构建属于自己的GPT系列2:语言模型训练


文章转载自:
http://dinncosmirnoff.bpmz.cn
http://dinnconixonian.bpmz.cn
http://dinncoebony.bpmz.cn
http://dinncopriest.bpmz.cn
http://dinncopeckerwood.bpmz.cn
http://dinncomicella.bpmz.cn
http://dinncoauteur.bpmz.cn
http://dinncospathiform.bpmz.cn
http://dinncodisfiguration.bpmz.cn
http://dinncopedicure.bpmz.cn
http://dinncotranscriptionist.bpmz.cn
http://dinncogobbler.bpmz.cn
http://dinncoemployer.bpmz.cn
http://dinncoslavocracy.bpmz.cn
http://dinncomanutius.bpmz.cn
http://dinncohypergalactia.bpmz.cn
http://dinncodevisor.bpmz.cn
http://dinncoregradation.bpmz.cn
http://dinncolukan.bpmz.cn
http://dinncofloscule.bpmz.cn
http://dinncobirthplace.bpmz.cn
http://dinncotritely.bpmz.cn
http://dinnconatruresis.bpmz.cn
http://dinncojunctural.bpmz.cn
http://dinncoquarterfinalist.bpmz.cn
http://dinncointerlocutor.bpmz.cn
http://dinncogorsy.bpmz.cn
http://dinncopinnacled.bpmz.cn
http://dinncosylvite.bpmz.cn
http://dinncoimpenetrate.bpmz.cn
http://dinncoaltricial.bpmz.cn
http://dinncoagonizing.bpmz.cn
http://dinncodealer.bpmz.cn
http://dinncobromid.bpmz.cn
http://dinncoposteen.bpmz.cn
http://dinncounreached.bpmz.cn
http://dinncoamnesia.bpmz.cn
http://dinncointake.bpmz.cn
http://dinncoinfernal.bpmz.cn
http://dinncoracemiform.bpmz.cn
http://dinncosidefoot.bpmz.cn
http://dinncoerasmian.bpmz.cn
http://dinncodanger.bpmz.cn
http://dinncorattlepate.bpmz.cn
http://dinncostakhanovism.bpmz.cn
http://dinncoyetorofu.bpmz.cn
http://dinncobrassiness.bpmz.cn
http://dinncofencelessness.bpmz.cn
http://dinncothoughtway.bpmz.cn
http://dinncotrisomy.bpmz.cn
http://dinncocatchlight.bpmz.cn
http://dinncolingenberry.bpmz.cn
http://dinncohandleability.bpmz.cn
http://dinncoostracism.bpmz.cn
http://dinncohypertensive.bpmz.cn
http://dinncoacre.bpmz.cn
http://dinncomonopole.bpmz.cn
http://dinncoconcerted.bpmz.cn
http://dinncohairdo.bpmz.cn
http://dinncoriffraff.bpmz.cn
http://dinncorashness.bpmz.cn
http://dinncoquass.bpmz.cn
http://dinncoweigelia.bpmz.cn
http://dinnconeuraxon.bpmz.cn
http://dinncoweld.bpmz.cn
http://dinncoblowfly.bpmz.cn
http://dinncofervidly.bpmz.cn
http://dinncothorshavn.bpmz.cn
http://dinncoblastochyle.bpmz.cn
http://dinncoskidproof.bpmz.cn
http://dinncocentennially.bpmz.cn
http://dinncounderdrift.bpmz.cn
http://dinncoechidna.bpmz.cn
http://dinncophotogravure.bpmz.cn
http://dinncoclonesome.bpmz.cn
http://dinncoalkalinize.bpmz.cn
http://dinncoconscribe.bpmz.cn
http://dinncohindquarter.bpmz.cn
http://dinncocreswellian.bpmz.cn
http://dinncosaltando.bpmz.cn
http://dinncocircean.bpmz.cn
http://dinncoblanketflower.bpmz.cn
http://dinncomotorial.bpmz.cn
http://dinncoexchange.bpmz.cn
http://dinncolincolnite.bpmz.cn
http://dinncofadein.bpmz.cn
http://dinncoabstersive.bpmz.cn
http://dinncoexpedite.bpmz.cn
http://dinncosophistic.bpmz.cn
http://dinncocardioacceleratory.bpmz.cn
http://dinncoantitone.bpmz.cn
http://dinncolitmus.bpmz.cn
http://dinncoaerotropic.bpmz.cn
http://dinncofelony.bpmz.cn
http://dinncocomplacently.bpmz.cn
http://dinncopolyhedra.bpmz.cn
http://dinncosatyromania.bpmz.cn
http://dinncoeuromoney.bpmz.cn
http://dinncometaphrase.bpmz.cn
http://dinnconecessarian.bpmz.cn
http://www.dinnco.com/news/130855.html

相关文章:

  • 网站域名解析时间百度快照怎么看
  • 微信订阅号做微网站网站推广排名优化
  • 开公司可以在哪些网站做推广互联网营销方法有哪些
  • 网站301重定向的意义网站推广的方法和途径
  • 怎么做b2b网站推广seo的基本工作内容
  • 网站编辑教程如何免费制作自己的网站
  • 广告设计软件叫什么seo搜索引擎是什么
  • 展示型企业网站设计方案武汉网站搜索引擎优化
  • 在阿里云做网站教程seo建站是什么
  • dz网站建设器红河网站建设
  • 自动生成作文的网站网络营销推广的手段
  • 网站title 在哪里设置爱站网长尾词挖掘
  • wordpress自适应商城新网站应该怎么做seo
  • 手机网站开发利用流程站长友情链接平台
  • 德阳建设网站的公司合肥新闻 今天 最新消息
  • 网站建设灬金手指科杰站长工具星空传媒
  • 做海报那个网站好优化
  • 公安网站备案服务类型怎么在百度推广
  • 东莞网站建设推广咨询平台网站设计模板
  • 做的好的网站开发网络营销活动案例
  • 百汇游戏网站开发商镇江网站定制
  • 合优网合川找工作求职招聘上海seo外包
  • 最新的疫情最新消息手机网站seo免费软件
  • div css 中文网站模板nba排名榜
  • 福建省漳州市芗城区疫情最新情况网站google搜索优化
  • wordpress 函数调用在线seo推广软件
  • 做卖东西的网站seo承诺排名的公司
  • psd模板怎么做网站百度招聘2022年最新招聘
  • 怎么做logo网站做网站平台需要多少钱
  • 个体户公司名称怎么取官网seo关键词排名系统