Hugging face库

本文介绍了HuggingFace库中的Transformers,一个涵盖NLP、CV和语音处理的多任务模型库,支持多种框架并提供预训练模型。此外,还介绍了Datasets、Tokenizers、optimum和PEFT等子库,以及加速训练的工具如accelerate,强调了模型配置、数据处理和微调的效率。
摘要由CSDN通过智能技术生成

1. Transformers

是NLP, CV, audio,speech processing 任务的库。 它包含了超过10000个预训练的模型,涵盖了各种NLP任务,如文本分类,问答,文本生成,情感分析等。Transformers库支持多种深度学习框架,如PyTorch,TensorFlow,JAX和Flax,并且可以轻松地在不同的设备上运行,如CPU,GPU和TPU。

官网:GitHub - huggingface/transformers: Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.

主要包含三部分:Config、Tokenizer、Model。

Config

用于配置模型的名称、最终输出的样式、隐藏层宽度和深度、激活函数的类别等。

Model

AI模型(指代基于各种算法模型,比如预训练模型、深度学习算法、强化学习算法等的实现)的抽象概念。
除了初始的BertGPT等基本模型,针对下游任务,还定义了诸如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、梯度累积等

官网:https://github.com/huggingface/

  • 46
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hugging Face 是一家知名的自然语言处理(NLP)技术公司,以其开源的深度学习 `transformers` 而闻名。`transformers` 提供了预训练的模型和工具,使得开发人员能够轻松地使用最先进的 NLP 模型,如 BERT、GPT-2、BERT等,来进行文本分类、问答、生成、翻译等各种任务。 1. **模型**:Hugging Face Model Hub 是一个仓,其中包含了大量经过训练的模型,覆盖多种语言和应用场景,用户可以直接加载这些模型进行微调或推理。 2. **PreTrained Models**:`transformers` 中的核心是预训练模型,它们是在大规模文本数据上预先训练好的,可以作为基础模型进行迁移学习,然后根据特定任务进行调整。 3. **Tokenizer**:除了模型,Hugging Face 还提供了用于将文本编码成模型可以理解的格式(如 token 或 sequence)的工具,如 BERTTokenizer 和 WhitespaceTokenizer。 4. **Training & Fine-tuning**:中提供了工具来帮助开发者训练自己的模型,或者在现有模型基础上进行微调以适应特定任务。 5. **🤗 CLI & Library**:Hugging Face 还有一个命令行工具 `huggingface-cli` 和 Python ,简化了模型的使用流程,包括下载、运行和部署模型。 相关问题: 1. Hugging Face 的主要用途是什么? 2. `transformers` 中有哪些常见的预训练模型? 3. 如何使用 Hugging Face 的工具进行模型微调? 4. Hugging Face Model Hub 对模型的版本控制是如何进行的? 5. Hugging Face支持哪些主流的深度学习框架?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值