Instructions to use XXXpilar/Fastfill-test with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use XXXpilar/Fastfill-test with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Download code/fastfill/v2/tests/test_evaluation_failure_latency.py from XXXpilar/Fastfill-test: direct link, hf CLI and curl.
- Browser
- Download file 3.93 kB
-
https://huggingface.co/XXXpilar/Fastfill-test/resolve/main/code/fastfill/v2/tests/test_evaluation_failure_latency.py
- Command line
-
hf download hf://XXXpilar/Fastfill-test/code/fastfill/v2/tests/test_evaluation_failure_latency.py
-
curl -L -o test_evaluation_failure_latency.py https://huggingface.co/XXXpilar/Fastfill-test/resolve/main/code/fastfill/v2/tests/test_evaluation_failure_latency.py
3.93 kB
| """Failed checkpoint generations remain in the measured latency population.""" | |
| from copy import deepcopy | |
| import json | |
| from types import SimpleNamespace | |
| import time | |
| import pytest | |
| from fastfill.v2 import evaluate | |
| from fastfill.v2.tests.test_runtime import condition, layout | |
| def dataset(path): | |
| row = {"schema_version": "fastfill.v2", "condition": condition(), "target": layout(), | |
| "validity": {"position": [[True] * 3], "size": [[True] * 3], "yaw": [True]}, | |
| "provenance": {"source": "synthetic", "house_id": "h", "scene_id": "one", "split": "test"}} | |
| rows = [row, {**deepcopy(row), "provenance": {**row["provenance"], "scene_id": "two"}}] | |
| path.write_text("".join(json.dumps(sample) + "\n" for sample in rows)) | |
| def test_failed_generation_or_schema_time_is_retained_in_all_request_latency(tmp_path, monkeypatch, failure): | |
| data = tmp_path / "requests.jsonl" | |
| dataset(data) | |
| monkeypatch.setattr(evaluate, "load_model", lambda *a, **k: SimpleNamespace(config=SimpleNamespace(backbone="tiny"))) | |
| monkeypatch.setattr(evaluate, "load_tokenizer", lambda *a, **k: object()) | |
| calls = 0 | |
| def generate(*_args, **_kwargs): | |
| nonlocal calls | |
| calls += 1 | |
| if calls == 2: | |
| time.sleep(.025) | |
| if failure == "generation": | |
| raise ValueError("generation failed after work") | |
| return {"schema_version": "fastfill.v2", "objects": []} | |
| return layout() | |
| monkeypatch.setattr(evaluate, "predict_layout", generate) | |
| output = tmp_path / "evaluation" | |
| report = evaluate.run_evaluation(data, output, checkpoint=tmp_path / "mock.pt") | |
| outcomes = [json.loads(line) for line in (output / "outcomes.jsonl").read_text().splitlines()] | |
| assert report["requests"] == 2 and report["inference_failed_requests"] == 1 | |
| assert outcomes[1]["fastfill_latency_ms"] >= 20. | |
| assert outcomes[1]["fastfill_latency_status"] == "failure" | |
| assert outcomes[0]["fastfill_latency_status"] == "success" | |
| assert report["latency_ms"]["fastfill_observed_requests"] == 2 | |
| assert report["latency_ms"]["fastfill_by_outcome"]["failure"]["requests"] == 1 | |
| assert report["latency_ms"]["fastfill_by_outcome"]["success"]["requests"] == 1 | |
| assert report["latency_ms"]["fastfill_p95"] >= 19. | |
| def test_supplied_predictions_do_not_invent_generation_latency(tmp_path): | |
| data, predictions = tmp_path / "requests.jsonl", tmp_path / "predictions.jsonl" | |
| dataset(data) | |
| predictions.write_text(json.dumps(layout()) + "\n" + '{"bad":true}\n') | |
| output = tmp_path / "evaluation" | |
| report = evaluate.run_evaluation(data, output, predictions=predictions) | |
| outcomes = [json.loads(line) for line in (output / "outcomes.jsonl").read_text().splitlines()] | |
| assert all(row["fastfill_latency_ms"] is None for row in outcomes) | |
| assert all(row["fastfill_latency_status"] == "unobserved" for row in outcomes) | |
| assert report["latency_ms"]["fastfill_observed_requests"] == 0 | |
| assert report["latency_ms"]["fastfill_p95"] is None | |
| def test_requests_over_the_object_budget_are_counted_as_over_capacity(tmp_path, monkeypatch): | |
| from fastfill.v2.batch import collate_samples | |
| data = tmp_path / "requests.jsonl" | |
| dataset(data) | |
| monkeypatch.setattr(evaluate, "load_model", lambda *a, **k: SimpleNamespace(config=SimpleNamespace(backbone="tiny"))) | |
| monkeypatch.setattr(evaluate, "load_tokenizer", lambda *a, **k: object()) | |
| def generate(model, tokenizer, condition, *args, **kwargs): # the real budget check, here of a 0-object model | |
| collate_samples([{"condition": condition}], tokenizer, max_objects=0) | |
| monkeypatch.setattr(evaluate, "predict_layout", generate) | |
| report = evaluate.run_evaluation(data, tmp_path / "evaluation", checkpoint=tmp_path / "mock.pt") | |
| assert report["inference_failed_requests"] == report["over_capacity_requests"] == 2 | |