🌎
ファインチューニング用の訓練データの作成方法
概要
機械学習モデルのファインチューニングは、特定のタスクに対してモデルを最適化する一般的な手法です。しかし、ファインチューニングを行う前に、適切なデータセットを用意する必要があります。
この記事では、Pythonを使用して簡単にファインチューニング用のデータセットを作成する方法を紹介します。
内容
事前準備:ライブラリのインストールとトークナイザーの準備
datasets
とtransformers
を使えば簡単にファインチューニングができます。
まずdatasets
をinstallします。
(仮想環境)% pip install datasets
ファインチューニングしたいtokenizer
はあらかじめ準備しておきます。
以下に一例を示します。
(仮想環境)% pip install transformers
from transformers import AutoTokenizer
model_name = "elyza/ELYZA-japanese-Llama-2-7b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
プログラム:ファインチューニング用のデータセット作成
ファインチューニングさせたい文章をファイルで用意するか、変数に入れておきます。
今回は簡単のために後者のプログラムを示します。
from datasets import Dataset
# textにはファインチューニングさせたい文章を改行区切りで格納
text = """文1
文2
文3
...
文N"""
text_data = text.split("\n")
# あらかじめ準備したトークナイザーでトークン化
tokenized_text = tokenizer(text_data, padding=True, truncation=True)
dataset = Dataset.from_dict(tokenized_text)
train_dataset = dataset.with_format("torch")
これでファインチューニング用のデータセットは完成です!!
あとはお好みのモデルでファインチューニングを行ってみてください!!
以下に一例を示します。
(仮想環境)% pip install transformers
trainer = transformers.Trainer(
model=model,
train_dataset=train_dataset ,
data_collator=transformers.DataCollatorForLanguageModeling(tokenizer, mlm=False)
)
trainer.train()
まとめ
この記事では、Pythonを使用して簡単にファインチューニング用のデータセットを作成する方法を紹介しました。ファインチューニング以外にも転移学習、LoRAでも同様の手順でデータセットを準備できます。
データセットの準備は非常に簡単なので、皆さんもお手元で試してみてください。
Discussion