| { |
| "schema_version": 1, |
| "target": "MLX-8bit", |
| "source_revision": "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0", |
| "validated_at": "2026-08-15T18:24:54.766102+00:00", |
| "structural": { |
| "passed": true, |
| "passes": [ |
| "artifact directory exists", |
| "atomic build completion record", |
| "local SHA-256 manifest", |
| "all build-hashed files present (26)", |
| "all build payload SHA-256 hashes match", |
| "per-artifact quantization manifest", |
| "artifact manifest base model", |
| "artifact manifest source revision", |
| "artifact manifest declares vanilla quantization", |
| "plausible size 30.39 GB in [29, 35]", |
| "required sidecar config.json", |
| "required sidecar tokenizer_config.json", |
| "required sidecar generation_config.json", |
| "required sidecar preprocessor_config.json", |
| "required sidecar video_preprocessor_config.json", |
| "required sidecar chat_template.jinja", |
| "required sidecar tokenizer.json", |
| "required sidecar vocab.json", |
| "required sidecar merges.txt", |
| "required sidecar LICENSE", |
| "chat template byte-identical to source", |
| "generation_config.json semantically intact", |
| "preprocessor_config.json semantically intact", |
| "video_preprocessor_config.json semantically intact", |
| "tokenizer.json byte-identical to source", |
| "vocab.json byte-identical to source", |
| "merges.txt byte-identical to source", |
| "LICENSE byte-identical to source", |
| "tokenizer config preserves chat_template", |
| "tokenizer config preserves eos_token", |
| "tokenizer config preserves pad_token", |
| "tokenizer config preserves additional_special_tokens", |
| "official internal architecture id retained", |
| "MTP layer declaration retained", |
| "vision configuration retained", |
| "image special token id retained", |
| "video special token id retained", |
| "vision-start token id retained", |
| "vision-end token id retained", |
| "text architecture preserves num_hidden_layers", |
| "text architecture preserves hidden_size", |
| "text architecture preserves vocab_size", |
| "text architecture preserves max_position_embeddings", |
| "text architecture preserves full_attention_interval", |
| "text architecture preserves layer_types", |
| "text architecture preserves linear_conv_kernel_dim", |
| "text architecture preserves linear_key_head_dim", |
| "text architecture preserves linear_num_key_heads", |
| "text architecture preserves linear_num_value_heads", |
| "text architecture preserves linear_value_head_dim", |
| "full vision configuration retained", |
| "main safetensors readable", |
| "vision tensors retained (333)", |
| "main MLX bundle does not misplace MTP tensors", |
| "MTP drafter tensors retained (15)", |
| "MTP drafter model type", |
| "all floating tensors finite" |
| ], |
| "failures": [], |
| "warnings": [], |
| "disk_size_bytes": 30393322387 |
| }, |
| "runtime": { |
| "runtime": "mlx-vlm", |
| "model": "/Users/oz/Documents/ChatGPT/qwen3.8-27b/qwen38-27b-quants/quantization-suite/artifacts/MLX-8bit", |
| "artifact_role": "quantized_candidate", |
| "source_revision": "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0", |
| "text_tests": [ |
| { |
| "id": "fact", |
| "category": "factual", |
| "passed": true, |
| "failures": [], |
| "text": "The capital of France is Paris.", |
| "finish_reason": "stop", |
| "prompt_tokens": 24, |
| "generation_tokens": 8, |
| "generation_tps": 8.097617458605793, |
| "peak_memory_gb": 33.109382214, |
| "wall_seconds": 3.487048374954611, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "math", |
| "category": "mathematical_reasoning", |
| "passed": true, |
| "failures": [], |
| "text": "The user asks a simple multiplication problem: 6 rows of 7 blue marbles. I need to show a short calculation.\n\n6 × 7 = 42\n</think>\n\n6 × 7 = **42** blue marbles.", |
| "finish_reason": "stop", |
| "prompt_tokens": 36, |
| "generation_tokens": 52, |
| "generation_tps": 7.223834248900871, |
| "peak_memory_gb": 33.172341796, |
| "wall_seconds": 7.596303333062679, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "code", |
| "category": "coding", |
| "passed": true, |
| "failures": [], |
| "text": "The user wants a Python function called `clamp(x, low, high)` that clamps a value `x` to be within the inclusive range `[low, high]`. This is a straightforward function:\n- If x < low, return low\n- If x > high, return high\n- Otherwise, return x\n\nI can write this using `max(low, min(x, high))` or with if/elif/else. The one-liner with max/min is clean and Pythonic. Let me provide a single fenced code block.\n</think>\n\n```python\ndef clamp(x, low, high):\n return max(low, min(x, high))\n```", |
| "finish_reason": "stop", |
| "prompt_tokens": 67, |
| "generation_tokens": 139, |
| "generation_tps": 7.1614106613460065, |
| "peak_memory_gb": 33.248703377, |
| "wall_seconds": 19.979633500101045, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "multiturn", |
| "category": "multi_turn", |
| "passed": true, |
| "failures": [], |
| "text": "cedar", |
| "finish_reason": "stop", |
| "prompt_tokens": 50, |
| "generation_tokens": 3, |
| "generation_tps": 9.232891604538139, |
| "peak_memory_gb": 33.248703377, |
| "wall_seconds": 0.76997083297465, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "thinking_off", |
| "category": "thinking_disabled", |
| "passed": true, |
| "failures": [], |
| "text": "Yes, 17 is prime.\n\n**Reason:** It has no divisors other than 1 and itself (it is not divisible by 2, 3, or any other prime number less than its square root, $\\sqrt{17} \\approx 4.12$).", |
| "finish_reason": "stop", |
| "prompt_tokens": 25, |
| "generation_tokens": 62, |
| "generation_tps": 6.8911470159630825, |
| "peak_memory_gb": 33.248703377, |
| "wall_seconds": 9.454143958049826, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "reasoning_low", |
| "category": "reasoning_effort_low", |
| "passed": true, |
| "failures": [], |
| "text": "Compare 3/5 and 5/9.\n\n3/5 = 27/45\n5/9 = 25/45\n\n27/45 > 25/45, so 3/5 is larger.\n</think>\n\n3/5", |
| "finish_reason": "stop", |
| "prompt_tokens": 60, |
| "generation_tokens": 62, |
| "generation_tps": 7.149707023504348, |
| "peak_memory_gb": 33.248703377, |
| "wall_seconds": 9.090994417085312, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "reasoning_high", |
| "category": "reasoning_effort_high", |
| "passed": true, |
| "failures": [], |
| "text": "We need answer user: Find smallest positive integer divisible by 6,8,15. Explain briefly. Need compute LCM. 6=2*3, 8=2^3, 15=3*5. LCM max powers: 2^3*3*5=120. Need final concise.\n</think>\n\nThe smallest positive integer divisible by 6, 8, and 15 is their least common multiple (LCM).\n\nPrime factorizations:\n- 6 = 2 × 3\n- 8 = 2³\n- 15 = 3 × 5\n\nTake the highest power of each prime:\n- 2³, 3, 5\n\nLCM = 2³ × 3 × 5 = 8 × 3 × 5 = **120**.", |
| "finish_reason": "stop", |
| "prompt_tokens": 73, |
| "generation_tokens": 182, |
| "generation_tps": 7.044808424867058, |
| "peak_memory_gb": 33.264178369, |
| "wall_seconds": 26.409678707947023, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "long_form", |
| "category": "long_form", |
| "passed": true, |
| "failures": [], |
| "text": "Checksums serve as the foundational integrity layer for reproducible machine learning by providing cryptographic fingerprints for every artifact in the release pipeline, including raw datasets, preprocessed features, and model weights. By verifying that these hashes match expected values, teams can ensure that the exact data and code versions used during training are identical to those deployed in production, eliminating subtle discrepancies caused by silent data drift or untracked file modifications. This deterministic verification process guarantees that any stakeholder can independently confirm that the software package has not been altered or corrupted since its initial creation.\n\nImmutable revisions extend this integrity by locking the entire environment and dependency tree into a specific, unchangeable state, often through containerization or version-controlled package managers. Unlike mutable environments where library updates can inadvertently alter model behavior, immutable revisions ensure that the precise versions of Python packages, system libraries, and hardware drivers remain constant across all stages of the lifecycle. This isolation prevents the \"works on my machine\" problem, ensuring that the computational context is preserved exactly as it was during the original training run, thereby safeguarding against non-deterministic outcomes caused by external dependency changes.\n\nTogether, these mechanisms create a verifiable audit trail that links every prediction back to its specific source of truth, enabling rigorous debugging and compliance with regulatory standards. When a model behaves unexpectedly, engineers can trace the issue by comparing the checksums of the deployed artifacts against the original training logs, quickly identifying whether the fault lies in the data, the code, or the environment. This transparency transforms machine learning releases from opaque black boxes into accountable, inspectable systems, fostering trust among data scientists, engineers, and business stakeholders who rely on consistent model performance.\n\nUltimately, the integration of checksums and immutable revisions shifts the focus from ad-hoc deployment to a rigorous, engineering-grade release process that prioritizes consistency and reliability. By treating model artifacts with the same strictness as traditional software binaries, organizations can scale their machine learning operations without sacrificing reproducibility, ensuring that every iteration is built upon a stable, verified foundation. This approach not only reduces technical debt and operational risk but also accelerates innovation by providing a safe, predictable environment for experimenting with new models and data sources.", |
| "finish_reason": "stop", |
| "prompt_tokens": 31, |
| "generation_tokens": 438, |
| "generation_tps": 7.091795353765909, |
| "peak_memory_gb": 33.264178369, |
| "wall_seconds": 62.19834754196927, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "non_english", |
| "category": "non_english", |
| "passed": true, |
| "failures": [], |
| "text": "太陽光が大気中の分子にぶつかると、波長の短い青い光が他の色よりも強く散乱されます。そのため、私たちの目には空全体が青く見えます。", |
| "finish_reason": "stop", |
| "prompt_tokens": 28, |
| "generation_tokens": 41, |
| "generation_tps": 7.284320108929666, |
| "peak_memory_gb": 33.264178369, |
| "wall_seconds": 6.066282790969126, |
| "loop_score": 0.0 |
| }, |
| { |
| "id": "json", |
| "category": "structured_json", |
| "passed": true, |
| "failures": [], |
| "text": "```json\n{\n \"name\": \"sample\",\n \"primes\": [2, 3, 5],\n \"active\": true\n}\n```", |
| "finish_reason": "stop", |
| "prompt_tokens": 41, |
| "generation_tokens": 38, |
| "generation_tps": 7.256535360648547, |
| "peak_memory_gb": 33.264178369, |
| "wall_seconds": 5.642264458001591, |
| "loop_score": 0.0 |
| } |
| ], |
| "tool_tests": [ |
| { |
| "id": "one_tool", |
| "passed": true, |
| "failures": [], |
| "calls": [ |
| { |
| "name": "weather_at", |
| "arguments": { |
| "location": "Paris", |
| "units": "celsius" |
| } |
| } |
| ], |
| "raw": "The user is asking to call weather_at for Paris in Celsius units. This is a simple, direct request.\n</think>\n\n<tool_call>\n<function=weather_at>\n<parameter=location>\nParis\n</parameter>\n<parameter=units>\ncelsius\n</parameter>\n</function>\n</tool_call>", |
| "finish_reason": "stop", |
| "dependent_raw": null |
| }, |
| { |
| "id": "parallel_tools", |
| "passed": true, |
| "failures": [], |
| "calls": [ |
| { |
| "name": "weather_at", |
| "arguments": { |
| "location": "Paris", |
| "units": "celsius" |
| } |
| }, |
| { |
| "name": "weather_at", |
| "arguments": { |
| "location": "Austin", |
| "units": "fahrenheit" |
| } |
| } |
| ], |
| "raw": "The user is asking to call weather_at in parallel for Paris (Celsius) and Austin (Fahrenheit). Since these are independent calls, they can be executed in the same block.\n</think>\n\n<tool_call>\n<function=weather_at>\n<parameter=location>\nParis\n</parameter>\n<parameter=units>\ncelsius\n</parameter>\n</function>\n</tool_call>\n<tool_call>\n<function=weather_at>\n<parameter=location>\nAustin\n</parameter>\n<parameter=units>\nfahrenheit\n</parameter>\n</function>\n</tool_call>", |
| "finish_reason": "stop", |
| "dependent_raw": null |
| }, |
| { |
| "id": "sequential_dependency", |
| "passed": true, |
| "failures": [], |
| "calls": [ |
| { |
| "name": "weather_at", |
| "arguments": { |
| "location": "Paris", |
| "units": "celsius" |
| } |
| } |
| ], |
| "raw": "The user is asking to first call weather_at for Paris in Celsius, and then create an event with the title being exactly the returned condition string. Since the second call depends on the result of the first call, they need to be executed sequentially.\n\nFirst, let's call weather_at.\n</think>\n\n<tool_call>\n<function=weather_at>\n<parameter=location>\nParis\n</parameter>\n<parameter=units>\ncelsius\n</parameter>\n</function>\n</tool_call>", |
| "finish_reason": "stop", |
| "dependent_raw": "The weather condition is \"sunny\". Next, I need to create an event with the title exactly \"sunny\".\n</think>\n\n<tool_call>\n<function=add_event>\n<parameter=title>\nsunny\n</parameter>\n</function>\n</tool_call>" |
| }, |
| { |
| "id": "nested_json", |
| "passed": true, |
| "failures": [], |
| "calls": [ |
| { |
| "name": "add_event", |
| "arguments": { |
| "title": "Release review", |
| "attendees": [ |
| "ana@example.test", |
| "li@example.test" |
| ], |
| "metadata": { |
| "release": { |
| "model": "Qwen3.8-27B", |
| "slot": 21 |
| } |
| } |
| } |
| } |
| ], |
| "raw": "The user is asking to call add_event with specific parameters:\n- title: \"Release review\"\n- attendees: [\"ana@example.test\", \"li@example.test\"]\n- metadata: {\"release\":{\"model\":\"Qwen3.8-27B\",\"slot\":21}}\n\nThis is a straightforward request. Let's make the function call.\n</think>\n\n<tool_call>\n<function=add_event>\n<parameter=title>\nRelease review\n</parameter>\n<parameter=attendees>\n[\"ana@example.test\", \"li@example.test\"]\n</parameter>\n<parameter=metadata>\n{\"release\": {\"model\": \"Qwen3.8-27B\", \"slot\": 21}}\n</parameter>\n</function>\n</tool_call>", |
| "finish_reason": "stop", |
| "dependent_raw": null |
| }, |
| { |
| "id": "invalid_recovery", |
| "passed": true, |
| "failures": [], |
| "calls": [ |
| { |
| "name": "weather_at", |
| "arguments": { |
| "location": "Paris", |
| "units": "celsius" |
| } |
| } |
| ], |
| "raw": "The user is asking to call weather_at for Paris with units=kelvin. However, the schema only allows \"celsius\" or \"fahrenheit\" for units. Therefore, kelvin violates the schema. The user has explicitly stated: \"If that violates the schema, recover by using celsius.\"\n\nSo I should call weather_at with location=Paris, units=celsius.\n\nShould I first try kelvin? The instructions say to call with kelvin, and if it violates the schema, recover with celsius. Since I know the schema, I can directly call with celsius. But the user's instruction is conditional: call with kelvin, and if it violates, recover. Since I know it violates, I can just call with celsius directly. That's the sensible interpretation.\n\nLet's make the call.\n</think>\n\n<tool_call>\n<function=weather_at>\n<parameter=location>\nParis\n</parameter>\n<parameter=units>\ncelsius\n</parameter>\n</function>\n</tool_call>", |
| "finish_reason": "stop", |
| "dependent_raw": null |
| } |
| ], |
| "vision_tests": [ |
| { |
| "id": "shapes_colors", |
| "passed": true, |
| "missing_patterns": [], |
| "text": "From left to right, the three large shapes are:\n\n1. **Red square** \n2. **Blue circle** \n3. **Green triangle**\n\nThese match the labels directly beneath each shape in the image: “RED”, “BLUE”, and “GREEN” respectively.", |
| "finish_reason": "stop" |
| }, |
| { |
| "id": "printed_text", |
| "passed": true, |
| "missing_patterns": [], |
| "text": "VISION CHECK 27B", |
| "finish_reason": "stop" |
| }, |
| { |
| "id": "chart", |
| "passed": true, |
| "missing_patterns": [], |
| "text": "Based on the provided image:\n\n- The bar chart has three bars labeled **A**, **B**, and **C**.\n- The numbers printed above each bar are:\n - **A**: 60\n - **B**: 105\n - **C**: 135\n\nThe tallest bar is **C**, as it reaches the highest point on the y-axis, and the number printed above it is **135**.\n\n✅ **Answer: Bar C is the tallest, and the number printed above it is 135.**", |
| "finish_reason": "stop" |
| } |
| ], |
| "mtp": { |
| "passed": true, |
| "drafter_kind": "mtp", |
| "output_equivalent_temperature_zero": true, |
| "accepted_drafts": 48, |
| "drafted_tokens": 48, |
| "acceptance_rate": 1.0, |
| "baseline_tps": 7.202376633771441, |
| "mtp_tps": 11.113902808447595, |
| "speedup": 1.5430882573309594, |
| "measured_improvement": true, |
| "baseline_wall_seconds": 10.426604000036605, |
| "mtp_wall_seconds": 6.767424750025384, |
| "advertise_acceleration": true |
| }, |
| "warnings": [], |
| "phases": [ |
| "mtp", |
| "text", |
| "tools", |
| "vision" |
| ], |
| "validation_inputs": { |
| "prompts_sha256": "136a918e5fee962f2b52f8e520a0275fd5ec5569181e0f5fdf4910ee3c34d528", |
| "tools_sha256": "86ae46ebdbb0324c9672eec87e6b7f7683b0eb9c8c7169dcabdf646cf9bab122", |
| "image_sha256": "0b1ae6badbe19a6049305c36d165a34cdf36df00033842e265339b2b7f057295" |
| }, |
| "metal_memory_policy": { |
| "device": { |
| "device_name": "Apple M5 Pro", |
| "max_recommended_working_set_size": 55662788608, |
| "memory_size": 68719476736, |
| "architecture": "applegpu_g17s", |
| "max_buffer_length": 41747087360, |
| "resource_limit": 499000 |
| }, |
| "cache_limit_bytes": 256000000, |
| "wired_limit_bytes": 54549532835, |
| "previous_cache_limit_bytes": 65283502899, |
| "previous_wired_limit_bytes": 0, |
| "warnings": [] |
| } |
| }, |
| "warnings": [], |
| "overall_passed": true, |
| "runtime_failures": [], |
| "quality": { |
| "schema_version": 1, |
| "comparison_type": "cross-runtime output agreement against pinned BF16 source", |
| "passed": true, |
| "source_revision": "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0", |
| "embedding_model": { |
| "repo_id": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2", |
| "revision": "e8f8c211226b894fcb81acc59f3b34ba3efd5f42", |
| "pooling": "attention-mask mean pooling followed by L2 normalization", |
| "maximum_tokens": 256 |
| }, |
| "thresholds": { |
| "mean_semantic_similarity": 0.55, |
| "per_case_severe_regression": 0.25 |
| }, |
| "baseline_valid": true, |
| "candidate_functional": true, |
| "semantic_gate_passed": true, |
| "validation_inputs_match": true, |
| "validation_inputs": { |
| "prompts_sha256": "136a918e5fee962f2b52f8e520a0275fd5ec5569181e0f5fdf4910ee3c34d528", |
| "tools_sha256": "86ae46ebdbb0324c9672eec87e6b7f7683b0eb9c8c7169dcabdf646cf9bab122", |
| "image_sha256": "0b1ae6badbe19a6049305c36d165a34cdf36df00033842e265339b2b7f057295" |
| }, |
| "mean_semantic_similarity": 0.981384402513504, |
| "exact_matches": 9, |
| "comparisons": [ |
| { |
| "id": "fact", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "math", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 0.9999999403953552, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "code", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "multiturn", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "thinking_off", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 0.9999998807907104, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "reasoning_low", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "reasoning_high", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "long_form", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": false, |
| "sequence_agreement": 0.20976353928299007, |
| "semantic_similarity": 0.8138440847396851, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "non_english", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0000001192092896, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| }, |
| { |
| "id": "json", |
| "reference_passed": true, |
| "candidate_passed": true, |
| "exact_match": true, |
| "sequence_agreement": 1.0, |
| "semantic_similarity": 1.0, |
| "severe_regression": false, |
| "candidate_loop_score": 0.0 |
| } |
| ], |
| "functional_results": { |
| "reference_text": { |
| "passed": 10, |
| "total": 10 |
| }, |
| "candidate_text": { |
| "passed": 10, |
| "total": 10 |
| }, |
| "reference_tools": { |
| "passed": 5, |
| "total": 5 |
| }, |
| "candidate_tools": { |
| "passed": 5, |
| "total": 5 |
| }, |
| "reference_vision": { |
| "passed": 3, |
| "total": 3 |
| }, |
| "candidate_vision": { |
| "passed": 3, |
| "total": 3 |
| } |
| }, |
| "measurements": { |
| "average_generation_tps": 7.443406726106941, |
| "peak_memory_gb": 33.264178369, |
| "artifact_bytes": 30393325415, |
| "maximum_prompt_tokens_tested": 73, |
| "loop_rate": 0.0 |
| }, |
| "warnings": [ |
| "Semantic similarity is a measured embedding-model proxy, not ground-truth accuracy.", |
| "Raw-logit equality is unavailable across all target runtimes; exact functional gates and output agreement are used for portable release validation.", |
| "Sequence agreement is lexical and is reported diagnostically, not used as semantic accuracy." |
| ] |
| }, |
| "quality_failures": [] |
| } |
|
|