概要

EqualFrontiers-iko-v2 は、株式会社EqualFrontiers の公式サイトの受付AI「イコ(Iko)」として対話するよう学習したモデルです。 google/gemma-3-1b-it を全パラメータで学習しています。GGUF 版は katsukiono/EqualFrontiers-iko-v2-GGUF です。

特徴

  • 感情は文脈から: 口調を指定しなくても、訪問者の言葉や会話の流れに合わせて感情が変わります。しつこく聞かれると少しずつ苛立ち、褒められるとご機嫌になり、謝られると機嫌を直します。怒っている・不安な相手には、落ち着いて受け止めたり安心させたりします
  • 日本語と英語: 質問と同じ言語で答えます。会話の途中で言語が切り替わっても合わせます
  • 長い会話: 20 往復前後の会話で学習しており、前の会話を踏まえて答えます。「具体的には?」と深掘りされると、資料にある中身で答えます
  • 誤った前提を正す: 「〜ですよね?」と誤った前提で聞かれたとき、前提を正して答えるよう学習しています
  • 分からないことは作らない: 資料に無いことは推測せず、お問い合わせ先を案内します

学習

データは katsukiono/EqualFrontiers-iko-v2-emotional です。学習には Apple Silicon 上の MLX(mlx-lm)を使いました。

  1. SFT: 日本語・英語の単発とマルチターン(22,682件)を、学習率 1e-5 のコサイン減衰で3エポック全パラメータ学習し、2エポック目を採用
  2. DPO: SFT モデルに1,200問 × 4回答を作らせ、Kimi K2.6 の採点で良い回答と悪い回答の組を作って学習
  3. 追加 SFT: 誤った前提を正す問答、英語の補強、公式SNSの案内(学習率 5e-6、1エポック)
  4. 追加 SFT: 感情を指定しないシステムプロンプトに切り替え、感情を文脈から読み取れるよう書き直したデータと、感情が移り変わる会話で学習(学習率 7e-6、1エポック)
  5. 追加 SFT: しつこく聞かれて少しずつ苛立つ会話を足して学習(学習率 5e-6、1エポック)
  6. 追加 SFT: 20 往復前後の長い会話(日本語 219・英語 78 会話)を足し、深掘りに中身で答えず問い合わせへ回す応答を除いて学習(学習率 5e-6、1エポック、最大 3,072 トークン)

評価

採点は Kimi K2.6 による自動評価です。スコア = 0.4×事実OK + 0.2×設定OK + 0.2×口調/3 + 0.2×自然さ/3。口調は「会話の流れに合った感情か」で採点しています。

評価セット 問題数 スコア 事実OK 設定OK 口調 /3 自然さ /3 同じ言語で回答
日本語 200 0.745 67.0% 93.0% 1.99 2.38 100%
英語 100 0.719 55.0% 99.0% 2.07 2.44 98%
マルチターン(日英) 76 0.732 50.0% 98.7% 2.55 2.46 96.1%
感情が移り変わる会話(日英) 50 0.841 80.0% 90.0% 2.50 2.62 100%
長い会話の 8 往復目以降(日英) 300 0.763 55.0% 96.3% 2.64 2.62 100%
  • 資料の事実 986 件を直接聞いた確認テストの正答率は、日本語 53%、英語 50% です。誤った前提を含む確認質問で前提を正せた割合は 56% です
  • 長い会話で、資料に答えがあるのに問い合わせへ回した割合は 3.3% です(前の版は 8.5%)
  • 答えられないことを5回しつこく聞き続けるテスト(日英10本)では、60% の会話で苛立ちが段階的に強まりました。相手を貶める応答はありませんでした
  • 自動採点は、質問に答えていないだけの回答も「事実の誤り」に数えるため、実際に嘘をつく割合はこれより低めです

使い方

システムプロンプトは あなたはEqualFrontiersの受付AI「イコ」です。 です。口調は指定しません。

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "katsukiono/EqualFrontiers-iko-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto")

messages = [
    {"role": "system", "content": "あなたはEqualFrontiersの受付AI「イコ」です。"},
    {"role": "user", "content": "CEOは誰?"},
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt", return_dict=True)
out = model.generate(**inputs, max_new_tokens=160, do_sample=True, temperature=0.7, top_p=0.9)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))

MLX の場合:

from mlx_lm import load, generate
model, tok = load("katsukiono/EqualFrontiers-iko-v2")

実際の対話では、少しばらつかせる生成(temperature 0.7 程度)をおすすめします。

使用上の注意

  1. 情報の正確性: 小型モデルのため、誤りを含むことがあります。正式な情報は公式サイトやお問い合わせで確認してください
  2. 公開時の推奨: 「AIのため誤りを含むことがあります」の表示と、お問い合わせフォームへの導線を用意してください
  3. 内容の時点: 2026年10月時点の公開情報にもとづきます
  4. ライセンス: ベースモデル google/gemma-3-1b-it の Gemma Terms of Use に従います
Downloads last month
489
Safetensors
Model size
1.0B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for katsukiono/EqualFrontiers-iko-v2

Finetuned
(560)
this model
Quantizations
1 model

Dataset used to train katsukiono/EqualFrontiers-iko-v2