{
"schema_version": 1,
"target": "MLX-NF4",
"source_revision": "1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0",
"validated_at": "2026-08-16T01:35:50.055936+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 32.07 GB in [29, 38]",
"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": 32074157964
},
"runtime": {
"runtime": "mlx-vlm",
"model": "/Users/oz/Documents/ChatGPT/qwen3.8-27b/qwen38-27b-quants/quantization-suite/artifacts/MLX-8bit-Group32",
"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": 9.158402437737513,
"peak_memory_gb": 35.039722342,
"wall_seconds": 2.9246067500207573,
"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\n\n6 × 7 = **42** blue marbles.",
"finish_reason": "stop",
"prompt_tokens": 36,
"generation_tokens": 52,
"generation_tps": 8.071099348612544,
"peak_memory_gb": 35.102266916,
"wall_seconds": 6.797476334031671,
"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\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": 8.035932818071673,
"peak_memory_gb": 35.183473553,
"wall_seconds": 17.790556417079642,
"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": 11.721918944106392,
"peak_memory_gb": 35.183473553,
"wall_seconds": 0.6199017919134349,
"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": 8.083159413778926,
"peak_memory_gb": 35.183473553,
"wall_seconds": 8.053485541138798,
"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\n\n3/5",
"finish_reason": "stop",
"prompt_tokens": 60,
"generation_tokens": 62,
"generation_tps": 8.043916410226997,
"peak_memory_gb": 35.183473553,
"wall_seconds": 8.0817001669202,
"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\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.98350324542173,
"peak_memory_gb": 35.199014081,
"wall_seconds": 23.291763208108023,
"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, engineers can guarantee that the exact same input data and code versions are used during training and inference, eliminating subtle discrepancies caused by silent data drift or untracked file modifications. This deterministic verification ensures that any team member or automated system can reconstruct the identical environment, thereby establishing a trusted baseline where the model’s behavior is strictly tied to its verified components.\n\nImmutable revisions extend this reliability by locking the entire software and data context into a specific, unchangeable state, often managed through version control systems or container images. Unlike mutable branches where dependencies might shift over time, an immutable revision captures the precise combination of library versions, operating system configurations, and data snapshots required to reproduce a result. This approach prevents the \"works on my machine\" problem by ensuring that the execution environment remains static, allowing developers to isolate variables and confidently attribute performance changes to algorithmic adjustments rather than environmental fluctuations.\n\nTogether, these mechanisms create a robust audit trail that enhances transparency and compliance in high-stakes ML deployments. When a model exhibits unexpected behavior in production, teams can trace the issue back to specific immutable revisions and verify checksums to determine if the root cause lies in data corruption, code changes, or dependency updates. This level of granularity facilitates rapid debugging and regression testing, as engineers can replay historical experiments with absolute fidelity, ensuring that fixes are validated against the exact conditions that produced the original results.\n\nUltimately, the integration of checksums and immutable revisions transforms ML releases from opaque black boxes into verifiable, repeatable processes that scale across distributed teams. By enforcing strict consistency at both the data and code levels, organizations reduce the risk of deployment failures and accelerate the feedback loop between experimentation and production. This infrastructure not only safeguards model integrity but also builds stakeholder trust, as every release can be independently validated, ensuring that the deployed system behaves exactly as intended across all environments and timeframes.",
"finish_reason": "stop",
"prompt_tokens": 31,
"generation_tokens": 418,
"generation_tps": 7.909808596714864,
"peak_memory_gb": 35.199014081,
"wall_seconds": 53.234940874855965,
"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": 8.068839335187528,
"peak_memory_gb": 35.199014081,
"wall_seconds": 5.4666132919956,
"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": 8.138677568895629,
"peak_memory_gb": 35.199014081,
"wall_seconds": 5.028353208908811,
"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\n\n\n\n\nParis\n\n\ncelsius\n\n\n",
"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\n\n\n\n\nParis\n\n\ncelsius\n\n\n\n\n\n\nAustin\n\n\nfahrenheit\n\n\n",
"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\n\n\n\n\nParis\n\n\ncelsius\n\n\n",
"finish_reason": "stop",
"dependent_raw": "The weather condition is \"sunny\". Next, I need to create an event with the title exactly \"sunny\".\n\n\n\n\n\nsunny\n\n\n"
},
{
"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 requesting 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\n\n\n\n\nRelease review\n\n\n[\"ana@example.test\", \"li@example.test\"]\n\n\n{\"release\": {\"model\": \"Qwen3.8-27B\", \"slot\": 21}}\n\n\n",
"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 kelvin violates the schema (the enum is celsius/fahrenheit), I can directly call with celsius. That's the sensible interpretation.\n\nLet's make the call.\n\n\n\n\n\nParis\n\n\ncelsius\n\n\n",
"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": 84,
"drafted_tokens": 88,
"acceptance_rate": 0.9545454545454546,
"baseline_tps": 7.93442327248812,
"mtp_tps": 11.110166256993331,
"speedup": 1.4002487484524309,
"measured_improvement": true,
"baseline_wall_seconds": 16.510943749919534,
"mtp_wall_seconds": 11.774584958096966,
"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.9863808214664459,
"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.2462253193960511,
"semantic_similarity": 0.863808274269104,
"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": 8.52152581187538,
"peak_memory_gb": 35.199014081,
"artifact_bytes": 32074160991,
"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": []
}