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

Model: Lauarvik/NVIDIA-Nemotron-Nano-9B-v2-GGUF
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-06-30 10:56:15 +08:00
commit cf8d0b905d
9 changed files with 301 additions and 0 deletions

42
.gitattributes vendored Normal file
View File

@@ -0,0 +1,42 @@
*.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
NVIDIA-Nemotron-Nano-9B-v2-bf16.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-BF16.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-IQ2_M.gguf filter=lfs diff=lfs merge=lfs -text
NVIDIA-Nemotron-Nano-9B-v2-Q3_K_M.gguf filter=lfs diff=lfs merge=lfs -text

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

185
README.md Normal file
View File

@@ -0,0 +1,185 @@
---
base_model:
- nvidia/NVIDIA-Nemotron-Nano-9B-v2
---
Quantized version of [nvidia/NVIDIA-Nemotron-Nano-9B-v2](https://hf.co/nvidia/NVIDIA-Nemotron-Nano-9B-v2)
При квантизации использовалась imatrix, корпус текстов для неё был создан следующим образом:
```python
import json
import re
import hashlib
import time
from datasets import load_dataset
OUT_PATH = "calib_nemotron.jsonl"
TARGET_SAMPLES = 7000
CHUNK_SIZE = 900
MIN_LEN = 300
MAX_LEN = 3000
out = open(OUT_PATH, "w", encoding="utf-8")
seen = set()
written = 0
# -----------------------
# SAFE LOAD
# -----------------------
def safe_load(*args, **kwargs):
for i in range(5):
try:
return load_dataset(*args, **kwargs)
except Exception as e:
print("retry", i, e)
time.sleep(2)
raise RuntimeError("failed to load dataset")
# -----------------------
# CLEAN
# -----------------------
def clean_text(txt: str) -> str:
if not txt:
return ""
txt = re.sub(r"<[^>]+>", " ", txt)
txt = re.sub(r"\s+", " ", txt).strip()
if "\x00" in txt:
return ""
return txt
# -----------------------
# DEDUP
# -----------------------
def is_duplicate(txt: str) -> bool:
h = hashlib.blake2b(txt.encode("utf-8"), digest_size=8).hexdigest()
if h in seen:
return True
seen.add(h)
return False
# -----------------------
# CHUNK
# -----------------------
def split_chunks(txt: str):
for i in range(0, len(txt), CHUNK_SIZE):
chunk = txt[i:i + CHUNK_SIZE]
if len(chunk) >= MIN_LEN:
yield chunk
# -----------------------
# WRITE
# -----------------------
def process_text(txt: str):
global written
txt = clean_text(txt)
if not txt or len(txt) < MIN_LEN:
return
chunks = split_chunks(txt) if len(txt) > MAX_LEN else [txt]
for chunk in chunks:
if written >= TARGET_SAMPLES:
return
if is_duplicate(chunk):
continue
out.write(json.dumps({"text": chunk}, ensure_ascii=False) + "\n")
written += 1
# -----------------------
# CHAT
# -----------------------
def handle_chat(ds, ratio):
global written
target = int(TARGET_SAMPLES * ratio)
start = written
for x in ds:
if written - start >= target:
break
conv = x.get("conversations")
if not conv:
continue
txt = "\n".join(
f"{m.get('from','')}: {m.get('value','')}"
for m in conv if m.get("value")
)
process_text(txt)
# -----------------------
# TEXT
# -----------------------
def handle_text(ds, field, ratio):
global written
target = int(TARGET_SAMPLES * ratio)
start = written
for x in ds:
if written - start >= target:
break
process_text(x.get(field))
# -----------------------
# CODE
# -----------------------
def handle_code(ds, lang, ratio):
global written
target = int(TARGET_SAMPLES * ratio)
start = written
for x in ds:
if written - start >= target:
break
if x.get("lang") == lang:
process_text(x.get("content"))
# =======================
# DATASETS (ONLY SAFE ONES)
# =======================
print("chat...")
ds = safe_load("teknium/OpenHermes-2.5", split="train", streaming=True)
handle_chat(ds, 0.35)
print("en text...")
ds = safe_load("wikitext", "wikitext-103-raw-v1", split="train", streaming=True)
handle_text(ds, "text", 0.25)
print("ru fallback (wiki dump alternative)...")
# безопасная замена RU:
ds = safe_load("wikimedia/wikipedia", "20231101.ru", split="train", streaming=True)
handle_text(ds, "text", 0.2)
print("rust...")
ds = safe_load("bigcode/the-stack-smol", split="train", streaming=True)
handle_code(ds, "Rust", 0.1)
print("python...")
ds = safe_load("bigcode/the-stack-smol", split="train", streaming=True)
handle_code(ds, "Python", 0.1)
out.close()
print("written:", written)
```

56
config.json Normal file
View File

@@ -0,0 +1,56 @@
{
"architectures": [
"NemotronHForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"auto_map": {
"AutoConfig": "configuration_nemotron_h.NemotronHConfig",
"AutoModelForCausalLM": "modeling_nemotron_h.NemotronHForCausalLM"
},
"bos_token_id": 1,
"chunk_size": 128,
"conv_kernel": 4,
"eos_token_id": 12,
"head_dim": 128,
"hidden_dropout": 0.0,
"hidden_size": 4480,
"hybrid_override_pattern": "M-M-M-MM-M-M-M*-M-M-M*-M-M-M-M*-M-M-M-M*-M-MM-M-M-M-M-M-",
"initializer_range": 0.02,
"intermediate_size": 15680,
"layer_norm_epsilon": 1e-05,
"mamba_head_dim": 80,
"mamba_hidden_act": "silu",
"mamba_num_groups": 8,
"mamba_num_heads": 128,
"mamba_proj_bias": false,
"mamba_state_dim": 128,
"max_position_embeddings": 131072,
"mlp_bias": false,
"mlp_hidden_act": "relu2",
"model_type": "nemotron_h",
"n_groups": 8,
"num_attention_heads": 40,
"num_hidden_layers": 56,
"num_key_value_heads": 8,
"num_logits_to_keep": 1,
"num_query_groups": 8,
"pad_token_id": 0,
"rescale_prenorm_residual": true,
"residual_in_fp32": false,
"rms_norm_eps": 1e-05,
"sliding_window": null,
"ssm_state_size": 128,
"tie_word_embeddings": false,
"time_step_floor": 0.0001,
"time_step_max": 0.1,
"time_step_min": 0.001,
"time_step_rank": 256,
"torch_dtype": "bfloat16",
"transformers_version": "4.51.3",
"use_bias": false,
"use_cache": true,
"use_conv_bias": true,
"use_mamba_kernels": true,
"vocab_size": 131072
}