开始你的Hugging Face之旅: 1天快速上手

布景

Hugging Face 是一个盛行的自然语言处理 (NLP) 模型库和社区,提供了大量预训练模型、东西和资源,使得 NLP 的开发者和研究人员能够快速高效地构建和运用各种文本相关运用。在这里,我将向您介绍怎么在 1 天内快速熟悉 Hugging Face 的基本功能,并展现一些简略有用的例子。

1/3 怎么快速运用

  1. 装置 Hugging Face
    • 在命令行中输入 pip install transformers 就能够装置 Hugging Face 的 transformers 库。
    • 假如还没有装置 PyTorch 或 TensorFlow,也需求先装置它们。
  2. 浏览 Hugging Face 的 模型库
    • 找到适合你项目需求的模型。
    • 能够经过搜索或挑选来缩小规模。
    • 点击模型称号进入模型主页,能够检查模型的详细信息、用法示例、源代码等。
  3. 下载并运用模型
    • 运用 from transformers import MODEL_NAME 导入模型。
    • 实例化模型:model = MODEL_NAME.from_pretrained('MODEL_NAME')。其间 MODEL_NAME 是模型的称号或途径。
    • 预备输入数据,转换为模型支持的格式。(如 tokenizer 后的文本、图像等)
    • 调用模型并取得输出:outputs = model(inputs)。其间 inputs 是模型的输入数据。
  4. 保存和加载模型
    • 运用 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 提供的现成模型无法满足需求,咱们能够经过承继 PreTrainedModelPreTrainedTokenizer 类来创立自己的模型和 Tokenizer。
  • 运用Hugging Face Hub: Hugging Face Hub 是一个在线平台,能够轻松同享、发现和运用各种 NLP 模型。咱们能够运用 upload() 函数将自己的模型上传到 Hub 上,并运用 from_pretrained() 函数来加载其他人分享的模型。

总结

经过本文,咱们了解了怎么快速运用 Hugging Face 模型库,并展现了一些简略的 NLP 使命。此外,咱们还介绍了更高阶的用法,例如 Fine-tune 模型、自定义模型和 Tokenizer,以及运用 Hugging Face Hub。