2024-09-20|閱讀時間 ‧ 約 22 分鐘

AI說書 - 從0開始 - 184 | 訓練 & 驗證資料集切割

我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。


整理目前手上有的素材:


手上有的資料需要進行訓練 & 驗證集的切割,因此撰寫以下程式:

from datasets import load_dataset

dataset = load_dataset('csv', data_files = '/content/model/dataset/processed_tweets.csv', column_names = ["text"])

from datasets import DatasetDict

dataset = dataset['train'].train_test_split(test_size = 0.1)
dataset = DatasetDict(dataset)


接著進行資料長度規範處理,過長者進行截斷,不足者進行 Padding,並製作 Data Collator:

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

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

from transformers import DataCollatorForLanguageModeling

data_collator = DataCollatorForLanguageModeling(tokenizer = tokenizer,
mlm = False)


注意這裡的 mlm 配置為 False,和 AI說書 - 從0開始 - 175 | Data Collator 建立 的配置不同,因為我們這裡要模型做的事情是產生對話序列 (宗旨見 AI說書 - 從0開始 - 180 | RoBERTa 預訓練前言),亦即 Autoregressive, Generative Language Modeling ,有關於 mlm 的說明見 AI說書 - 從0開始 - 130

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.