ArrowIdeative-13b-NeoBase-ZERO-llm-jp

概要

ArrowIdeative-13b-NeoBase-ZERO-llm-jp は、ベースモデルから GRPO(RL)だけで事後学習を行うことを主軸に設計された、日本語向けLLMです。狙いとしては、典型的な「強い指示追従(Instruct)」に寄せ切らず、ベースモデル寄りの“出力の自由度”を残しつつ、チャット運用に最低限必要な形式順守と、回答品質の底上げを同時に実現することです。

位置づけを一言でまとめると:

  • 「ある程度プロンプトエンジニアリングが効くベースモデル」
  • ただし 完全なInstructモデルではない(過剰な同調・過剰な定型化を狙っていない)

モデルの要点

  • 学習方式:ベースモデルから GRPOのみで直接作成(SFTを主軸にしない方針)
  • 目的
    1. チャットテンプレート順守(例:終端トークンなど、形式崩れの抑制)
    2. 回答の品質向上(報酬モデルによるスカラー報酬の導入)
  • 特性:ベースモデルに近い性格を維持しやすい設計(=指示追従の“均質化”を抑える意図)

推論コード

import torch
from copy import deepcopy
from transformers import AutoTokenizer, AutoModelForCausalLM, StoppingCriteria, StoppingCriteriaList

# ===== モデル =====
model_path = "DataPilot/ArrowIdeative-13b-NeoBase-ZERO-llm-jp-v0.1"

tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    device_map="auto",
    torch_dtype=torch.bfloat16,
)
model.eval()

system_prompt = """あなたは有能なアシスタントです。日本語で丁寧に答えてください。"""
prompt = """CPUとGPUの違いについて教えてください。"""

# (元コードのChatML形式を維持)
text = f"""<|im_start|>system
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
"""

inputs = tokenizer(text, add_special_tokens=False, return_tensors="pt", return_token_type_ids=False).to(model.device)
prompt_len = inputs["input_ids"].shape[1]

# "<|im_end|>" のトークン列(1トークンとは限らないので列で扱う)
stop_ids = tokenizer.encode("<|im_end|>", add_special_tokens=False)
stop_ids = torch.tensor(stop_ids, device=model.device, dtype=inputs["input_ids"].dtype)

class StopOnImEnd(StoppingCriteria):
    def __init__(self, stop_ids_tensor: torch.Tensor):
        super().__init__()
        self.stop_ids = stop_ids_tensor

    def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
        k = int(self.stop_ids.numel())
        if k == 0 or input_ids.shape[1] < k:
            return False
        return torch.equal(input_ids[0, -k:], self.stop_ids)

stopping_criteria = StoppingCriteriaList([StopOnImEnd(stop_ids)])

# 既定EOSで止まらないようにする(= "<|im_end|>" のみで停止させる)
gen_config = deepcopy(model.generation_config)
gen_config.eos_token_id = None
gen_config.pad_token_id = tokenizer.pad_token_id if tokenizer.pad_token_id is not None else model.config.eos_token_id

with torch.inference_mode():
    output = model.generate(
        **inputs,
        generation_config=gen_config,
        stopping_criteria=stopping_criteria,
        max_new_tokens=1024,
        do_sample=True,
        top_p=0.95,
        temperature=0.5,
        repetition_penalty=1.05,
    )

generated = tokenizer.decode(output[0, prompt_len:], skip_special_tokens=False)
print(generated.split("<|im_end|>", 1)[0])

ベースモデル


使用データ(概要)

このデータは、以下の合成フローにより作成されたものです(要約):

  1. ベースモデル(Sarashina2-70b)で質問/回答のたたき台を生成
  2. Microsoft Phi-4-miniで品質キュレーション(選別・整形)
  3. Multilingual E5で多様性フィルタリング(近似質問の除去、重複削減)

学習構成

学習・推論フレームワーク

  • 学習:Unsloth
  • 報酬推論:SGLang

使用デバイス

  • **NVIDIA RTX 5090 (32GB)**:主学習
  • **NVIDIA RTX 4060 Ti (16GB)**:報酬モデル推論

報酬モデル


報酬設計(概要)

報酬は大きく2段で構成されています:

  1. チャットテンプレートの順守

    • 例:終端トークン(<|im_end|> 等)を適切に出力できるか
    • 強いインセンティブ(例:+6.0 付与)
  2. 回答品質(報酬モデル)

    • テンプレートが守れている場合に限り、報酬モデルのスカラーを最大 +10.0 で加算
    • マイナス報酬側は軽減(例:1/2 係数)して学習崩壊を抑制

使い方(推奨)

想定ユースケース

  • 0→1のアイデア出し、探索的思考、下書き生成
  • 指示を強く固定しすぎない対話(プロンプト設計で誘導する用途)
  • ベースモデルの“面白さ”や多様性を残しつつ、最低限チャット運用したい場面

注意点

  • 強い安全アラインメントや厳密な指示追従を最優先したモデルではありません
  • プロンプト設計次第で出力が大きく振れます(=長所でも短所でもある)
  • チャットテンプレートを使う場合、テンプレート仕様に合わせた入出力を推奨します

生成品質・挙動の指針

  • ベース寄り:過度に無難な“合意的テンプレ回答”へ収束させることを目的にしていません
  • プロンプト耐性:命令の書き方で結果が変わりやすい設計(指示の粒度が重要)
  • 出力の個性:SFT偏重で起きやすい均質化を避け、探索性を残す狙い

背景(設計思想)

既存の事後学習モデルで観察される課題として、以下が挙げられます:

  • 回答が均質化し、モデル間の出力差が見えにくい
  • “面白さ”や探索性が失われやすい

これに対して本モデルは、仮説として

  • 「同質な学習データ」
  • 「同質なモデル由来の合成データ」

が均質化を加速している可能性を考慮し、SFT中心ではなくRL(GRPO)中心で、ベースの多様性を残したままチャット適性を付与する方針を採用しています。

関連文献(背景理解の導線):


既知の制限

  • 形式順守は改善しても、厳密な指示追従安全性の自動担保を保証しません
  • 報酬モデルのバイアス(価値観・スタイル)を受けます
  • 一般的なInstructモデルと同じ評価軸で単純比較すると、用途によっては不利になる場合があります

ライセンス


謝辞

  • llm-jp プロジェクト
  • TeamDelta / bare-ja-v0.1
  • サイバーエージェント(ca-reward-3b-ja)
  • Unsloth / SGLang および関連OSS

引用(必要に応じて)

このリポジトリやモデルカードを引用する場合は、以下をベースに調整してください:

@misc{arrowideative_13b_neobase_zero_llm_jp,
  title        = {ArrowIdeative-13b-NeoBase-ZERO-llm-jp},
  author       = {holy-fox},
  year         = {2026},
}
Downloads last month
17
Safetensors
Model size
14B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DataPilot/ArrowIdeative-13b-NeoBase-ZERO-llm-jp-v0.1

Finetuned
(1095)
this model

Dataset used to train DataPilot/ArrowIdeative-13b-NeoBase-ZERO-llm-jp-v0.1