コンテンツにスキップ

OpenTernary

公開されている言語モデルの重みを −1・0・+1 の3値に制限した三値モデルに変換し、それで何が失われるかを正直に測るためのオープンソースのツールです。

はじめる 5分で試す

OpenTernaryのシンボル: 虹色の輪の中に +1・0・−1 を表す三つ巴

uv tool install openternary --python 3.12   # どこからでも使えるコマンドとして入れる
openternary setup                           # GPUを検出し、合うPyTorchを入れる
openternary                                 # 全画面のインターフェースを開く

研究用のソフトウェアです

OpenTernaryはアルファ版の研究ツールキットです(バージョン 0.1.0a2)。モデルの調査・量子化・校正・評価・書き出しができ、行ったことはすべて記録されます。ただし、このツールで作った三値モデルで、品質の受入条件を満たしたものはまだありません。 量子化したモデルは遅く、元のモデルよりかなり性能が落ちると考えてください。何が検証済みで何が未検証かは現在の状況にまとめています。

できること

  • 調査と計画


    量子化できるテンソルを、ファイルのヘッダだけから一覧します。ダウンロードもGPUも不要です。何かを書き込む前に、量子化の計画を確認できます。

    調査と計画

  • 三値に量子化


    すべての線形層を {-1, 0, +1} の符号とテンソル単位またはグループ単位のscaleに変換します。出力は読み込み直せる fake-quant のsnapshotで、原子的に書き込まれます。

    量子化

  • 校正


    元のモデルの活性値に合わせて、層ごとにscale・閾値・soft-to-hardの割り当てを学習し、品質の回復を試みます。チェックポイントと再開に対応しています。

    校正

  • 評価と比較


    固定のsmokeベンチマークと、英語・日本語の固定した品質データで測定します。同じ条件で測ったrunどうしを、事前に決めた品質Gateで比較します。

    評価と比較

  • 書き出し


    重みを1つ2bitに詰め、バイト単位で元に戻し、llama.cppのconverterを通してGGUFにも変換できます。成果物には全ファイルのハッシュを記したmanifestが付きます。

    書き出し

  • CLI・TUI・Python


    すべてのコマンドに、バージョン付きの --json 結果、進捗イベント、決まった終了コードがあります。TUIは同じコマンドをバックグラウンドのジョブとして動かし、Python APIからも同じ機能を使えます。

    自動化

全体の流れ

flowchart LR
    M[公開モデル<br/>Hugging Face ID またはフォルダ] --> I[inspect / plan]
    I --> Q[quantize<br/>三値 fake-quant]
    Q --> C[calibrate<br/>任意]
    Q --> B[benchmark / quality]
    C --> B
    B --> K[compare<br/>品質Gate]
    Q --> E[export<br/>packed・safetensors・GGUF]
    C --> E

各ステップは**実行フォルダ(run)**を作り、設定・環境・モデルのrevision・結果を記録します。ある数字がどうやって出たのかを、他の人も正確にたどれます。読み方は実行結果と証拠で説明しています。

原則

最適化の前に測る。 すべての変換を、固定した基準と同じ手順で比較します。

主張より証拠。 コマンドが最後まで動いたこと(execution: completed)を、品質の合格として扱うことはありません。測っていないメモリや速度は0ではなく null です。品質Gateは実験の前に決め、実験に合わせて変えません。

ビット数の見栄より、1バイトあたりの品質。 重要な層を高い精度のまま残すことで能力を大きく保てるなら、それを認めます。

日本語を一級の指標に。 固定した品質データは、英語と日本語を別々に測ります。

次に読むもの

やりたいこと 読むページ
OpenTernaryとGPUに合うPyTorchを入れる インストール
ノートPCで、オフラインのまま全工程を動かしてみる はじめての実行
「三値」の意味と、その代償を理解する 三値量子化
オプションを調べる CLIリファレンス
スクリプトやCIから使う 自動化
何が証明済みで何がそうでないかを知る 現在の状況