Magpie: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing
Paper • 2406.08464 • Published • 72
rinna/japanese-gpt2-medium(GPT-2アーキテクチャ、336M)を、カジュアルな日本語文をフォーマルな日本語文に変換する指示応答データでフルファインチューニングしたモデルです。
学習データはMAGPIE(arXiv:2406.08464)の手法で Qwen/Qwen2.5-7B-Instruct を使い1,000件合成し、日本語純度・フォーマット・長さ比・疑問形保持・重複でフィルタしたものを使用しています。
同じデータ・同条件でLoRAのみを学習した Sapolas0730/japanese-gpt2-medium-formal-lora との比較実験の詳細はZenn記事を参照してください。
Hugging Face transformers の標準形式で保存されているため、そのまま読み込めます。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Sapolas0730/japanese-gpt2-medium-formal-fullft"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
model.eval()
instruction = "次の文をフォーマルな言い方に変換してください:明日暇?"
prompt = f"以下はタスクを説明する指示です。指示に従って応答を書いてください。\n\n### 指示:\n{instruction}\n\n### 応答:\n"
input_ids = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).input_ids
output_ids = model.generate(
input_ids,
max_new_tokens=100,
min_new_tokens=5,
pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
repetition_penalty=1.3,
no_repeat_ngram_size=3,
)
print(tokenizer.decode(output_ids[0][input_ids.shape[-1]:], skip_special_tokens=True))
rinna/japanese-gpt2-medium(学習可能パラメータ 336,128,000 = 100%)repetition_penalty や no_repeat_ngram_size の使用を推奨します。ベースモデル(rinna/japanese-gpt2-medium)・学習データ生成に使用したQwen/Qwen2.5-7B-Instructはいずれも寛容なオープンライセンス(MIT / Apache 2.0)で公開されています。本モデルもこれに従います。
Base model
rinna/japanese-gpt2-medium