ERABI(えらび)
ERABIは、Jevっぽい「状況を読んで候補を選ぶ」動きを、GLiClassを使って再現してみた実験プロジェクトです。Jevの公式版や内部実装の再現版ではありません。
context(状況)、question(判断基準)、2~16個のchoices(候補)から、全候補の確率分布を返します。回答は常に確認対象(review)であり、最大確率は正解の保証ではありません。
インストールと最初の推論
Python 3.11以上が必要です。PyTorchのGPU版を使う場合は、先に利用環境に合うPyTorchをインストールしてください。
python -m pip install erabi
erabi predict --request '{"schema_version":"1","context":"7冊のノートと2個の消しゴムを買った。","question":"全部で何個?","choices":[{"id":"nine","text":"9個"},{"id":"ten","text":"10個"}]}'
上のワンラインはPowerShell 7でも動作確認済みです。入力をファイルに保存して erabi predict --request request.json としても使えます。初回は選択された形式のモデル(約0.88~1.76GB)を取得し、以降はHugging Faceのローカルキャッシュを再利用します。ネットワークが使えない場合は、事前取得したモデルのローカルディレクトリを--model-idで指定してください。
Pythonから使う:仮想環境から sample.py まで
Python 3.11以上で、任意の作業フォルダから実行できます。この後に示すコードをsample.pyとしてそのフォルダへ保存してください(リポジトリを取得済みならsample.pyをそのまま使えます)。以下はWindows PowerShellでPython 3.12を使う例です。py -3.12がない場合は、インストール済みの対応バージョンを指定してください。
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
Linux/macOSでは、代わりにpython3.12 -m venv .venv、source .venv/bin/activateで仮想環境を有効化します。以降のコマンドは有効化した仮想環境内で実行します。PowerShellで有効化が制限される場合は、pythonの代わりに.\.venv\Scripts\python.exeを直接使えます。
使いたい実行方法に応じて、次のいずれか1つを選びます。どの方法でもerabiは同じpipパッケージです。ONNX版でもerabiの依存としてPyTorchはインストールされます。
# CPU + ONNX FP32(推奨): CPU専用PyTorchを先に入れ、ONNX Runtime CPU版を追加
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install erabi onnxruntime
python sample.py
# CPU + PyTorch safetensors(ONNX Runtimeを使わない)
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install erabi
python sample.py --model-format pytorch
# NVIDIA GPU + ONNX FP16(対応するCUDA/cuDNN環境が必要)
python -m pip install erabi onnxruntime-gpu
python sample.py --device cuda:0
GPU用PyTorchを明示的に導入する場合は、PyTorch公式のインストール案内で環境に合うコマンドを先に実行してください。onnxruntimeとonnxruntime-gpuは同じ仮想環境に両方入れないでください(ONNX Runtime公式案内)。GPU版でもCUDA Execution Providerが使えなければ、自動選択はPyTorchに戻ります。python -c "import onnxruntime as ort; print(ort.get_available_providers())"で確認できます。
sample.pyはモデルの初期化と1問の推論を試すコードです。追加学習したGLiClassモデルをHugging Faceから取得し、CPU/GPU向けのONNX RuntimeまたはPyTorchで実行します。中身は次のとおりです。
import argparse
from time import perf_counter
from erabi.model_loader import load_engine
from erabi.schema import ChoiceRequest
parser = argparse.ArgumentParser()
parser.add_argument("--device", default="cpu")
parser.add_argument("--model-format", default="auto")
args = parser.parse_args()
print("ERABI: recreating Jev-like choice decisions with GLiClass (experimental, not official Jev).", flush=True)
print("Runtime: ONNX Runtime or PyTorch; model downloaded from Hugging Face.", flush=True)
print(f"[1/2] Loading model (device={args.device}, format={args.model_format})...", flush=True)
started = perf_counter()
engine = load_engine(device=args.device, model_format=args.model_format)
print(f"[1/2] Model ready in {perf_counter() - started:.2f}s (format={engine.model_format})", flush=True)
request = ChoiceRequest.from_dict({
"context": "ノートを7冊、消しゴムを2個買った。",
"question": "全部で何個?",
"choices": [
{"id": "nine", "text": "9個"},
{"id": "ten", "text": "10個"},
],
})
print("[2/2] Running inference...", flush=True)
started = perf_counter()
result = engine.predict(request)
print(f"[2/2] Inference done in {perf_counter() - started:.2f}s", flush=True)
print("best:", result.best_candidate_id)
print("probabilities:", {choice.id: choice.probability for choice in result.choices})
初回は選択されたモデルを自動ダウンロードします。「初期化」にはモデルの取得・読み込みが含まれ、「推論」は1問を処理する時間です。sample.pyは既定でCPUを使い、ONNX Runtime CPU版があればFP32 ONNX、なければPyTorchを選びます。表示される確率は正解の保証ではありません。
モデルの保存先
ダウンロード先を指定するには、--model-cache-dirを使います。predict、evaluate、python -m erabi.serveで利用でき、トークナイザーと重みの両方に適用されます。保存先に十分な空き容量を確保してください。
erabi predict --request examples/request.json --model-cache-dir "F:\models\erabi-cache"
$env:ERABI_MODEL_CACHE_DIR = "F:\models\erabi-cache"
erabi predict --request examples/request.json
Linux/macOSではexport ERABI_MODEL_CACHE_DIR=/data/models/erabi-cacheと設定します。優先順位は--model-cache-dir、ERABI_MODEL_CACHE_DIR、Hugging Face標準のHF_HUB_CACHE/HF_HOME、既定キャッシュの順です。環境変数を変更しても既存のダウンロードは移動されず、新しい場所に再取得されます。--model-idにローカルモデルディレクトリを指定した場合はその場所から読み込み、キャッシュ先の設定はモデル自体の移動には使われません。
ERABI 0.1.3の既定モデルは、Exam-QA追加実験後の3形式を含む検証済みHugging Faceリビジョンc6c7acf0280b8af5cce6c2a18e9a215f7d2eae57に固定しています。Windowsでシンボリックリンクを使えない環境ではモデルカード更新だけでも別リビジョンのキャッシュが重複し得るためです。新しいリビジョンを意図的に使う場合は--revision mainまたはコミットIDを指定してください。
モデル形式の自動選択とおすすめ
形式選択はERABI 0.1.2以降の機能です(0.1.1以前はPyTorch版のみ)。既存環境はpython -m pip install --upgrade erabiで更新できます。--model-formatを省略するとautoです。--deviceを省略した場合はCUDAが利用可能ならcuda:0、そうでなければcpuを選びます。ONNX Runtimeが使える場合、CPUではFP32 ONNX、CUDA Execution Providerが使えるGPUではFP16 ONNXを必要な形式だけHugging Faceから取得します。ONNX Runtimeがない場合や、CUDA Execution ProviderがないGPUでは従来のPyTorch safetensorsに戻します。別のHugging FaceモデルIDは互換性維持のためautoでPyTorchを使い、明示指定すれば同じONNX配置のモデルも利用できます。
| 利用形態 | おすすめ | 理由 |
|---|---|---|
| NVIDIA GPU + 対応するONNX Runtime GPU版 | auto → onnx-fp16 |
このホストでp50が35.90→19.00ms、元weightsと最上位90/90一致 |
| CPU + ONNX Runtime CPU版 | auto → onnx-fp32 |
このホストでp50が366.73→201.67ms、元weightsと最上位90/90一致 |
| ONNX Runtimeなし・互換性優先 | pytorch |
pip install erabiのみで動作し、元のsafetensorsを使用 |
これらはPractical V1の未レビュー合成90件での比較であり、人手goldでの品質保証ではありません。INT8版は今回の量子化設定で予測が大きく変わったため、自動選択・公開対象から除外しました。
PyTorchのGPU版を使う場合は公式案内で環境に合う版を先に導入します。ONNX RuntimeはCPUならpython -m pip install onnxruntime、NVIDIA GPUなら環境に合うonnxruntime-gpuを導入してください。両パッケージを同じ仮想環境に同時インストールしないでください(ONNX Runtime公式案内)。GPU版はPyTorch、CUDA、cuDNNと互換な版を公式CUDA表で確認してください。
erabi doctor
erabi predict --request examples/request.json --device cpu
erabi predict --request examples/request.json --device cuda:0
erabi predict --request examples/request.json --model-format pytorch
erabi predict --request examples/request.json --model-format onnx-fp32 --device cpu
erabi predict --request examples/request.json --model-format onnx-fp16 --device cuda:0
ERABI_MODEL_FORMAT=onnx-fp32のように環境変数でも指定できます。優先順位は--model-format、ERABI_MODEL_FORMAT、autoです。明示指定したONNX形式がそのデバイス・実行環境に対応しない場合は、別形式へ黙って切り替えずエラーにします。Python APIではfrom erabi.model_loader import load_engineを使い、load_engine(model_format="auto", device="cpu")のように指定します。predict、evaluate、ローカルHTTP APIの--model-formatで同じ選択ができます。
無指定の既定値は公開済みのERABI Practical V1実験モデルです。正式合格モデルではなく、未レビュー合成データで追加学習した未校正weightsです。別のモデルを使う場合はローカルパスまたはHugging FaceのモデルIDを指定できます。
erabi predict --request examples/request.json --model-id path/to/checkpoint
# または、利用するモデルIDを既定値として設定
export ERABI_MODEL_ID=owner/model-name
erabi predict --request examples/request.json
erabi doctor はCPU/CUDAと空き容量を表示します。erabi evaluate --input examples/smoke_cases.jsonl --output-dir runs/smoke は評価ファイルを処理します。ローカルHTTP APIはオプション依存を入れて python -m erabi.serve --model-id path/to/checkpoint で起動します(localhost限定)。
入出力とデータセット形式
推論入力はUTF-8 JSONです。候補のidと順序を保ち、全候補のlogitsに対して1回だけSoftmaxを適用します。入力全体が512トークンを超える場合は無言で切り詰めずにエラーにします。
{
"schema_version": "1",
"context": "文房具店でノートを7冊、消しゴムを2個買った。",
"question": "全部で何個買った?",
"choices": [
{"id": "a", "text": "9個"},
{"id": "b", "text": "10個"}
]
}
出力のchoicesは各候補のidとprobabilityを入力順で返し、best_candidate_idは最大logitの候補を示します。decision.statusは既定でreview、未校正のcalibration.statusはnoneです。例はexamples/request.jsonを参照してください。
学習・評価データは1行1問のJSONLです。上の入力に加えて、最低限id、group_id、targetを付けます。group_idは同じ原題の言い換えや候補順序違いをまとめ、train/dev/calibration/final_test間で重複させません。
{"schema_version":"1","id":"sample-001","group_id":"story-001","context":"ノート7冊と消しゴム2個を買った。","question":"全部で何個?","choices":[{"id":"a","text":"9個"},{"id":"b","text":"10個"}],"target":{"kind":"hard","choice_id":"a"},"language":"ja","family":"everyday_arithmetic","review_status":"unreviewed"}
target.choice_idは選択肢のIDを参照し、選択肢を並べ替えても正しいIDを保ちます。language、family、review_statusなどは出所・品質の追跡用メタデータです。合成教師ラベルを人手確認済みgoldと呼ばないことが重要です。Practical V1のデータ説明に生成・監査の詳細があります。
学習と評価で得られた知見
2026-09-22時点の追加学習実験では、凍結RC3(約438Mパラメータ)からPractical V1のtrain 2,414問のみで1 epoch、151 optimizer steps、peak LR 2.5e-6、microbatch 2・勾配蓄積8、fp16 AMPを実施しました。dev 399問と旧RC3 Bridge 480問で選定し、eval 386問は選定後に一度だけ評価しました。release weightsは上書きしていません。
| セット | 学習前 | 学習後 |
|---|---|---|
| Practical V1 dev | 59.90% (239/399) | 77.19% (308/399) |
| Practical V1 eval | 61.66% (238/386) | 76.17% (294/386) |
| 旧RC3 Bridge | 88.75% (426/480) | 88.54% (425/480) |
新データでは日常算数23/68→48/68、ツール選択50/70→62/70、JSONログ判断51/69→65/69と改善しましたが、読解は54/71→50/71に低下しました。候補順序の入替一致率は旧Bridgeで97.29%→97.50%でした。同一教師モデルが作成・再判定した未レビュー合成データ上の結果であり、独立した人手goldでの汎化性能、実在入試問題の成績、Jevとの同等性は示しません。現時点では校正・正式リリースも未実施です。
Practical V1は日本語・英語・簡体字中国語の6分野(日常算数、ツール選択、会話の次行動、JSON会話ログ、読解、創作入試風)で構成されます。実在の入試問題や私的会話ログは利用していません。生成・再判定に使ったDeepSeek経由の料金推計は$1.0612で、追加予算枠は使いませんでした。より信頼できる次の評価には、人手ラベル監査と独立した実問題の調達が必要です。
再現用コードはscripts/train_practical_v1.py、監査結果はdata/practical_v1/audit.jsonにあります。この学習スクリプトの再実行には別途RC3チェックポイントがrelease/rc3/modelに必要です。GPU学習と大容量weightsはpipパッケージに含まれません。
Exam-QAを使った追加実験(2026-09-23)
ローカルに取得したExam-QA 374件を、そのまま学習へ流さず、指定されたdeepseek/deepseek-v4.1-flashでERABI形式へ選別・変換しました。固定seedで形式を分散させた10件を先に3回処理し、最終v3では「判断不能なら早期skip」、1024 tokens超のAPI送信前除外、図・複数正解・不完全な複数空欄・部分点式証明の除外を明示しています。記号選択肢は元の選択肢本文へ対応付け、自由記述だけは公式解答を正解候補としてDeepSeekに同型の誤答候補を作らせ、ローカル検証を通したものだけ採用しました。
全374件中217件を採用、157件を除外しました。分割は原題グループ単位で、train 175件、valid 37件です。validは元資料に正式な選択肢がある問題だけに限定し、DeepSeek生成の誤答候補はtrainにだけ入れています。5件はvalid側グループに属する生成候補だったため両方から除外しました。日本語104件・英語113件、入力長は最大860 tokensです。今回までのOrcaRouter累計費用推計は$1.5851で、設定された$10上限内でした。
Practical V1 checkpointにExam-QA 175件とPractical replay 175件を混ぜ、max_length=1024、2 epoch、学習率1.5e-6で追加学習しました。選定されたepoch 1の結果は次の通りです。
| セット | 追加学習前 | 追加学習後 |
|---|---|---|
| Exam-QA valid(独立group、公式選択肢のみ) | 21.62% (8/37) | 24.32% (9/37) |
| Practical V1 dev | 77.19% (308/399) | 78.20% (312/399) |
| 旧RC3 Bridge | 88.54% (425/480) | 88.54% (425/480) |
| Practical V1 teacher-agreed eval | 76.17% (294/386) | 75.65% (292/386) |
改善はExam-QA validで1問だけなので、入試問題への一般化を確立したとは見なしません。データはDeepSeek選別済みですが人手gold監査前で、出典ごとの再配布条件も未確認です。このためExam-QA由来のJSONL、API応答、変換ログはGit/Hugging Faceへ公開していません。変換・学習手順だけをscripts/build_exam_qa_erabi_v1.pyとscripts/train_exam_qa_erabi_v1.pyで公開します。入力データを正当に用意した環境でのみ再実行できます。
新checkpointからONNX FP32/FP16も再生成し、非公開valid 37件(最大853 tokens)でPyTorchとのTop-1一致37/37を確認しました。公開実験モデルはこのcheckpointへ更新しましたが、pip/APIの既定入力契約は安全側の512 tokensのままです。max_tokens=1024は前処理のmax_lengthも同時に変更し、切り詰め前の長さを検査する実験用途に限ります。
Practical V1 推論最適化の実測
2026-09-22、Windows、RTX A4000 16GB、PyTorch 2.6.0+cu124、ONNX Runtime 1.21.0で、同じPractical V1 checkpointを比較しました。CPUはPyTorch safetensors、ONNX FP32、動的INT8、静的QDQ W8A8、GPUはPyTorch safetensors、ONNX FP16、静的QDQ W8A8を試しています。90件はeval_teacher_agreed.jsonlから分野・言語別に抽出した未レビュー合成ラベルです。全モデルで温度1.0、全90件の予測確認後に8回ウォームアップし、40回の単件レイテンシを測定しました。CPU再測定とGPU測定時、Robloxは終了し、GPUの他負荷はほぼありませんでした。
| 実行先・形式 | 重み/ONNX容量 | p50 / p95 | 元weightsとの最上位一致 | 合成教師ラベル一致 |
|---|---|---|---|---|
| CPU PyTorch safetensors | 1.75 GB | 366.73 / 521.44 ms | 基準 | 69/90 |
| CPU ONNX FP32 | 1.76 GB | 201.67 / 378.73 ms | 90/90 | 69/90 |
| CPU ONNX 動的INT8 | 1.04 GB | 120.42 / 236.11 ms | 49/90 | 42/90 |
| CPU ONNX 静的QDQ W8A8 | 0.84 GB | 908.17 / 1,142.89 ms | 33/90 | 36/90 |
| GPU PyTorch safetensors | 1.75 GB | 35.90 / 44.12 ms | 基準 | 69/90 |
| GPU ONNX FP16 | 0.88 GB | 19.00 / 22.80 ms | 90/90 | 69/90 |
| GPU ONNX 静的QDQ W8A8 | 0.84 GB | 84.75 / 89.44 ms | 29/90 | 27/90 |
このホストではCPUはONNX FP32、GPUはONNX FP16が速度と出力一致の両面で有望でした。FP32の最大確率差は元weights比で最大0.00000493、FP16は最大0.00374でした。今回の動的/静的INT8設定は軽くなっても予測が大きく変化し、静的版はCPU/GPUとも遅くなりました。今回の静的W8A8はONNX RuntimeのMinMax校正によるQDQであり、SmoothQuantではありません。 RTX A4000上でのSmoothQuant高速化を証明する結果ではなく、今回のINT8版を配布・既定化しません。CUDA Execution Providerが有効でも全ノードのGPU実行は保証されないため、静的INT8の遅さの原因をCPUフォールバックと断定しません。FP32/FP16版は実験モデルとして配布しますが、独立goldでの確認や校正は未実施です。
再現にはリポジトリをチェックアウトし、開発用仮想環境へpip install -e ".[dev]"、環境に合うonnxruntimeまたはonnxruntime-gpuとonnxを導入します。以下は公開モデルをHugging Face CLIで別ディレクトリへ取得する例です(約1.75GB、十分な空き容量が必要)。実験結果はruns/配下(Git管理外)へ書き、モデルと評価結果の既存ファイルは上書きしないでください。
$out = "runs/practical_v1_optimization_20260922"
$checkpoint = "$out/checkpoint"
hf download sugarknight/erabi-practical-v1-experimental model.safetensors config.json tokenizer.json tokenizer_config.json --local-dir $checkpoint
python -c "from pathlib import Path; from scripts.export_rc3_onnx import export_fp32_model, export_fp16_model; p=Path('$checkpoint'); o=Path('$out'); export_fp32_model(p,o/'fp32'); export_fp16_model(p,o/'fp16')"
python scripts/benchmark_practical_v1_runtimes.py quantize --mode dynamic --fp32-dir "$out/fp32" --output-dir "$out/int8_dynamic_cpu"
python scripts/benchmark_practical_v1_runtimes.py quantize --mode static --fp32-dir "$out/fp32" --output-dir "$out/int8_static_w8a8" --train-file data/practical_v1/train.jsonl --calibration-count 128
python scripts/benchmark_practical_v1_runtimes.py benchmark --backend pytorch --device cuda --model-dir $checkpoint --output "$out/results/pytorch_cuda.json"
python scripts/benchmark_practical_v1_runtimes.py benchmark --backend onnx --device cuda --model-dir "$out/fp16" --output "$out/results/onnx_fp16_cuda.json"
python scripts/benchmark_practical_v1_runtimes.py compare --baseline "$out/results/pytorch_cuda.json" --candidate "$out/results/onnx_fp16_cuda.json"
CPU比較は同じbenchmarkコマンドで--device cpuを指定し、--backend pytorch --model-dir $checkpoint、または--backend onnx --model-dir "$out/fp32" / "$out/int8_dynamic_cpu" / "$out/int8_static_w8a8"をそれぞれ実行します。GPU静的INT8も--backend onnx --device cuda --model-dir "$out/int8_static_w8a8"で測れます。既定の90件・8回ウォームアップ・40回計測を変更する場合は--cases、--warmup、--iterationsを指定します。静的量子化の128件はtrainのみから取り、評価90件を校正には使いません。初回のモデル読込・エクスポート・量子化の時間は上記の単件レイテンシに含めず、端末・CPUスレッド数・温度・入力長で値は変わります。
2k入力の探索実験(2026-09-22)
現行の配布版は引き続き512トークン上限です。約2kを試すにはERABIの上限だけでなく、GLiClass前処理の既定1024トークン切り詰めも実験時に変更する必要があります。診断スクリプトは整形後の入力長を切り詰め前後で照合します。RTX A4000 16GB、Practical V1実験weights、4候補、batch 1、反復した日本語文での予備測定です。通常の短い問題で測った上表の19msとは入力長が違います。
| 実入力長 | PyTorch GPU p50(10回の初回測定) | ONNX FP16 GPU p50(10回の初回測定) | PyTorch推論peak割当 |
|---|---|---|---|
| 508 | 84.6ms | 46.1ms | 1,836MiB |
| 1,012 | 217.5ms | 136.0ms | 2,152MiB |
| 2,038 | 701.5ms | 579.5ms | 3,326MiB |
長い連続測定では2,038トークンのPyTorch p50が2,075.5msまで伸びた。測定後のGPU温度は89°Cで、速度の変動要因は切り分けられていない。ONNX FP16の別の20回測定では508/2,038トークンのp50が45.6/451.9msだった。単一の高速値を2kの性能保証としない。ONNXのVRAMはPyTorchのアロケータでは測れないため、この表では報告しない。学習の単一optimizer step(batch 1、fp16 AMP)は508トークンで約0.80秒・peak割当8,387MiB、2,038トークンで約9.63秒・19,020MiBだった。後者は専用VRAM 16GBを超える割当で、Windowsの共有メモリ利用等の可能性があり、実用的な学習速度を示すものではない。どちらもoptimizer stepは実行されたが、1 stepのみで学習収束や長文精度は検証していない。学習診断コード。
NPCツール選択のCodex起草130件は2k動作診断専用で、学習・正式評価データには使用しない。データ説明に出自と制約を記載。未学習モデルでの暫定診断はdev 19/26、eval 18/26、512超の長文では各1/2で、PyTorchとONNX FP16の最上位選択は52/52件一致した。テンプレートを分割間で共有し、ラベルも未レビューなので、これを実運用精度やJevとの比較には用いない。評価スクリプト。
学習・評価の候補として別途、指定されたDeepSeek V4.1 Flash経由でゲームNPCのマルチターン会話198件を生成した。train 140/dev 28/eval 30で、20件が512超、最長1301トークン。Web、画像・動画生成、コマンド、スクリーンショット、画像解析、ゲーム状態・クエスト・経路探索、ツールなしの会話を可変候補から選ぶ。新規API費用の保守的推計は$0.084888、以前の生成分と合わせて$1.146084(請求額の照合ではない)。旧モデルweightsのまま2048上限で暫定的に推論するとdev 26/28、eval 27/30、長文はそれぞれ1/2と2/4、PyTorch↔ONNX FP16の選択は58/58一致。誤り5件はいずれも「会話だけ」が教師ターゲットで、旧文脈のツール意図を引きずった。**まだこのデータで追加学習しておらず、教師ラベルは人手確認前。**同じ行動対照パターンが分割間で再登場するため、独立gold精度やJev同等性を示さない。
1k上限の追加診断
約1k(実際は1012トークン)なら、上表の初回10回測定でGPU単件推論p50はPyTorch 217.5ms、ONNX FP16 136.0ms。512相当(508トークン)の84.6ms/46.1msより遅いが、2kより大幅に軽い。単一optimizer stepのmicrobatch 2・fp16 AMP・AdamWでは508→1012トークンで約0.76→1.09秒、PyTorch peak割当8,386→12,191MiB、peak予約8,652→14,580MiBで、両方ともstepを実行できた。ただし1 stepだけなので連続学習の安定性や精度向上は未検証。DeepSeek NPC 198件のうち190件は1024以内、8件は超過。dev/evalの適合55件だけを切り詰めずにONNX FP16で評価するとdev 26/27、eval 26/28で、超過3件は除外した(2k評価と母数が異なる)。評価コードは除外IDを出力に残す。
現行GLiClass前処理の既定値は1024で、先に切り詰めてからERABIが長さを確認する。したがって単にERABIの上限を1024へ変えると超過入力を黙って切り詰める可能性があり、正式な1k対応には事前トークン数検証と前処理の修正が必要。配布版は512のまま。
開発とライセンス
python -m pip install -e ".[dev]"
python -m pytest tests -q
コードはMIT Licenseです。ベースモデルと学習済みweightsには別のライセンスが適用されます。THIRD_PARTY_LICENSES.mdを参照してください。
Metadata
Release files for erabi 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| erabi-0.1.3.tar.gz | 122.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| erabi-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 218.9 kB
Release files / erabi-0.1.3.tar.gz
| Download URL | erabi-0.1.3.tar.gz |
|---|---|
| Size | 122.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9195f39db48ae579e2c92929df1d8f5f03c3d17a98088aaf129e719fdf2fb2ba
|
|
BLAKE2b-256 checksum How to use checksums |
a38dfa8018df3f5933eb9af89ae8f2feb8c1faec07249d371660764fdaf0b7e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / erabi-0.1.3-py3-none-any.whl
| Download URL | erabi-0.1.3-py3-none-any.whl |
|---|---|
| Size | 96.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
552ffdea6a9851a4b4b3aab8580788a1e9d4a29c6eb08306b4612f8da79c45c7
|
|
BLAKE2b-256 checksum How to use checksums |
b2ebfd28bce07cc33646862c0815b2c9f2abfc67944d6b547d8f28f0f79483ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|