【概要】
今回は、北京大学チームが公開している Fairy±i (700M) という軽量LLMを使って、
日本語で「日記風の文章」を生成させてみました。
このモデルは 2bit量子化+複素数表現 というユニークな仕組みにより、
非常に小さなサイズで高い性能を実現しています。
Colabなどの無料環境でも扱いやすいのが大きな魅力です。
【airy±i (700M)とは?】
・2bit量子化されたTransformerモデル
→ 重みを {±1, ±i} に制限し、省メモリかつ効率的に動作。
・複素数演算を導入
→ 内積や位置エンコーディングに複素数を用いて、安定した学習と高い表現力を確保。
・性能
→700Mという小型ながら、従来のFP16モデルやBitNetを上回る性能を示すタスクもある。
→WikiTextやC4でのPerplexity(文の予測性能)も優秀。
つまり「軽いのに賢い」、研究的・実用的にも面白いモデルです。
【Fairy±i (700M) のおすすめ用途】
・日記やエッセイの自動生成
軽量なので気軽に毎日使える。
・文章スタイルの練習・参考
小説風、旅行記風、ブログ風などに応用しやすい。
・エッジデバイスでの利用実験
モデルサイズが小さいため、スマホや組み込み向けのテストにも適している。
・研究用途
量子化や複素数演算に興味がある人には、実際の挙動を体験する教材モデルとして最適。
【実際に使ってみた】
生成された日記
2014.11.28
朝は少し眠かったが、散歩をして気分が晴れた。昼は友人とランチを楽しみ、夜は静かに本を読んで一日を締めくくった。
【レビュー】
良い点
・短い文章でも「起承転結」がしっかりしている。
・読んだ人が「こんな一日いいな」と共感できる内容。
・難しい表現を避け、誰にでも読みやすい。
改善点
・もう少し感情や具体的な描写(例:ランチで食べたもの、本のタイトルなど)があれば、より臨場感が出そう。
【手順】
1. 環境準備
!pip install -q transformers accelerate sentencepiece
2. モデル読み込み
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# モデル名
model_name = "PKU-DS-LAB/Fairy-plus-minus-i-700M"
# トークナイザーとモデルをロード
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16, # 省メモリ
device_map="auto" # GPU があれば自動利用
)
3. 推論(文章生成)
# プロンプト(指示文)
prompt = "今日は日記を書きます。一日の出来事を簡単にまとめてください。"
# トークン化
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# 生成
outputs = model.generate(
**inputs,
max_new_tokens=80, # 出力の長さ
do_sample=True, # ランダム性を入れる
temperature=0.8, # 創作っぽさ
top_p=0.9
)
# 結果表示
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
まとめ
AIが生成したこの日記文は、短いながら日常の一日をきれいに整理して描けている点が魅力的でした。
日常を簡単に振り返る日記としては十分な完成度であり、
さらに描写を足すことで「読み物」としての厚みも増していくと感じました。
フリーランスエンジニアです。
お仕事のご相談こちらまで
rockyshikoku@gmail.com
Core MLを使ったアプリを作っています。
機械学習関連の情報を発信しています。