メインコンテンツへ移動
AIチュートリアル

TransformersでNaive-N0.5-Flashをローカル実行する

Naive-N0.5-FlashがコーディングとAI研究に適している理由を学び、ハイブリッドSWA–DSAアーキテクチャを理解し、必要なTransformers依存関係をインストールして、公開されたFP8重みでテキストを生成します。

TransformersでNaive-N0.5-Flashをローカル実行する

Naive-N0.5-Flashとは?

Naive-N0.5-Flashは、コーディングおよびAIの研究開発向けに設計されたオープンウェイトのMixture-of-Expertsモデルです。総パラメータ数は3,090億、アクティブパラメータ数は155億で、最大100万トークンのネイティブコンテキストウィンドウに対応しています。

モデルの重みと推論コードはMITライセンスで公開されています。モデルはHugging Faceで、ソースプロジェクトはGitHubで確認できます。

主な特徴

  • 100万トークンのネイティブコンテキスト:フルアテンション層を使わず、Sliding-Window Attention(SWA)とDeepSeek Sparse Attention(DSA)を組み合わせています。
  • MoEによる効率性:総パラメータ数は3,090億ですが、各トークンでアクティブになるのは155億パラメータのみです。
  • コーディングとAI研究開発に重点:ソフトウェアエンジニアリング、研究、システム最適化の能力向上を目的にトレーニングされています。
  • FP8推論:公開されたチェックポイントは、FP8対応NVIDIA GPUでの混合精度推論をサポートします。
  • 高スループット推論:NaiveRT推論システムは、メガカーネル融合、Programmatic Dependent Launch、投機的デコーディングを組み合わせています。READMEによると、Standardモードではユーザー1人あたり最大毎秒50トークン、Ultrafastモードでは最大毎秒2,000トークンを実現します。

ハイブリッドアテンション設計を理解する

Naive-N0.5-Flashは、39個のSWA層と9個のDSA層からなる48個のTransformer層を使用します。SWAはローカルアテンションを128トークンのウィンドウに制限します。一方、DSAはインデクサーで履歴全体をスコアリングし、バックボーンアテンション用に上位2,048トークンを選択します。

モデルは、6層構成のモジュール8個に編成されています。通常、1つのモジュールは5個のSWA層に続いて1個のDSA層を配置します。また、最初のモジュールの最初の層もDSAに置き換えられています。DSAは4つのキー・バリューグループによるGrouped-Query Attention(GQA4)を使用し、そのインデクサーには16個のクエリヘッドがあります。

この設計により、アテンション計算の大部分をローカルに保ちながら、長いコンテキストから選択された情報を生成に反映できます。完全なキー・バリューキャッシュは保持されますが、バックボーンがアテンションを適用するのはDSAで選択されたトークンだけです。

ハードウェアとインストール要件

Naive-N0.5-FlashにはFP8対応NVIDIA GPUが必要です。モデルの重みは約315 GBを占有するため、推論用に追加のGPUメモリも確保してください。

READMEには、Transformersを使用したクイックスタートが記載されています。PyTorchと必要なカーネルを含む、最新のTransformersをインストールします。

pip install "transformers[torch,kernels]>=5.17.0"

Transformersでモデルを実行する

依存関係をインストールし、必要なGPUリソースが利用可能であることを確認したら、Hugging FaceからFP8チェックポイントを読み込みます。次の例では、トークナイザーを作成し、モデルを読み込み、ユーザーメッセージを整形して、応答を生成します。

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "NaiveAI/Naive-N0.5-Flash-FP8"
tokenizer = AutoTokenizer.from_pretrained(
    model_id,
    trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype="auto",
    device_map="auto",
)

inputs = tokenizer.apply_chat_template(
    [{"role": "user", "content": "Hello!"}],
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

output = model.generate(
    **inputs,
    max_new_tokens=2048,
)
response = tokenizer.decode(
    output[0, inputs["input_ids"].shape[1]:],
    skip_special_tokens=True,
)
print(response)

例の仕組み

  1. チェックポイントを選択:NaiveAI/Naive-N0.5-Flash-FP8は、Hugging Face上のFP8モデルを指定します。
  2. トークナイザーを読み込む:trust_remote_code=Trueにより、モデルリポジトリ独自のTransformersコードを有効にします。
  3. モデルを読み込む:dtype="auto"により、Transformersはチェックポイントに適したデータ型を使用します。device_map="auto"は、利用可能なデバイスにモデルの各コンポーネントを配置します。
  4. 会話を整形:apply_chat_templateは、ユーザーメッセージをモデルが想定する形式に変換し、生成プロンプトを追加します。
  5. テキストを生成:max_new_tokens=2048は、新たに生成するトークン数を制限します。
  6. 応答だけをデコード:入力長の直後から始まるスライスにより、生成されたテキストを出力する前に元のプロンプトを除外します。

推奨される生成設定

一般的な用途では、temperature=1.0およびtop_p=0.95の設定が推奨されています。これらの値はREADMEの最小限の例には含まれていませんが、サンプリング動作を明示したい場合はgenerateに渡せます。

output = model.generate(
    **inputs,
    max_new_tokens=2048,
    temperature=1.0,
    top_p=0.95,
)

タスクに適したmax_new_tokens値を使用してください。大きな上限を設定すると、より長い回答を生成できますが、生成時間とメモリ使用量が増加します。

高度な使用時の考慮事項

長いコンテキストを意図的に活用する

100万トークンのコンテキストウィンドウは、ハイブリッドSWA–DSAアーキテクチャによってネイティブにサポートされています。大規模なコードベース、研究資料、複数ファイルのタスクでは、関連するコンテキストを構造化して提示し、指示を明確にしてください。このアーキテクチャは、SWAでローカルな詳細を保持しながら、DSAで重要な履歴を選択するように設計されています。

読み込み前にGPU容量を計画する

チェックポイントは、追加の推論メモリを考慮する前の時点で約315 GBを占有します。モデルの起動前に、FP8対応のNVIDIA GPU構成に十分な容量があることを確認してください。device_map="auto"による自動デバイス配置で、利用可能なデバイス間にモデルを分散できますが、チェックポイントとランタイムに必要な総メモリ量が減るわけではありません。

最適化された推論を検討する

READMEでは、NaiveRTをプロジェクトの最適化推論システムとして説明しています。その技術には、メガカーネル融合、Programmatic Dependent Launch、推測デコーディングなどがあります。基本的なTransformersデプロイメントを超える高スループットが必要な場合は、プロジェクトの技術ブログで、NaiveRTのケーススタディと実装の詳細を確認してください。

ベンチマークの前提を確認する

公開されている評価は、コーディング、ソフトウェアエンジニアリング、エージェントタスク、AI研究、システム最適化を対象としています。特に記載がない限り、結果は概ねClaude Code 2.1.207、1Mトークンのコンテキストウィンドウ、temperature 1.0、top-p 0.95、基本的なファイルI/OおよびBashツールを使用して評価されています。ベンチマークの比較は、記載されたハーネスと評価プロトコルに依存するものとして扱ってください。

ライセンスと関連リソース

Naive-N0.5-FlashはMITライセンスでリリースされています。モデルのリリースや関連プロジェクトについては、NaiveAIのGitHub組織またはNaiveAIのHugging Faceプロフィールをご覧ください。アーキテクチャ、トレーニングプロセス、推論最適化に関する技術的背景は、プロジェクトの技術ブログで確認できます。

まとめ

Naive-N0.5-Flashは、309BパラメータのMoE設計に15.5Bのアクティブパラメータ、ハイブリッドSWA–DSAアテンション、ネイティブ1Mトークンのコンテキストウィンドウを組み合わせています。ローカルで試すには、必要なカーネルとともにTransformersをインストールし、重みに約315 GBを確保できるFP8対応のNVIDIAハードウェアを使用して、Hugging Faceのチェックポイントを読み込み、推奨されるサンプリング設定で応答を生成してください。