52 lines
3.0 KiB
Plaintext
52 lines
3.0 KiB
Plaintext
# Exact source snapshot (already present on mounted storage)
|
|
SOURCE=/run/media/popov/DATA/llm/safetensor/models/models--Qwen--Qwen2.5-0.5B-Instruct/snapshots/7ae557604adf67be50417f59c2c2f167def9a775
|
|
LLAMA=/run/media/popov/d/DEV/llamacpp/llama.cpp
|
|
ROCM_PY=/run/media/popov/d/DEV/repos/d-popov.com/AI/.venv-rocm/bin/python
|
|
PROJECT_PY=/run/media/popov/d/DEV/repos/d-popov.com/AI/.venv/bin/python
|
|
OUT=/run/media/popov/DATA/llm/dgr-001
|
|
|
|
# Converter support check (no writes)
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype f16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf" --dry-run
|
|
|
|
# Exact-revision near-lossless and performance-fit artifacts
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype f16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf"
|
|
$LLAMA/build/bin/llama-quantize "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-F16.gguf" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-Q4_K_M.gguf" Q4_K_M
|
|
$ROCM_PY $LLAMA/convert_hf_to_gguf.py "$SOURCE" --outtype bf16 --outfile "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-BF16.gguf"
|
|
|
|
# Runtime and artifact identity
|
|
git -C "$LLAMA" rev-parse HEAD
|
|
$LLAMA/build/bin/llama-server --version
|
|
sha256sum "$LLAMA/build/bin/llama-server" "$LLAMA/convert_hf_to_gguf.py" "$LLAMA/build/bin/llama-quantize"
|
|
sha256sum "$SOURCE/model.safetensors" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-BF16.gguf" "$OUT/Qwen2.5-0.5B-Instruct-7ae5576-Q4_K_M.gguf"
|
|
|
|
# Deterministic complete-snapshot digest used by benchmark-config.json
|
|
PYTHONPATH=packages/node $ROCM_PY - <<'PY'
|
|
from pathlib import Path
|
|
from meshnet_node.recipe_drivers import _artifact_sha256
|
|
print(_artifact_sha256(Path('/run/media/popov/DATA/llm/safetensor/models/models--Qwen--Qwen2.5-0.5B-Instruct/snapshots/7ae557604adf67be50417f59c2c2f167def9a775')))
|
|
PY
|
|
|
|
# Canonical opt-in local-real benchmark
|
|
MESHNET_ENABLE_REAL_INFERENCE_TESTS=1 PYTHONPATH=packages/node $ROCM_PY -m meshnet_node.recipe_benchmark \
|
|
--config .scratch/distributed-gguf-runtime/evidence/DGR-001/benchmark-config.json \
|
|
--json-out .scratch/distributed-gguf-runtime/evidence/DGR-001/results.json \
|
|
--summary-out .scratch/distributed-gguf-runtime/evidence/DGR-001/results.txt
|
|
|
|
# Distil the baseline and evaluate immutable v1
|
|
PYTHONPATH=packages/node $PROJECT_PY - <<'PY'
|
|
from pathlib import Path
|
|
import json
|
|
from meshnet_node.performance_contract import baseline_from_report, evaluate_contract, load_contract
|
|
root = Path('.scratch/distributed-gguf-runtime/evidence/DGR-001')
|
|
report = json.loads((root / 'results.json').read_text())
|
|
contract = load_contract(root / 'performance-contract.json')
|
|
(root / 'baseline.json').write_text(json.dumps(baseline_from_report(report), indent=2, sort_keys=True) + '\n')
|
|
(root / 'contract-evaluation.json').write_text(json.dumps(evaluate_contract(contract, report).to_dict(), indent=2, sort_keys=True) + '\n')
|
|
PY
|
|
|
|
# Deterministic verification
|
|
PYTHONPATH=packages/node $PROJECT_PY -m pytest -q tests/test_recipe_benchmark.py
|
|
PYTHONPATH=packages/node $PROJECT_PY -m pytest -q
|
|
PYTHONPATH=packages/node $PROJECT_PY -m compileall -q packages tests
|
|
git diff --check
|