.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

huggingface/trl SFTTrainer

huggingface/trl

SFTTrainer

詳細

実装準備

Instruction Tuning

Instruction Tuningは、言語モデルに 命令(Instruction)とその応答(Response)を学習させることで、指示に従う能力を高める手法

プロンプトフォーマット変換用関数

損失計算

SFTTrainerの構成

from transformers import TrainingArguments
from trl import SFTTrainer

# SFTTrainerはTrainingArgumentsを使用することができる。
# 指定しない場合、TrainingArgumentsのデフォルトが指定される。
args = TrainingArguments(
    output_dir='./output',
    num_train_epochs=2,
    gradient_accumulation_steps=8,
    per_device_train_batch_size=8,
    save_strategy="no",
    logging_steps=20,
    lr_scheduler_type="constant",
    save_total_limit=1,
    fp16=True,
)
# data_collatorが指定されていない場合、以下のようにDataCollatorForLanguageModelingがmlm=Falseで使われる。
# つまり通常のCausal LMを学習することになる。
# if data_collator is None:
#     data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)
# packing=False(default)ではdataset_text_fieldかformatting_funcを指定する必要あり
trainer = SFTTrainer(
    model,
    args=args,
    train_dataset=dolly_train_dataset,
    formatting_func=formatting_prompts_func,
    max_seq_length=1024,
    data_collator=collator,
)

trainer.train()
trainer.save_model()

LoRAによるチューニング

NEFTuneによる学習

packingを用いた学習

学習結果の比較

参考

Qiita m__k #自然言語処理

Hugging Face

The AI community building the future.

github.com

https://github.com/huggingface/trl/blob/main/trl/


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS