Hugging Face有哪些库
时间: 2025-06-30 15:16:37 浏览: 30
### Hugging Face 提供的常用库
Hugging Face 是一家专注于自然语言处理(NLP)和深度学习模型开发的科技公司,其开源生态系统中包含了多个广泛使用的库。这些库不仅支持 PyTorch 和 TensorFlow 框架,还为研究人员和开发者提供了高效的工具链来构建、训练和评估大模型。
#### Transformers 库
Transformers 是 Hugging Face 最核心的库之一,它提供了一个统一的接口来访问数百种预训练模型,包括 BERT、GPT、T5、RoBERTa、BART、Whisper 等[^3]。该库支持多种任务,如文本分类、文本生成、机器翻译、问答系统和语音处理等,并允许用户通过简单的 API 快速加载模型和分词器。
以下是一个使用 `transformers` 加载预训练 BERT 模型并进行推理的示例:
```python
from transformers import BertTokenizer, BertModel
import torch
# 加载分词器和模型
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model = BertModel.from_pretrained("bert-base-uncased")
# 输入文本
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
# 前向传播
with torch.no_grad():
outputs = model(**inputs)
# 获取最后一层的隐藏状态
last_hidden_states = outputs.last_hidden_state
```
#### Evaluate 库
Evaluate 是一个独立的评估库,用于计算 NLP 任务中的标准评估指标,如准确率(accuracy)、F1 分数(f1)、BLEU、ROUGE 等[^2]。它适用于文本分类、机器翻译、摘要生成、问答系统等多种任务,并与 `transformers` 库无缝集成,便于在微调过程中快速获取模型性能反馈。
以下是如何使用 `evaluate` 计算准确率的示例代码:
```python
import evaluate
import numpy as np
# 加载准确率指标
accuracy = evaluate.load("accuracy")
# 假设的预测结果和真实标签
predictions = np.array([0, 1, 0])
references = np.array([0, 1, 1])
# 计算准确率
result = accuracy.compute(predictions=predictions, references=references)
print(result["accuracy"])
```
#### Datasets 库
Datasets 是 Hugging Face 提供的一个高效数据处理库,支持从本地文件、网络资源或 Hugging Face Hub 上加载结构化数据集。它内置了丰富的 NLP 数据集(如 GLUE、SST-2、MNLI 等),并提供统一的数据格式(Dataset)来加速数据迭代和预处理流程[^3]。
以下是一个加载并查看数据集内容的示例:
```python
from datasets import load_dataset
# 加载GLUE基准中的SST-2数据集
dataset = load_dataset("glue", "sst2")
# 查看训练集前几条数据
print(dataset["train"][:5])
```
#### PEFT(Parameter-Efficient Fine-Tuning)
PEFT 是一种参数高效微调技术的集合,包含 LoRA(Low-Rank Adaptation)、Adapter Tuning、Prefix Tuning 等方法。这些技术可以显著减少微调过程中需要更新的参数数量,从而降低计算资源消耗并加快训练过程。PEFT 可以作为插件式模块与 `transformers` 集成使用。
以下是一个使用 LoRA 微调 BERT 的代码片段:
```python
from transformers import BertModel
from peft import get_peft_model, LoraConfig, TaskType
# 加载基础模型
model = BertModel.from_pretrained("bert-base-uncased")
# 配置LoRA参数
lora_config = LoraConfig(
task_type=TaskType.SEQ_CLS,
r=8,
lora_alpha=16,
target_modules=["query", "value"],
lora_dropout=0.1,
bias="none",
)
# 将LoRA应用到模型上
peft_model = get_peft_model(model, lora_config)
# 打印可训练参数信息
peft_model.print_trainable_parameters()
```
#### Accelerate 库
Accelerate 是一个简化分布式训练的库,支持多 GPU、TPU 和混合精度训练。它可以自动检测硬件配置并适配相应的训练策略,使得开发者无需手动编写复杂的分布式训练逻辑即可实现高性能训练。
#### Diffusers 库
Diffusers 是一个专注于扩散模型(Diffusion Models)的库,广泛应用于图像生成、音频合成等领域。它支持多种扩散模型架构,如 DDPM、DDIM、LDM 等,并与 `transformers` 兼容,便于构建多模态生成系统。
---
阅读全文
相关推荐




















