Shikata Ga Nai

Private? There is no such things.

第28回|GPT-2を使って自分だけのAI作家をつくる!

Hello there, ('ω')ノ

👩‍🎨 どんなAI作家を作れるの?

例えばこんなことができます:

テーマ例 作れるAIの特徴
日記やエッセイ あなたの語り口や思考パターンを再現するAIエッセイスト
童話やショートストーリー 自作の文体で新しい物語を生み出すAI作家
ビジネスメール例文集 あなた好みのトーンでメール文を自動作成するツール
業務マニュアル、社内FAQ 自社ドキュメントに特化した“説明上手”なチャットAIを構築できる

🔧 使う技術とツール

  • モデル:Hugging Faceの「GPT-2」
  • 環境:Google Colab(無料)
  • 学習方法:転移学習(ファインチューニング)

🧪 まずは準備:自作データを用意しよう

1. テキストファイルを用意

  • できれば1万文字以上あると効果的
  • 文章はプレーンなテキスト(.txt)でOK
  • 例:自分のブログ記事、日記、メール文テンプレートなど

例:

今日は打ち合わせのあと、新しい企画の案をまとめた。
最近は、AIに文章を任せることが少しずつ当たり前になってきている。
...

📥 Colabで実験環境を構築

▶ ステップ1:ライブラリのインストール

!pip install transformers datasets
!pip install accelerate

▶ ステップ2:ファインチューニング用のデータを読み込む

まずは、Colab上であなたのテキストファイルをアップロード:

from google.colab import files
uploaded = files.upload()

アップロード後、ファイル名を確認して読み込む:

file_path = "my_text.txt"  # アップロードしたファイル名に置き換え
with open(file_path, encoding='utf-8') as f:
    text_data = f.read()

🔁 ステップ3:データの整形

Hugging Face用のデータ形式に変換します。

from datasets import Dataset

dataset = Dataset.from_dict({"text": [text_data]})

🚀 ステップ4:ファインチューニングを実行!

from transformers import GPT2Tokenizer, GPT2LMHeadModel, Trainer, TrainingArguments

model_name = "gpt2"  # または "rinna/japanese-gpt2-small" で日本語対応
tokenizer = GPT2Tokenizer.from_pretrained(model_name)
model = GPT2LMHeadModel.from_pretrained(model_name)

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

tokenized_dataset = dataset.map(tokenize_function)

training_args = TrainingArguments(
    output_dir="./output",
    per_device_train_batch_size=1,
    num_train_epochs=3,
    save_steps=10,
    logging_steps=5,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_dataset,
)

trainer.train()

✨ ステップ5:生成してみよう!

prompt = "今日の出来事をまとめると"
input_ids = tokenizer.encode(prompt, return_tensors="pt")
output = model.generate(
    input_ids,
    max_length=100,
    do_sample=True,
    top_p=0.9,
    temperature=0.8
)
print(tokenizer.decode(output[0], skip_special_tokens=True))

あなたの文体や語り口を学習した「AI作家」が、 まるであなたが書いたかのような文章を出力してくれます!


🔍 実験ヒント

こんなことを試してみよう どうなる?
自分のブログやメールの文体を学ばせる あなたらしい“語り口”を再現した文章生成が可能
同じテーマで複数のバリエーションを生成する 記事や投稿案を自動で量産する“クリエイティブパートナー”に変身
指定語彙・トーンを含めた学習を行う トーンのコントロールや専門用語への強さが向上

✅ まとめ:GPT-2で“自分らしい”文章を生み出そう!

✅ 自分のテキストを使って、GPT-2に「あなたの書き方」を学ばせられる

✅ Google Colabを使えば、特別な環境なしでファインチューニングが可能

✅ “AI作家”を自分で作ることで、ライティング業務やコンテンツ生成に活用できる

✅ 楽しみながら、自然言語処理の仕組みも学べる一石二鳥!

Best regards, (^^ゞ