mstrasser commited on
Commit
409ee04
·
verified ·
1 Parent(s): 4ed7b59

Jeff v1.3: jeff-adapter-aml

Browse files
README.md ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: mstrasser/jeff-base
3
+ base_model_relation: adapter
4
+ library_name: peft
5
+ license: apache-2.0
6
+ language:
7
+ - en
8
+ pipeline_tag: text-classification
9
+ tags:
10
+ - jeff
11
+ - lora
12
+ - decision-model
13
+ - compliance
14
+ - calibration
15
+ ---
16
+
17
+ # jeff-adapter-aml
18
+
19
+ **Anti-money-laundering review.** Applies an institution's monitoring policy to a customer's last 30 days - clear, investigate, escalate or block.
20
+
21
+ A LoRA adapter for [jeff-base](https://huggingface.co/mstrasser/jeff-base) **v1.3**, a small open decision model
22
+ (a fine-tune of Qwen3.5-0.8B). You send a situation (the *state*) and questions with named options; Jeff returns a
23
+ calibrated probability for every option from one forward pass, with no generated text to parse. One Jeff server loads
24
+ the base once and any number of adapters beside it; each request picks an adapter by name (`"model": "aml"`).
25
+
26
+ Adapter page, with the full data card: [jeffhub.ai/adapters/aml](https://jeffhub.ai/adapters/aml).
27
+
28
+ ## Results
29
+
30
+ On this adapter's held-out test sets, never trained on, scored three ways on the same rows: the untrained model Jeff is built from, the Jeff v1.3 base alone, and the base with this adapter. Questions have 2 to 8 options. As of 2026-10-05. [All adapters](https://jeffhub.ai/results)
31
+
32
+ | Test set | Test rows | Qwen3.5-0.8B untrained | Jeff base v1.3 alone | Jeff base v1.3 + adapter |
33
+ |----|----|----|----|----|
34
+ | `test` | 5,120 | 36.0% · 0.022 | 40.5% · 0.103 | 95.0% · 0.012 |
35
+ | `test-amlworld-v1` | 4,500 | 48.9% · 0.023 | 64.3% · 0.044 | 60.0% · 0.244 |
36
+
37
+ Each cell: accuracy · calibration error (ECE; lower is better, 0 is perfect).
38
+
39
+ By group (test set `test`)
40
+
41
+ | Group | Rows | Qwen3.5-0.8B untrained | Jeff base v1.3 alone | Jeff base v1.3 + adapter |
42
+ |----|----|----|----|----|
43
+ | question: action | 2,386 | 27.3% | 22.4% | 94.1% |
44
+ | question: pattern | 348 | 13.8% | 17.8% | 99.7% |
45
+ | question: suspicious | 2,386 | 47.9% | 62.0% | 95.3% |
46
+
47
+ By group (test set `test-amlworld-v1`)
48
+
49
+ | Group | Rows | Qwen3.5-0.8B untrained | Jeff base v1.3 alone | Jeff base v1.3 + adapter |
50
+ |----|----|----|----|----|
51
+ | question: amlworld_window | 4,500 | 48.9% | 64.3% | 60.0% |
52
+
53
+ ### With llama.cpp (GGUF)
54
+
55
+ The same test, through llama.cpp: the base GGUF ([mstrasser/jeff-base-gguf](https://huggingface.co/mstrasser/jeff-base-gguf)) plus this adapter's LoRA GGUF ([mstrasser/jeff-adapter-aml-gguf](https://huggingface.co/mstrasser/jeff-adapter-aml-gguf)), with the temperature refitted for each format. [Running Jeff with llama.cpp](https://jeffhub.ai/docs/llama-cpp)
56
+
57
+ | Test set | Full precision | Q8_0 | Q4_K_M |
58
+ |--------------------|----------------|---------------|---------------|
59
+ | `test` | 95.0% · 0.012 | 95.0% · 0.012 | 94.6% · 0.015 |
60
+ | `test-amlworld-v1` | 60.0% · 0.244 | 59.8% · 0.246 | 60.7% · 0.221 |
61
+
62
+ Not measured yet for v1.3: calibration charts, the commonest confusions and accuracy per answer.
63
+
64
+ Source of these numbers: `results/sources/v1.3/new-adapters.table.json` in the JeffHub repository, also collected in [jeffhub-v1.3.json](https://jeffhub.ai/data/jeffhub-v1.3.json).
65
+
66
+ ## When to use it
67
+
68
+ - You have a written transaction-monitoring policy (warning signs, thresholds, high-risk and blocked countries and parties) and want each customer review sorted first.
69
+ - You want the policy's own answer with a calibrated probability, so analysts start with the unsure cases.
70
+
71
+ ## When not to use it
72
+
73
+ - You want the model to find laundering your policy does not describe. It applies the rules you give it; on raw transactions without a written policy (IBM's AMLworld cross-test) it scores 60.0%, below the base alone.
74
+ - You need a final decision without a person. Reports to the authorities have legal consequences.
75
+ - Your activity summaries look very different from the training format. Test on your own data first.
76
+
77
+ ## How to use it
78
+
79
+ The adapter runs with Jeff's server on the jeff-base **v1.3** base. Adapter serving arrives with the next Jeff release;
80
+ until then, these commands need the `feat/lora` branch of [firelex/jeff](https://github.com/firelex/jeff).
81
+
82
+ ```bash
83
+ git clone https://github.com/firelex/jeff && cd jeff
84
+ uv sync --no-default-groups --extra lora # add --extra cuda on NVIDIA GPUs, --extra mac on Apple silicon
85
+ uv run --no-default-groups hf download mstrasser/jeff-base --revision v1.3 --local-dir checkpoints/jeff-base
86
+ uv run --no-default-groups hf download mstrasser/jeff-adapter-aml --revision v1.3 --local-dir adapters/aml
87
+ JEFF_CHECKPOINT=checkpoints/jeff-base JEFF_ADAPTERS=adapters/ PORT=8765 \
88
+ uv run --no-default-groups jeff-serve # on a Mac, add JEFF_BACKEND=mlx
89
+ ```
90
+
91
+ Every folder in `adapters/` is served under its folder name; add or replace adapters while the server runs with
92
+ `curl -X POST http://localhost:8765/v1/adapters/reload`. Each adapter records the exact base it was trained on, and
93
+ the server refuses an adapter trained on a different one, so this adapter loads only on jeff-base v1.3 (a v1.2 adapter
94
+ does not load on v1.3). For llama.cpp, use [mstrasser/jeff-adapter-aml-gguf](https://huggingface.co/mstrasser/jeff-adapter-aml-gguf).
95
+
96
+ ### Request format
97
+
98
+ State (the situation), in this order:
99
+
100
+ | Key | Changes per request | What it holds |
101
+ |---|---|---|
102
+ | `institution` | no | The institution, its customer groups, and its monitoring policy - warning signs, thresholds, high-risk and blocked countries and parties, and what each action means. |
103
+ | `customer` | no | The customer profile: segment, occupation or business, expected incoming money, senders, recipients and countries, own accounts, documented events. |
104
+ | `activity` | yes | The customer's payments over the review period, with a short summary of the totals the policy uses. |
105
+
106
+ Questions:
107
+
108
+ - `suspicious` (choice): Whether the activity is suspicious under the policy. Options: `yes`, `no`
109
+ - `action` (choice): Which action the policy requires. Options: `clear`, `investigate`, `escalate`, `block`
110
+
111
+ Rules:
112
+
113
+ - Ask one question per request; each was trained with its own fixed instructions.
114
+ - Keep the institution and the customer profile the same across reviews, and put the activity last, so the unchanging part can be prepared in advance.
115
+ - The request format may still change before release.
116
+
117
+ General rules for every request: [the request format guide](https://jeffhub.ai/docs/request-format).
118
+
119
+ ### Example
120
+
121
+ The request below is also in this repository as [`example.json`](example.json).
122
+
123
+ ```json
124
+ {
125
+ "model": "aml",
126
+ "state": {
127
+ "institution": "Meridian Crypto Exchange is a crypto exchange based in Italy. It serves these customer groups: private crypto investor, business accepting crypto payments. Clear means the review is closed with a short note; investigate means an analyst opens a case and reviews the customer's documents; escalate means the case goes to the money-laundering reporting officer, who decides on a report to the authorities; block means the payment is stopped and the account frozen until compliance decides.\n\nMonitoring rules (all amounts in euro):\nEach review covers one customer's last 30 days. Transfers between the customer's own accounts and wallets (listed in the customer profile) are ignored by every rule.\nWarning signs:\nW1 Structuring: 3 or more deposits made with cash vouchers bought at partner kiosks each from 2,400.00 up to just under the reporting threshold of 3,000.00.\nW2 Rapid pass-through: the incoming money totals at least 1,000.00 and at least 90% of it is sent out again (by any payment or cash withdrawal) within 72 hours of arriving.\nW3 Many senders: money comes from more different senders than the customer profile expects per month.\nW4 Many recipients: money goes to more different recipients than the customer profile expects per month.\nW8 High-risk country: a payment to or from a country on the high-risk list that the customer profile does not list as an expected country.\nHigh-risk countries: Algeria, Bulgaria, Cameroon, Lebanon, Mali, Nigeria, Philippines, South Sudan, Venezuela.\nBlocked countries: Belarus, North Korea, Syria.\nBlocked parties: Field Summit EOOD (Bulgaria); Ember Nova Company (Bolivia); Coral Alder Ltd (Malta).\nActions (exactly one applies):\nblock: any payment to or from a blocked country or a blocked party, whatever else the activity shows.\nescalate: two or more different warning signs, or W2 (Rapid pass-through) even on its own.\ninvestigate: exactly one warning sign, other than W2.\nclear: no warning sign and no blocked country or party.",
128
+ "customer": "Customer: Kenji Okafor (individual), customer since November 2019.\nSegment: private crypto investor. Occupation or business: shop owner investing in crypto.\nExpected incoming: about 620.00 a month.\nExpected senders: up to 8 different senders a month. Expected recipients: up to 6 different recipients a month.\nExpected countries: Italy, Lebanon.\nOwn accounts and wallets: bank account ending 5014 at another bank; own hardware wallet 0xb84f...182c.",
129
+ "activity": "Review period: 1 June 2026 to 30 June 2026 (30 days). Amounts in euro.\nPayments:\n01 Jun 09:12 received 46.76 by crypto deposit from wallet 0x576b...5f0d at FalconCoin (Italy)\n10 Jun 17:34 sent 376.32 by crypto withdrawal to wallet 0x3292...217b (private wallet, owner and country unknown)\n14 Jun 14:23 received 478.54 by crypto deposit from wallet 0x576b...5f0d at FalconCoin (Italy)\nSummary (transfers between own accounts left out):\n- incoming: 2 payments, total 525.30, from 1 different senders\n- outgoing: 1 payments, total 376.32, to 1 different recipients\n- share of incoming money sent out again within 72 hours: 0%\n- counterparty countries: Italy"
130
+ },
131
+ "questions": {
132
+ "action": {
133
+ "type": "choice",
134
+ "instructions": "A compliance analyst at the institution described above reviews this customer's last 30 days of activity. Which action does the institution's monitoring policy require?",
135
+ "criteria": {
136
+ "block": "Block: at least one payment goes to or comes from a blocked country or a blocked party, whatever else.",
137
+ "investigate": "Investigate: exactly one warning sign applies, and the policy does not say to escalate that one alone.",
138
+ "escalate": "Escalate: two or more different warning signs apply, or a sign that the policy says to escalate alone.",
139
+ "clear": "Clear: no warning sign applies at all, and no payment involves a blocked country or any blocked party."
140
+ }
141
+ }
142
+ }
143
+ }
144
+ ```
145
+
146
+ ```bash
147
+ curl -s localhost:8765/v1/systemone -H 'content-type: application/json' -d @adapters/aml/example.json
148
+ ```
149
+
150
+ The answer holds a probability for each option of each question. A recorded response from the v1.3 adapter is not
151
+ published yet.
152
+
153
+ ## Files
154
+
155
+ - `adapter_model.safetensors`, `adapter_config.json`: the LoRA weights (PEFT format);
156
+ - `readout.safetensors`: the adapter's own readout over the answer codes;
157
+ - `decision_config.json`: answer codes, temperature, prompt layout and the checksum of the base it was trained on;
158
+ - `example.json`: the example request above.
159
+
160
+ `adapter_config.json` and `decision_config.json` name the base as `mstrasser/jeff-base`, revision `v1.3`; the server
161
+ checks the base by the checksum of its weights.
162
+
163
+ ## Training
164
+
165
+ | | |
166
+ |---|---|
167
+ | Base | [mstrasser/jeff-base](https://huggingface.co/mstrasser/jeff-base), revision v1.3 (a fine-tune of Qwen3.5-0.8B) |
168
+ | Prompt layout | live-last: the fixed part of the request first, the changing state field last |
169
+ | Run | `0.8b-aml-v2-20261004-0713`, final checkpoint |
170
+ | Adapter files | 41.5 MB (adapter_model.safetensors and readout.safetensors) |
171
+ | LoRA GGUF for llama.cpp | [mstrasser/jeff-adapter-aml-gguf](https://huggingface.co/mstrasser/jeff-adapter-aml-gguf) |
172
+
173
+ - **1.3.0** (2026-10-03): First release, trained on Jeff v1.3 with the live-last prompt layout (run 0.8b-aml-v2-20261004-0713, data version 2).
174
+
175
+ ## Data card
176
+
177
+ **Self-reported.** The numbers come from the adapter’s own maintainers and have not been re-run by anyone else. [What the levels mean](https://jeffhub.ai/docs/submitting-an-adapter#checking-levels)
178
+
179
+ - Test set: not attached yet
180
+ - QA report: not available here yet; it will be added once sanitised
181
+
182
+ **How the test set was held out.** Whole simulated institutions are held out: the test's 117 families (institutions, and for the pattern question traced laundering attempts) never appear in training, so its policies and customers are new to the adapter. 5,120 test rows: 2,386 per policy question (suspicious, action) and 348 pattern rows.
183
+
184
+ **Training data.** Training data not published.
185
+
186
+ Training data: 40,054 rows (version 2 of the data, built 2026-10-04); development 1,064, calibration 1,136 and test 5,120 rows.
187
+
188
+ Training mixed in a replay sample of the Jeff base model's own training data: 4,005 rows, about 10% on top of the adapter's 40,054 (inherited from the v1.2 recipe as a precaution; its effect has not been measured).
189
+
190
+ What it is not: it follows the institution's written policy, not a general laundering detector. On an out-of-distribution cross-test (4,500 windows from IBM's AMLworld simulation, asking only whether any transaction is part of laundering, with no written policy to apply) the adapter scores 60.0% (ECE 0.244), below the base alone at 64.3%. That test is shown for information; it is not what the adapter was trained to do.
191
+
192
+ Every label is computed by code - the scenario sets the action first, then the written policy's rules are re-applied to the transactions shown, and the build stops if the two disagree. GLM never sets a label.
193
+
194
+ A second question, which laundering pattern a traced set of transfers forms (fan-out, fan-in, cycle and others), uses rows built from IBM's synthetic AMLworld data.
195
+
196
+ ## Data and licence
197
+
198
+ **Adapter licence: Apache-2.0.**
199
+
200
+ **To confirm:** whether the CDLA-Sharing-1.0 terms of the pattern rows affect the adapter's licence or only the data.
201
+
202
+ It was trained on:
203
+
204
+ - **Synthetic institutions, customers and transactions**. Licence: Released with the adapter under Apache-2.0 (made for this adapter) · Made by GLM 5.3 (own hardware), for some texts; everything else by code
205
+
206
+ Simulated by code with fixed seeds; all names are invented. Some policy introductions, customer profiles and activity texts are written or reworded by GLM 5.3 and checked by code.
207
+
208
+ - **[IBM Transactions for Anti Money Laundering (AMLworld), laundering-pattern rows](https://www.kaggle.com/datasets/ealtman2019/ibm-transactions-for-anti-money-laundering-aml)**. Licence: Community Data License Agreement - Sharing - Version 1.0 (CDLA-Sharing-1.0); shared data, including modified data, must keep the same terms (open, but shared or changed data must keep the same terms) · Not made by a model
209
+
210
+ Altman et al., "Realistic Synthetic Financial Transactions for Anti-Money Laundering Models", NeurIPS 2023 Datasets and Benchmarks. Fully synthetic; no real people or accounts.
211
+
212
+ ## Limitations
213
+
214
+ - Tied to jeff-base v1.3. It will not load on any other base or version; the server checks the base weights' checksum.
215
+ - Jeff chooses between the options you give it. It does not write text or reason in several steps.
216
+ - Calibration was fitted on this adapter's own calibration rows. On very different data, check it again.
217
+ - Everything listed under *When not to use it* above.
218
+
219
+ ## Links
220
+
221
+ - Adapter page: [jeffhub.ai/adapters/aml](https://jeffhub.ai/adapters/aml)
222
+ - Base model: [mstrasser/jeff-base](https://huggingface.co/mstrasser/jeff-base) (revision v1.3)
223
+ - LoRA GGUF for llama.cpp: [mstrasser/jeff-adapter-aml-gguf](https://huggingface.co/mstrasser/jeff-adapter-aml-gguf)
224
+ - What changed in v1.3: [release notes](https://jeffhub.ai/docs/release-notes-v1-3)
225
+ - Code and server: [github.com/firelex/jeff](https://github.com/firelex/jeff)
226
+
227
+ Jeff is an independent project. It uses the same request format as Jev but is not affiliated with or endorsed by
228
+ TypeSafe, the makers of Jev.
adapter_config.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": {
6
+ "base_model_class": "Qwen3_5Model",
7
+ "parent_library": "transformers.models.qwen3_5.modeling_qwen3_5"
8
+ },
9
+ "base_model_name_or_path": "mstrasser/jeff-base",
10
+ "bias": "none",
11
+ "corda_config": null,
12
+ "ensure_weight_tying": false,
13
+ "eva_config": null,
14
+ "exclude_modules": null,
15
+ "fan_in_fan_out": false,
16
+ "inference_mode": true,
17
+ "init_lora_weights": true,
18
+ "kasa_config": null,
19
+ "layer_replication": null,
20
+ "layers_pattern": null,
21
+ "layers_to_transform": null,
22
+ "loftq_config": {},
23
+ "lora_alpha": 32,
24
+ "lora_bias": false,
25
+ "lora_dropout": 0.0,
26
+ "lora_ga_config": null,
27
+ "megatron_config": null,
28
+ "megatron_core": "megatron.core",
29
+ "modules_to_save": null,
30
+ "monteclora_config": null,
31
+ "peft_type": "LORA",
32
+ "peft_version": "0.21.1",
33
+ "qalora_group_size": 16,
34
+ "r": 16,
35
+ "rank_pattern": {},
36
+ "revision": "v1.3",
37
+ "target_modules": [
38
+ "out_proj",
39
+ "up_proj",
40
+ "o_proj",
41
+ "gate_proj",
42
+ "in_proj_qkv",
43
+ "q_proj",
44
+ "in_proj_z",
45
+ "v_proj",
46
+ "down_proj",
47
+ "k_proj"
48
+ ],
49
+ "target_parameters": null,
50
+ "task_type": null,
51
+ "trainable_token_indices": null,
52
+ "use_bdlora": null,
53
+ "use_dora": false,
54
+ "use_qalora": false,
55
+ "use_rslora": false,
56
+ "velora_config": null
57
+ }
adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c102617b31c02160e11f55efee5cfad2ff63cc07bb0b6b1708f0f5dac279fce
3
+ size 40937456
decision_config.json ADDED
@@ -0,0 +1,1264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "step": 689,
3
+ "provenance": {
4
+ "run": "0.8b-aml-v2-20261004-0713",
5
+ "git_commit": "9f84686520e4c97f7b0cb72fc03c1a7ed1bf6521",
6
+ "development": "7a232ac8b357029dd8c89309eed05b570b0551f9cbde3b19b1cae6c9157424c3",
7
+ "temperature": "9467ad1ec129ff2c25556a7b2c9821d97ba0b2eba613c794d0b8c98f1d2389ac",
8
+ "train": "d846985ce38d235077a218ba307e0aeea602562a14aeb2aab7a57e98c8301ed9",
9
+ "train.py": "a85cde69f373d2023e2bd7fc71ea9c6c54db0edc5f27dfda83504d25c0c09c14",
10
+ "model.py": "8c5579d3fcd42cb2de4e5a6515259cf4c5177ad7754af9b44c3d7f38b22efcc2",
11
+ "encoder.py": "6aa794b6c48a586d413e0be4d4ac2a1bb50bd3a83d23439b13c12c5b7dd0aac8",
12
+ "decoder.py": "9ee8ebbe5adc1ca11821b9f51e511206c6c612aeaa2648aa2388f3604480d2e0",
13
+ "models.py": "19abbc6be22049c2934a664e93aff0f968b724aa74f7d080e7dc0e367ac0120c",
14
+ "optim.py": "4fbfc0fee138121f363651eacaff84a672f758ab64d36175569bf00929c9cc5b",
15
+ "evaluate.py": "6d5c55b52ecf99d10c1522089feac4654eb2d161e90b13e408d085bca248ec41",
16
+ "types.py": "085d188898f939c581f6eeec2ebf1ab31df64f0aadef2e108cc70f2f42ecb929",
17
+ "events.py": "989646a80f0ee8695bd7c0e98ff945d04d02a511b9ecf06439048b4df0aceec2",
18
+ "lora.py": "9f29a448c49dd51878a839bc9bb3ae2dd2fe31914f19684889d2cc85a42d6914",
19
+ "uv.lock": "69e63d333763a522fd9aa451fa244653bf46a26b48f6216ada175a614471a12e"
20
+ },
21
+ "max_options": 241,
22
+ "initial_artifact": {
23
+ "path": "mstrasser/jeff-base",
24
+ "base_model": "Qwen/Qwen3.5-0.8B",
25
+ "revision": "2fc06364715b967f1860aea9cf38778875588b17",
26
+ "temperature": 1.075222461312357,
27
+ "decision_config": {
28
+ "step": 1113,
29
+ "provenance": {
30
+ "run": "ll-v12",
31
+ "git_commit": "016711d9daba54b941a38789be8e8b328e8db1e7",
32
+ "development": "ebcedc3e726548c08da90ff569b94e4822f23312dfc3ea29b93579cfec3016c7",
33
+ "temperature": "e735fa4e0df3482752112bc9cdff6af9ddb7be07a0a9f2fb8dd8cf2355042bf6",
34
+ "train": "f826592e75acdaa9510af5b15d5c944e07628632134cd57d2d6840192696e4ac",
35
+ "train.py": "9f3fdd0e4caf20f8eff77aa5b49fbc4c60df0b185a405ca4bc7ccf021cff5922",
36
+ "model.py": "8c5579d3fcd42cb2de4e5a6515259cf4c5177ad7754af9b44c3d7f38b22efcc2",
37
+ "encoder.py": "6aa794b6c48a586d413e0be4d4ac2a1bb50bd3a83d23439b13c12c5b7dd0aac8",
38
+ "decoder.py": "9ee8ebbe5adc1ca11821b9f51e511206c6c612aeaa2648aa2388f3604480d2e0",
39
+ "models.py": "19abbc6be22049c2934a664e93aff0f968b724aa74f7d080e7dc0e367ac0120c",
40
+ "optim.py": "4fbfc0fee138121f363651eacaff84a672f758ab64d36175569bf00929c9cc5b",
41
+ "evaluate.py": "6d5c55b52ecf99d10c1522089feac4654eb2d161e90b13e408d085bca248ec41",
42
+ "types.py": "085d188898f939c581f6eeec2ebf1ab31df64f0aadef2e108cc70f2f42ecb929",
43
+ "events.py": "989646a80f0ee8695bd7c0e98ff945d04d02a511b9ecf06439048b4df0aceec2",
44
+ "uv.lock": "69e63d333763a522fd9aa451fa244653bf46a26b48f6216ada175a614471a12e"
45
+ },
46
+ "max_options": 254,
47
+ "format_version": 1,
48
+ "base_model": "Qwen/Qwen3.5-0.8B",
49
+ "revision": "2fc06364715b967f1860aea9cf38778875588b17",
50
+ "codes": [
51
+ "A",
52
+ "B",
53
+ "C",
54
+ "D",
55
+ "E",
56
+ "F",
57
+ "G",
58
+ "H",
59
+ "I",
60
+ "J",
61
+ "K",
62
+ "L",
63
+ "M",
64
+ "N",
65
+ "O",
66
+ "P",
67
+ "Q",
68
+ "R",
69
+ "S",
70
+ "T",
71
+ "U",
72
+ "V",
73
+ "W",
74
+ "X",
75
+ "Y",
76
+ "Z",
77
+ "AA",
78
+ "AB",
79
+ "AC",
80
+ "AD",
81
+ "AE",
82
+ "AF",
83
+ "AG",
84
+ "AH",
85
+ "AI",
86
+ "AJ",
87
+ "AK",
88
+ "AL",
89
+ "AM",
90
+ "AN",
91
+ "AO",
92
+ "AP",
93
+ "AQ",
94
+ "AR",
95
+ "AS",
96
+ "AT",
97
+ "AU",
98
+ "AV",
99
+ "AW",
100
+ "AX",
101
+ "AY",
102
+ "AZ",
103
+ "BA",
104
+ "BB",
105
+ "BC",
106
+ "BD",
107
+ "BE",
108
+ "BF",
109
+ "BG",
110
+ "BH",
111
+ "BI",
112
+ "BJ",
113
+ "BK",
114
+ "BL",
115
+ "BM",
116
+ "BN",
117
+ "BO",
118
+ "BP",
119
+ "BR",
120
+ "BS",
121
+ "BT",
122
+ "BU",
123
+ "BV",
124
+ "BW",
125
+ "BX",
126
+ "BY",
127
+ "CA",
128
+ "CB",
129
+ "CC",
130
+ "CD",
131
+ "CE",
132
+ "CF",
133
+ "CG",
134
+ "CH",
135
+ "CI",
136
+ "CK",
137
+ "CL",
138
+ "CM",
139
+ "CN",
140
+ "CO",
141
+ "CP",
142
+ "CR",
143
+ "CS",
144
+ "CT",
145
+ "CU",
146
+ "CV",
147
+ "CW",
148
+ "CX",
149
+ "CY",
150
+ "DA",
151
+ "DB",
152
+ "DC",
153
+ "DD",
154
+ "DE",
155
+ "DF",
156
+ "DG",
157
+ "DH",
158
+ "DI",
159
+ "DJ",
160
+ "DK",
161
+ "DL",
162
+ "DM",
163
+ "DN",
164
+ "DO",
165
+ "DP",
166
+ "DR",
167
+ "DS",
168
+ "DT",
169
+ "DU",
170
+ "DV",
171
+ "DW",
172
+ "DX",
173
+ "DY",
174
+ "EA",
175
+ "EB",
176
+ "EC",
177
+ "ED",
178
+ "EE",
179
+ "EF",
180
+ "EG",
181
+ "EH",
182
+ "EI",
183
+ "EK",
184
+ "EL",
185
+ "EM",
186
+ "EN",
187
+ "EO",
188
+ "EP",
189
+ "EQ",
190
+ "ER",
191
+ "ES",
192
+ "ET",
193
+ "EU",
194
+ "EV",
195
+ "EW",
196
+ "EX",
197
+ "EZ",
198
+ "FA",
199
+ "FB",
200
+ "FC",
201
+ "FD",
202
+ "FE",
203
+ "FF",
204
+ "FG",
205
+ "FH",
206
+ "FI",
207
+ "FK",
208
+ "FL",
209
+ "FM",
210
+ "FN",
211
+ "FO",
212
+ "FP",
213
+ "FR",
214
+ "FS",
215
+ "FT",
216
+ "FU",
217
+ "FW",
218
+ "FX",
219
+ "FY",
220
+ "GA",
221
+ "GB",
222
+ "GC",
223
+ "GD",
224
+ "GE",
225
+ "GF",
226
+ "GG",
227
+ "GH",
228
+ "GI",
229
+ "GL",
230
+ "GM",
231
+ "GN",
232
+ "GO",
233
+ "GP",
234
+ "GR",
235
+ "GS",
236
+ "GT",
237
+ "GU",
238
+ "GV",
239
+ "GW",
240
+ "GX",
241
+ "GY",
242
+ "HA",
243
+ "HB",
244
+ "HC",
245
+ "HD",
246
+ "HE",
247
+ "HF",
248
+ "HG",
249
+ "HH",
250
+ "HI",
251
+ "HK",
252
+ "HL",
253
+ "HM",
254
+ "HN",
255
+ "HO",
256
+ "HP",
257
+ "HQ",
258
+ "HR",
259
+ "HS",
260
+ "HT",
261
+ "HU",
262
+ "HV",
263
+ "HW",
264
+ "HX",
265
+ "HY",
266
+ "HZ",
267
+ "IA",
268
+ "IB",
269
+ "IC",
270
+ "ID",
271
+ "IE",
272
+ "IF",
273
+ "IG",
274
+ "IH",
275
+ "II",
276
+ "IJ",
277
+ "IK",
278
+ "IL",
279
+ "IM",
280
+ "IN",
281
+ "IO",
282
+ "IP",
283
+ "IQ",
284
+ "IR",
285
+ "IS",
286
+ "IT",
287
+ "IU",
288
+ "IV",
289
+ "IW",
290
+ "IX",
291
+ "IZ",
292
+ "JA",
293
+ "JB",
294
+ "JC",
295
+ "JD",
296
+ "JE",
297
+ "JI",
298
+ "JJ",
299
+ "JK",
300
+ "JM",
301
+ "JO",
302
+ "JP",
303
+ "JR",
304
+ "JS",
305
+ "JT"
306
+ ],
307
+ "token_ids": [
308
+ 32,
309
+ 33,
310
+ 34,
311
+ 35,
312
+ 36,
313
+ 37,
314
+ 38,
315
+ 39,
316
+ 40,
317
+ 41,
318
+ 42,
319
+ 43,
320
+ 44,
321
+ 45,
322
+ 46,
323
+ 47,
324
+ 48,
325
+ 49,
326
+ 50,
327
+ 51,
328
+ 52,
329
+ 53,
330
+ 54,
331
+ 55,
332
+ 56,
333
+ 57,
334
+ 5840,
335
+ 1803,
336
+ 1646,
337
+ 1745,
338
+ 13276,
339
+ 8018,
340
+ 1825,
341
+ 28946,
342
+ 15015,
343
+ 29595,
344
+ 11568,
345
+ 939,
346
+ 1354,
347
+ 1058,
348
+ 18183,
349
+ 2456,
350
+ 88898,
351
+ 905,
352
+ 1846,
353
+ 802,
354
+ 33869,
355
+ 7839,
356
+ 14006,
357
+ 2860,
358
+ 2926,
359
+ 22828,
360
+ 6844,
361
+ 9798,
362
+ 4738,
363
+ 9265,
364
+ 11261,
365
+ 19278,
366
+ 36513,
367
+ 93801,
368
+ 8335,
369
+ 14544,
370
+ 85266,
371
+ 9110,
372
+ 28000,
373
+ 15137,
374
+ 4525,
375
+ 25261,
376
+ 12717,
377
+ 7116,
378
+ 17078,
379
+ 14497,
380
+ 57339,
381
+ 74909,
382
+ 52072,
383
+ 19305,
384
+ 4887,
385
+ 12607,
386
+ 3580,
387
+ 6281,
388
+ 2036,
389
+ 9362,
390
+ 8533,
391
+ 2080,
392
+ 10911,
393
+ 2925,
394
+ 3040,
395
+ 9690,
396
+ 27731,
397
+ 8023,
398
+ 6901,
399
+ 8702,
400
+ 6211,
401
+ 1123,
402
+ 16307,
403
+ 18990,
404
+ 64045,
405
+ 63037,
406
+ 33380,
407
+ 6151,
408
+ 3392,
409
+ 5449,
410
+ 3967,
411
+ 1113,
412
+ 5095,
413
+ 51923,
414
+ 49600,
415
+ 17099,
416
+ 51483,
417
+ 17756,
418
+ 16037,
419
+ 8135,
420
+ 30237,
421
+ 5683,
422
+ 9992,
423
+ 7444,
424
+ 5751,
425
+ 10284,
426
+ 20887,
427
+ 59884,
428
+ 52396,
429
+ 16103,
430
+ 67547,
431
+ 18535,
432
+ 8006,
433
+ 7263,
434
+ 1425,
435
+ 6878,
436
+ 14453,
437
+ 9097,
438
+ 44072,
439
+ 76089,
440
+ 68720,
441
+ 2662,
442
+ 2629,
443
+ 923,
444
+ 6548,
445
+ 8924,
446
+ 52194,
447
+ 622,
448
+ 1515,
449
+ 1300,
450
+ 37523,
451
+ 44473,
452
+ 36530,
453
+ 3152,
454
+ 93924,
455
+ 3505,
456
+ 15731,
457
+ 6542,
458
+ 14176,
459
+ 11091,
460
+ 1686,
461
+ 11660,
462
+ 80440,
463
+ 18836,
464
+ 26132,
465
+ 5934,
466
+ 24794,
467
+ 40229,
468
+ 3660,
469
+ 11361,
470
+ 10191,
471
+ 8225,
472
+ 3860,
473
+ 78413,
474
+ 17680,
475
+ 15900,
476
+ 78138,
477
+ 15653,
478
+ 5213,
479
+ 22150,
480
+ 39500,
481
+ 10460,
482
+ 35131,
483
+ 21563,
484
+ 43194,
485
+ 27127,
486
+ 3697,
487
+ 20011,
488
+ 24368,
489
+ 15058,
490
+ 23658,
491
+ 8362,
492
+ 16035,
493
+ 24583,
494
+ 52857,
495
+ 38403,
496
+ 60456,
497
+ 81519,
498
+ 40097,
499
+ 16522,
500
+ 29722,
501
+ 21756,
502
+ 18567,
503
+ 1736,
504
+ 48043,
505
+ 87013,
506
+ 22456,
507
+ 23165,
508
+ 55523,
509
+ 13097,
510
+ 50397,
511
+ 41741,
512
+ 23073,
513
+ 6401,
514
+ 86538,
515
+ 16585,
516
+ 11622,
517
+ 2464,
518
+ 84982,
519
+ 75516,
520
+ 36984,
521
+ 58795,
522
+ 47217,
523
+ 59675,
524
+ 5681,
525
+ 3151,
526
+ 1271,
527
+ 887,
528
+ 5203,
529
+ 2685,
530
+ 1849,
531
+ 72470,
532
+ 5370,
533
+ 74063,
534
+ 27629,
535
+ 1655,
536
+ 1728,
537
+ 669,
538
+ 3682,
539
+ 3191,
540
+ 59865,
541
+ 2712,
542
+ 1580,
543
+ 922,
544
+ 77243,
545
+ 2990,
546
+ 78493,
547
+ 5228,
548
+ 2750,
549
+ 42711,
550
+ 44568,
551
+ 56402,
552
+ 48236,
553
+ 38993,
554
+ 43559,
555
+ 61250,
556
+ 32942,
557
+ 86302,
558
+ 25310,
559
+ 26313,
560
+ 81770,
561
+ 12185,
562
+ 78382
563
+ ],
564
+ "temperature": 1.075222461312357,
565
+ "prompt_layout": "live-last"
566
+ },
567
+ "files_sha256": {
568
+ "chat_template.jinja": "273d8e0e683b885071fb17e08d71e5f2a5ddfb5309756181681de4f5a1822d80",
569
+ "config.json": "e430598ca8aa6228b9856573dcc0425d0710acad4a19a937da52cde724b34f25",
570
+ "decision_config.json": "109c95dae0ae97466caced45e6c6387770dc1ad80d61ba9ae061be8158bcb045",
571
+ "model.safetensors": "d324dd6c9bb61b30af65564135b33f6892c30a9b2bd22667b2e09b9c8118cf77",
572
+ "processor_config.json": "abb488b9a03a53407dc9c8e43c0a2caec9142e5fc7a1203807fdf54b2149cc8f",
573
+ "readout.safetensors": "b504d7a83a6b72837e6ad99e7da12eab28e5a54f9f637e8c4c8c8997c800c74a",
574
+ "tokenizer.json": "6f32ce20dc35f57a7f9ad1eac03525bd7d30f9df8cea6507e958279cc3657706",
575
+ "tokenizer_config.json": "5f7aa0d810000c4a0940b35c8f16e56c3439260fccc13a321826ebc3ccf2501f"
576
+ },
577
+ "artifact_sha256": "cfc3ef08726dba60f1275a8994681faae8614562cf4ac379817ee1c0f27ef49d",
578
+ "revision_on_hub": "v1.3"
579
+ },
580
+ "format_version": 1,
581
+ "base_model": "Qwen/Qwen3.5-0.8B",
582
+ "revision": "2fc06364715b967f1860aea9cf38778875588b17",
583
+ "codes": [
584
+ "A",
585
+ "B",
586
+ "C",
587
+ "D",
588
+ "E",
589
+ "F",
590
+ "G",
591
+ "H",
592
+ "I",
593
+ "J",
594
+ "K",
595
+ "L",
596
+ "M",
597
+ "N",
598
+ "O",
599
+ "P",
600
+ "Q",
601
+ "R",
602
+ "S",
603
+ "T",
604
+ "U",
605
+ "V",
606
+ "W",
607
+ "X",
608
+ "Y",
609
+ "Z",
610
+ "AA",
611
+ "AB",
612
+ "AC",
613
+ "AD",
614
+ "AE",
615
+ "AF",
616
+ "AG",
617
+ "AH",
618
+ "AI",
619
+ "AJ",
620
+ "AK",
621
+ "AL",
622
+ "AM",
623
+ "AN",
624
+ "AO",
625
+ "AP",
626
+ "AQ",
627
+ "AR",
628
+ "AS",
629
+ "AT",
630
+ "AU",
631
+ "AV",
632
+ "AW",
633
+ "AX",
634
+ "AY",
635
+ "AZ",
636
+ "BA",
637
+ "BB",
638
+ "BC",
639
+ "BD",
640
+ "BE",
641
+ "BF",
642
+ "BG",
643
+ "BH",
644
+ "BI",
645
+ "BJ",
646
+ "BK",
647
+ "BL",
648
+ "BM",
649
+ "BN",
650
+ "BO",
651
+ "BP",
652
+ "BR",
653
+ "BS",
654
+ "BT",
655
+ "BU",
656
+ "BV",
657
+ "BW",
658
+ "BX",
659
+ "BY",
660
+ "CA",
661
+ "CB",
662
+ "CC",
663
+ "CD",
664
+ "CE",
665
+ "CF",
666
+ "CG",
667
+ "CH",
668
+ "CI",
669
+ "CK",
670
+ "CL",
671
+ "CM",
672
+ "CN",
673
+ "CO",
674
+ "CP",
675
+ "CR",
676
+ "CS",
677
+ "CT",
678
+ "CU",
679
+ "CV",
680
+ "CW",
681
+ "CX",
682
+ "CY",
683
+ "DA",
684
+ "DB",
685
+ "DC",
686
+ "DD",
687
+ "DE",
688
+ "DF",
689
+ "DG",
690
+ "DH",
691
+ "DI",
692
+ "DJ",
693
+ "DK",
694
+ "DL",
695
+ "DM",
696
+ "DN",
697
+ "DO",
698
+ "DP",
699
+ "DR",
700
+ "DS",
701
+ "DT",
702
+ "DU",
703
+ "DV",
704
+ "DW",
705
+ "DX",
706
+ "DY",
707
+ "EA",
708
+ "EB",
709
+ "EC",
710
+ "ED",
711
+ "EE",
712
+ "EF",
713
+ "EG",
714
+ "EH",
715
+ "EI",
716
+ "EK",
717
+ "EL",
718
+ "EM",
719
+ "EN",
720
+ "EO",
721
+ "EP",
722
+ "EQ",
723
+ "ER",
724
+ "ES",
725
+ "ET",
726
+ "EU",
727
+ "EV",
728
+ "EW",
729
+ "EX",
730
+ "EZ",
731
+ "FA",
732
+ "FB",
733
+ "FC",
734
+ "FD",
735
+ "FE",
736
+ "FF",
737
+ "FG",
738
+ "FH",
739
+ "FI",
740
+ "FK",
741
+ "FL",
742
+ "FM",
743
+ "FN",
744
+ "FO",
745
+ "FP",
746
+ "FR",
747
+ "FS",
748
+ "FT",
749
+ "FU",
750
+ "FW",
751
+ "FX",
752
+ "FY",
753
+ "GA",
754
+ "GB",
755
+ "GC",
756
+ "GD",
757
+ "GE",
758
+ "GF",
759
+ "GG",
760
+ "GH",
761
+ "GI",
762
+ "GL",
763
+ "GM",
764
+ "GN",
765
+ "GO",
766
+ "GP",
767
+ "GR",
768
+ "GS",
769
+ "GT",
770
+ "GU",
771
+ "GV",
772
+ "GW",
773
+ "GX",
774
+ "GY",
775
+ "HA",
776
+ "HB",
777
+ "HC",
778
+ "HD",
779
+ "HE",
780
+ "HF",
781
+ "HG",
782
+ "HH",
783
+ "HI",
784
+ "HK",
785
+ "HL",
786
+ "HM",
787
+ "HN",
788
+ "HO",
789
+ "HP",
790
+ "HQ",
791
+ "HR",
792
+ "HS",
793
+ "HT",
794
+ "HU",
795
+ "HV",
796
+ "HW",
797
+ "HX",
798
+ "HY",
799
+ "HZ",
800
+ "IA",
801
+ "IB",
802
+ "IC",
803
+ "ID",
804
+ "IE",
805
+ "IF",
806
+ "IG",
807
+ "IH",
808
+ "II",
809
+ "IJ",
810
+ "IK",
811
+ "IL",
812
+ "IM",
813
+ "IN",
814
+ "IO",
815
+ "IP",
816
+ "IQ",
817
+ "IR",
818
+ "IS",
819
+ "IT",
820
+ "IU",
821
+ "IV",
822
+ "IW",
823
+ "IX",
824
+ "IZ",
825
+ "JA",
826
+ "JB",
827
+ "JC",
828
+ "JD",
829
+ "JE",
830
+ "JI",
831
+ "JJ",
832
+ "JK",
833
+ "JM",
834
+ "JO",
835
+ "JP",
836
+ "JR",
837
+ "JS",
838
+ "JT"
839
+ ],
840
+ "token_ids": [
841
+ 32,
842
+ 33,
843
+ 34,
844
+ 35,
845
+ 36,
846
+ 37,
847
+ 38,
848
+ 39,
849
+ 40,
850
+ 41,
851
+ 42,
852
+ 43,
853
+ 44,
854
+ 45,
855
+ 46,
856
+ 47,
857
+ 48,
858
+ 49,
859
+ 50,
860
+ 51,
861
+ 52,
862
+ 53,
863
+ 54,
864
+ 55,
865
+ 56,
866
+ 57,
867
+ 5840,
868
+ 1803,
869
+ 1646,
870
+ 1745,
871
+ 13276,
872
+ 8018,
873
+ 1825,
874
+ 28946,
875
+ 15015,
876
+ 29595,
877
+ 11568,
878
+ 939,
879
+ 1354,
880
+ 1058,
881
+ 18183,
882
+ 2456,
883
+ 88898,
884
+ 905,
885
+ 1846,
886
+ 802,
887
+ 33869,
888
+ 7839,
889
+ 14006,
890
+ 2860,
891
+ 2926,
892
+ 22828,
893
+ 6844,
894
+ 9798,
895
+ 4738,
896
+ 9265,
897
+ 11261,
898
+ 19278,
899
+ 36513,
900
+ 93801,
901
+ 8335,
902
+ 14544,
903
+ 85266,
904
+ 9110,
905
+ 28000,
906
+ 15137,
907
+ 4525,
908
+ 25261,
909
+ 12717,
910
+ 7116,
911
+ 17078,
912
+ 14497,
913
+ 57339,
914
+ 74909,
915
+ 52072,
916
+ 19305,
917
+ 4887,
918
+ 12607,
919
+ 3580,
920
+ 6281,
921
+ 2036,
922
+ 9362,
923
+ 8533,
924
+ 2080,
925
+ 10911,
926
+ 2925,
927
+ 3040,
928
+ 9690,
929
+ 27731,
930
+ 8023,
931
+ 6901,
932
+ 8702,
933
+ 6211,
934
+ 1123,
935
+ 16307,
936
+ 18990,
937
+ 64045,
938
+ 63037,
939
+ 33380,
940
+ 6151,
941
+ 3392,
942
+ 5449,
943
+ 3967,
944
+ 1113,
945
+ 5095,
946
+ 51923,
947
+ 49600,
948
+ 17099,
949
+ 51483,
950
+ 17756,
951
+ 16037,
952
+ 8135,
953
+ 30237,
954
+ 5683,
955
+ 9992,
956
+ 7444,
957
+ 5751,
958
+ 10284,
959
+ 20887,
960
+ 59884,
961
+ 52396,
962
+ 16103,
963
+ 67547,
964
+ 18535,
965
+ 8006,
966
+ 7263,
967
+ 1425,
968
+ 6878,
969
+ 14453,
970
+ 9097,
971
+ 44072,
972
+ 76089,
973
+ 68720,
974
+ 2662,
975
+ 2629,
976
+ 923,
977
+ 6548,
978
+ 8924,
979
+ 52194,
980
+ 622,
981
+ 1515,
982
+ 1300,
983
+ 37523,
984
+ 44473,
985
+ 36530,
986
+ 3152,
987
+ 93924,
988
+ 3505,
989
+ 15731,
990
+ 6542,
991
+ 14176,
992
+ 11091,
993
+ 1686,
994
+ 11660,
995
+ 80440,
996
+ 18836,
997
+ 26132,
998
+ 5934,
999
+ 24794,
1000
+ 40229,
1001
+ 3660,
1002
+ 11361,
1003
+ 10191,
1004
+ 8225,
1005
+ 3860,
1006
+ 78413,
1007
+ 17680,
1008
+ 15900,
1009
+ 78138,
1010
+ 15653,
1011
+ 5213,
1012
+ 22150,
1013
+ 39500,
1014
+ 10460,
1015
+ 35131,
1016
+ 21563,
1017
+ 43194,
1018
+ 27127,
1019
+ 3697,
1020
+ 20011,
1021
+ 24368,
1022
+ 15058,
1023
+ 23658,
1024
+ 8362,
1025
+ 16035,
1026
+ 24583,
1027
+ 52857,
1028
+ 38403,
1029
+ 60456,
1030
+ 81519,
1031
+ 40097,
1032
+ 16522,
1033
+ 29722,
1034
+ 21756,
1035
+ 18567,
1036
+ 1736,
1037
+ 48043,
1038
+ 87013,
1039
+ 22456,
1040
+ 23165,
1041
+ 55523,
1042
+ 13097,
1043
+ 50397,
1044
+ 41741,
1045
+ 23073,
1046
+ 6401,
1047
+ 86538,
1048
+ 16585,
1049
+ 11622,
1050
+ 2464,
1051
+ 84982,
1052
+ 75516,
1053
+ 36984,
1054
+ 58795,
1055
+ 47217,
1056
+ 59675,
1057
+ 5681,
1058
+ 3151,
1059
+ 1271,
1060
+ 887,
1061
+ 5203,
1062
+ 2685,
1063
+ 1849,
1064
+ 72470,
1065
+ 5370,
1066
+ 74063,
1067
+ 27629,
1068
+ 1655,
1069
+ 1728,
1070
+ 669,
1071
+ 3682,
1072
+ 3191,
1073
+ 59865,
1074
+ 2712,
1075
+ 1580,
1076
+ 922,
1077
+ 77243,
1078
+ 2990,
1079
+ 78493,
1080
+ 5228,
1081
+ 2750,
1082
+ 42711,
1083
+ 44568,
1084
+ 56402,
1085
+ 48236,
1086
+ 38993,
1087
+ 43559,
1088
+ 61250,
1089
+ 32942,
1090
+ 86302,
1091
+ 25310,
1092
+ 26313,
1093
+ 81770,
1094
+ 12185,
1095
+ 78382
1096
+ ],
1097
+ "temperature": 1.1710593473251223,
1098
+ "adapter": {
1099
+ "format_version": 1,
1100
+ "rank": 16,
1101
+ "alpha": 32,
1102
+ "dropout": 0.0,
1103
+ "target_modules": [
1104
+ "language_model.layers.0.linear_attn.out_proj",
1105
+ "language_model.layers.0.linear_attn.in_proj_qkv",
1106
+ "language_model.layers.0.linear_attn.in_proj_z",
1107
+ "language_model.layers.0.mlp.gate_proj",
1108
+ "language_model.layers.0.mlp.up_proj",
1109
+ "language_model.layers.0.mlp.down_proj",
1110
+ "language_model.layers.1.linear_attn.out_proj",
1111
+ "language_model.layers.1.linear_attn.in_proj_qkv",
1112
+ "language_model.layers.1.linear_attn.in_proj_z",
1113
+ "language_model.layers.1.mlp.gate_proj",
1114
+ "language_model.layers.1.mlp.up_proj",
1115
+ "language_model.layers.1.mlp.down_proj",
1116
+ "language_model.layers.2.linear_attn.out_proj",
1117
+ "language_model.layers.2.linear_attn.in_proj_qkv",
1118
+ "language_model.layers.2.linear_attn.in_proj_z",
1119
+ "language_model.layers.2.mlp.gate_proj",
1120
+ "language_model.layers.2.mlp.up_proj",
1121
+ "language_model.layers.2.mlp.down_proj",
1122
+ "language_model.layers.3.self_attn.q_proj",
1123
+ "language_model.layers.3.self_attn.k_proj",
1124
+ "language_model.layers.3.self_attn.v_proj",
1125
+ "language_model.layers.3.self_attn.o_proj",
1126
+ "language_model.layers.3.mlp.gate_proj",
1127
+ "language_model.layers.3.mlp.up_proj",
1128
+ "language_model.layers.3.mlp.down_proj",
1129
+ "language_model.layers.4.linear_attn.out_proj",
1130
+ "language_model.layers.4.linear_attn.in_proj_qkv",
1131
+ "language_model.layers.4.linear_attn.in_proj_z",
1132
+ "language_model.layers.4.mlp.gate_proj",
1133
+ "language_model.layers.4.mlp.up_proj",
1134
+ "language_model.layers.4.mlp.down_proj",
1135
+ "language_model.layers.5.linear_attn.out_proj",
1136
+ "language_model.layers.5.linear_attn.in_proj_qkv",
1137
+ "language_model.layers.5.linear_attn.in_proj_z",
1138
+ "language_model.layers.5.mlp.gate_proj",
1139
+ "language_model.layers.5.mlp.up_proj",
1140
+ "language_model.layers.5.mlp.down_proj",
1141
+ "language_model.layers.6.linear_attn.out_proj",
1142
+ "language_model.layers.6.linear_attn.in_proj_qkv",
1143
+ "language_model.layers.6.linear_attn.in_proj_z",
1144
+ "language_model.layers.6.mlp.gate_proj",
1145
+ "language_model.layers.6.mlp.up_proj",
1146
+ "language_model.layers.6.mlp.down_proj",
1147
+ "language_model.layers.7.self_attn.q_proj",
1148
+ "language_model.layers.7.self_attn.k_proj",
1149
+ "language_model.layers.7.self_attn.v_proj",
1150
+ "language_model.layers.7.self_attn.o_proj",
1151
+ "language_model.layers.7.mlp.gate_proj",
1152
+ "language_model.layers.7.mlp.up_proj",
1153
+ "language_model.layers.7.mlp.down_proj",
1154
+ "language_model.layers.8.linear_attn.out_proj",
1155
+ "language_model.layers.8.linear_attn.in_proj_qkv",
1156
+ "language_model.layers.8.linear_attn.in_proj_z",
1157
+ "language_model.layers.8.mlp.gate_proj",
1158
+ "language_model.layers.8.mlp.up_proj",
1159
+ "language_model.layers.8.mlp.down_proj",
1160
+ "language_model.layers.9.linear_attn.out_proj",
1161
+ "language_model.layers.9.linear_attn.in_proj_qkv",
1162
+ "language_model.layers.9.linear_attn.in_proj_z",
1163
+ "language_model.layers.9.mlp.gate_proj",
1164
+ "language_model.layers.9.mlp.up_proj",
1165
+ "language_model.layers.9.mlp.down_proj",
1166
+ "language_model.layers.10.linear_attn.out_proj",
1167
+ "language_model.layers.10.linear_attn.in_proj_qkv",
1168
+ "language_model.layers.10.linear_attn.in_proj_z",
1169
+ "language_model.layers.10.mlp.gate_proj",
1170
+ "language_model.layers.10.mlp.up_proj",
1171
+ "language_model.layers.10.mlp.down_proj",
1172
+ "language_model.layers.11.self_attn.q_proj",
1173
+ "language_model.layers.11.self_attn.k_proj",
1174
+ "language_model.layers.11.self_attn.v_proj",
1175
+ "language_model.layers.11.self_attn.o_proj",
1176
+ "language_model.layers.11.mlp.gate_proj",
1177
+ "language_model.layers.11.mlp.up_proj",
1178
+ "language_model.layers.11.mlp.down_proj",
1179
+ "language_model.layers.12.linear_attn.out_proj",
1180
+ "language_model.layers.12.linear_attn.in_proj_qkv",
1181
+ "language_model.layers.12.linear_attn.in_proj_z",
1182
+ "language_model.layers.12.mlp.gate_proj",
1183
+ "language_model.layers.12.mlp.up_proj",
1184
+ "language_model.layers.12.mlp.down_proj",
1185
+ "language_model.layers.13.linear_attn.out_proj",
1186
+ "language_model.layers.13.linear_attn.in_proj_qkv",
1187
+ "language_model.layers.13.linear_attn.in_proj_z",
1188
+ "language_model.layers.13.mlp.gate_proj",
1189
+ "language_model.layers.13.mlp.up_proj",
1190
+ "language_model.layers.13.mlp.down_proj",
1191
+ "language_model.layers.14.linear_attn.out_proj",
1192
+ "language_model.layers.14.linear_attn.in_proj_qkv",
1193
+ "language_model.layers.14.linear_attn.in_proj_z",
1194
+ "language_model.layers.14.mlp.gate_proj",
1195
+ "language_model.layers.14.mlp.up_proj",
1196
+ "language_model.layers.14.mlp.down_proj",
1197
+ "language_model.layers.15.self_attn.q_proj",
1198
+ "language_model.layers.15.self_attn.k_proj",
1199
+ "language_model.layers.15.self_attn.v_proj",
1200
+ "language_model.layers.15.self_attn.o_proj",
1201
+ "language_model.layers.15.mlp.gate_proj",
1202
+ "language_model.layers.15.mlp.up_proj",
1203
+ "language_model.layers.15.mlp.down_proj",
1204
+ "language_model.layers.16.linear_attn.out_proj",
1205
+ "language_model.layers.16.linear_attn.in_proj_qkv",
1206
+ "language_model.layers.16.linear_attn.in_proj_z",
1207
+ "language_model.layers.16.mlp.gate_proj",
1208
+ "language_model.layers.16.mlp.up_proj",
1209
+ "language_model.layers.16.mlp.down_proj",
1210
+ "language_model.layers.17.linear_attn.out_proj",
1211
+ "language_model.layers.17.linear_attn.in_proj_qkv",
1212
+ "language_model.layers.17.linear_attn.in_proj_z",
1213
+ "language_model.layers.17.mlp.gate_proj",
1214
+ "language_model.layers.17.mlp.up_proj",
1215
+ "language_model.layers.17.mlp.down_proj",
1216
+ "language_model.layers.18.linear_attn.out_proj",
1217
+ "language_model.layers.18.linear_attn.in_proj_qkv",
1218
+ "language_model.layers.18.linear_attn.in_proj_z",
1219
+ "language_model.layers.18.mlp.gate_proj",
1220
+ "language_model.layers.18.mlp.up_proj",
1221
+ "language_model.layers.18.mlp.down_proj",
1222
+ "language_model.layers.19.self_attn.q_proj",
1223
+ "language_model.layers.19.self_attn.k_proj",
1224
+ "language_model.layers.19.self_attn.v_proj",
1225
+ "language_model.layers.19.self_attn.o_proj",
1226
+ "language_model.layers.19.mlp.gate_proj",
1227
+ "language_model.layers.19.mlp.up_proj",
1228
+ "language_model.layers.19.mlp.down_proj",
1229
+ "language_model.layers.20.linear_attn.out_proj",
1230
+ "language_model.layers.20.linear_attn.in_proj_qkv",
1231
+ "language_model.layers.20.linear_attn.in_proj_z",
1232
+ "language_model.layers.20.mlp.gate_proj",
1233
+ "language_model.layers.20.mlp.up_proj",
1234
+ "language_model.layers.20.mlp.down_proj",
1235
+ "language_model.layers.21.linear_attn.out_proj",
1236
+ "language_model.layers.21.linear_attn.in_proj_qkv",
1237
+ "language_model.layers.21.linear_attn.in_proj_z",
1238
+ "language_model.layers.21.mlp.gate_proj",
1239
+ "language_model.layers.21.mlp.up_proj",
1240
+ "language_model.layers.21.mlp.down_proj",
1241
+ "language_model.layers.22.linear_attn.out_proj",
1242
+ "language_model.layers.22.linear_attn.in_proj_qkv",
1243
+ "language_model.layers.22.linear_attn.in_proj_z",
1244
+ "language_model.layers.22.mlp.gate_proj",
1245
+ "language_model.layers.22.mlp.up_proj",
1246
+ "language_model.layers.22.mlp.down_proj",
1247
+ "language_model.layers.23.self_attn.q_proj",
1248
+ "language_model.layers.23.self_attn.k_proj",
1249
+ "language_model.layers.23.self_attn.v_proj",
1250
+ "language_model.layers.23.self_attn.o_proj",
1251
+ "language_model.layers.23.mlp.gate_proj",
1252
+ "language_model.layers.23.mlp.up_proj",
1253
+ "language_model.layers.23.mlp.down_proj"
1254
+ ],
1255
+ "base_checkpoint": {
1256
+ "path": "mstrasser/jeff-base",
1257
+ "weights_sha256": {
1258
+ "model.safetensors": "d324dd6c9bb61b30af65564135b33f6892c30a9b2bd22667b2e09b9c8118cf77"
1259
+ },
1260
+ "revision": "v1.3"
1261
+ }
1262
+ },
1263
+ "prompt_layout": "live-last"
1264
+ }
example.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "aml",
3
+ "state": {
4
+ "institution": "Meridian Crypto Exchange is a crypto exchange based in Italy. It serves these customer groups: private crypto investor, business accepting crypto payments. Clear means the review is closed with a short note; investigate means an analyst opens a case and reviews the customer's documents; escalate means the case goes to the money-laundering reporting officer, who decides on a report to the authorities; block means the payment is stopped and the account frozen until compliance decides.\n\nMonitoring rules (all amounts in euro):\nEach review covers one customer's last 30 days. Transfers between the customer's own accounts and wallets (listed in the customer profile) are ignored by every rule.\nWarning signs:\nW1 Structuring: 3 or more deposits made with cash vouchers bought at partner kiosks each from 2,400.00 up to just under the reporting threshold of 3,000.00.\nW2 Rapid pass-through: the incoming money totals at least 1,000.00 and at least 90% of it is sent out again (by any payment or cash withdrawal) within 72 hours of arriving.\nW3 Many senders: money comes from more different senders than the customer profile expects per month.\nW4 Many recipients: money goes to more different recipients than the customer profile expects per month.\nW8 High-risk country: a payment to or from a country on the high-risk list that the customer profile does not list as an expected country.\nHigh-risk countries: Algeria, Bulgaria, Cameroon, Lebanon, Mali, Nigeria, Philippines, South Sudan, Venezuela.\nBlocked countries: Belarus, North Korea, Syria.\nBlocked parties: Field Summit EOOD (Bulgaria); Ember Nova Company (Bolivia); Coral Alder Ltd (Malta).\nActions (exactly one applies):\nblock: any payment to or from a blocked country or a blocked party, whatever else the activity shows.\nescalate: two or more different warning signs, or W2 (Rapid pass-through) even on its own.\ninvestigate: exactly one warning sign, other than W2.\nclear: no warning sign and no blocked country or party.",
5
+ "customer": "Customer: Kenji Okafor (individual), customer since November 2019.\nSegment: private crypto investor. Occupation or business: shop owner investing in crypto.\nExpected incoming: about 620.00 a month.\nExpected senders: up to 8 different senders a month. Expected recipients: up to 6 different recipients a month.\nExpected countries: Italy, Lebanon.\nOwn accounts and wallets: bank account ending 5014 at another bank; own hardware wallet 0xb84f...182c.",
6
+ "activity": "Review period: 1 June 2026 to 30 June 2026 (30 days). Amounts in euro.\nPayments:\n01 Jun 09:12 received 46.76 by crypto deposit from wallet 0x576b...5f0d at FalconCoin (Italy)\n10 Jun 17:34 sent 376.32 by crypto withdrawal to wallet 0x3292...217b (private wallet, owner and country unknown)\n14 Jun 14:23 received 478.54 by crypto deposit from wallet 0x576b...5f0d at FalconCoin (Italy)\nSummary (transfers between own accounts left out):\n- incoming: 2 payments, total 525.30, from 1 different senders\n- outgoing: 1 payments, total 376.32, to 1 different recipients\n- share of incoming money sent out again within 72 hours: 0%\n- counterparty countries: Italy"
7
+ },
8
+ "questions": {
9
+ "action": {
10
+ "type": "choice",
11
+ "instructions": "A compliance analyst at the institution described above reviews this customer's last 30 days of activity. Which action does the institution's monitoring policy require?",
12
+ "criteria": {
13
+ "block": "Block: at least one payment goes to or comes from a blocked country or a blocked party, whatever else.",
14
+ "investigate": "Investigate: exactly one warning sign applies, and the policy does not say to escalate that one alone.",
15
+ "escalate": "Escalate: two or more different warning signs apply, or a sign that the policy says to escalate alone.",
16
+ "clear": "Clear: no warning sign applies at all, and no payment involves a blocked country or any blocked party."
17
+ }
18
+ }
19
+ }
20
+ }
readout.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e922205867c51855f7f48d7b3e8c4bf1c1b009757dbbd7ef6fe3d29aff42ad6f
3
+ size 522320