• 5分钟NLP:使用 HuggingFace 微调BERT 并使用 TensorBoard 可视化


    上篇文章我们已经介绍了Hugging Face的主要类,在本文中将介绍如何使用Hugging Face进行BERT的微调进行评论的分类。其中包含:AutoTokenizer、AutoModel、Trainer、TensorBoard、数据集和指标的使用方法。

    在本文中,我们将只关注训练和测试拆分。每个数据集都由一个文本特征(评论的文本)和一个标签特征(表示评论的好坏)组成。

    1. from datasets import load_dataset, load_metric
    2. task = "imdb"
    3. dataset = load_dataset(task)
    4. print(dataset)
    5. """
    6. DatasetDict({
    7. train: Dataset({
    8. features: ['text', 'label'],
    9. num_rows: 25000
    10. })
    11. test: Dataset({
    12. features: ['text', 'label'],
    13. num_rows: 25000
    14. })
    15. unsupervised: Dataset({
    16. features: ['text', 'label'],
    17. num_rows: 50000
    18. })
    19. })
    20. """

    IMDb数据集的通用基准指标是准确率,所以这里使用 datasets 库的 load_metric 函数来加载 metric 脚本,稍后可以与 compute 方法一起使用。

    1. metric = load_metric("accuracy")
    2. metric.compute(predictions=[0,0,1,1], references=[0,1,1,1])
    3. # {'accuracy': 0.75}

    下载的数据集有训练和测试拆分,但我们还需要拆分出验证集来判断模型在训练期间表现以避免过拟合。

    使用train_test_split 应用于 test_size = 0.3 进行拆分:这会产生一个包含 70% 原始样本的新训练集和一个包含 30% 原始样本的验证集。

    1. splitted_datasets = dataset["train"].train_test_split(test_size=0.3)
    2. print(splitted_datasets)
    3. """
    4. DatasetDict({
    5. train: Dataset({
    6. features: ['text', 'label'],
    7. num_rows: 17500
    8. })
    9. test: Dataset({
    10. features: ['text', 'label'],
    11. num_rows: 7500
    12. })
    13. })
    14. """

    接下来使用 Hugging Face的AutoTokenizer 类加载 BERT Tokenizer。

    本文实际上加载 DistilBERT 作为 快速替代方案,如果需要加载 BERT,代码基本是相同的(即将 distilbert-base-uncased 替换为 Bert-base-uncased)。DistilBERT 是一种小型、快速、廉价和轻量级的 Transformer 模型,通过蒸馏 BERT 基础进行训练。根据 GLUE 语言理解基准测试,它的参数比 Bert-base-uncased 少 40%,运行速度提高 60%,同时保持 BERT 95% 以上的性能。

    完整列表:

    https://www.overfit.cn/post/bf902048c16c4944a171665dc6ffdccb

  • 相关阅读:
    linux of函数实例
    Linux libenv 编译移植
    OpenTracing简单了解
    Byte Buddy简单学习
    JavaAgent简单学习
    TB2安装ubuntu16.04+kinetic的ROS包
    常用工具传送门
    ROS传送门
    结对第二次—文献摘要热词统计及进阶需求
    结对第一次—原型设计(文献摘要热词统计)
  • 原文地址:https://www.cnblogs.com/deephub/p/15988593.html
Copyright © 2020-2023  润新知