CoolFace
Modelpublic

gaparecido/apertus-8b-financial-reasoner-v1

sourceHugging Faceapache-2.0updated 10d agoView on Hugging Face
1likes409downloads
Model Card

apertus-8b-financial-reasoner-v1

A fine-tune of swiss-ai/Apertus-8B-Instruct-2509 for two-stage financial analysis of a stock ticker:

  • —Task A – classify how the market reacted to a news item given the price move (good, bad, neutral, overreaction_down, overreaction_up).
  • —Task B – given that reaction, a valuation gap, and a deterministic BUY/SELL/HOLD recommendation, write the reasoning and answer as JSON.

The model never decides BUY/SELL/HOLD itself; that comes from a deterministic fusion of Task A's output and a scenario-DCF valuation gap.

Format

Full merged checkpoint in bfloat16 (~16 GB, 4 safetensors shards). It is not pre-quantized — load it in 4-bit at runtime if you need to fit a small GPU:

python
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    "gaparecido/apertus-8b-financial-reasoner-v1",
    max_seq_length=2048,
    load_in_4bit=True,
)
FastLanguageModel.for_inference(model)
model.config.use_cache = True
model.generation_config.use_cache = True

Serving notes

- Needs a bf16-capable GPU (L4 / A10G / A100 or better). Apertus is bf16-trained; in fp16 on a T4 the logits overflow to NaN and every generated token is <unk>.
- The upstream Apertus config ships use_cache: false and this repo has no generation_config.json to override it, so pin use_cache=True (as above) or generation recomputes attention over the full sequence per token.
- The CUDA-fused xIELU not available warning is harmless — the Python fallback costs ~10% throughput.

Training

Trained with Unsloth (https://github.com/unslothai/unsloth) (QLoRA, 4-bit) and Hugging Face TRL, loaded from Unsloth's unsloth/apertus-8b-instruct-2509-unsloth-bnb-4bit mirror of the base model, on an NVIDIA L4.