初始化项目,由ModelHub XC社区提供模型

Model: asinha08/slm-125m-sft-pilot-2k
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-08-24 19:23:17 +08:00
commit d86143f1a2
9 changed files with 81546 additions and 0 deletions

35
.gitattributes vendored Normal file
View File

@@ -0,0 +1,35 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text

91
README.md Normal file
View File

@@ -0,0 +1,91 @@
---
license: apache-2.0
base_model: thesreedath/slm-125m-base
library_name: transformers
pipeline_tag: text-generation
tags:
- llama
- causal-lm
- sft
- legal
- financial
- small-language-model
---
# SLM 125M SFT Pilot 2K
This is a supervised fine-tuned 125M-parameter causal language model based on
[`thesreedath/slm-125m-base`](https://huggingface.co/thesreedath/slm-125m-base).
## Training Summary
| Field | Value |
|---|---:|
| SFT dataset run | `pilot-2k-v2` |
| Train examples | 1800 |
| Validation examples | 100 |
| Epochs | 3 |
| Optimizer steps | 339 |
| Train tokens per epoch | 1262981 |
| Assistant-label tokens per epoch | 62190 |
| Total train-token exposures | 3788943 |
| Total assistant-label token exposures | 186570 |
| Initial validation loss | 3.6077 |
| Initial validation perplexity | 36.88 |
| Final validation loss | 1.5028 |
| Final validation perplexity | 4.49 |
| Training elapsed seconds | 160.1 |
| Estimated GPU-only training cost | $0.0355 |
## Dataset
The SFT dataset contains 2,000 generated and judged instruction examples:
| Split | Examples |
|---|---:|
| Train | 1,800 |
| Validation | 100 |
| Test | 100 |
Source mix:
| Source | Examples |
|---|---:|
| Case law | 703 |
| SEC filings | 890 |
| FineWeb-Edu | 407 |
Task types include grounded question answering, unanswerable/refusal cases,
multi-step QA, JSON extraction, summarization, plain-English rewrites, and
comparative QA.
## Intended Use
This is a small research/experimentation model for legal and financial
instruction-following behavior. It is not a substitute for professional legal,
financial, or compliance advice.
## Prompt Format
The model was trained with the tokenizer/chat markers from the base model:
```text
<|system|>
You are a careful legal and financial assistant...
<|user|>
Context:
...
Question:
...
<|assistant|>
...
<|eos|>
```
## Limitations
- The SFT dataset is small, so behavior should be evaluated carefully.
- Answers should be grounded in supplied context.
- The model may hallucinate if used without retrieval/context.
- Perplexity is measured on the generated validation split, not a broad external benchmark.

30
config.json Normal file
View File

@@ -0,0 +1,30 @@
{
"_name_or_path": "thesreedath/slm-125m-base",
"architectures": [
"LlamaForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"bos_token_id": 1,
"eos_token_id": 2,
"head_dim": 64,
"hidden_act": "silu",
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"max_position_embeddings": 1024,
"mlp_bias": false,
"model_type": "llama",
"num_attention_heads": 12,
"num_hidden_layers": 12,
"num_key_value_heads": 12,
"pretraining_tp": 1,
"rms_norm_eps": 1e-05,
"rope_scaling": null,
"rope_theta": 10000.0,
"tie_word_embeddings": true,
"torch_dtype": "bfloat16",
"transformers_version": "4.46.3",
"use_cache": false,
"vocab_size": 16384
}

6
generation_config.json Normal file
View File

@@ -0,0 +1,6 @@
{
"_from_model_config": true,
"bos_token_id": 1,
"eos_token_id": 2,
"transformers_version": "4.46.3"
}

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a8eeb86e2bbdcf93c2a0b1c894c4be89f809ba638cbf8f53e5262180bd9dfe45
size 251708904

308
sft_summary.json Normal file
View File

@@ -0,0 +1,308 @@
{
"run_name": "pilot-2k-v2",
"finetune_name": "slm-125m-sft-pilot-2k-e3",
"base_model_repo": "thesreedath/slm-125m-base",
"output_dir": "/data/sft/thesreedath-slm-125m/finetunes/slm-125m-sft-pilot-2k-e3",
"epochs": 3,
"optimizer_steps": 339,
"train_examples": 1800,
"val_examples": 100,
"train_tokens_per_epoch": 1262981,
"train_assistant_tokens_per_epoch": 62190,
"tokens_seen": 3788943,
"assistant_tokens_seen": 186570,
"initial_val_loss": 3.6076530987264204,
"initial_val_ppl": 36.87939886230172,
"final_val_loss": 1.5027814324426207,
"final_val_ppl": 4.494171937794634,
"elapsed_seconds": 160.08841013908386,
"estimated_gpu_usd": 0.03553962705087662,
"history": [
{
"step": 0,
"event": "initial_eval",
"val_loss": 3.6076530987264204,
"val_ppl": 36.87939886230172
},
{
"step": 1,
"event": "train_log",
"epoch": 1,
"train_loss": 3.3445167541503906,
"lr": 3.125e-06
},
{
"step": 10,
"event": "train_log",
"epoch": 1,
"train_loss": 3.2654700875282288,
"lr": 3.125e-05
},
{
"step": 20,
"event": "train_log",
"epoch": 1,
"train_loss": 2.046467971801758,
"lr": 4.9981082231081334e-05
},
{
"step": 30,
"event": "train_log",
"epoch": 1,
"train_loss": 1.6243530839681626,
"lr": 4.976858599798299e-05
},
{
"step": 40,
"event": "train_log",
"epoch": 1,
"train_loss": 1.5121346324682237,
"lr": 4.932196167813559e-05
},
{
"step": 50,
"event": "train_log",
"epoch": 1,
"train_loss": 1.4252592638134955,
"lr": 4.864543104251587e-05
},
{
"step": 50,
"event": "eval",
"epoch": 1,
"val_loss": 1.6063852179899305,
"val_ppl": 4.9847598014490835
},
{
"step": 60,
"event": "train_log",
"epoch": 1,
"train_loss": 1.4405100345611572,
"lr": 4.774538907965318e-05
},
{
"step": 70,
"event": "train_log",
"epoch": 1,
"train_loss": 1.3378228411078452,
"lr": 4.663034354621863e-05
},
{
"step": 80,
"event": "train_log",
"epoch": 1,
"train_loss": 1.404534536600113,
"lr": 4.531083454641531e-05
},
{
"step": 90,
"event": "train_log",
"epoch": 1,
"train_loss": 1.3485690742731093,
"lr": 4.3799334900354815e-05
},
{
"step": 100,
"event": "train_log",
"epoch": 1,
"train_loss": 1.5101487711071968,
"lr": 4.211013224320062e-05
},
{
"step": 100,
"event": "eval",
"epoch": 1,
"val_loss": 1.5369550711230229,
"val_ppl": 4.650408527530095
},
{
"step": 110,
"event": "train_log",
"epoch": 1,
"train_loss": 1.3192693248391152,
"lr": 4.025919396955019e-05
},
{
"step": 120,
"event": "train_log",
"epoch": 2,
"train_loss": 1.2987151977262998,
"lr": 3.826401629968575e-05
},
{
"step": 130,
"event": "train_log",
"epoch": 2,
"train_loss": 1.1192938029766082,
"lr": 3.6143458894413465e-05
},
{
"step": 140,
"event": "train_log",
"epoch": 2,
"train_loss": 1.1743364408612251,
"lr": 3.3917566581814276e-05
},
{
"step": 150,
"event": "train_log",
"epoch": 2,
"train_loss": 1.1988286420702934,
"lr": 3.160737988105633e-05
},
{
"step": 150,
"event": "eval",
"epoch": 2,
"val_loss": 1.5214578169787263,
"val_ppl": 4.578895523539861
},
{
"step": 160,
"event": "train_log",
"epoch": 2,
"train_loss": 1.192124105989933,
"lr": 2.9234736114315616e-05
},
{
"step": 170,
"event": "train_log",
"epoch": 2,
"train_loss": 1.1844297125935555,
"lr": 2.6822062986818796e-05
},
{
"step": 180,
"event": "train_log",
"epoch": 2,
"train_loss": 1.2872302904725075,
"lr": 2.4392166586218103e-05
},
{
"step": 190,
"event": "train_log",
"epoch": 2,
"train_loss": 1.18301559984684,
"lr": 2.1968015805260062e-05
},
{
"step": 200,
"event": "train_log",
"epoch": 2,
"train_loss": 1.217595275491476,
"lr": 1.9572525225519227e-05
},
{
"step": 200,
"event": "eval",
"epoch": 2,
"val_loss": 1.5065097094689361,
"val_ppl": 4.51095872924231
},
{
"step": 210,
"event": "train_log",
"epoch": 2,
"train_loss": 1.2071400985121727,
"lr": 1.7228338514514846e-05
},
{
"step": 220,
"event": "train_log",
"epoch": 2,
"train_loss": 1.2201956912875176,
"lr": 1.495761438367577e-05
},
{
"step": 230,
"event": "train_log",
"epoch": 3,
"train_loss": 1.162185350531026,
"lr": 1.2781817130412088e-05
},
{
"step": 240,
"event": "train_log",
"epoch": 3,
"train_loss": 1.2239526972174644,
"lr": 1.0721513744220169e-05
},
{
"step": 250,
"event": "train_log",
"epoch": 3,
"train_loss": 1.0888006776571273,
"lr": 8.796179494700441e-06
},
{
"step": 250,
"event": "eval",
"epoch": 3,
"val_loss": 1.5030882143383795,
"val_ppl": 4.495550879887996
},
{
"step": 260,
"event": "train_log",
"epoch": 3,
"train_loss": 1.166143298894167,
"lr": 7.02401383919088e-06
},
{
"step": 270,
"event": "train_log",
"epoch": 3,
"train_loss": 1.1675694316625596,
"lr": 5.421768390171933e-06
},
{
"step": 280,
"event": "train_log",
"epoch": 3,
"train_loss": 1.1555261366069316,
"lr": 4.004588568601897e-06
},
{
"step": 290,
"event": "train_log",
"epoch": 3,
"train_loss": 1.0684210263192653,
"lr": 2.7858704399739895e-06
},
{
"step": 300,
"event": "train_log",
"epoch": 3,
"train_loss": 1.1304051853716373,
"lr": 1.7771340863698306e-06
},
{
"step": 300,
"event": "eval",
"epoch": 3,
"val_loss": 1.5036853406266901,
"val_ppl": 4.498236093124735
},
{
"step": 310,
"event": "train_log",
"epoch": 3,
"train_loss": 1.17097322717309,
"lr": 9.879147114753545e-07
},
{
"step": 320,
"event": "train_log",
"epoch": 3,
"train_loss": 1.0470945492386818,
"lr": 4.256725079024554e-07
},
{
"step": 330,
"event": "train_log",
"epoch": 3,
"train_loss": 1.1463549926877021,
"lr": 9.572213880643111e-08
}
]
}

35
special_tokens_map.json Normal file
View File

@@ -0,0 +1,35 @@
{
"additional_special_tokens": [
"<|user|>",
"<|assistant|>",
"<|system|>"
],
"bos_token": {
"content": "<|bos|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
},
"eos_token": {
"content": "<|eos|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
},
"pad_token": {
"content": "<|pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
},
"unk_token": {
"content": "<|unk|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false
}
}

80966
tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

72
tokenizer_config.json Normal file
View File

@@ -0,0 +1,72 @@
{
"added_tokens_decoder": {
"0": {
"content": "<|bos|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"1": {
"content": "<|eos|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"2": {
"content": "<|pad|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"3": {
"content": "<|unk|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"4": {
"content": "<|user|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"5": {
"content": "<|assistant|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
},
"6": {
"content": "<|system|>",
"lstrip": false,
"normalized": false,
"rstrip": false,
"single_word": false,
"special": true
}
},
"additional_special_tokens": [
"<|user|>",
"<|assistant|>",
"<|system|>"
],
"bos_token": "<|bos|>",
"clean_up_tokenization_spaces": false,
"eos_token": "<|eos|>",
"model_max_length": 1000000000000000019884624838656,
"pad_token": "<|pad|>",
"tokenizer_class": "PreTrainedTokenizerFast",
"unk_token": "<|unk|>"
}