? 开始你的Hugging Face?之旅: 1天快速上手
背景
Hugging Face 是一个流行的自然语言处理 (NLP) 模型库和社区,提供了大量预训练模型、工具和资源,使得 NLP 的开发者和研究人员能够快速高效地构建和应用各种文本相关应用。在这里,我将向您介绍如何在 1 天内快速熟悉 Hugging Face 的基本功能,并展示一些简单实用的例子。
?1/3 如何快速使用
- 安装 Hugging Face
- 在命令行中输入
pip install transformers
就可以安装 Hugging Face 的 transformers 库。 - 如果还没有安装 PyTorch 或 TensorFlow,也需要先安装它们。
- 在命令行中输入
- 浏览? Hugging Face 的 模型库
- 找到适合你项目需求的模型。
- 可以通过搜索或筛选来缩小范围。
- 点击模型名称进入模型主页,可以查看模型的详细信息、用法示例、源代码等。
- 下载并使用模型
- 使用
from transformers import MODEL_NAME
导入模型。 - 实例化模型:
model = MODEL_NAME.from_pretrained('MODEL_NAME')
。其中MODEL_NAME
是模型的名称或路径。 - 准备输入数据,转换为模型支持的格式。(如 tokenizer 后的文本、图像等)
- 调用模型并获得输出:
outputs = model(inputs)
。其中inputs
是模型的输入数据。
- 使用
- 保存和加载模型
- 使用
model.save_pretrained('PATH')
将模型保存到指定路径。 - 使用
MODEL_NAME.from_pretrained('PATH')
来加载模型。
- 使用
?2/3 展示效果
文本分类
from transformers import pipeline, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
text = "This movie is really good!"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
print(f"Input text: {text}")
print(f"Predicted label: {outputs[0]['label']}, score: {outputs[0]['score']:.2f}")
输出结果:
Input text: This movie is really good!
Predicted label: POSITIVE, score: 0.99
命名实体识别
from transformers import pipeline, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = pipeline("ner", model="dslim/bert-base-NER")
text = "Hugging Face is a startup based in New York City"
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
for entity in outputs:
print(f"Entity: {entity['word']}, Type: {entity['entity']}, Score: {entity['score']:.2f}")
输出结果:
Entity: New, Type: B-LOC, Score: 0.24
Entity: York, Type: I-LOC, Score: 0.28
Entity: City, Type: I-LOC, Score: 0.25
?3/3 更高阶的用法
Fine-tuning 模型
在 ?Hugging Face 中,我们可以使用预训练模型进行 fine-tuning,以适应特定任务或领域的需求。以下是一个简单的示例:
from transformers import Trainer, TrainingArguments
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=1,
per_device_train_batch_size=16,
per_device_eval_batch_size=64,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()
- 自定义模型和 Tokenizer: 如果 Hugging Face 提供的现成模型无法满足需求,我们可以通过继承
PreTrainedModel
和PreTrainedTokenizer
类来创建自己的模型和 Tokenizer。 - 使用Hugging Face Hub: Hugging Face Hub 是一个在线平台,可以轻松共享、发现和使用各种 NLP 模型。我们可以使用
upload()
函数将自己的模型上传到 Hub 上,并使用from_pretrained()
函数来加载其他人分享的模型。
?总结
通过本文,我们了解了如何快速使用 ?Hugging Face 模型库,并展示了一些简单的 NLP 任务。此外,我们还介绍了更高阶的用法,例如 Fine-tune 模型、自定义模型和 Tokenizer,以及使用 Hugging Face Hub。
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END