41-----从头开始训练语言模型

本文介绍如何使用txtai构建和训练一个微型语言模型,包括分词器的训练、模型参数调整,以及如何在有限资源环境下应用。通过示例展示了从头开始训练的过程,并探讨了微模型在特定场景下的优势。
摘要由CSDN通过智能技术生成

txtai 有一个强大的训练管道,可以为下游任务(如标记文本)微调大型语言模型(LLM)。txtai 还具有从头开始训练语言模型的能力。

绝大多数时候,微调 LLM 会产生最好的结果。但是当对模型的结构进行重大更改时,通常需要从头开始训练。

重大变化的例子是:

改变词汇量
更改隐藏维度的数量
更改注意力头或层数
本文将展示如何构建一个新的分词器并从头开始训练一个小型语言模型(称为微模型)。

安装依赖
安装txtai和所有依赖项。

Install txtai

pip install txtai datasets sentence-transformers onnxruntime onnx
加载数据集
此示例将使用ag_news数据集,它是新闻文章标题的集合。
from datasets import load_dataset

dataset = load_dataset(“ag_news”, split=“train”)
训练分词器
第一步是训练分词器。我们可以使用现有的分词器,但在这种情况下,我们需要更小的词汇表。
from transformers import AutoTokenizer

def stream(batch=10000):
for x in range(0, len(dataset), batch):
yield dataset[x: x + batch][“text”]

tokenizer = AutoTokenizer.from_pretrained(“bert-base-uncased”)
tokenizer = tokenizer.train_new_from_iterator(stream(), vocab_size=500, length=len(dataset))
tokenizer.model_max_length = 512

tokenizer.save_pretrained(“bert”)
让我们测试分词器。
print(tokenizer.tokenize(“Red Sox defeat Yankees 5-3”))
[‘re’, ‘##d’, ‘so’, ‘##x’, ‘de’, ‘##f’, ‘##e’, ‘##at’, ‘y’, ‘##ank’, ‘##e’, ‘##es’, ‘5’, ‘-’, ‘3’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值