Text Generation
GGUF
llama.cpp
agent
coding
reasoning
tool-use
function-calling
quantized
cuda
metal
conversational
Instructions to use badtheorylabs/BTL-3-Compact with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use badtheorylabs/BTL-3-Compact with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="badtheorylabs/BTL-3-Compact", filename="model/BTL-3-Compact-AVQ2.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use badtheorylabs/BTL-3-Compact with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf badtheorylabs/BTL-3-Compact # Run inference directly in the terminal: llama cli -hf badtheorylabs/BTL-3-Compact
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf badtheorylabs/BTL-3-Compact # Run inference directly in the terminal: llama cli -hf badtheorylabs/BTL-3-Compact
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf badtheorylabs/BTL-3-Compact # Run inference directly in the terminal: ./llama-cli -hf badtheorylabs/BTL-3-Compact
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf badtheorylabs/BTL-3-Compact # Run inference directly in the terminal: ./build/bin/llama-cli -hf badtheorylabs/BTL-3-Compact
Use Docker
docker model run hf.co/badtheorylabs/BTL-3-Compact
- LM Studio
- Jan
- vLLM
How to use badtheorylabs/BTL-3-Compact with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "badtheorylabs/BTL-3-Compact" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "badtheorylabs/BTL-3-Compact", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/badtheorylabs/BTL-3-Compact
- Ollama
How to use badtheorylabs/BTL-3-Compact with Ollama:
ollama run hf.co/badtheorylabs/BTL-3-Compact
- Unsloth Studio
How to use badtheorylabs/BTL-3-Compact with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for badtheorylabs/BTL-3-Compact to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for badtheorylabs/BTL-3-Compact to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for badtheorylabs/BTL-3-Compact to start chatting
- Pi
How to use badtheorylabs/BTL-3-Compact with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf badtheorylabs/BTL-3-Compact
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "badtheorylabs/BTL-3-Compact" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use badtheorylabs/BTL-3-Compact with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf badtheorylabs/BTL-3-Compact
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default badtheorylabs/BTL-3-Compact
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use badtheorylabs/BTL-3-Compact with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf badtheorylabs/BTL-3-Compact
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "badtheorylabs/BTL-3-Compact" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use badtheorylabs/BTL-3-Compact with Docker Model Runner:
docker model run hf.co/badtheorylabs/BTL-3-Compact
- Lemonade
How to use badtheorylabs/BTL-3-Compact with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull badtheorylabs/BTL-3-Compact
Run and chat with the model
lemonade run user.BTL-3-Compact-{{QUANT_TAG}}List all available models
lemonade list
Refresh canonical Compact with thinking-escape r8 step160 v3
Browse filesReplaces only the embedded rank-8 behavior adapter. Packed decoder and rank-32 output correction are unchanged. Thinking remains disabled by default.
- README.md +32 -23
- RELEASE_MANIFEST.json +27 -4
- SHA256SUMS +7 -3
- evidence/thinking-escape-v3-native-runtime.json +27 -0
- evidence/thinking-escape-v3-smoke.json +213 -0
- evidence/thinking-escape-v3-tool-gate.json +0 -0
- evidence/thinking-escape-v3-training-manifest.json +23 -0
- model/BTL-3-Compact-AVQ2.gguf +1 -1
README.md
CHANGED
|
@@ -21,7 +21,7 @@ tags:
|
|
| 21 |
|
| 22 |
### The complete 27B agent model in one 8.39 GB file
|
| 23 |
|
| 24 |
-
**Under 2.5 effective bits per parameter ·
|
| 25 |
|
| 26 |
[Full BTL-3](https://huggingface.co/badtheorylabs/BTL-3) ·
|
| 27 |
[Runtime source](https://github.com/Badtheorylabs/BTL-3) ·
|
|
@@ -30,6 +30,14 @@ tags:
|
|
| 30 |
|
| 31 |
</div>
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
## Introducing BTL-3 Compact
|
| 34 |
|
| 35 |
BTL-3 is a 27B open-weight agent model built for agentic coding, structural
|
|
@@ -38,9 +46,8 @@ BTL-3 Compact packages the complete text model into one **8.39 GB** native
|
|
| 38 |
GGUF—smaller than an 8B model stored in FP16 and under **2.5 effective artifact
|
| 39 |
bits per parameter**.
|
| 40 |
|
| 41 |
-
On
|
| 42 |
-
|
| 43 |
-
measured conditional tool-behavior retention**.
|
| 44 |
|
| 45 |
## Overview
|
| 46 |
|
|
@@ -57,10 +64,8 @@ load, or reconstruct the original BF16 checkpoint.
|
|
| 57 |
- Complete Qwen3.6-27B-derived text model in **8.39 GB decimal / 7.82 GiB**.
|
| 58 |
- Full 64-layer mixed AVQ2/UniSVQ representation with targeted precision
|
| 59 |
islands and compact behavioral corrections.
|
| 60 |
-
- **
|
| 61 |
-
|
| 62 |
-
- **83/100 absolute compact accuracy** against a full-precision teacher that
|
| 63 |
-
scored 90/100 on the same sealed gate.
|
| 64 |
- Exact native CUDA and Metal execution with no persistent dense
|
| 65 |
reconstruction.
|
| 66 |
- OpenAI-compatible local server plus LM Studio and Ollama CLI integrations.
|
|
@@ -87,22 +92,23 @@ then increase the window after measuring headroom.
|
|
| 87 |
|
| 88 |
## Measured retention
|
| 89 |
|
| 90 |
-
The
|
| 91 |
-
|
| 92 |
-
|
| 93 |
|
| 94 |
| Metric | Result |
|
| 95 |
|---|---:|
|
| 96 |
-
|
|
| 97 |
-
| BTL-3 Compact | **
|
| 98 |
-
| Conditional retention | **
|
| 99 |
-
| Single-call retention | **100%** |
|
| 100 |
-
| Parallel-call retention | **100%** |
|
| 101 |
-
|
|
| 102 |
-
|
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
|
|
|
| 106 |
|
| 107 |
## Native performance
|
| 108 |
|
|
@@ -135,7 +141,10 @@ preserving the familiar client interface.
|
|
| 135 |
> **Current reasoning-policy note:** BTL-3 Compact is released with thinking
|
| 136 |
> disabled by default. Use the supported non-thinking path for chat, coding,
|
| 137 |
> and tools. The experimental thinking override is currently discouraged
|
| 138 |
-
> because it can repeat procedural reasoning or fail to terminate.
|
|
|
|
|
|
|
|
|
|
| 139 |
|
| 140 |
### Install the verified macOS package
|
| 141 |
|
|
@@ -192,7 +201,7 @@ subsequently completed autoregressive generation on CUDA and Metal.
|
|
| 192 |
|---|---|
|
| 193 |
| File | `model/BTL-3-Compact-AVQ2.gguf` |
|
| 194 |
| Bytes | `8,392,369,600` |
|
| 195 |
-
| SHA-256 | `
|
| 196 |
|
| 197 |
Verify the complete release directory:
|
| 198 |
|
|
|
|
| 21 |
|
| 22 |
### The complete 27B agent model in one 8.39 GB file
|
| 23 |
|
| 24 |
+
**Under 2.5 effective bits per parameter · 98.4% held-out tool-contract retention**
|
| 25 |
|
| 26 |
[Full BTL-3](https://huggingface.co/badtheorylabs/BTL-3) ·
|
| 27 |
[Runtime source](https://github.com/Badtheorylabs/BTL-3) ·
|
|
|
|
| 30 |
|
| 31 |
</div>
|
| 32 |
|
| 33 |
+
> **Canonical behavior refresh — July 24, 2026:** the file at the existing
|
| 34 |
+
> `model/BTL-3-Compact-AVQ2.gguf` path now embeds the rank-8 step-160 Thinking
|
| 35 |
+
> Escape behavior adapter. The packed decoder and rank-32 output correction are
|
| 36 |
+
> unchanged. The new model SHA-256 is
|
| 37 |
+
> `0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a`.
|
| 38 |
+
> Thinking remains disabled by default; thinking-enabled coding still fails its
|
| 39 |
+
> release gate and should be treated as experimental.
|
| 40 |
+
|
| 41 |
## Introducing BTL-3 Compact
|
| 42 |
|
| 43 |
BTL-3 is a 27B open-weight agent model built for agentic coding, structural
|
|
|
|
| 46 |
GGUF—smaller than an 8B model stored in FP16 and under **2.5 effective artifact
|
| 47 |
bits per parameter**.
|
| 48 |
|
| 49 |
+
On the step-160 candidate's held-out teacher-correct tool gate, BTL-3 Compact
|
| 50 |
+
retained **62 of 63 behaviors**, yielding **98.4% conditional retention**.
|
|
|
|
| 51 |
|
| 52 |
## Overview
|
| 53 |
|
|
|
|
| 64 |
- Complete Qwen3.6-27B-derived text model in **8.39 GB decimal / 7.82 GiB**.
|
| 65 |
- Full 64-layer mixed AVQ2/UniSVQ representation with targeted precision
|
| 66 |
islands and compact behavioral corrections.
|
| 67 |
+
- **98.4% conditional retention (62/63)** on the step-160 candidate's held-out
|
| 68 |
+
teacher-correct tool gate.
|
|
|
|
|
|
|
| 69 |
- Exact native CUDA and Metal execution with no persistent dense
|
| 70 |
reconstruction.
|
| 71 |
- OpenAI-compatible local server plus LM Studio and Ollama CLI integrations.
|
|
|
|
| 92 |
|
| 93 |
## Measured retention
|
| 94 |
|
| 95 |
+
The candidate gate contains 63 turns across single, parallel, sequential,
|
| 96 |
+
parallel-multiple, and abstention behavior. It is an internal contract-retention
|
| 97 |
+
evaluation, not a public frontier benchmark.
|
| 98 |
|
| 99 |
| Metric | Result |
|
| 100 |
|---|---:|
|
| 101 |
+
| Teacher-correct cases | **63/63** |
|
| 102 |
+
| BTL-3 Compact | **62/63** |
|
| 103 |
+
| Conditional retention | **98.4% (62/63)** |
|
| 104 |
+
| Single-call retention | **100% (23/23)** |
|
| 105 |
+
| Parallel-call retention | **100% (14/14)** |
|
| 106 |
+
| Parallel-multiple retention | **100% (2/2)** |
|
| 107 |
+
| Sequential-call retention | **87.5% (7/8)** |
|
| 108 |
+
| Abstention retention | **100% (16/16)** |
|
| 109 |
+
|
| 110 |
+
The complete candidate report is included in
|
| 111 |
+
[`evidence/thinking-escape-v3-tool-gate.json`](evidence/thinking-escape-v3-tool-gate.json).
|
| 112 |
|
| 113 |
## Native performance
|
| 114 |
|
|
|
|
| 141 |
> **Current reasoning-policy note:** BTL-3 Compact is released with thinking
|
| 142 |
> disabled by default. Use the supported non-thinking path for chat, coding,
|
| 143 |
> and tools. The experimental thinking override is currently discouraged
|
| 144 |
+
> because it can repeat procedural reasoning or fail to terminate. On the
|
| 145 |
+
> step-160 held-out smoke, 5/12 prompts reached `</think>` and a final answer;
|
| 146 |
+
> thinking-enabled coding reached 0/3. The default no-thinking path passed
|
| 147 |
+
> direct-answer stopping and executable Python validation on the exact GGUF.
|
| 148 |
|
| 149 |
### Install the verified macOS package
|
| 150 |
|
|
|
|
| 201 |
|---|---|
|
| 202 |
| File | `model/BTL-3-Compact-AVQ2.gguf` |
|
| 203 |
| Bytes | `8,392,369,600` |
|
| 204 |
+
| SHA-256 | `0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a` |
|
| 205 |
|
| 206 |
Verify the complete release directory:
|
| 207 |
|
RELEASE_MANIFEST.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
{
|
| 2 |
"schema_version": 1,
|
| 3 |
-
"release": "BTL-3 Compact",
|
| 4 |
"checkpoint": "RL-0013",
|
| 5 |
"architecture": "Qwen3.6-27B",
|
| 6 |
"model": {
|
| 7 |
"path": "model/BTL-3-Compact-AVQ2.gguf",
|
| 8 |
"bytes": 8392369600,
|
| 9 |
-
"sha256": "
|
| 10 |
},
|
| 11 |
"runtimes": {
|
| 12 |
"supported": [
|
|
@@ -40,7 +40,11 @@
|
|
| 40 |
"evidence/BTL-3-Compact-AVQ2.report.json",
|
| 41 |
"evidence/native-load-report.json",
|
| 42 |
"evidence/rtx-pro-6000-speed-2026-07-19.md",
|
| 43 |
-
"evidence/compact-validation.md"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
],
|
| 45 |
"tools": [
|
| 46 |
"tools/install_consumer_bundle.py"
|
|
@@ -51,5 +55,24 @@
|
|
| 51 |
"licenses/THIRD_PARTY_NOTICES.md"
|
| 52 |
],
|
| 53 |
"stock_ollama_compatible": false,
|
| 54 |
-
"stock_lm_studio_engine_compatible": false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"schema_version": 1,
|
| 3 |
+
"release": "BTL-3 Compact — Thinking Escape r8 step160 v3 canonical refresh",
|
| 4 |
"checkpoint": "RL-0013",
|
| 5 |
"architecture": "Qwen3.6-27B",
|
| 6 |
"model": {
|
| 7 |
"path": "model/BTL-3-Compact-AVQ2.gguf",
|
| 8 |
"bytes": 8392369600,
|
| 9 |
+
"sha256": "0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a"
|
| 10 |
},
|
| 11 |
"runtimes": {
|
| 12 |
"supported": [
|
|
|
|
| 40 |
"evidence/BTL-3-Compact-AVQ2.report.json",
|
| 41 |
"evidence/native-load-report.json",
|
| 42 |
"evidence/rtx-pro-6000-speed-2026-07-19.md",
|
| 43 |
+
"evidence/compact-validation.md",
|
| 44 |
+
"evidence/thinking-escape-v3-smoke.json",
|
| 45 |
+
"evidence/thinking-escape-v3-tool-gate.json",
|
| 46 |
+
"evidence/thinking-escape-v3-native-runtime.json",
|
| 47 |
+
"evidence/thinking-escape-v3-training-manifest.json"
|
| 48 |
],
|
| 49 |
"tools": [
|
| 50 |
"tools/install_consumer_bundle.py"
|
|
|
|
| 55 |
"licenses/THIRD_PARTY_NOTICES.md"
|
| 56 |
],
|
| 57 |
"stock_ollama_compatible": false,
|
| 58 |
+
"stock_lm_studio_engine_compatible": false,
|
| 59 |
+
"default_thinking": false,
|
| 60 |
+
"canonical_refresh": {
|
| 61 |
+
"date": "2026-07-24",
|
| 62 |
+
"behavior_adapter": {
|
| 63 |
+
"identity": "thinking-escape-r8-step160-v3",
|
| 64 |
+
"rank": 8,
|
| 65 |
+
"alpha": 16,
|
| 66 |
+
"tensor_count": 132,
|
| 67 |
+
"payload_bytes": 32440320,
|
| 68 |
+
"sha256": "7ba9f80be97287775575022e84e735ac3c38b343c0bb83c5c3b0a86c53d6c881"
|
| 69 |
+
},
|
| 70 |
+
"non_behavior_tensors_verified_unchanged": 2284,
|
| 71 |
+
"packed_decoder_unchanged": true,
|
| 72 |
+
"rank32_output_head_correction_unchanged": true,
|
| 73 |
+
"tool_retention": "62/63",
|
| 74 |
+
"thinking_final_answer_rate": "5/12",
|
| 75 |
+
"thinking_coding_termination": "0/3",
|
| 76 |
+
"approved_as_full_thinking_fix": false
|
| 77 |
+
}
|
| 78 |
}
|
SHA256SUMS
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
7c3d8064baf55779579b48c58fa083e0bda2a639c857b4bde56bab4008d28002 docs/btl-3-compact-gguf-exporter.md
|
| 4 |
d1f83f8a4652b7d07417067e964af864aaebf559bb9b0c76a54a0c357c3ffe86 docs/launch-btl3-compact.md
|
| 5 |
ad9f659ec619d9ba3ce07ea864d994f312947d8e7c47abf52b1df659f557811b docs/launch-btl3-cuda.md
|
|
@@ -23,7 +23,7 @@ d74511d134d59f432bc5108a3a0449c29e7a75346511cceda10575fb8ac084e7 integrations/b
|
|
| 23 |
0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 licenses/LICENSE
|
| 24 |
ef85e198bda0c18a42650ea1a576bffdc3f8749d2f8dcec739b9be34efeebb2d licenses/LICENSE.runtime
|
| 25 |
87cfc2262dbf499daff47db1339293198fba61431f623fd7226004d6714d58c8 licenses/THIRD_PARTY_NOTICES.md
|
| 26 |
-
|
| 27 |
94f29bbed6a22c35b992c5c6ebf0e7c92f13b836b90f36f461c9cf2f0f1d010d runtimes/preview/BTL-3-Compact-linux-arm64-cuda/LICENSE.llama.cpp
|
| 28 |
b6e370b019f80cb605ac78846156233a816aa61d423ff5a7e923fcd7e8670abc runtimes/preview/BTL-3-Compact-linux-arm64-cuda/bin/btl3-server
|
| 29 |
0982584bae74781ee188a0a0a626f40ef333d4492c69f0699f6eb4468ae7aff2 runtimes/preview/BTL-3-Compact-linux-arm64-cuda/bundle-manifest.json
|
|
@@ -65,3 +65,7 @@ a5edff95c1a5f9c6fd3072ea65cb8b75e44fb92bbb1b35901ec43fe62cbc6eff runtimes/suppo
|
|
| 65 |
822a7679463a66d994b14f1d6fcab80f08fae0c3839d83d08fb8778b78f685f8 runtimes/supported/BTL-3-Compact-macos-arm64/libexec/llama-server
|
| 66 |
8ee92d4b719fe2cb94cfe673beb55b51c2c4f6248b98449224462aa47346b068 runtimes/supported/BTL-3-Compact-macos-arm64/share/btl3/ollama_bridge.py
|
| 67 |
4c0c84652be9749c3aa521a9b75a2b4511e0d949f755b41eca960929717e1fc0 tools/install_consumer_bundle.py
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
f5280efd06a2e03efbb2d504f9d3f15727b75c46b8caf19a7b1a1a2ecb97698b README.md
|
| 2 |
+
de1b3e944b8ec6beafcb4bc435a4b5ddb08a8dcdaa842605143ac644c4cf5881 RELEASE_MANIFEST.json
|
| 3 |
7c3d8064baf55779579b48c58fa083e0bda2a639c857b4bde56bab4008d28002 docs/btl-3-compact-gguf-exporter.md
|
| 4 |
d1f83f8a4652b7d07417067e964af864aaebf559bb9b0c76a54a0c357c3ffe86 docs/launch-btl3-compact.md
|
| 5 |
ad9f659ec619d9ba3ce07ea864d994f312947d8e7c47abf52b1df659f557811b docs/launch-btl3-cuda.md
|
|
|
|
| 23 |
0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 licenses/LICENSE
|
| 24 |
ef85e198bda0c18a42650ea1a576bffdc3f8749d2f8dcec739b9be34efeebb2d licenses/LICENSE.runtime
|
| 25 |
87cfc2262dbf499daff47db1339293198fba61431f623fd7226004d6714d58c8 licenses/THIRD_PARTY_NOTICES.md
|
| 26 |
+
0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a model/BTL-3-Compact-AVQ2.gguf
|
| 27 |
94f29bbed6a22c35b992c5c6ebf0e7c92f13b836b90f36f461c9cf2f0f1d010d runtimes/preview/BTL-3-Compact-linux-arm64-cuda/LICENSE.llama.cpp
|
| 28 |
b6e370b019f80cb605ac78846156233a816aa61d423ff5a7e923fcd7e8670abc runtimes/preview/BTL-3-Compact-linux-arm64-cuda/bin/btl3-server
|
| 29 |
0982584bae74781ee188a0a0a626f40ef333d4492c69f0699f6eb4468ae7aff2 runtimes/preview/BTL-3-Compact-linux-arm64-cuda/bundle-manifest.json
|
|
|
|
| 65 |
822a7679463a66d994b14f1d6fcab80f08fae0c3839d83d08fb8778b78f685f8 runtimes/supported/BTL-3-Compact-macos-arm64/libexec/llama-server
|
| 66 |
8ee92d4b719fe2cb94cfe673beb55b51c2c4f6248b98449224462aa47346b068 runtimes/supported/BTL-3-Compact-macos-arm64/share/btl3/ollama_bridge.py
|
| 67 |
4c0c84652be9749c3aa521a9b75a2b4511e0d949f755b41eca960929717e1fc0 tools/install_consumer_bundle.py
|
| 68 |
+
b5f0e6a7a782d7016b821381eed64eb0dcf65d386b0d8e7a26c1d48c3c0a59cc evidence/thinking-escape-v3-smoke.json
|
| 69 |
+
847cb03e85e7d72f9092891418b3b8ad96b5ec3518fdb9a620e25e71fb69d08e evidence/thinking-escape-v3-tool-gate.json
|
| 70 |
+
04afbba9eb6a244e4a41b7a17d3f31b9a633f5e862a08838869c790a6b9827f5 evidence/thinking-escape-v3-native-runtime.json
|
| 71 |
+
4093b5ea558ecb9027745ed50fba9d04bad5347e85253853e831d40983f33d03 evidence/thinking-escape-v3-training-manifest.json
|
evidence/thinking-escape-v3-native-runtime.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"model": "BTL-3-Compact-Thinking-Escape-r8-step160-v3.gguf",
|
| 4 |
+
"model_sha256": "0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a",
|
| 5 |
+
"runtime": "BTL-3-Compact-macos-arm64 packaged native runtime",
|
| 6 |
+
"device": "Apple Metal",
|
| 7 |
+
"context_size": 4096,
|
| 8 |
+
"default_thinking": false,
|
| 9 |
+
"health": {"status": "ok"},
|
| 10 |
+
"direct_answer": {
|
| 11 |
+
"prompt": "What programming language is known for snake_case and significant indentation? Answer with one word.",
|
| 12 |
+
"content": "Python",
|
| 13 |
+
"finish_reason": "stop",
|
| 14 |
+
"completion_tokens": 2,
|
| 15 |
+
"passed": true
|
| 16 |
+
},
|
| 17 |
+
"coding": {
|
| 18 |
+
"prompt": "Write a Python function add_one(value: int) -> int that returns value plus one. Return only code.",
|
| 19 |
+
"content": "```python\ndef add_one(value: int) -> int:\n return value + 1\n```",
|
| 20 |
+
"finish_reason": "stop",
|
| 21 |
+
"completion_tokens": 23,
|
| 22 |
+
"ast_parse": true,
|
| 23 |
+
"execution": {"expression": "add_one(41)", "expected": 42, "actual": 42},
|
| 24 |
+
"passed": true
|
| 25 |
+
},
|
| 26 |
+
"server_stopped_after_validation": true
|
| 27 |
+
}
|
evidence/thinking-escape-v3-smoke.json
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"after": {
|
| 3 |
+
"max_new_tokens": 256,
|
| 4 |
+
"phase": "after",
|
| 5 |
+
"records": [
|
| 6 |
+
{
|
| 7 |
+
"category": "simple",
|
| 8 |
+
"eos_reached": false,
|
| 9 |
+
"final_answer_present": false,
|
| 10 |
+
"finish_reason": "length",
|
| 11 |
+
"generated_tokens": 256,
|
| 12 |
+
"latency_seconds": 22.890394,
|
| 13 |
+
"model_variant": "after",
|
| 14 |
+
"prompt_id": "simple-language-01",
|
| 15 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Analyze the Request:**\n - User asks: \"What is your favorite coding language?\"\n - Constraint: \"Answer briefly.\"\n\n2. **Identify Core Constraints:**\n - I am an AI, so I don't have personal preferences or favorites.\n - I need to answer briefly.\n\n3. **Formulate Response:**\n - Acknowledge that I don't have favorites.\n - Mention that I'm proficient in many languages.\n - Keep it concise.\n\n4. **Draft Response:**\n - \"I don't have a favorite, but I'm proficient in many languages like Python, JavaScript, and C++.\"\n\n5. **Refine Response:**\n - \"I don't have a favorite, but I'm proficient in many languages like Python, JavaScript, and C++.\"\n\n6. **Final Output:**\n - \"I don't have a favorite, but I'm proficient in many languages like Python, JavaScript, and C++.\"\n\n7. **Check Constraints:**\n - Brief? Yes.\n - Answers the question? Yes.\n\n8. **Output Generation:**\n ",
|
| 16 |
+
"reasoning_tokens": 254,
|
| 17 |
+
"repetition_rate": 0.232,
|
| 18 |
+
"scaffold_prefix": true,
|
| 19 |
+
"template_variant": "pinned_official_identical",
|
| 20 |
+
"think_end_reached": false
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"category": "simple",
|
| 24 |
+
"eos_reached": true,
|
| 25 |
+
"final_answer_present": true,
|
| 26 |
+
"finish_reason": "eos",
|
| 27 |
+
"generated_tokens": 5,
|
| 28 |
+
"latency_seconds": 0.741842,
|
| 29 |
+
"model_variant": "after",
|
| 30 |
+
"prompt_id": "simple-arithmetic-01",
|
| 31 |
+
"raw_generation": "</think>\n\n42<|im_end|>",
|
| 32 |
+
"reasoning_tokens": 0,
|
| 33 |
+
"repetition_rate": 0.0,
|
| 34 |
+
"scaffold_prefix": false,
|
| 35 |
+
"template_variant": "pinned_official_identical",
|
| 36 |
+
"think_end_reached": true
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"category": "simple",
|
| 40 |
+
"eos_reached": false,
|
| 41 |
+
"final_answer_present": false,
|
| 42 |
+
"finish_reason": "length",
|
| 43 |
+
"generated_tokens": 256,
|
| 44 |
+
"latency_seconds": 21.685617,
|
| 45 |
+
"model_variant": "after",
|
| 46 |
+
"prompt_id": "simple-definition-01",
|
| 47 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Analyze the Request:**\n * **Topic:** Idempotency (often spelled \"idempotency\" or \"idempotence\").\n * **Constraint:** Define it in one sentence.\n * **Goal:** Provide a clear, concise definition.\n\n2. **Identify Key Concepts:**\n * What is idempotency? It's a property of operations/functions where applying them multiple times yields the same result as applying them once.\n * Common examples: `max`, `min`, `abs`, `floor`, `ceil`, `identity`, `square root`, etc.\n * Mathematical definition: `f(f(x)) = f(x)` for all `x`.\n * Practical definition: An operation is idempotent if repeating it doesn't change the outcome.\n\n3. **Draft Initial Definitions:**\n * *Draft 1:* Idempotency is a property where applying an operation multiple times produces the same result as applying it once.\n * *Draft 2:* Idempotency means that an operation is idempotent if repeating it doesn't change the outcome.\n",
|
| 48 |
+
"reasoning_tokens": 255,
|
| 49 |
+
"repetition_rate": 0.080645,
|
| 50 |
+
"scaffold_prefix": true,
|
| 51 |
+
"template_variant": "pinned_official_identical",
|
| 52 |
+
"think_end_reached": false
|
| 53 |
+
},
|
| 54 |
+
{
|
| 55 |
+
"category": "simple",
|
| 56 |
+
"eos_reached": true,
|
| 57 |
+
"final_answer_present": true,
|
| 58 |
+
"finish_reason": "eos",
|
| 59 |
+
"generated_tokens": 32,
|
| 60 |
+
"latency_seconds": 2.836183,
|
| 61 |
+
"model_variant": "after",
|
| 62 |
+
"prompt_id": "simple-choice-01",
|
| 63 |
+
"raw_generation": "</think>\nStart with the standard json module, as it is robust, well-tested, and handles complex cases efficiently, saving you from reinventing the wheel.<|im_end|>",
|
| 64 |
+
"reasoning_tokens": 0,
|
| 65 |
+
"repetition_rate": 0.0,
|
| 66 |
+
"scaffold_prefix": false,
|
| 67 |
+
"template_variant": "pinned_official_identical",
|
| 68 |
+
"think_end_reached": true
|
| 69 |
+
},
|
| 70 |
+
{
|
| 71 |
+
"category": "coding",
|
| 72 |
+
"eos_reached": false,
|
| 73 |
+
"final_answer_present": false,
|
| 74 |
+
"finish_reason": "length",
|
| 75 |
+
"generated_tokens": 256,
|
| 76 |
+
"latency_seconds": 21.322129,
|
| 77 |
+
"model_variant": "after",
|
| 78 |
+
"prompt_id": "coding-function-01",
|
| 79 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Understand the Request:**\n * **Goal:** Write a Python function that returns the first repeated integer in a list.\n * **Constraint:** O(n) time complexity.\n * **Requirements:** Include type hints and one short example.\n\n2. **Analyze the Problem:**\n * **Input:** A list of integers.\n * **Output:** The first integer that appears more than once in the list.\n * **Constraint:** O(n) time complexity. This means we need to iterate through the list once, or use a data structure that allows O(1) lookups (like a set or dictionary).\n * **Edge Cases:** What if there are no repeated integers? The function should return `None` or raise an exception. Let's stick to returning `None` for simplicity, but I'll make sure the type hint reflects this.\n\n3. **Develop the Solution:**\n * **Approach:** Iterate through the list, keep track of seen numbers. If a number is already seen, return it immediately.\n * **Data Structure:** A set is perfect for this. It allows",
|
| 80 |
+
"reasoning_tokens": 256,
|
| 81 |
+
"repetition_rate": 0.026667,
|
| 82 |
+
"scaffold_prefix": true,
|
| 83 |
+
"template_variant": "pinned_official_identical",
|
| 84 |
+
"think_end_reached": false
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"category": "coding",
|
| 88 |
+
"eos_reached": false,
|
| 89 |
+
"final_answer_present": false,
|
| 90 |
+
"finish_reason": "length",
|
| 91 |
+
"generated_tokens": 256,
|
| 92 |
+
"latency_seconds": 21.887859,
|
| 93 |
+
"model_variant": "after",
|
| 94 |
+
"prompt_id": "coding-typescript-01",
|
| 95 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Deconstruct the Prompt:**\n * **Core Task:** Refactor a TypeScript function that fetches three independent endpoints sequentially.\n * **Implementation:** Show a typed `Promise.all` implementation with explicit error handling.\n * **Explanation:** Explain one failure-mode tradeoff.\n\n2. **Initial Analysis:**\n * *Sequential vs. Parallel:* The prompt says \"fetches three independent endpoints sequentially.\" This is a contradiction. If endpoints are independent, they should be fetched in parallel using `Promise.all`. If they are sequential, they should be chained. The prompt asks to refactor *to* a `Promise.all` implementation, implying the original was sequential, and the refactored version should be parallel.\n * *TypeScript:* Need to define types for the endpoints, responses, and errors.\n * *Error Handling:* Need to handle errors explicitly (e.g., catch, reject, or wrap promises).\n * *Failure-mode Tradeoff:* Need to explain a tradeoff related to failure modes (e.g., partial success vs. full failure, error propagation, etc.).\n\n3. **Drafting the Refactored Function",
|
| 96 |
+
"reasoning_tokens": 256,
|
| 97 |
+
"repetition_rate": 0.013605,
|
| 98 |
+
"scaffold_prefix": true,
|
| 99 |
+
"template_variant": "pinned_official_identical",
|
| 100 |
+
"think_end_reached": false
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"category": "coding",
|
| 104 |
+
"eos_reached": false,
|
| 105 |
+
"final_answer_present": false,
|
| 106 |
+
"finish_reason": "length",
|
| 107 |
+
"generated_tokens": 256,
|
| 108 |
+
"latency_seconds": 21.725484,
|
| 109 |
+
"model_variant": "after",
|
| 110 |
+
"prompt_id": "coding-debug-01",
|
| 111 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Understand the Problem:**\n - **Scenario:** A Python loop appends to the same list while iterating over it.\n - **Issue:** The loop never finishes (infinite loop).\n - **Goal:** Diagnose the bug and provide the smallest safe correction.\n\n2. **Identify the Bug:**\n - **Core Issue:** Modifying a collection while iterating over it causes the iterator to see the newly added items, leading to an infinite loop.\n - **Example:** `for item in my_list: my_list.append(item)`\n - **Why it fails:** The `for` loop uses an iterator that tracks the list's length. When `append` adds an item, the iterator sees the new item, so the loop continues indefinitely.\n\n3. **Diagnose the Bug:**\n - **Explanation:** The loop never finishes because the iterator is affected by the `append` operation. The loop sees the newly appended items, causing an infinite loop.\n\n4. **Provide the Smallest Safe Correction:**\n - **Solution:** Iterate over a copy of the list to avoid modifying the original list during iteration.\n - **Code:**",
|
| 112 |
+
"reasoning_tokens": 256,
|
| 113 |
+
"repetition_rate": 0.026316,
|
| 114 |
+
"scaffold_prefix": true,
|
| 115 |
+
"template_variant": "pinned_official_identical",
|
| 116 |
+
"think_end_reached": false
|
| 117 |
+
},
|
| 118 |
+
{
|
| 119 |
+
"category": "reasoning",
|
| 120 |
+
"eos_reached": true,
|
| 121 |
+
"final_answer_present": true,
|
| 122 |
+
"finish_reason": "eos",
|
| 123 |
+
"generated_tokens": 108,
|
| 124 |
+
"latency_seconds": 9.099712,
|
| 125 |
+
"model_variant": "after",
|
| 126 |
+
"prompt_id": "reasoning-database-01",
|
| 127 |
+
"raw_generation": "Here are some possible answers:\n</think>\n\n**Diagnosis:**\nThe race condition arises because two workers read the same row, modify it, and write it back without synchronization. This leads to lost updates when one worker\u2019s write overwrites another\u2019s, causing data loss or incorrect state.\n\n**Fix:**\nUse a transaction-level fix with atomic read-modify-write operations to ensure consistency.\n\n**Pseudocode:**\n```\nBEGIN TRANSACTION\n READ row\n MODIFY row\n WRITE row\nEND TRANSACTION\n```<|im_end|>",
|
| 128 |
+
"reasoning_tokens": 6,
|
| 129 |
+
"repetition_rate": 0.0,
|
| 130 |
+
"scaffold_prefix": false,
|
| 131 |
+
"template_variant": "pinned_official_identical",
|
| 132 |
+
"think_end_reached": true
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"category": "reasoning",
|
| 136 |
+
"eos_reached": false,
|
| 137 |
+
"final_answer_present": false,
|
| 138 |
+
"finish_reason": "length",
|
| 139 |
+
"generated_tokens": 256,
|
| 140 |
+
"latency_seconds": 21.534852,
|
| 141 |
+
"model_variant": "after",
|
| 142 |
+
"prompt_id": "reasoning-cache-01",
|
| 143 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Understand the Problem:**\n * **Context:** A cache was introduced.\n * **Observation:** Cache hit rate is 90% (high).\n * **Issue:** p99 latency increased (high latency for the top 1% of requests).\n * **Goal:** Provide three plausible causes and the first measurement for each.\n\n2. **Analyze the Observations:**\n * *90% hit rate:* This means most requests are served from the cache. This should generally reduce latency.\n * *p99 latency rose:* This means the tail latency (the slowest 1% of requests) got worse. This suggests that the cache is not helping for those specific requests, or the cache itself is causing delays, or there's a mismatch between cache and backend.\n\n3. **Brainstorm Plausible Causes:**\n * *Cause 1: Cache misses (the 10%)*\n * If the cache misses are slow, they pull from the backend. If the backend is slow, p99 latency rises.\n * *Measurement:* Measure backend latency for",
|
| 144 |
+
"reasoning_tokens": 256,
|
| 145 |
+
"repetition_rate": 0.0,
|
| 146 |
+
"scaffold_prefix": true,
|
| 147 |
+
"template_variant": "pinned_official_identical",
|
| 148 |
+
"think_end_reached": false
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"category": "reasoning",
|
| 152 |
+
"eos_reached": false,
|
| 153 |
+
"final_answer_present": false,
|
| 154 |
+
"finish_reason": "length",
|
| 155 |
+
"generated_tokens": 256,
|
| 156 |
+
"latency_seconds": 21.935359,
|
| 157 |
+
"model_variant": "after",
|
| 158 |
+
"prompt_id": "reasoning-concurrency-01",
|
| 159 |
+
"raw_generation": "Here's a thinking process:\n\n1. **Analyze the Request:**\n * **Scenario:** Two async tasks can both observe an empty slot and create duplicate work.\n * **Comparison:** Compare a mutex, a unique database constraint, and idempotency keys.\n * **Recommendation:** Recommend one robust design.\n\n2. **Deconstruct the Scenario:**\n * *Async tasks:* This implies concurrency, non-blocking operations, potentially running on different threads or processes.\n * *Empty slot:* This suggests a resource or state that is initially empty, and tasks are trying to fill it.\n * *Duplicate work:* This means if both tasks succeed, they create redundant entries or actions, leading to inefficiency or errors.\n * *Goal:* Prevent duplication, ensure exactly one task succeeds.\n\n3. **Evaluate the Three Approaches:**\n\n * **Approach 1: Mutex (Lock)**\n * *Mechanism:* A lock ensures exclusive access to a resource.\n * *Pros:* Simple, guarantees exclusive access, prevents race conditions.\n * *Cons:* Locks are often tied to a specific process/thread.",
|
| 160 |
+
"reasoning_tokens": 256,
|
| 161 |
+
"repetition_rate": 0.0,
|
| 162 |
+
"scaffold_prefix": true,
|
| 163 |
+
"template_variant": "pinned_official_identical",
|
| 164 |
+
"think_end_reached": false
|
| 165 |
+
},
|
| 166 |
+
{
|
| 167 |
+
"category": "instruction",
|
| 168 |
+
"eos_reached": true,
|
| 169 |
+
"final_answer_present": true,
|
| 170 |
+
"finish_reason": "eos",
|
| 171 |
+
"generated_tokens": 4,
|
| 172 |
+
"latency_seconds": 0.667707,
|
| 173 |
+
"model_variant": "after",
|
| 174 |
+
"prompt_id": "instruction-direct-01",
|
| 175 |
+
"raw_generation": "</think>\n\nready<|im_end|>",
|
| 176 |
+
"reasoning_tokens": 0,
|
| 177 |
+
"repetition_rate": 0.0,
|
| 178 |
+
"scaffold_prefix": false,
|
| 179 |
+
"template_variant": "pinned_official_identical",
|
| 180 |
+
"think_end_reached": true
|
| 181 |
+
},
|
| 182 |
+
{
|
| 183 |
+
"category": "instruction",
|
| 184 |
+
"eos_reached": true,
|
| 185 |
+
"final_answer_present": true,
|
| 186 |
+
"finish_reason": "eos",
|
| 187 |
+
"generated_tokens": 32,
|
| 188 |
+
"latency_seconds": 3.190571,
|
| 189 |
+
"model_variant": "after",
|
| 190 |
+
"prompt_id": "instruction-format-01",
|
| 191 |
+
"raw_generation": "</think>\n\n```json\n{\n \"language\": \"Python\",\n \"reason\": \"Easy learning, versatile, popular.\"\n}\n```<|im_end|>",
|
| 192 |
+
"reasoning_tokens": 0,
|
| 193 |
+
"repetition_rate": 0.0,
|
| 194 |
+
"scaffold_prefix": false,
|
| 195 |
+
"template_variant": "pinned_official_identical",
|
| 196 |
+
"think_end_reached": true
|
| 197 |
+
}
|
| 198 |
+
],
|
| 199 |
+
"summary": {
|
| 200 |
+
"after/pinned_official_identical": {
|
| 201 |
+
"eos_rate": 0.416667,
|
| 202 |
+
"final_answer_rate": 0.416667,
|
| 203 |
+
"mean_latency_seconds": 14.126,
|
| 204 |
+
"mean_reasoning_tokens": 149.583,
|
| 205 |
+
"mean_repetition_rate": 0.031603,
|
| 206 |
+
"n": 12,
|
| 207 |
+
"scaffold_rate": 0.583333,
|
| 208 |
+
"think_end_rate": 0.416667
|
| 209 |
+
}
|
| 210 |
+
}
|
| 211 |
+
},
|
| 212 |
+
"termination_weight": 8.0
|
| 213 |
+
}
|
evidence/thinking-escape-v3-tool-gate.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
evidence/thinking-escape-v3-training-manifest.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"assistant_turns": 2720,
|
| 3 |
+
"categories": {
|
| 4 |
+
"abstention": 300,
|
| 5 |
+
"no_thinking_code": 60,
|
| 6 |
+
"parallel": 400,
|
| 7 |
+
"parallel_multiple": 400,
|
| 8 |
+
"scaffold_escape": 80,
|
| 9 |
+
"sequential": 400,
|
| 10 |
+
"single": 500,
|
| 11 |
+
"thinking_brief": 40,
|
| 12 |
+
"thinking_code": 80,
|
| 13 |
+
"thinking_direct": 60
|
| 14 |
+
},
|
| 15 |
+
"dataset_id": "btl-thinking-escape-v2",
|
| 16 |
+
"holdout_exclusion": "configs/btl3_thinking_attribution_prompts.json is not used as training data",
|
| 17 |
+
"masked_scaffold_escape_rows": 80,
|
| 18 |
+
"rows": 2320,
|
| 19 |
+
"schema_version": 1,
|
| 20 |
+
"sha256": "35ec322e1d775c9a9f86ad6243f4bb9d777d99cb66f8fba8c07e6dc0ade84f91",
|
| 21 |
+
"thinking_repair_rows": 240,
|
| 22 |
+
"tool_preservation_rows": 2000
|
| 23 |
+
}
|
model/BTL-3-Compact-AVQ2.gguf
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 8392369600
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0a4d9ddee49e5aa93586a792bd4d452ea837229d49d22e54212dde87a5c9888a
|
| 3 |
size 8392369600
|