Transformer入门

pipeline

就是封装好的各种NPL处理方法,可以快速应对简单需求
from transformers import pipeline, set_seed

generator = pipeline('text-generation', model='gpt2')
set_seed(42)
generator("This morning I went to the ", max_length=10, num_return_sequences=5)
from transformers import pipeline

classifier = pipeline("zero-shot-classification")
classifier(
    "This is a course about the Transformers library",
    candidate_labels=["education", "politics", "business"],
)

Verctor & Tensor

顺便理解下 向量和张量,我不用去从数学和物理的角度解释,因为我只应用在计算机领域

向量就是 二维的数组

张量包括 一,二三四维数字 是向量等的合计,网上有更好的解释

引用地址  这篇文章我觉得对计算机专业而言就足够了,注意理解 ndim 层数和shape形状

Model

transformer推荐使用预训练的模型提高模型训练到使用的周期

下载的模型等文件会放到 这个目录下:~/.cache/huggingface/transformers

下载模型并加载
model = BertModel.from_pretrained("bert-base-cased")

保存模型到本地

model.save_pretrained("directory_on_my_computer")

顺带说下,这个语句只能保存模型,还得保存tokenizer

config.json pytorch_model.bin

tokenizer 把人类使用的字符串数组,老外称之为raw text 转成 数字数组

sequences = ["Hello!", "Cool.", "Nice!"]
encoded_sequences = [
    [101, 7592, 999, 102],
    [101, 4658, 1012, 102],
    [101, 3835, 999, 102],
]
然后就能轻而易举的转成张量,进而发给模型,model只会接受tensor当做parameters
model_inputs = torch.tensor(encoded_sequences)
output = model(model_inputs)

Tokenizers

就是我刚刚说的从人类语言转成数字,

有三种解析方式:

1,Character-based,基于英文字母

2, Word-based,基于单词

3,subword tokenization  ,常用的单词不打散的规则,而稀有的词需要打散成,由子单词组成

model_inputs = tokenizer(sequence,padding="max_length",truncation=True, return_tensors="pt")

 padding: 由于模型接受内容是批量的,所以要保证输入的list中解析的ids长度一致

truncation:所有的模型接受tokens都是有上限的

return_tensors:发挥tensors格式,如果不加这个 直接tokenizer.decode 即可;加了这个那就回变成tensor格式,不能直接decode了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值