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

Model: birgermoell/oellm-9b-256k-theta64m-prelude
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-07-08 06:20:10 +08:00
commit ad2ab95c49
9 changed files with 1367 additions and 0 deletions

36
.gitattributes vendored Normal file
View File

@@ -0,0 +1,36 @@
*.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
tokenizer.json filter=lfs diff=lfs merge=lfs -text

66
README.md Normal file
View File

@@ -0,0 +1,66 @@
---
license: apache-2.0
language: [en, sv, de, fr, es, it, nl, pl, pt, cs, fi, da, el, bg, hr, hu, ro, sk, sl, et, lt, lv, ga, mt, eu, gl, is, nb, nn, sr, uk, ca, mk, sq, oc, lb, bs]
tags: [long-context, rope, abf, niah, qwen3, openeurollm, base-model, 256k]
pipeline_tag: text-generation
library_name: transformers
---
# OELLM 9B — 256K context (ABF, θ=64M) — prelude (1T-token base)
**256K** long-context extension of the OpenEuroLLM **prelude** base (Qwen3 dense 9B,
`qwen3_9b_hf_baby` at **iter_0124800 ≈ 1T tokens**). Continues the θ-law curriculum from our
128K model ([`oellm-9b-128k-theta32m-prelude`](https://huggingface.co/birgermoell/oellm-9b-128k-theta32m-prelude))
to the next octave. **Base model — not instruction-tuned.** Multilingual (37 European languages).
## Headline: the θ-law extends to 256K
Far-position (depth-0) retrieval is a RoPE high-dimension OOD problem; the critical rotary base θ
**doubles per context-length octave**. This model confirms the law at 256K:
| context | θ | depth-0 |
|---|---|---|
| 128K | 32M | ✓ |
| **256K** | **64M** | **100%** ✓ |
## Method (staged native ABF)
`prelude(4K) → 16K(θ=500k) → 32K(θ=1M) → 64K(θ=2M) → 128K(θ=32M) → 256K(θ=64M)`.
Continued-pretraining in Megatron-LM on LUMI (16× MI250X), CP=16, θ=64M, selective recompute,
1B tokens for the 256K stage. **Data:** 60% genuine-256K long documents (arXiv/books/code/RFC/docsite
concatenated to 256K) + 40% multilingual long-context mix (Jouni Luoma's 152-source blend) — the
multilingual portion prevents non-English regression during the 256K stage.
## Evaluation (base-LM forced-choice NIAH, chance 25%)
[`scripts/eval_base_lm_niah.py`](https://github.com/BirgerMoell/openeuro-longctx-datamix). The 256K
forward needs multi-GPU (`device_map="auto"` over a full 8-GCD node; one GCD OOMs at 256K).
**@256K** (multilingual sweep in progress; ~92% so far, **depth-0 = 100%**):
| depth | 0.0 | 0.25 | 0.5 | 0.75 | 1.0 |
|---|---|---|---|---|---|
| accuracy | **100%** | (settling) | 100% | (settling) | 100% |
**@128K retention: 98% (158/160), depth-0 100%** — extending to 256K did **not** degrade 128K
(depth 0.5 = 93%, the mild mid-depth softness carried from the 128K model; see that model's card).
## Architecture
Qwen3 dense: 36 layers, hidden 4096, FFN 12288, 32 heads / 8 KV (GQA), kv-channels 128,
qk-layernorm, RMSNorm, SwiGLU, untied embeddings, vocab 262144.
Config: **rope_theta=64000000, max_position_embeddings=262144**.
## Usage
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 256K context needs several GPUs; use device_map="auto".
m = AutoModelForCausalLM.from_pretrained("openeurollm/oellm-9b-256k-theta64m-prelude",
torch_dtype=torch.bfloat16, device_map="auto")
tok = AutoTokenizer.from_pretrained("openeurollm/oellm-9b-256k-theta64m-prelude")
# Base completion model. Keep rope_theta=64M / max_position=262144 for 256K.
```
## Caveats
- **Base model** (no instruction tuning). Single-needle NIAH; broader RULER not yet run.
- Keep `rope_theta=64000000`, `max_position_embeddings=262144` for 256K.
- Mild "lost-in-the-middle" inherited from the 1T base (a property of the more-pretrained base;
under investigation — larger long-context budget is the leading fix).
- Repo/code: https://github.com/BirgerMoell/openeuro-longctx-datamix (θ analysis in
`docs/depth0_diagnosis_theta_sweep.md`). Sibling: `oellm-9b-128k-theta32m-prelude`.

3
added_tokens.json Normal file
View File

@@ -0,0 +1,3 @@
{
"<pad>": 262144
}

68
config.json Normal file
View File

@@ -0,0 +1,68 @@
{
"architectures": [
"Qwen3ForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"bos_token_id": 1,
"dtype": "bfloat16",
"eos_token_id": 2,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 4096,
"initializer_range": 0.02,
"intermediate_size": 12288,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 262144,
"max_window_layers": 28,
"model_type": "qwen3",
"num_attention_heads": 32,
"num_hidden_layers": 36,
"num_key_value_heads": 8,
"rms_norm_eps": 1e-05,
"rope_scaling": null,
"rope_theta": 64000000,
"sliding_window": null,
"tie_word_embeddings": false,
"transformers_version": "4.57.3",
"use_cache": true,
"use_sliding_window": false,
"vocab_size": 263168
}

3
pytorch_model.bin Normal file
View File

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

142
special_tokens_map.json Normal file
View File

@@ -0,0 +1,142 @@
{
"additional_special_tokens": [
"<start_of_turn>",
"<end_of_turn>",
"<start_of_image>",
"<end_of_image>",
"<image_soft_token>",
"<fim_prefix>",
"<fim_middle>",
"<fim_suffix>",
"<tool_call>",
"</tool_call>",
"<unused_0>",
"<unused_1>",
"<unused_2>",
"<unused_3>",
"<unused_4>",
"<unused_5>",
"<unused_6>",
"<unused_7>",
"<unused_8>",
"<unused_9>",
"<unused_10>",
"<unused_11>",
"<unused_12>",
"<unused_13>",
"<unused_14>",
"<unused_15>",
"<unused_16>",
"<unused_17>",
"<unused_18>",
"<unused_19>",
"<unused_20>",
"<unused_21>",
"<unused_22>",
"<unused_23>",
"<unused_24>",
"<unused_25>",
"<unused_26>",
"<unused_27>",
"<unused_28>",
"<unused_29>",
"<unused_30>",
"<unused_31>",
"<unused_32>",
"<unused_33>",
"<unused_34>",
"<unused_35>",
"<unused_36>",
"<unused_37>",
"<unused_38>",
"<unused_39>",
"<unused_40>",
"<unused_41>",
"<unused_42>",
"<unused_43>",
"<unused_44>",
"<unused_45>",
"<unused_46>",
"<unused_47>",
"<unused_48>",
"<unused_49>",
"<unused_50>",
"<unused_51>",
"<unused_52>",
"<unused_53>",
"<unused_54>",
"<unused_55>",
"<unused_56>",
"<unused_57>",
"<unused_58>",
"<unused_59>",
"<unused_60>",
"<unused_61>",
"<unused_62>",
"<unused_63>",
"<unused_64>",
"<unused_65>",
"<unused_66>",
"<unused_67>",
"<unused_68>",
"<unused_69>",
"<unused_70>",
"<unused_71>",
"<unused_72>",
"<unused_73>",
"<unused_74>",
"<unused_75>",
"<unused_76>",
"<unused_77>",
"<unused_78>",
"<unused_79>",
"<unused_80>",
"<unused_81>",
"<unused_82>",
"<unused_83>",
"<unused_84>",
"<unused_85>",
"<unused_86>",
"<unused_87>",
"<unused_88>",
"<unused_89>",
"<unused_90>",
"<unused_91>",
"<unused_92>",
"<unused_93>",
"<unused_94>",
"<unused_95>",
"<unused_96>",
"<unused_97>",
"<unused_98>",
"<unused_99>"
],
"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
}
}

3
tokenizer.json Normal file
View File

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

3
tokenizer.model Normal file
View File

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

1043
tokenizer_config.json Normal file

File diff suppressed because it is too large Load Diff