Hugging face库
1. Transformers
是NLP, CV, audio,speech processing 任务的库。 它包含了超过10000个预训练的模型,涵盖了各种NLP任务,如文本分类,问答,文本生成,情感分析等。Transformers库支持多种深度学习框架,如PyTorch,TensorFlow,JAX和Flax,并且可以轻松地在不同的设备上运行,如CPU,GPU和TPU。
主要包含三部分:Config、Tokenizer、Model。
Config
用于配置模型的名称、最终输出的样式、隐藏层宽度和深度、激活函数的类别等。
Model
AI模型(指代基于各种算法模型,比如预训练模型、深度学习算法、强化学习算法等的实现)的抽象概念。
除了初始的Bert
、GPT
等基本模型,针对下游任务,还定义了诸如BertForQuestionAnswering
等下游任务模型。
Tokenizer
将纯文本转换为编码的过程(注意:该过程并不会生成词向量)。由于模型(Model)并不能识别(或很好的识别)文本数据,因此对于输入的文本需要做一层编码。在这个过程中,首先会将输入文本分词而后添加某些特殊标记([MASK]标记、[SEP]、[CLS]标记),比如断句等,最后就是转换为数字类型的ID(也可以理解为是字典索引)。
transformers使用-pipelines函数
在Transformers库中最基本的对象就是pipeline()函数。该流水线操作将模型处理的三个步骤组合在一起:预处理、通过模型传递输入以及后处理。
调用pipeline函数指定预训练模型,有三个主要步骤:
- 输入的文本被预处理成模型(Model)可以理解的格式的数据(就是上述中Tokenizer组件的处理过程)。
- 预处理后的数据作为输入参数传递给模型(Model)。
- 模型的预测结果(输出内容)是经过后处理的,可供理解。
现有可用的pipeline()函数功能如下:
- feature-extraction:特征抽取,将文本转化为一个向量,这就是embedding呀
- fill-mask:完形填空,BERT, BART等模型的预训练策略。
- ner (named entity recognition):命名实体识别
- question-answering:问答,一般是抽取式问答
- sentiment-analysis:情感分析,也是文本分类
- summarization:摘要,一般是抽取式摘要
- text-generation:文本生成,一般指GPT类模型
- translation:翻译,seq2seq。
2. Datasets
高效的数据集加载、预处理库
官网:https://github.com/huggingface/datasets
3.?Tokenizers
官网:https://github.com/huggingface/tokenizers
4.?optimum
官网:https://github.com/huggingface/optimum
5. peft
模型参数高效微调,目前支持Prefix Tuning、Prompt Tuning、PTuningV1、PTuningV2、Adapter、LoRA、AdaLoRA,LoRA使用重参数化的思想,目前支持Linear线性层、Conv1D(实际上也是一个线性层),正在开发的版本即将支持3x3和1x1的Conv2d卷积
官网:GitHub - huggingface/peft: PEFT: State-of-the-art Parameter-Efficient Fine-Tuning.
- LoraConfig: lora配置
- get_peft_model: 在模型中添加lora层
- prepare_model_for_kbit_training: 用来在微调中提高训练的稳定性
6. accelerate
大规模分部署训练,支持DP、DDP、Deep Speed、Zero、Fully Sharded Data Parallel、Gradient Checkpoint、梯度累积等
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!