Transformers Quick Start
HuggingFace入门教程
快速入门
在开始之前, 确保你已经安装了所有必要的库:
1 | !pip install transformers datasets |
你还需要安装喜欢的机器学习框架: pytorch
使用pipeline()
是利用预训练模型进行推理的最简单的方式. 你能够将pipeline()
开箱即用地用于跨不同模态的多种任务. 它支持的任务列表:
使用官方模型库中的模型
使用BLIP2作为例子,这是一个image-captioning的Image2Language模型
1 | from transformers import Blip2Processor, Blip2ForConditionalGeneration |
使用GPU加速模型,通过processor将图片转化为模型输入,通过model实现输
1 | processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b") |
读取一张照片完成推理
1 | image = Image.open(requests.get("https://picture.fanfer.top/Test_pics/1681699301.322593.jpg", stream=True).raw).convert('RGB') |
保存模型
1 | pt_save_directory = "./pt_save_pretrained" |
重新从保存的模型处加在模型
1 | processor = Blip2Processor.from_pretrained(tf_save_directory) |
根据Config自定义模型
可以修改模型的配置类来更改模型的构建方式。配置指定模型的属性,例如隐藏层或注意力头的数量。从自定义配置类初始化模型时,模型参数是随机初始化的,需要先训练模型,然后才能使用它来获得有意义的结果。
1 | from transformers import AutoConfig |
训练模型
所有的模型都是 [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)
所以可以完成train loop. 🤗 Transformers 为PyTorch提供了 Trainer 类,可以按照下面的方法进行训练
1.导入预训练模型或者自定义模型
1 | from transformers import AutoModelForSequenceClassification |
2.**TrainingArguments**包含可以更改的模型超参数,例如学习率、批量大小和训练周期数。如果不指定任何训练参数,则使用默认值:
1 | from transformers import TrainingArguments |
3.加载预处理类,例如tokenizer, image processor, feature extractor, processor
1 | from transformers import AutoTokenizer |
4.加载数据集
1 | from datasets import load_dataset |
5.对数据进行预处理
1 | def tokenize_dataset(dataset): |
6. DataCollatorWithPadding 从dataset中创建batch
1 | from transformers import DataCollatorWithPadding |
7.创建Trainer对象并训练
1 | from transformers import Trainer |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 fanfer 🥰!
评论