基础入门

暂时无法在飞书文档外展示此内容

镜像使用

  1. clash使用
  2. 使用hf-mirror进行下载数据集

https://hf-mirror.com/

1
HF_ENDPOINT=https://hf-mirror.com python your_script.py

Pipeline

介绍常见的使用方法

  1. 加载pipeline
  2. 设置类型,设置model,设置分词器,设置device
  3. 进行推理输出
1
2
3
4
from transformers import pipeline
model.config.id2label = id2_labelpipe = pipeline("text-classification", model=model, tokenizer=tokenizer, device=0)
sen = "我觉得不错!"
pipe(sen)

Tokenizer

https://transformers.run/c2/2021-12-11-transformers-note-2/

参考这个,主要是进行介绍分词器的操作

主要的是attention_mask,input_ids还有labels

使用的流程

  1. 使用tokenizer进行传入string来进行编码
  2. 得到上述三个,然后ids是编码值,只有mask是1的才进行计算,计算的结果要与label来进行计算优化得到loss,一半使用的交叉熵来进行计算

主要是使用一个函数来把字符串转化为则三个dict,一般自己进构建也叫预处理

使用.map直接根据函数来进行转换,使用batch,表示可以进行批处理,之后移除掉不需要的列名

Model

model

上述的思维导图已经进行介绍了,主要就是根据不同的类型,加载不同的模型

python语法提示

model(**inputs),这个表示进行拆解inputs输入,并且按照所需要的参数,进行放置

其余的操作和之前的cv差不多,也是通过构建init,forward,来进行计算的。

只不过分为neck还有head,head就是全连接层,进行微调使用的

loss一般继承到了model里面

Dataset

这个是另外一个包,使用的Dataset还有load

1
load_dataset("madao33/new-title-chinese") #在线进行加载数据集

进行划分数据集

1
dataset.train_test_split(test_size=0.1)

数据集抽取

1
datasets["train"].select([0, 1])

第三方进行加载

1
Dataset.from_pandas(data)

datacollator介绍

进行对齐文本,使dataset输出的一样的额大小torch.Size([4, 128])

Evaluate

前面进行介绍的主要是使用

1
2
import evaluate
clf_metrics = evaluate.combine(["accuracy", "f1"])

还需要进行构建计算的函数

Trainer

简化了自己进行写train函数的逻辑

通过arg设置保存的地方,lr还有epoch等相关超参数

1
2
3
4
5
6
7
args = TrainingArguments(
output_dir="./chatbot",
per_device_train_batch_size=16,
gradient_accumulation_steps=8,
logging_steps=10,
num_train_epochs=2
)
1
2
3
4
5
6
trainer = Trainer(
model=model,
args=args,
train_dataset=tokenized_ds,
data_collator=DataCollatorForSeq2Seq(tokenizer=tokenizer, padding=True)
)