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

大模型:如何利用旧的tokenizer训练出一个新的来?

背景:

我们在用chatGPT或者SD的时候,发现如果使用英语写提示词得到的结果比我们使用中文得到的结果要好很多,为什么呢?这其中就有一个叫做tokenizer的东西在作怪。

训练一个合适的tokenizer是训练大模型的基础,我们既可以从头开始训练一个全新的tokenizer,也可以利用旧的tokenizer训练出一个新的来,今天就让我们看看如何来以旧换新。

第一步:数据准备

不管是训练大模型,还是训练tokenizer,首先都需要我们准备数据集:

from datasets import load_dataset
#加载数据集
raw_datasets = load_dataset("code_search_net", "python")#写一个迭代函数,分配加载数据,防止数据集太大导致内存溢出
def get_training_corpus():return (raw_datasets["train"][i : i + 1000]["whole_func_string"]for i in range(0, len(raw_datasets["train"]), 1000))training_corpus = get_training_corpus()

第二步:训练

#加载旧的tokenizer
old_tokenizer = AutoTokenizer.from_pretrained("gpt2")
#进行训练
tokenizer = old_tokenizer.train_new_from_iterator(training_corpus, 52000)

第三步:保存

tokenizer.save_pretrained("code-search-net-tokenizer")

第四步:使用

tokenizer = AutoTokenizer.from_pretrained("huggingface-course/code-search-net-tokenizer")

总结:

1、利用AutoTokenizer.train_new_from_iterator()可以很轻松的使用我们自己的数据集来根据旧的tokenizer来训练出一个全新的tokenizer

2、如果我们需要的语言中没有可用的大语言模型,或者我们要预测的数据集与我们选择的大语言模型训练的数据集非常不同,我们就需要使用适合我们的数据的tokenizer从头开始重新训练模型。

http://www.lryc.cn/news/170301.html

相关文章:

  • 【LeetCode-中等题】107. 二叉树的层序遍历 II
  • 斯坦福联合培养博士|专科生的逆袭之路
  • Verilog中parameter在仿真时的应用
  • v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字
  • 数据结构——KD树
  • python趣味编程-恐龙克隆游戏
  • 【漏洞复现】泛微e-office OfficeServer2.php 存在任意文件读取漏洞复现
  • 基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA),效果秒杀CBAM和SE等 | 中科院2023最新发表
  • 程序员必掌握的核心算法:提升编程技能的关键路径
  • 面试算法10:和为k的子数组
  • 王道考研操作系统
  • HEXO 基本使用
  • Webpack Sourcemap文件泄露漏洞
  • WebGL层次模型——单节点模型
  • 【链表】反转链表 II-力扣 92 题
  • 【考研数学】高等数学第六模块 —— 空间解析几何(1,向量基本概念与运算)
  • 巨人互动|Facebook海外户Facebook客户反馈分数
  • Tomcat多实例部署和动静分离
  • 关于 C/C++ 中在指针前加 const 关键字的作用说明
  • Vue.js新手指南:从零开始建立你的第一个应用
  • 【案例】--EasyExcel导入导出文件案例
  • 深入探索图像处理:从基础到高级应用
  • Jetpack Compose基础组件 - Image
  • UINavigationController内的页面跳转实现 UIViewController 的 present和dismiss动画
  • PMP对项目管理工作有什么用?
  • Python 将‘20230919182550‘ 转换为 ‘%Y年%m月%d日 %H:%M‘
  • vue2.0检测无用的代码并删除
  • 小米华为,化干戈为玉帛!
  • 【文末赠书】SRE求职必会 —— 可观测性平台可观测性工程(Observability Engineering)
  • content生成自定义图标的方式是什么?