kev-0.6b-coreml / source /tests /test_standalone_runtime.py
alexwengg's picture
Refresh Kev 0.6B Core ML card and source
96a3192 verified
Raw
History Blame Contribute Delete
2.69 kB
"""Exercise the published, weight-free Kev request path with the pinned tokenizer."""
from __future__ import annotations
import copy
import json
import numpy as np
import pytest
from huggingface_hub import snapshot_download
from kev.api import SystemOneRequest, to_record
from kev.model import encode
from transformers import AutoTokenizer
from assets import LOCK_PATH
from preprocessing import Shape, prepare_runtime_inputs
from verify import fixtures
@pytest.fixture(scope="module")
def tokenizer():
lock = json.loads(LOCK_PATH.read_text())
source = snapshot_download(
lock["checkpoint"]["repo"],
revision=lock["checkpoint"]["revision"],
allow_patterns=["tokenizer.json", "tokenizer_config.json", "special_tokens_map.json", "added_tokens.json"],
)
return AutoTokenizer.from_pretrained(source, local_files_only=True)
def unlabelled(request: dict) -> dict:
request = copy.deepcopy(request)
for question in request["questions"].values():
question.pop("label", None)
question.pop("src", None)
return request
@pytest.mark.parametrize(
"sample", fixtures(), ids=["tetris-choice", "phishing-noul", "billing-choice", "delivery-score"]
)
def test_unlabelled_runtime_uses_upstream_serving_encoding(tokenizer, sample):
sample = unlabelled(sample)
arrays, encoded, metadata, parsed = prepare_runtime_inputs(tokenizer, sample, Shape())
record, expected_metadata = to_record(SystemOneRequest.model_validate(sample))
direct = encode(tokenizer, record, max_state=8192, max_branch=16384, option_isolation=False)
assert encoded["ids"] == direct["ids"]
assert metadata == expected_metadata
assert parsed.questions
assert arrays["input_ids"].shape == (1, 128)
assert arrays["option_map"].shape == (1, 32, 128)
np.testing.assert_array_equal(arrays["input_ids"][0, : len(encoded["ids"])], encoded["ids"])
assert arrays["decide_map"][0, 0, encoded["decide_idx"][0]] == 1
for option, position in enumerate(encoded["opt_idx"][0]):
assert arrays["option_map"][0, option, position] == 1
def test_runtime_rejects_multiple_questions(tokenizer):
request = unlabelled(fixtures()[0])
request["questions"]["second"] = copy.deepcopy(request["questions"]["q"])
with pytest.raises(ValueError, match="exactly one question"):
prepare_runtime_inputs(tokenizer, request, Shape())
def test_runtime_rejects_overlong_question_branch(tokenizer):
request = unlabelled(fixtures()[0])
request["questions"]["q"]["instructions"] = "Which placement? " * 200
with pytest.raises(ValueError, match="branch"):
prepare_runtime_inputs(tokenizer, request, Shape())