Update tokenizer, configuration and training reports
Browse files- balanced_model.py +82 -0
- config.json +65 -0
- load_model.py +11 -0
- reports/benchmark/result.json +7 -0
- reports/deadline.json +1 -0
- reports/sources/finemath/manifest.json +20 -0
- reports/status.json +1 -0
- reports/tokenizer-selection.json +152 -0
- reports/train.toml +11 -0
- tokenizer.json +0 -0
balanced_model.py
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Native Qwen3-style GQA model with explicit value residuals and tied embeddings.
|
| 2 |
+
|
| 3 |
+
State names match the reviewed JugnuVR checkpoint. Explicit v0 avoids a shared
|
| 4 |
+
mutable context dictionary in the training forward. No KV cache is implemented.
|
| 5 |
+
"""
|
| 6 |
+
import torch
|
| 7 |
+
from torch import nn
|
| 8 |
+
from torch.nn import functional as F
|
| 9 |
+
|
| 10 |
+
class RMSNorm(nn.Module):
|
| 11 |
+
def __init__(self, width, eps=1e-6):
|
| 12 |
+
super().__init__(); self.weight=nn.Parameter(torch.ones(width)); self.eps=eps
|
| 13 |
+
def forward(self,x):
|
| 14 |
+
dtype=x.dtype; x=x.float(); x=x*torch.rsqrt(x.square().mean(-1,keepdim=True)+self.eps)
|
| 15 |
+
return self.weight*x.to(dtype)
|
| 16 |
+
|
| 17 |
+
class ValueProjection(nn.Linear):
|
| 18 |
+
def __init__(self,width,out,first):
|
| 19 |
+
super().__init__(width,out,bias=False)
|
| 20 |
+
if not first:self.vr_lambda=nn.Parameter(torch.zeros(1))
|
| 21 |
+
|
| 22 |
+
class Attention(nn.Module):
|
| 23 |
+
def __init__(self,c,index):
|
| 24 |
+
super().__init__();h=c['hidden_size'];self.heads=c['num_attention_heads'];self.kv=c['num_key_value_heads'];self.d=c.get('head_dim',h//self.heads);self.first=index==0
|
| 25 |
+
self.q_proj=nn.Linear(h,self.heads*self.d,bias=False);self.k_proj=nn.Linear(h,self.kv*self.d,bias=False)
|
| 26 |
+
self.v_proj=ValueProjection(h,self.kv*self.d,self.first);self.o_proj=nn.Linear(self.heads*self.d,h,bias=False)
|
| 27 |
+
self.q_norm=RMSNorm(self.d,c.get('rms_norm_eps',1e-6));self.k_norm=RMSNorm(self.d,c.get('rms_norm_eps',1e-6))
|
| 28 |
+
def forward(self,x,cos,sin,v0):
|
| 29 |
+
b,t,_=x.shape
|
| 30 |
+
q=self.q_norm(self.q_proj(x).view(b,t,self.heads,self.d)).transpose(1,2)
|
| 31 |
+
k=self.k_norm(self.k_proj(x).view(b,t,self.kv,self.d)).transpose(1,2)
|
| 32 |
+
v=self.v_proj(x)
|
| 33 |
+
if self.first:v0=v
|
| 34 |
+
else:v=v+self.v_proj.vr_lambda*v0
|
| 35 |
+
v=v.view(b,t,self.kv,self.d).transpose(1,2)
|
| 36 |
+
def rotate(z):return torch.cat((-z[...,self.d//2:],z[...,:self.d//2]),dim=-1)
|
| 37 |
+
q=q*cos+rotate(q)*sin;k=k*cos+rotate(k)*sin
|
| 38 |
+
k=k.repeat_interleave(self.heads//self.kv,dim=1);v=v.repeat_interleave(self.heads//self.kv,dim=1)
|
| 39 |
+
out=F.scaled_dot_product_attention(q,k,v,is_causal=True)
|
| 40 |
+
return self.o_proj(out.transpose(1,2).contiguous().view(b,t,-1)),v0
|
| 41 |
+
|
| 42 |
+
class MLP(nn.Module):
|
| 43 |
+
def __init__(self,c):
|
| 44 |
+
super().__init__();h=c['hidden_size'];f=c['intermediate_size']
|
| 45 |
+
self.gate_proj=nn.Linear(h,f,bias=False);self.up_proj=nn.Linear(h,f,bias=False);self.down_proj=nn.Linear(f,h,bias=False)
|
| 46 |
+
def forward(self,x):return self.down_proj(F.silu(self.gate_proj(x))*self.up_proj(x))
|
| 47 |
+
|
| 48 |
+
class Block(nn.Module):
|
| 49 |
+
def __init__(self,c,i):
|
| 50 |
+
super().__init__();self.self_attn=Attention(c,i);self.mlp=MLP(c)
|
| 51 |
+
self.input_layernorm=RMSNorm(c['hidden_size'],c.get('rms_norm_eps',1e-6));self.post_attention_layernorm=RMSNorm(c['hidden_size'],c.get('rms_norm_eps',1e-6))
|
| 52 |
+
def forward(self,x,cos,sin,v0):
|
| 53 |
+
a,v0=self.self_attn(self.input_layernorm(x),cos,sin,v0);x=x+a
|
| 54 |
+
return x+self.mlp(self.post_attention_layernorm(x)),v0
|
| 55 |
+
|
| 56 |
+
class Backbone(nn.Module):
|
| 57 |
+
def __init__(self,c):
|
| 58 |
+
super().__init__();self.embed_tokens=nn.Embedding(c['vocab_size'],c['hidden_size']);self.layers=nn.ModuleList([Block(c,i) for i in range(c['num_hidden_layers'])]);self.norm=RMSNorm(c['hidden_size'],c.get('rms_norm_eps',1e-6))
|
| 59 |
+
|
| 60 |
+
class BalancedLM(nn.Module):
|
| 61 |
+
def __init__(self,c):
|
| 62 |
+
super().__init__();self.config=dict(c)
|
| 63 |
+
assert c['num_attention_heads']%c['num_key_value_heads']==0
|
| 64 |
+
assert c['hidden_size']==c['num_attention_heads']*c.get('head_dim',64)
|
| 65 |
+
self.model=Backbone(c);self.lm_head=nn.Linear(c['hidden_size'],c['vocab_size'],bias=False);self.lm_head.weight=self.model.embed_tokens.weight
|
| 66 |
+
d=c.get('head_dim',64);theta=c.get('rope_parameters',{}).get('rope_theta',10000.)
|
| 67 |
+
inv=1./(theta**(torch.arange(0,d,2,dtype=torch.float32)/d))
|
| 68 |
+
phases=torch.outer(torch.arange(c['max_position_embeddings'],dtype=torch.float32),inv);phases=torch.cat((phases,phases),dim=-1)
|
| 69 |
+
self.register_buffer('cos',phases.cos()[None,None],persistent=False);self.register_buffer('sin',phases.sin()[None,None],persistent=False)
|
| 70 |
+
def forward(self,ids,targets=None):
|
| 71 |
+
x=self.model.embed_tokens(ids);v0=None;t=ids.shape[1]
|
| 72 |
+
for layer in self.model.layers:x,v0=layer(x,self.cos[:,:,:t],self.sin[:,:,:t],v0)
|
| 73 |
+
logits=self.lm_head(self.model.norm(x))
|
| 74 |
+
loss=None if targets is None else F.cross_entropy(logits.float().flatten(0,1),targets.flatten())
|
| 75 |
+
return logits,loss
|
| 76 |
+
@torch.no_grad()
|
| 77 |
+
def initialize(self,seed):
|
| 78 |
+
torch.manual_seed(seed)
|
| 79 |
+
for name,p in self.named_parameters():
|
| 80 |
+
if p.ndim==2:p.normal_(mean=0,std=0.02)
|
| 81 |
+
elif name.endswith('vr_lambda'):p.zero_()
|
| 82 |
+
else:p.fill_(1)
|
config.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"JugnuVRForCausalLM"
|
| 4 |
+
],
|
| 5 |
+
"attention_bias": false,
|
| 6 |
+
"attention_dropout": 0.0,
|
| 7 |
+
"auto_map": {
|
| 8 |
+
"AutoConfig": "configuration_jugnu_vr.JugnuVRConfig",
|
| 9 |
+
"AutoModelForCausalLM": "modeling_jugnu_vr.JugnuVRForCausalLM"
|
| 10 |
+
},
|
| 11 |
+
"bos_token_id": 0,
|
| 12 |
+
"dtype": "float32",
|
| 13 |
+
"eos_token_id": 0,
|
| 14 |
+
"head_dim": 64,
|
| 15 |
+
"hidden_act": "silu",
|
| 16 |
+
"hidden_size": 576,
|
| 17 |
+
"initializer_range": 0.02,
|
| 18 |
+
"intermediate_size": 2496,
|
| 19 |
+
"layer_types": [
|
| 20 |
+
"full_attention",
|
| 21 |
+
"full_attention",
|
| 22 |
+
"full_attention",
|
| 23 |
+
"full_attention",
|
| 24 |
+
"full_attention",
|
| 25 |
+
"full_attention",
|
| 26 |
+
"full_attention",
|
| 27 |
+
"full_attention",
|
| 28 |
+
"full_attention",
|
| 29 |
+
"full_attention",
|
| 30 |
+
"full_attention",
|
| 31 |
+
"full_attention",
|
| 32 |
+
"full_attention",
|
| 33 |
+
"full_attention",
|
| 34 |
+
"full_attention",
|
| 35 |
+
"full_attention",
|
| 36 |
+
"full_attention",
|
| 37 |
+
"full_attention",
|
| 38 |
+
"full_attention",
|
| 39 |
+
"full_attention",
|
| 40 |
+
"full_attention",
|
| 41 |
+
"full_attention",
|
| 42 |
+
"full_attention",
|
| 43 |
+
"full_attention",
|
| 44 |
+
"full_attention",
|
| 45 |
+
"full_attention"
|
| 46 |
+
],
|
| 47 |
+
"max_position_embeddings": 2048,
|
| 48 |
+
"max_window_layers": 28,
|
| 49 |
+
"model_type": "jugnu_vr",
|
| 50 |
+
"num_attention_heads": 9,
|
| 51 |
+
"num_hidden_layers": 26,
|
| 52 |
+
"num_key_value_heads": 3,
|
| 53 |
+
"pad_token_id": null,
|
| 54 |
+
"rms_norm_eps": 1e-06,
|
| 55 |
+
"rope_parameters": {
|
| 56 |
+
"rope_theta": 10000.0,
|
| 57 |
+
"rope_type": "default"
|
| 58 |
+
},
|
| 59 |
+
"sliding_window": null,
|
| 60 |
+
"tie_word_embeddings": true,
|
| 61 |
+
"transformers_version": "5.16.1",
|
| 62 |
+
"use_cache": true,
|
| 63 |
+
"use_sliding_window": false,
|
| 64 |
+
"vocab_size": 24576
|
| 65 |
+
}
|
load_model.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
from pathlib import Path
|
| 3 |
+
import torch
|
| 4 |
+
from safetensors.torch import load_file
|
| 5 |
+
from tokenizers import Tokenizer
|
| 6 |
+
from balanced_model import BalancedLM
|
| 7 |
+
|
| 8 |
+
def load_model(directory,device='cpu'):
|
| 9 |
+
path=Path(directory);m=BalancedLM(json.loads((path/'config.json').read_text()))
|
| 10 |
+
state=load_file(str(path/'model.safetensors'));state['lm_head.weight']=state['model.embed_tokens.weight']
|
| 11 |
+
m.load_state_dict(state,strict=True);return m.eval().to(device),Tokenizer.from_file(str(path/'tokenizer.json'))
|
reports/benchmark/result.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"tokens_per_second": 999441.1017687789,
|
| 3 |
+
"timed_updates": 20,
|
| 4 |
+
"seconds": 10.491623749956489,
|
| 5 |
+
"parameters": 149333081,
|
| 6 |
+
"note": "Synthetic systems benchmark, not training or quality evidence"
|
| 7 |
+
}
|
reports/deadline.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"ready_by_utc":"2026-10-01T13:00:00+00:00","ready_by_warsaw":"2026-10-01 15:00","free_reservation_confirmed_by_user":true,"reserve_seconds_for_evaluation_and_upload":4200}
|
reports/sources/finemath/manifest.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"repo": "HuggingFaceTB/finemath",
|
| 3 |
+
"revision": "e92b25a616738fe95dc186b64dfb19f9c8525594",
|
| 4 |
+
"license": "odc-by",
|
| 5 |
+
"used_files": [
|
| 6 |
+
{
|
| 7 |
+
"path": "finemath-4plus/train-00045-of-00064.parquet",
|
| 8 |
+
"sha256": "2c3e25eccc80c71af05c1c27a260fb25d5743169dbace5e3ecdd18e6b96c277e"
|
| 9 |
+
}
|
| 10 |
+
],
|
| 11 |
+
"tokens": 100117355,
|
| 12 |
+
"validation_tokens": 503280,
|
| 13 |
+
"docs": 66751,
|
| 14 |
+
"overlap_rejected": 23,
|
| 15 |
+
"sha256": "f03351e6b661140e6fb0db3afb8d83e72a668b76a4d8715608d24b0ec85a26b4",
|
| 16 |
+
"validation_sha256": "180832b085910a6a2b31ae42e42118edd380b7007c23268d60f6d69f89e01688",
|
| 17 |
+
"tokenizer_sha256": "d1ffe47f6fd8cc19ba7c3e5d2537699d6a99d09b584d3319944f4e40fe6c44ea",
|
| 18 |
+
"split": "document hash 1% held out",
|
| 19 |
+
"decontamination": "normalized 13-word exact overlap and exact short sentences; not semantic guarantee"
|
| 20 |
+
}
|
reports/status.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"stage":"preparing_corpus_and_benchmarking","initialization":"from_scratch","parameters":149333081,"vocab_size":24576,"ready_by_warsaw":"2026-10-01 15:00","leaderboard_result":"not_measured"}
|
reports/tokenizer-selection.json
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"selected": {
|
| 3 |
+
"vocab": 24576,
|
| 4 |
+
"ffn": 2496,
|
| 5 |
+
"parameters": 149333081,
|
| 6 |
+
"weighted_tokens_per_byte": 0.21982151683772885,
|
| 7 |
+
"measurements": {
|
| 8 |
+
"fineweb_edu": {
|
| 9 |
+
"tokens": 108258,
|
| 10 |
+
"bytes": 500330,
|
| 11 |
+
"bytes_per_token": 4.621644589776275
|
| 12 |
+
},
|
| 13 |
+
"dclm_edu": {
|
| 14 |
+
"tokens": 113785,
|
| 15 |
+
"bytes": 502955,
|
| 16 |
+
"bytes_per_token": 4.42022234916729
|
| 17 |
+
},
|
| 18 |
+
"cosmopedia": {
|
| 19 |
+
"tokens": 96667,
|
| 20 |
+
"bytes": 500651,
|
| 21 |
+
"bytes_per_token": 5.179130416791666
|
| 22 |
+
},
|
| 23 |
+
"finemath": {
|
| 24 |
+
"tokens": 149111,
|
| 25 |
+
"bytes": 509813,
|
| 26 |
+
"bytes_per_token": 3.4190167056756375
|
| 27 |
+
},
|
| 28 |
+
"edge_cases": {
|
| 29 |
+
"tokens": 67,
|
| 30 |
+
"bytes": 130,
|
| 31 |
+
"bytes_per_token": 1.9402985074626866
|
| 32 |
+
}
|
| 33 |
+
},
|
| 34 |
+
"fit_seconds": 6.842154794954695
|
| 35 |
+
},
|
| 36 |
+
"candidates": [
|
| 37 |
+
{
|
| 38 |
+
"vocab": 16384,
|
| 39 |
+
"ffn": 2592,
|
| 40 |
+
"parameters": 148927577,
|
| 41 |
+
"weighted_tokens_per_byte": 0.2296576476963851,
|
| 42 |
+
"measurements": {
|
| 43 |
+
"fineweb_edu": {
|
| 44 |
+
"tokens": 113155,
|
| 45 |
+
"bytes": 500330,
|
| 46 |
+
"bytes_per_token": 4.421634041801069
|
| 47 |
+
},
|
| 48 |
+
"dclm_edu": {
|
| 49 |
+
"tokens": 118553,
|
| 50 |
+
"bytes": 502955,
|
| 51 |
+
"bytes_per_token": 4.242448525132219
|
| 52 |
+
},
|
| 53 |
+
"cosmopedia": {
|
| 54 |
+
"tokens": 101369,
|
| 55 |
+
"bytes": 500651,
|
| 56 |
+
"bytes_per_token": 4.938896506821612
|
| 57 |
+
},
|
| 58 |
+
"finemath": {
|
| 59 |
+
"tokens": 155627,
|
| 60 |
+
"bytes": 509813,
|
| 61 |
+
"bytes_per_token": 3.275864727842855
|
| 62 |
+
},
|
| 63 |
+
"edge_cases": {
|
| 64 |
+
"tokens": 72,
|
| 65 |
+
"bytes": 130,
|
| 66 |
+
"bytes_per_token": 1.8055555555555556
|
| 67 |
+
}
|
| 68 |
+
},
|
| 69 |
+
"fit_seconds": 9.067338421940804
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"vocab": 24576,
|
| 73 |
+
"ffn": 2496,
|
| 74 |
+
"parameters": 149333081,
|
| 75 |
+
"weighted_tokens_per_byte": 0.21982151683772885,
|
| 76 |
+
"measurements": {
|
| 77 |
+
"fineweb_edu": {
|
| 78 |
+
"tokens": 108258,
|
| 79 |
+
"bytes": 500330,
|
| 80 |
+
"bytes_per_token": 4.621644589776275
|
| 81 |
+
},
|
| 82 |
+
"dclm_edu": {
|
| 83 |
+
"tokens": 113785,
|
| 84 |
+
"bytes": 502955,
|
| 85 |
+
"bytes_per_token": 4.42022234916729
|
| 86 |
+
},
|
| 87 |
+
"cosmopedia": {
|
| 88 |
+
"tokens": 96667,
|
| 89 |
+
"bytes": 500651,
|
| 90 |
+
"bytes_per_token": 5.179130416791666
|
| 91 |
+
},
|
| 92 |
+
"finemath": {
|
| 93 |
+
"tokens": 149111,
|
| 94 |
+
"bytes": 509813,
|
| 95 |
+
"bytes_per_token": 3.4190167056756375
|
| 96 |
+
},
|
| 97 |
+
"edge_cases": {
|
| 98 |
+
"tokens": 67,
|
| 99 |
+
"bytes": 130,
|
| 100 |
+
"bytes_per_token": 1.9402985074626866
|
| 101 |
+
}
|
| 102 |
+
},
|
| 103 |
+
"fit_seconds": 6.842154794954695
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"vocab": 32768,
|
| 107 |
+
"ffn": 2384,
|
| 108 |
+
"parameters": 149019737,
|
| 109 |
+
"weighted_tokens_per_byte": 0.2144127319251325,
|
| 110 |
+
"measurements": {
|
| 111 |
+
"fineweb_edu": {
|
| 112 |
+
"tokens": 105600,
|
| 113 |
+
"bytes": 500330,
|
| 114 |
+
"bytes_per_token": 4.737973484848485
|
| 115 |
+
},
|
| 116 |
+
"dclm_edu": {
|
| 117 |
+
"tokens": 111026,
|
| 118 |
+
"bytes": 502955,
|
| 119 |
+
"bytes_per_token": 4.530065029812836
|
| 120 |
+
},
|
| 121 |
+
"cosmopedia": {
|
| 122 |
+
"tokens": 94072,
|
| 123 |
+
"bytes": 500651,
|
| 124 |
+
"bytes_per_token": 5.321998044051365
|
| 125 |
+
},
|
| 126 |
+
"finemath": {
|
| 127 |
+
"tokens": 145642,
|
| 128 |
+
"bytes": 509813,
|
| 129 |
+
"bytes_per_token": 3.50045316598234
|
| 130 |
+
},
|
| 131 |
+
"edge_cases": {
|
| 132 |
+
"tokens": 63,
|
| 133 |
+
"bytes": 130,
|
| 134 |
+
"bytes_per_token": 2.0634920634920637
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
"fit_seconds": 7.331924270954914
|
| 138 |
+
}
|
| 139 |
+
],
|
| 140 |
+
"criterion": "Smallest vocabulary within 3% of best weighted held-out token compression; provisional pending speed check.",
|
| 141 |
+
"tokenizer_training_sha256": "c15bad040cf3eaf9e0053539bff3039601f9a4db7e89a0acd6db0e03e4cced49",
|
| 142 |
+
"tokenizer_sha256": "d1ffe47f6fd8cc19ba7c3e5d2537699d6a99d09b584d3319944f4e40fe6c44ea",
|
| 143 |
+
"normalization": "none; byte fallback alphabet; preserve Unicode and whitespace; digit groups max3",
|
| 144 |
+
"parameters_cap": 149500000,
|
| 145 |
+
"data_mix": {
|
| 146 |
+
"fineweb_edu": 0.65,
|
| 147 |
+
"dclm_edu": 0.2,
|
| 148 |
+
"cosmopedia": 0.1,
|
| 149 |
+
"finemath": 0.05
|
| 150 |
+
},
|
| 151 |
+
"status": "roundtrip_passed"
|
| 152 |
+
}
|
reports/train.toml
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seed = 1337
|
| 2 |
+
block = 2048
|
| 3 |
+
micro_batch = 16
|
| 4 |
+
accumulation = 2
|
| 5 |
+
adam_lr = 0.0015
|
| 6 |
+
muon_lr = 0.02
|
| 7 |
+
weight_decay = 0.1
|
| 8 |
+
clip = 1.0
|
| 9 |
+
checkpoint_every = 500
|
| 10 |
+
log_every = 20
|
| 11 |
+
compile = true
|
tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|