簡體   English   中英

使用 GPU 和簡單的變壓器 mt5 培訓

[英]using gpu with simple transformer mt5 training

mt5 微調不使用 gpu(volatile gpu utill 0%)

嗨,我正在嘗試使用 mt5-base 模型對 ko-en 翻譯進行微調。 我認為 cuda 設置是正確的(cuda available is True)但是在訓練期間,除了首先獲取數據集(非常短的時間)之外,訓練集不使用 gpu。

我想有效地使用 gpu resorce 並獲得有關翻譯模型微調的建議,這是我的代碼和訓練環境。

import logging
import pandas as pd
from simpletransformers.t5 import T5Model, T5Args
import torch

logging.basicConfig(level=logging.INFO)
transformers_logger = logging.getLogger("transformers")
transformers_logger.setLevel(logging.WARNING)

train_df = pd.read_csv("data/enko_train.tsv", sep="\t").astype(str)
eval_df = pd.read_csv("data/enko_eval.tsv", sep="\t").astype(str)

train_df["prefix"] = ""
eval_df["prefix"] = ""

model_args = T5Args()
model_args.max_seq_length = 96
model_args.train_batch_size = 64
model_args.eval_batch_size = 32
model_args.num_train_epochs = 10
model_args.evaluate_during_training = True
model_args.evaluate_during_training_steps = 1000
model_args.use_multiprocessing = False
model_args.fp16 = True
model_args.save_steps = 1000
model_args.save_eval_checkpoints = True
model_args.no_cache = True
model_args.reprocess_input_data = True
model_args.overwrite_output_dir = True
model_args.preprocess_inputs = False
model_args.num_return_sequences = 1
model_args.wandb_project = "MT5 Korean-English Translation"
print("Is cuda available?", torch.cuda.is_available())

model = T5Model("mt5", "google/mt5-base", cuda_device=0 , args=model_args)

# Train the model
model.train_model(train_df, eval_data=eval_df)

# Optional: Evaluate the model. We'll test it properly anyway.
results = model.eval_model(eval_df, verbose=True)

nvcc:NVIDIA (R) Cuda 編譯器驅動程序
版權所有 (c) 2005-2021 NVIDIA Corporation
建立於 Mon_May__3_19:15:13_PDT_2021
Cuda編譯工具,發布11.3,V11.3.109
構建 cuda_11.3.r11.3/compiler.29920130_0

gpu 0 = Quadro RTX 6000

它只是內存不足的情況。 參數和數據集未加載到我的 GPU 內存中。 所以我將模型 mt5-base 更改為 mt5-small,刪除保存點,減少數據集

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM