NVIDIA Dory 4B:llama. Cppで動作させるためのステップバイステップガイド

NVIDIA Dory 4B:llama. Cppで動作させるためのステップバイステップガイド
1 分の読書

NVIDIAは、Nemotron Labsから派生した小型推論モデルであるDory 1.0 4Bを公開しました。このモデルの中核層は共有ブロックを形成しており、各トークンに対して1回、2回、3回、または4回適用可能です。MarkTechPostのチュートリアルによると、この仕組みにより、再学習なしで同じファイルを4つの異なる計算レベルで実行できます。

ブロック内での追加の通過(ループと呼ばれる)ごとに、パラメータを一切追加せずにトークンあたりの計算量が増加します。チュートリアルでは、llama.cppエンジンと、メモリサイズを削減するために圧縮されたQ5_K_M量子化形式の3.7GB GGUFファイルを使用しています。使用されるllama.cppのバージョンは、NVIDIAのモデルカードにピン留めされたコミットに対応しており、Doryのサポートはまだドラフトのプルリクエストです。ファイル名はモデルカードに記載されているdory-q5_k_m.ggufとは異なり、チュートリアルではそのサイズとSHA-256ハッシュを確認することを推奨しています。ダウンロードしたファイルは、NVIDIAが公開したチェックサムと一致します。

ファイルから直接読み取られるアーキテクチャ

GGUFのヘッダーは、モデルをロードする前からその構造を記述しています。Doryは72のレイヤーエントリを持ち、16の入力層、40の再帰層、16の出力層に分かれています。再帰ブロックは、モデルの39.8億パラメータのうち18.4億を占めています。

ヘッダーはまた、デフォルトのループ数を4と示していますが、モデルカードでは2を推奨しています。明示的なオプションなしで起動したサーバーは、最もコストの高い設定で動作することになります。チュートリアルによると、このパラメータは常に手動で設定する必要があります。

これらのデータに基づき、チュートリアルは各ループのコストを推定しています。トークンはループごとに再帰ブロックを1回通過するため、4ループでは単一ループのパラメータの2.51倍を適用し、重みのバイトを2.28倍読み取ります。この読み取りは、メモリ制約のあるデコードにおける決定要因です。前のトークンの計算を保持するメモリであるKVキャッシュは、選択されたモードによって異なります。per_loopモードでは、4,096トークンのコンテキストで、1ループで306MiBから4ループで816MiBに増加します。last_loopモードでは、ループ数に関わらず306MiBのままです。

予測を検証するための測定

関連するノートブックは、稼働中のサーバーでこれらの推定値を検証します。各ループ数でのデコード速度を測定し、last_loopキャッシュがモデルの予測を変更するかテストし、複数の設定間で次のトークンの分布を比較します。また、数学問題のベンチマークであるGSM8Kテストセットの30問に対してペア評価を実行し、精度、回答の長さ、解決された問題あたりの時間を測定します。

チュートリアルは、モデルカードがSWE-benchやGPQAなどの他のベンチマークでの性能を公表しているが、これらはこの範囲では再現されていないこと、同様に256KトークンのコンテキストやNVFP4での事前学習も再現されていないことを明確にしています。

ノートブックは、エージェントとチュートリアルプロジェクト専用のMarkTechPostのGitHubリポジトリでアクセス可能です。著者は2点を強調しています:GGUFがデフォルトで4を使用するため、ループ数を明示的に設定すること、そしてDoryのサポートがまだドラフトのプルリクエストであるため、llama.cppのフォークのコミットをピン留めすることです。

S’abonner
Notification pour
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x