Downloads · 30 days
16
2% of all-time downloads
srinivasch87/slm125live-base
slm125live-base is a text generation model from srinivasch87. Use it when you need the model to write or continue text. It is set up for transformers.
SLM125 is a small (~125.8M parameter), decoder-only transformer pretrained from scratch on a legal- and finance-heavy corpus. It is a base model — it completes text, it is not instruction-tuned or chat-tuned. Give it…
Downloads · 30 days
16
2% of all-time downloads
All-time downloads
724
Public
Parameters
126M
503 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors503 MB · 100%
From the Hugging Face model README
SLM125 is a small (~125.8M parameter), decoder-only transformer pretrained from scratch on a legal- and finance-heavy corpus. It is a base model — it completes text, it is not instruction-tuned or chat-tuned. Give it a sentence to continue ("The plaintiff argued that ..."), not a question.
🔗 Try it live: SLM125 Playground
Pretrained on a cleaned, deduplicated, decontaminated corpus of ~2.19B tokens, mixed "legal-first" from three public, streamed HuggingFace datasets:
| Source | Dataset | Share | What it is |
|---|---|---|---|
| case-law | HFforLegal/case-law (us config) | ~39% (~863M tokens) | US court opinions (scanned; some OCR noise) |
| sec | PleIAs/SEC | ~39% (~861M tokens) | SEC filings (10-K, etc.), born-digital |
| fineweb-edu | HuggingFaceFW/fineweb-edu (sample-10BT) | ~21% (~465M tokens) | General educational web text, added as fluency filler |
The two legal sources were taken in full (they cap out around 2B tokens combined); a smaller web slice was added on top, landing at roughly a 40/40/20 split — about 78% legal/financial text overall, not the originally-planned 70/20/10.
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "srinivasch87/slm125live-base"
tokenizer = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo)
prompt = "The plaintiff argued that"
inputs = tokenizer(prompt, return_tensors="pt")
output = model.generate(
**inputs,
max_new_tokens=128,
do_sample=True,
temperature=0.8,
top_p=0.95,
top_k=50,
)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Built end-to-end on Modal: data cleaning, deduplication, tokenizer training, and pretraining all ran as fanned-out CPU/GPU Modal functions against a shared Modal Volume. Inference is served from a Modal web endpoint with token-streaming generation, behind a Next.js frontend deployed on Vercel (link above).