nanojev-coreml / source /tests /test_native_renderer.py
alexwengg's picture
Publish NanoJev Core ML conversion source without trained weights
ce235ae verified
Raw
History Blame Contribute Delete
942 Bytes
"""Check the pinned NanoJev renderer and tokenizer before a large export."""
from transformers import AutoTokenizer
from assets import snapshot
from fixtures import fixture
from preprocessing import prepare_request
def test_candidate_set_and_eos_positions():
root = snapshot(with_weights=False)
tokenizer = AutoTokenizer.from_pretrained(root / "tokenizer", local_files_only=True, trust_remote_code=False)
if tokenizer.pad_token_id is None:
tokenizer.pad_token = tokenizer.eos_token
inputs, mask, example = prepare_request(root, tokenizer, fixture(), 128, 4)
assert example["candidate_ids"] == ["left", "right", "shoot", "noop"]
assert mask.tolist() == [[1, 1, 1, 1]]
assert inputs["attention_mask"].sum(axis=1).min() > 0
for row in range(4):
eos = inputs["eos_map"][row, 0].nonzero()[0]
assert len(eos) == 1
assert inputs["input_ids"][row, eos[0]] == tokenizer.eos_token_id