prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct
<div align="center" style="padding:46px 30px;border-radius:30px;background:linear-gradient(135deg,#ffffff 0%,#f7fcff 18%,#eef8ff 40%,#e9fbff 70%,#f8fdff 100%);border:1px solid #cfe8f5;box-shadow:0 18px 46px rgba(14,116,144,0.11);">
<div style="margin-bottom:14px;"> <span style="display:inline-block;width:15px;height:15px;border-radius:999px;background:#e0f2fe;margin:0 5px;border:1px solid #bae6fd;"></span> <span style="display:inline-block;width:15px;height:15px;border-radius:999px;background:#cffafe;margin:0 5px;border:1px solid #a5f3fc;"></span> <span style="display:inline-block;width:15px;height:15px;border-radius:999px;background:#ccfbf1;margin:0 5px;border:1px solid #99f6e4;"></span> <span style="display:inline-block;width:15px;height:15px;border-radius:999px;background:#dbeafe;margin:0 5px;border:1px solid #bfdbfe;"></span> </div>
<h1 style="margin:0 0 12px 0;">MoneyOps: Constraint-Aware Personal Finance Reasoning</h1> <p style="font-size:19px;margin:0 0 12px 0;"><strong>A Llama 4 Scout LoRA that separates verified arithmetic from preference-sensitive financial decisions.</strong></p> <p style="max-width:920px;margin:0 auto;">Trained by Adaption AutoScientist on the remastered MoneyOps instruction dataset.</p>
</div>
<p align="center"><img src="assets/moneyops-win-rates.png" alt="MoneyOps win rates" width="100%" style="border-radius:22px;border:1px solid #cfe8f5;box-shadow:0 14px 34px rgba(14,116,144,0.09);background:linear-gradient(180deg,#ffffff,#f5fcff);"></p>
TL;DR
<div style="padding:22px 24px;border-radius:22px;background:linear-gradient(135deg,#ffffff 0%,#eff9ff 35%,#eefcfb 68%,#f8feff 100%);border:1px solid #cfe8f5;box-shadow:0 10px 26px rgba(14,116,144,0.07);">
MoneyOps turns concrete financial inputs into reconciled calculations, decision conditions, and actionable next steps. It was adapted for cash-flow planning, debt decisions, savings goals, rates, liquidity, irregular income, and limitation handling without presenting subjective heuristics as mathematical truth.
This repository contains a PEFT LoRA adapter, tokenizer, chat template, and training metadata. It is not a standalone Llama 4 checkpoint and must be loaded with the compatible Llama 4 Scout base recorded in adapter_config.json.
Training data: MoneyOps on Hugging Face
</div>
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Contents
- Why MoneyOps
- The design response
- What it can do
- Data adaptation
- Example
- Evaluation
- Model details
- Training configuration
- How to use
- Intended use
- Limitations
- Reproducibility
- Citation
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Why MoneyOps
<div style="padding:20px 22px;border-radius:22px;background:linear-gradient(135deg,#ffffff,#f5fcff,#eefcfb);border:1px solid #cfe8f5;box-shadow:0 8px 22px rgba(14,116,144,0.06);">
Personal-finance questions often combine arithmetic with preferences and uncertainty. A mathematically feasible choice is not automatically the right recommendation: liquidity, income stability, dependants, deadlines, risk tolerance, and the user's own priorities can change the decision.
MoneyOps was built to keep these layers separate. It verifies calculations and hard constraints, then presents a direct answer that can be deterministic, conditional, range-based, or one of several reasonable alternatives. When essential information is missing, the preferred behavior is to ask a focused question or bound the answer instead of inventing a rule.
The central failure mode is a polished recommendation built on unreconciled numbers or an unstated preference:
</div>
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
The design response
<div style="padding:20px 22px;border-radius:22px;background:linear-gradient(135deg,#ffffff,#eef8ff,#f0fdff);border:1px solid #cde7ef;box-shadow:0 8px 22px rgba(8,145,178,0.06);">
MoneyOps combines a deterministic finance engine with natural-language teaching. The engine verifies calculations and feasibility; it does not decide subjective preferences. An independently compiled answer key separates:
verified_factsandhard_constraints;decision_conditionsandreasonable_options;- the required
recommendation_mode; prohibited_conclusionsthat the scenario cannot support.
The assistant then gives the direct answer first, shows the relevant calculation, and adds trade-offs or questions only when they can change the decision.
</div>
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
What it can do
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Data adaptation
<div style="padding:20px 22px;border-radius:22px;background:linear-gradient(135deg,#fbfeff,#eef9ff,#ecfeff);border:1px solid #bae6fd;box-shadow:0 10px 26px rgba(6,182,212,0.06);">
The model was not trained on the original source rows unchanged.
- A deterministic finance pipeline created the source scenarios, calculations, answer keys, and natural responses.
- Exactly 9,906 quality-controlled source rows were uploaded to Adaption.
- Adaption remastered those records into its stronger instruction/completion format, adding task framing and response-shaping constraints while preserving the underlying financial problem.
- AutoScientist reports that 9,485 adapted rows were used for the SFT run.
The remastered prompt may include an explicit task wrapper, a domain-relevant persona, formatting expectations, and a same-language instruction. Those controls are part of the adapted training input. The assistant target should follow them naturally without revealing or discussing the hidden persona or constraint block.
</div>
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Example
The following is an actual MoneyOps example after Adaption remastering, shortened only to keep the card readable.
<details> <summary><strong>Adapted user instruction</strong></summary>
Provide your response to the following prompt:<prompt>Act as a personal finance expert. I have a clear picture of my cash flow for the next six months and need a reserve plan to ensure I have enough funds for low-income months without over-saving during high-income ones. Starting liquid cash: EUR 588.80 Monthly committed expenses: EUR 2,208.00 Projected income for months 1-6: EUR 4,960.00, 4,480.00, 3,840.00, 2,400.00, 1,920.00, and 1,760.00. Provide projected ending cash, the amount to set aside or withdraw each month, and a brief explanation of the reserve strategy.</prompt>The stored instruction additionally asks for a pragmatic variable-income finance perspective, prohibits disclosure of that persona, and requires the response to use the language of the user's prompt.
</details>
<details> <summary><strong>Adapted assistant answer</strong></summary>
Cash Flow Stability Plan (6-Month Horizon) The plan uses income smoothing. Average monthly income is EUR 3,226.67. Income above that level is moved to a reserve; income below it is supplemented from the reserve. | Month | Income | Expenses | Net flow | Reserve action | Ending liquid cash | |---:|---:|---:|---:|---:|---:| | 1 | EUR 4,960.00 | EUR 2,208.00 | +EUR 2,752.00 | Set aside EUR 1,733.33 | EUR 3,340.80 | | 2 | EUR 4,480.00 | EUR 2,208.00 | +EUR 2,272.00 | Set aside EUR 1,253.33 | EUR 5,612.80 | | 3 | EUR 3,840.00 | EUR 2,208.00 | +EUR 1,632.00 | Set aside EUR 613.34 | EUR 7,244.80 | | 4 | EUR 2,400.00 | EUR 2,208.00 | +EUR 192.00 | Withdraw EUR 826.67 | EUR 7,436.80 | | 5 | EUR 1,920.00 | EUR 2,208.00 | -EUR 288.00 | Withdraw EUR 1,306.67 | EUR 7,148.80 | | 6 | EUR 1,760.00 | EUR 2,208.00 | -EUR 448.00 | Withdraw EUR 1,466.66 | EUR 6,700.80 | Months 1-3 accumulate EUR 3,600.00 in reserves and months 4-6 distribute EUR 3,600.00. This decouples available monthly income from uneven invoice receipts while preserving total liquidity.
</details>
The full training target contains the complete explanation, including the strategy, liquidity interpretation, and safety margin. This example demonstrates the actual adapted style rather than the pre-Adaption source response.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Evaluation
<a id="autoscientist-win-rates"></a> <details open style="margin:16px 0;border:1px solid #cfe8f5;border-radius:18px;padding:0 16px;background:linear-gradient(135deg,#ffffff,#f7fcff,#effcfb);"> <summary style="cursor:pointer;padding:14px 0;"><strong>AutoScientist win rates</strong></summary>
These are the whole-number labels shown in the current Adaption AutoScientist win-rate charts for training experiment 5402e484-bc95-45b5-8a8f-d1aac8cf00e8. They are platform-reported preference results. The interface does not expose sample counts, confidence intervals, or a public item-level evaluation set, so the values should not be interpreted as universal financial accuracy estimates.
</details>
<a id="dataset-adaptation-measurements"></a> <details open style="margin:16px 0;border:1px solid #bae6fd;border-radius:18px;padding:0 16px;background:linear-gradient(135deg,#ffffff,#f7fcff,#effcfb);"> <summary style="cursor:pointer;padding:14px 0;"><strong>Dataset adaptation measurements</strong></summary>
Adaption reports a 13.7% relative improvement in dataset quality. These measurements describe Adaption's evaluation of this dataset transformation; they are not external finance benchmarks.
<p align="center"><img src="assets/moneyops-training.png" alt="MoneyOps training telemetry" width="100%" style="border-radius:22px;border:1px solid #cde7ef;box-shadow:0 14px 34px rgba(8,145,178,0.09);background:linear-gradient(180deg,#ffffff,#f2fbff);"></p>
The loss, learning-rate, and gradient-norm charts document optimization behavior. Training curves alone do not establish numerical correctness, calibration, or generalization to current laws and financial products.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
</details>
Model details
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Training configuration
The AutoScientist-selected configuration was used unchanged.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
How to use
<div style="padding:20px 22px;border-radius:22px;background:linear-gradient(135deg,#ffffff,#f5fcff,#eef8ff);border:1px solid #cfe8f5;box-shadow:0 10px 26px rgba(14,116,144,0.06);">
The public repository contains a 403 MB PEFT adapter. Its exported configuration points to a 4-bit Llama 4 Scout base; access to that base and hardware capable of serving it are still required.
pip install torch transformers peft accelerate bitsandbytesimport torch
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
ADAPTER = "prathmeshadsod/MoneyOps-Llama-4-Scout-17B-16E-Instruct"
peft_config = PeftConfig.from_pretrained(ADAPTER)
base_model_path = peft_config.base_model_name_or_path
base = AutoModelForCausalLM.from_pretrained(
base_model_path,
device_map="auto",
torch_dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(base, ADAPTER)
tokenizer = AutoTokenizer.from_pretrained(ADAPTER)
messages = [{
"role": "user",
"content": (
"My monthly take-home pay is 3,800, essential expenses are 2,450, "
"and I have 4,000 in liquid savings. How many months of essential "
"expenses does that cover, and what should I check before using "
"part of it for an extra debt payment?"
),
}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=512, do_sample=False)
new_tokens = output[0][inputs["input_ids"].shape[-1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))The recorded base path is togethercomputer/Llama-4-Scout-17B-16E-Instruct_bnb_4bit. It comes directly from the published adapter configuration, not from an inferred naming convention. That base may require separate authorization. Use the tokenizer and chat template shipped with this adapter. Merging is optional and should be tested separately.
</div>
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Intended use
MoneyOps is intended for:
- personal-finance education and planning assistance;
- budgeting, cash-flow, and irregular-income analysis;
- debt, savings-goal, and affordability comparisons;
- checking user-supplied calculations;
- explaining trade-offs and decision-changing conditions;
- research on narrow-domain instruction adaptation.
It is not a fiduciary, lender, accountant, tax adviser, attorney, or insurance professional. Users remain responsible for verifying inputs, product terms, and decisions with appropriate qualified professionals.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Limitations
- V1 is jurisdiction-neutral. It does not encode current tax, legal, pension, credit-regulation, or insurance rules unless those rules are supplied in the prompt.
- The model can still make arithmetic errors, omit a cash-flow item, or misunderstand whether a balance is liquid, recurring, gross, or net. Reconcile important calculations independently.
- Recommendations depend on risk tolerance, income stability, dependants, liquidity preferences, deadlines, and goals. A numerically valid option is not automatically the user's preferred choice.
- Current rates, fees, product terms, and laws can change. The model should not invent or silently assume them.
- The training corpus is synthetic and adapted. Its prompt wrappers, personas, formatting habits, and teacher style may transfer into generations.
- A publication audit found six exact normalized duplicate enhanced-completion rows and a concentrated empathetic opening pattern. Evaluate response directness and opening diversity for the intended deployment.
- AutoScientist preference win rates are platform measurements without published confidence intervals or item-level evaluation data.
- The adaptation is text-only. It was not evaluated for financial document images, account access, transaction execution, or autonomous financial actions.
- Do not use MoneyOps for emergency, insolvency, regulated, or high-stakes decisions without qualified human review.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Reproducibility
The exported adapter repository contains adapter_model.safetensors, adapter_config.json, tokenizer files, the chat template, trainer state, and evaluation images. Its adapter configuration records rank 64, alpha 128, zero dropout, and the four attention projection targets listed above.
<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Citation
@misc{adsod2026moneyops,
author = {Prathmesh Adsod},
title = {MoneyOps: Personal Finance Reasoning with Llama 4 Scout},
year = {2026},
note = {Adaption AutoScientist Challenge submission}
}<div style="height:3px;border-radius:999px;background:linear-gradient(90deg,#e0f2fe 0%,#a5f3fc 24%,#7dd3fc 48%,#99f6e4 72%,#f8fafc 100%);margin:32px 0 20px 0;"></div>
Acknowledgements
Built for the Adaption AutoScientist Challenge. Adaption remastered the source dataset, selected the training configuration, trained the LoRA adapter with AutoScientist, and produced the displayed evaluation results. The source pipeline supplied deterministic calculations, separated answer keys, natural prompts, and grounded response targets.
