Transformers集成SwanLab实现AI训练可视化监控

🤗HuggingFace Transformers

Hugging Face 的 Transformers 是一个非常流行的开源库,它提供了大量预训练的模型,主要用于自然语言处理(NLP)任务。这个库的目标是使最新的模型能够易于使用,并支持多种框架,如 TensorFlow 和 PyTorch。

在这里插入图片描述

你可以使用Transformers快速进行模型训练,同时使用SwanLab进行实验跟踪与可视化。

1. 引入SwanLabCallback

from swanlab.integration.huggingface import SwanLabCallback

SwanLabCallback是适配于Transformers的日志记录类。

SwanLabCallback可以定义的参数有:

  • project、experiment_name、description 等与 swanlab.init 效果一致的参数, 用于SwanLab项目的初始化。
  • 你也可以在外部通过swanlab.init创建项目,集成会将实验记录到你在外部创建的项目中。

2. 传入Trainer

from swanlab.integration.huggingface import SwanLabCallback
from transformers import Trainer, TrainingArguments

...

# 实例化SwanLabCallback
swanlab_callback = SwanLabCallback(project="hf-visualization")

trainer = Trainer(
    ...
    # 传入callbacks参数
    callbacks=[swanlab_callback],
)

trainer.train()

3. 完整案例代码

import evaluate
import numpy as np
import swanlab
from swanlab.integration.huggingface import SwanLabCallback
from datasets import load_dataset
from transformers import AutoModelForSequenceClassification, AutoTokenizer, Trainer, TrainingArguments


def tokenize_function(examples):
    return tokenizer(examples["text"], padding="max_length", truncation=True)


def compute_metrics(eval_pred):
    logits, labels = eval_pred
    predictions = np.argmax(logits, axis=-1)
    return metric.compute(predictions=predictions, references=labels)


dataset = load_dataset("yelp_review_full")

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")

tokenized_datasets = dataset.map(tokenize_function, batched=True)

small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))

metric = evaluate.load("accuracy")

model = AutoModelForSequenceClassification.from_pretrained("bert-base-cased", num_labels=5)

training_args = TrainingArguments(
    output_dir="test_trainer",
    # 如果只需要用SwanLab跟踪实验,则将report_to参数设置为”none“
    report_to="none",
    num_train_epochs=3,
    logging_steps=50,
)

# 实例化SwanLabCallback
swanlab_callback = SwanLabCallback(experiment_name="TransformersTest")

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics,
    # 传入callbacks参数
    callbacks=[swanlab_callback],
)

trainer.train()

在这里插入图片描述

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 01:56:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 01:56:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 01:56:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 01:56:07       20 阅读

热门阅读

  1. vue项目引入json/js文件批量或单个方法

    2024-06-10 01:56:07       9 阅读
  2. vue-封装上下(垂直方向)轮播

    2024-06-10 01:56:07       12 阅读
  3. Spring

    Spring

    2024-06-10 01:56:07      9 阅读
  4. 作业40 自定义函数

    2024-06-10 01:56:07       10 阅读
  5. win10文件夹.git或者文件被隐藏的开启姿势

    2024-06-10 01:56:07       10 阅读
  6. Ansible——get_url模块

    2024-06-10 01:56:07       8 阅读
  7. bash、zsh、fish三种流行Unix shell的区别

    2024-06-10 01:56:07       9 阅读
  8. nodejs 第三方库 exiftool-vendored

    2024-06-10 01:56:07       8 阅读
  9. C++中实现一个泄漏检测工具

    2024-06-10 01:56:07       10 阅读
  10. ubuntu远程控制软件todesk安装及网络连接问题解决

    2024-06-10 01:56:07       10 阅读
  11. C++,观察者模式,模拟Qt的信号和槽机制

    2024-06-10 01:56:07       12 阅读