ファインチューニングで、汎用的な要約モデルを作るためのデータセット設定
はじめに
初めまして、データアナリティクスラボ株式会社データソリューション事業部の沖田です。 今回は社内活動の一環として、大規模言語モデルをファインチューニングし、要約を行うモデルを作成し精度を比較する実験を行いましたので、その結果を紹介します。
背景
私は、業務では、法人営業をサポートするための分析を行なっていますが、その中で、日々の経済情報を把握する必要性を感じています。
そこで、経済情報を素早く簡単に把握したいと考えました。具体的には、数百文字の文章を、数十文字程度に要約して把握したいです。これは、新聞記事から、見出しを作成するような作業と考えることができます。
目的
私は、上記の背景から、大規模言語モデルのファインチューニングによって、文章を要約できるようにしたいと考えました。実装上は、新聞記事から見出しを生成するよう学習させます。
課題は、本来要約したい文章と要約文の組のデータセットが存在することはまれであり、ファインチューニングに利用できない可能性が高いことです。手作業でデータを集めることにも工数がかかります。
そこで、本実験の目的は、既存の文章と要約文の組のデータセットを用いてファインチューニングを行い、ファインチューニングに用いたデータセット以外の文章も要約できるような汎用的なモデルを作ることです。本実験においては、最も簡単に調整可能なデータセットの設定(内容の多様性・件数)を変えることで、汎用的なモデルを作る方法を検討します。
実験概要
内容
- 新聞記事の記事・見出しデータを利用したファインチューニング用データセットで、記事から見出しを生成する(要約する)よう、大規模言語モデルをファインチューニングします。
- ファインチューニング済みモデルで見出しを生成(要約)し、以下の
つのデータセットで結果を評価します。2 - ファインチューニング用データセットのテスト用データ
- 要約性能検証用データセット
データセット
ファインチューニング用データセット | 要約性能検証用データセット(※) | |
---|---|---|
データセット名 | livedoor ニュースの記事・見出し | 産業系新聞の記事・見出し |
データセットの説明 | • • 本実験には、記事の長さが同程度の |
• 手作業で、産業系新聞から、記事・見出しのデータを収集したもの |
※要約性能検証用データセットは、ファインチューニング済みモデルで要約を生成し要約文を評価するためだけに利用し、ファインチューニングには利用しません。
モデル
- Stockmark-
B13 - 本モデルの特徴「ビジネス用途での信頼性と速度」が、本実験の背景ニーズである「経済情報を素早く簡単に把握したい」ということに適っているため、本モデルを選定しました。
評価指標
-
定量的な評価
- ROUGE-L(precision)
- BLEUスコア
-
定性的な評価
- 誤った内容が生成されている割合
- 主題以外の内容が生成されている割合
- ファインチューニング用データの見出しに影響を受けた要約になっている割合
- livedoorニュースの見出しに特徴的な、括弧・記号を多用していること
結果
- ファインチューニングに用いたデータセット以外の文章も要約できるような汎用的なモデルを作るためには、ファインチューニング用データセットについて、以下が重要であるという結果を得ました。
- 内容の多様性が大きいこと
- 特に、誤った生成結果を減少させる
- 件数が多すぎないこと
- 誤った生成結果を減少させる
- 主題とは異なる内容を生成してしまうことを防ぐ
実験設計
データセット
本実験には、以下の通り、ファインチューニング用データセットおよび要約性能検証用データセットを用意しました。ともに、クレンジング(記事データ末尾の関連記事一覧や公開日などを取り除く処理)を行いました。
ファインチューニング用データセット | 要約性能検証用データセット | |
---|---|---|
データセット名 | livedoor ニュースの記事・見出し | 産業系新聞の記事・見出し |
データセットの説明 | • • 本実験には、記事の長さが同程度の6カテゴリのデータを利用する • 訓練用データセット |
• 手作業で、産業系新聞から、記事・見出しのデータを収集したもの |
ファインチューニング用データセットの設定
ファインチューニング用データセットとして、「livedoor ニュースコーパス」で提供されている、livedoor ニュースの記事・見出しを利用します。livedoor ニュースコーパスには、
データセットの件数・多様性を、それぞれ
データセットNo. | 件数 (少ない/多い) |
カテゴリ数 (内容の多様性が小さい/大きい) |
|
---|---|---|---|
① | 件数が少ない・多様性が小さい | ||
② | 件数が少ない・多様性が大きい | ||
③ | 件数が多い・多様性が小さい | ||
④ | 件数が多い・多様性が大きい |
カテゴリ数が
- MOVIE ENTER
- ITライフハック
- エスマックス
カテゴリ数が
- MOVIE ENTER
- ITライフハック
- エスマックス
- livedoor HOMME
代後半から20 代の男性向け40 - Peachy
主婦・女性向け - 独女通信
独身女性向け
なお、livedoor ニュースの見出しの特徴として、括弧や記号が多用されていることが挙げられます。
見出しの特徴 | 見出しの例 |
---|---|
括弧の多用 | ウェブセキュリティの向上を目指すOWASPとは【役立つセキュリティ】 |
記号の多用 | 起業家のための事業継続支援サイト「開業計画NAVI」を立ち上げ! |
要約性能検証用データセットの設定
手作業で 産業系新聞の記事・見出しを収集し、モデルの要約性能の検証に利用しました。データの件数は、
なお、要約性能検証用データセットは、ファインチューニング済みモデルで要約を生成し要約文を評価するためだけに利用し、ファインチューニングには利用しません。
ファインチューニングするモデル
ファインチューニングするモデルとして、Stockmark-
13 Bの詳細
Stockmark-- モデル名
- Stockmark-
B13
- Stockmark-
- 開発者
- ストックマーク株式会社
- モデルの特徴
- ビジネス用途での信頼性と速度
- パラメータ数
-
億130
-
- モデルのアーキテクチャ
-
億パラメータのLlama130 2
-
- 事前学習に用いたデータセット
- 日本語のデータセット(合計約
億トークン)2,200 - 一般に事前学習でよく使われるWikipediaやCommonCrawl由来のコーパスに加え、開発者が独自に収集したビジネスに関連するWebページや特許などのデータも用いられています。
- 日本語のデータセット(合計約
(ストックマーク、ビジネスでも信頼できる
実装にあたっては、限られたGPUメモリでも実行できるよう、モデルを
モデルを読み込む際には、AutoModelForCausalLMクラスを選択しました。本実験は文章の要約を行いますが、「記事を与え次単語予測(CausalLM)を行う」という形で実装するためです。
# モデル名
model_name = "stockmark/stockmark-13b"
# 4ビット量子化の設定
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant = True
)
# 4ビット量子化し、モデルを読み込み
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
trust_remote_code=True,
low_cpu_mem_usage=True,
device_map="auto",
torch_dtype="auto"
)
# モデルのtokenizerを読み込み
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.padding_side = "right"
EOS_TOKEN = tokenizer.eos_token
ファインチーニング方法:LoRA
ファインチューニングには、PEFT手法の一種である、LoRA(Low-Rank Adaption)を利用しました。PEFTとは、一部のパラメータのみを訓練することで、効率的にファインチューニングを行う方法ですが、その中でも現在最もよく使われる手法がLoRAです。
以下では、LoRAが紹介された論文LoRA: Low-Rank Adaptation of Large Language ModelsでのLoRAの説明を紹介します。
LoRAによる「効率的」なファインチューニングとは:更新するパラメータ数を抑えること
ファインチューニングによって、事前学習済みの重み
通常のファインチューニングでは、すべてのパラメータを更新するため、更新されるパラメータ数は、
事前学習済みの重み
LoRAを利用したファインチューニング | 通常のファインチューニング | |
---|---|---|
更新されるパラメータ数 |
ここで、
(※ 「
論文LoRA: Low-Rank Adaptation of Large Language Modelsでは、LoRAを、トランスフォーマーのアテンション層の線型結合層の重み行列(
(参考)モデルのアーキテクチャ 4ビット量子化したStockmark-13B
以下のように、モデルのアーキテクチャを表示させることができ、アテンション層(self_attn)内に、
# 4ビット量子化したStockmark-13Bのアーキテクチャを表示
print(model)
# 以下、出力結果
LlamaForCausalLM(
(model): LlamaModel(
(embed_tokens): Embedding(50000, 5120)
(layers): ModuleList(
(0-39): 40 x LlamaDecoderLayer(
(self_attn): LlamaSdpaAttention(
(q_proj): Linear4bit(in_features=5120, out_features=5120, bias=False)
(k_proj): Linear4bit(in_features=5120, out_features=5120, bias=False)
(v_proj): Linear4bit(in_features=5120, out_features=5120, bias=False)
(o_proj): Linear4bit(in_features=5120, out_features=5120, bias=False)
(rotary_emb): LlamaRotaryEmbedding()
)
(mlp): LlamaMLP(
(gate_proj): Linear4bit(in_features=5120, out_features=13824, bias=False)
(up_proj): Linear4bit(in_features=5120, out_features=13824, bias=False)
(down_proj): Linear4bit(in_features=13824, out_features=5120, bias=False)
(act_fn): SiLU()
)
(input_layernorm): LlamaRMSNorm()
(post_attention_layernorm): LlamaRMSNorm()
)
)
(norm): LlamaRMSNorm()
)
(lm_head): Linear(in_features=5120, out_features=50000, bias=False)
)
以下が、LoRAの設定方法ですが、
# LoRAの設定
peft_config = LoraConfig(
task_type="CAUSAL_LM",
r=8,
lora_alpha=32,
lora_dropout=0.1,
# アテンション層のすべての線形結合層を指定
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)
# LoRAのアダプターをモデルに付与
model = get_peft_model(model, peft_config)
学習の設定
プロンプト
ファインチューニング用データセット①~④の訓練用データセットおよび検証用データセットの記事・見出しを、「以下の記事を要約してください。」と指示し、入力しました。
# プロンプトフォーマット
text = f"""以下の記事を要約してください。
# 記事
{example['content'][i]}
# 見出し
{example['title'][i]}{EOS_TOKEN}""
プロンプトの具体例
以下の記事を要約してください。
# 記事
インテルは、東京・秋葉原において、最新のマイクロプロセッサーの優れた性能を紹介するイベント「Intel Technology Day in Akiba 2012」を、2012年4月29日(日)に開催する。 本イベントでは、インテル最新プロセッサーの優れた性能を見られる比較デモコーナーをはじめ、各メーカー・ショップPC展示コーナー、インテル デスクトップ・ボード展示コーナーを予定している。 また、イベントの一環として、賞品やインテル・オリジナルグッズが当たる、PCパーツショップをめぐるスタンプラリーを実施する予定だ。来場者は、誰でも参加できる催しとなっている。 インテルは、本イベントを通し、インテルの最新のマイクロプロセッサーの優れた性能およびUltrabook(TM) のユーザー体験の魅力訴求を行っていくとしている。
# 見出し
最新CPUに出会えるチャンス!「Intel Technology Day in Akiba 2012」を開催へ</s>
また、本実験では、trainerには、SFTTrainer(Supervised Fine-Tuning Trainer)を利用しますが、SFTTrainerには、DataCollatorForCompletionOnlyLMというcollatorクラスがあります。このcollatorはInstruction Tuningする際のプロンプトの「応答フォーマット」(ここでは、「# 見出し」)を指定することで、「応答フォーマット」より後に続くトークンのみを損失関数(ここではCrossEntropyLoss)の計算対象とします。実装上は、「応答フォーマット」を含むそれ以前のトークンに対しては、CrossEntropyLossでトークンを無視することを示すラベル
本実験の実装では、まず、「応答フォーマット」である「# 見出し」のトークンを確認し、それをDataCollatorForCompletionOnlyLMのresponse_template_idsに指定しています。
# 「# 見出し」のトークンを確認
tokenizer.encode("# 見出し")
# 実行結果
# [0, 6, 224, 36279]
# 「# 見出し」のトークンを「応答フォーマット」として指定
response_template_ids = [6, 224, 36279]
collator = DataCollatorForCompletionOnlyLM(response_template_ids, tokenizer=tokenizer)
入力トークンとラベルの具体例
データセットの
入力トークンを表示すると、以下の「# 入力トークン」部分のように、記事・見出しを含むプロンプトがトークン化されています。特に、「応答フォーマット」である「# 見出し」は、上記で調べた通り、「
ラベルを表示すると、以下の「# ラベル」部分のように、「応答フォーマット」を含むそれ以前のトークンに対しては、トークンを無視することを示すラベル
from torch.utils.data import DataLoader
loader = DataLoader(trainer.train_dataset, collate_fn=collator, batch_size=8)
batch = next(iter(loader))
# 入力トークン
print(batch["input_ids"][0])
# 実行結果
# tensor([ ...,
# 19, 7260, 21, 2650, 1025, 29949, 269, 8619, 265, 20,
# 19, 19, 15705, 26, 17, 20, 27, 8, 264, 6571,
# 273, 5644, 1595, 265, 20, 19, 42810, 21, 19, 19,
# 962, 24, 19, 19, 830, 1025, 269, 10883, 318, 5798,
# 319, 553, 4968, 277, 265, 297, 25775, 521, 21533, 3495,
# 623, 46911, 11, 6681, 265, 20, 20, 17, 25, 21,
# 8, 2628, 20, 19, 7260, 22, 2650, 1025, 1536, 202,
# 202, 6, 224, 36279, 202, 40838, 22422, 278, 318, 4852,
# 10919, 319, 271, 12862, 314, 318, 76, 42042, 68, 12861,
# 319, 273, 1119, 765, 10655, 2933, 2635, 566, 2959,...])
# ラベル
print(batch["labels"][0])
# 実行結果
# tensor([ ...,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, -100, -100, -100, -100, -100, -100,
# -100, -100, -100, -100, 202, 40838, 22422, 278, 318, 4852,
# 10919, 319, 271, 12862, 314, 318, 76, 42042, 68, 12861,
# 319, 273, 1119, 765, 10655, 2933, 2635, 566, 2959,...])
学習の設定・学習
学習の設定は、以下の通りとしました。モデルのサイズが大きいため、バッチサイズは
# トレーニングの設定
training_arguments = TrainingArguments(
output_dir="****",
num_train_epochs=5,
per_device_train_batch_size=1,
per_device_eval_batch_size=1,
gradient_accumulation_steps=2,
optim="paged_adamw_8bit",
save_steps=200,
logging_steps=5,
learning_rate=1e-5,
weight_decay=0.001,
fp16=False,
bf16=False,
max_grad_norm=0.3,
max_steps=-1,
group_by_length=True,
lr_scheduler_type="linear",
evaluation_strategy="steps",
eval_steps=200,
save_total_limit=1,
load_best_model_at_end=True,
metric_for_best_model="loss",
greater_is_better=False
)
# SFTTrainerの設定
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=ds_train,
eval_dataset=ds_val,
peft_config=peft_config,
formatting_func=formatting_prompts_func,
data_collator=collator,
max_seq_length=1024,
args=training_arguments,
)
# 訓練する
trainer.train()
ファインチューニング済みのモデルでの要約生成
ファインチューニング用データセット①~④で作成したモデルに、ファインチューニング用データセットのテスト用データセットおよび要約性能検証用データセットの記事データを入力し、要約を生成しました。
ここでは、後述する評価指標による評価が最も優れていた、ファインチューニング用データセット②(件数が少ない・多様性が大きい)で作成したモデルによる要約結果を紹介します。
生成結果 | 見出し | 記事 |
---|---|---|
インテルが新しい利用モデルを創出する場をオープン | PCの次世代利用モデルを創出へ インテルつくばに新センター開設【デジ通】 | インテルは、つくば本社に「インテル ヒューマン・インタラクティブ・テクノロジー・アプリケーション・センター」を新設した。ずいぶんと長い名前だが、インテルが製造するCore i |
NECがUltrabook市場に参入! 最軽量モデルの重さは?【デジ通】 | 重量を当ててUltrabookをゲット! NEC LaVie Zの重さ当てクイズ【デジ通 | 本来なら海外メーカー以上にノートパソコンの小型化や薄型化が得意であるはずの国内メーカー。そのUltrabook市場への参入が遅れていた。下手な製品を出せないという考えがあったのかは不明だが、ようやく (中略) 最軽量モデルの仕様は (後略) |
新生活特集 - オリンパスペン「E-PL |
新生活を撮りつくす新オリンパスペン「E-PL |
新生活がスタートすれば、新しい出会いや世界が待っています。その一つ一つの出来事が、人生であり、生きていく足跡となります。そうした思い出の (中略) オリンパスペン「E-PL (後略) |
要約の評価
要約の評価には、以下の評価指標を用いました。定量的な評価に加え、要約性能検証用データセット(産業系新聞)の要約については、筆者による定性的な評価を行いました。
ファインチューニング用データセットのテスト用データ(livedoorニュース)の要約 | 要約性能検証用データセット(産業系新聞)の要約 | |
---|---|---|
定量的な評価 | ○ | ○ |
定性的な評価 | × | ○ |
(○:評価を実施)
定量的な評価
- まず、モデルが生成した要約と、データセットの見出しの組について、以下の評価指標を算出します。
- 次に、全要約文について算出した評価指標の平均値を算出し、そのモデルの評価としました。
ROUGE-L(precision)
- ROUGE-L(precision)は、モデルが生成した要約と、人が作成した要約で「一致する単語列の長さの最大値」(Longest Common Subsequence = LCS)を評価する指標です。適合率(Precision)である通り、「モデルが生成した文字列が、どれだけ人が作成した要約の文字列と一致していたか」を表しているような値です。
- ROUGE-L(precision)は、
~0 の値を取り、値が大きい方が良いです。1
BLEUスコア
- BLEUスコアは、以下の指標を用いて、モデルが生成した要約と、人が作成した要約の類似度を計算する指標です。
-
は、モデルが生成した要約がデータセットの記事より短い場合のペナルティです。モデルが生成した要約の方が短い場合は、BP_{BLEU} はBP_{BLEU} を下回ります。1 -
は、n-gramで測った適合率(precision)のような値と考えることができ、p_n が高ければBLEUスコアも高くなります。p_n - BLEUスコアは、
~0 の値を取りますが、1 倍して100 ~0 の値で評価することが多いです。値が大きい方が良く、要約タスクでは、100 を超えると性能が良いとされます。40
定性的な評価
モデルが生成した要約と、データセットの記事の組について、以下に該当する件数(割合)を算出します。定性的な評価の項目は、要約の精度を損ねる要因であるため、値が小さいほど要約の精度が良いとします。
- 誤った内容が生成されている割合
- 主題以外の内容が生成されている割合
- ファインチューニング用データの見出しに影響を受けた要約になっている割合
- livedoorニュースの見出しに特徴的な、括弧・記号を多用していること
評価結果
定量的な評価
ROUGE-L(precision)による評価
ファインチューニングに用いたデータセット | ファインチューニング用データ(livedoor ニュース)のテスト用データセット | 要約性能検証用データ(産業系新聞) |
---|---|---|
①件数が少ない・多様性が小さい |
|
|
②件数が少ない・多様性が大きい |
|
|
③件数が多い・多様性が小さい |
|
|
④件数が多い・多様性が大きい |
|
|
BLEUスコアによる評価
ファインチューニングに用いたデータセット | ファインチューニング用データ(livedoor ニュース)のテスト用データセット | 要約性能検証用データ(産業系新聞) |
---|---|---|
①件数が少ない・多様性が小さい | ||
②件数が少ない・多様性が大きい | ||
③件数が多い・多様性が小さい | ||
④件数が多い・多様性が大きい |
ROUGE-L(precision)およびBLEUスコアによる評価結果のグラフ
ROUGE-L(precision)およびBLEUスコアによる評価結果の比較
-
ファインチューニング用データセットのテスト用データセット(livedoorニュース)の要約
- データセットの多様性が大きく、件数が多い方が、評価指標が良いという結果になりました。
- 多様性が小さいデータ VS 多様性が大きいデータ
- ① VS ② (件数:
)1,000 - ③ VS ④ (件数:
)2,000
- ① VS ② (件数:
- 件数が少ないデータ VS 件数が多いデータ
- ① VS ③ (多様性:小さい)
- ② VS ④ (多様性:大きい)
-
要約性能検証用データセット(産業系新聞)の要約
- データセットの多様性が大きく、 件数が少ない方が、評価指標が良いという結果になりました。
- 多様性が小さいデータ VS 多様性が大きいデータ
- ① VS ② (件数:
)1,000 - ③ VS ④ (件数:
)2,000
- ① VS ② (件数:
-
件数が少ないデータ VS 件数が多いデータ
- ① VS ③ (多様性:小さい)
- ② VS ④ (多様性:大きい)
つまり、件数が多いデータセット(
定性的な評価
要約性能検証用データセット(産業系新聞)の要約の、定性的な評価結果は以下の通りです。なお、先述の通り、定性的な評価の項目は、要約の精度を損ねる要因であるため、値が小さいほど要約の精度が良いとします。
定性的な評価において、データセットの件数について比較を行なったところ、「誤った内容が生成されている割合」、「主題以外の内容が生成されている割合」については、定量的な評価と同様に、定性的な評価も、データセットの多様性が大きく、件数が少ない方が、評価指標が良いという結果になりました。特に、「誤った内容が生成されている割合」は、多様性が大きいデータ(データセット②および④)で著しく減少していました。
「ファインチューニング用データの見出しに影響を受けた要約になっている割合」については、データセット①(件数が少ない・多様性が小さい)と、データセット④(件数が多い・多様性が大きい)の評価指標が良いという矛盾した結果になりました。このことから、基本的には、件数が少ない方が評価指標が良いものの、多様性が十分であれば、要約の精度が向上する可能性があると考察しました。
ファインチューニングに用いたデータセット | 誤った内容が生成されている割合 | 主題以外の内容が生成されている割合 | ファインチューニング用データの見出しに影響を受けた要約になっている割合 |
---|---|---|---|
①件数が少ない・多様性が小さい |
|
|
|
②件数が少ない・多様性が大きい |
|
|
|
③件数が多い・多様性が小さい |
|
|
|
④件数が多い・多様性が大きい |
|
|
|
定性的な評価結果の比較
-
誤った内容が生成されている割合
- 多様性が小さいデータ VS 多様性が大きいデータ
- ① VS ② (件数:
)1,000 - ③ VS ④ (件数:
)2,000
- ① VS ② (件数:
-
件数が少ないデータ VS 件数が多いデータ
- ① VS ③ (多様性:小さい)
- ② VS ④ (多様性:大きい)
- 多様性が小さいデータ VS 多様性が大きいデータ
-
主題以外の内容が生成されている割合
- 多様性が小さいデータ VS 多様性が大きいデータ
- ① VS ② (件数:
)1,000 - ③ VS ④ (件数:
)2,000
- ① VS ② (件数:
-
件数が少ないデータ VS 件数が多いデータ
- ① VS ③ (多様性:小さい)
- ② VS ④ (多様性:大きい)
- 多様性が小さいデータ VS 多様性が大きいデータ
-
ファインチューニング用データの見出しに影響を受けた要約になっている割合(括弧・記号の多用)
- 多様性が小さいデータ VS 多様性が大きいデータ
- ① VS ② (件数:
)1,000 - ③ VS ④ (件数:
)2,000
- ① VS ② (件数:
- 件数が少ないデータ VS 件数が多いデータ
- ① VS ③ (多様性:小さい)
- ② VS ④ (多様性:大きい)
- 多様性が小さいデータ VS 多様性が大きいデータ
まとめ・考察
- 本実験の結果から、ファインチューニングに用いたデータセット以外の文章も要約できるようなモデルを作成するための、ファインチューニング用データセットの条件としては以下の2点が挙げられます。
-
データが多様であること
-
定量的な評価・定性的な評価ともに、データの多様性が大きい方が、要約の性能が良いという結果になりました。
- 定性的な評価では、データの多様性が大きい方が、以下の評価指標が低く、要約の性能が良いことが確認されました。特に、「誤った内容が生成されている割合」が顕著に低下していました。
- 誤った内容が生成されている割合
- 主題以外の内容が生成されている割合
- ファインチューニング用データの見出しに影響を受けた要約になっている割合
- 定性的な評価では、データの多様性が大きい方が、以下の評価指標が低く、要約の性能が良いことが確認されました。特に、「誤った内容が生成されている割合」が顕著に低下していました。
-
考察:
- ファインチューニング用データセットの多様性が大きい場合、学習に使っていない文章を含む幅広い文章の要約が可能になるのではないか。その結果、誤った内容が生成されることや、主題以外の内容が生成が生成されること、ファインチューニング用データの見出しに影響を受けることを防げたのではないか。
-
-
データの件数が多すぎないこと
-
定量的な評価では、
- 要約性能検証用データセット(産業系新聞)の要約結果については、ファインチューニング用データセットの件数が多い方が、件数が少ない場合よりも、要約の性能が悪いという結果になりました。
- また、ファインチューニング用データセットの件数が多い場合、ファインチューニング用データ(livedoor ニュース)のテスト用データセットの要約結果の評価が良くとも、要約性能検証用データセット(産業系新聞)の要約結果が悪化していました。
-
定性的な評価では、
- データの件数が多いときに、「誤った内容が生成されている割合」「主題以外の内容が生成されている割合」が増加していることが確認でき、これらが原因で、定量的な評価の評価指標が悪化したと考えられます。
-
考察:
- データの件数が多すぎると、ファインチューニング用データセットのテストデータの要約はうまくいくようになるが、ファインチューニング用データセットを学習させすぎると、かえって他の文書を要約できなくなってしまうのではないか。
- データの件数が多すぎることで、余計な知識を学習してしまっているのではないか。余計な知識を学習することで、誤った内容を生成したり、主題とは異なる内容を生成したりしてしまうのではないか。
-
参考文献
- データセット
- ファインチューニングするモデル
- NF4(4-bit Normal Floatについて
- LoRAについて
- SFTTrainer(Supervised Fine-Tuning Trainer)について
- 評価指標について
Discussion