Instructions to use RessAI/Nano-NCM-35M-ID with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use RessAI/Nano-NCM-35M-ID with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="RessAI/Nano-NCM-35M-ID", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("RessAI/Nano-NCM-35M-ID", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use RessAI/Nano-NCM-35M-ID with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "RessAI/Nano-NCM-35M-ID" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RessAI/Nano-NCM-35M-ID", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/RessAI/Nano-NCM-35M-ID
- SGLang
How to use RessAI/Nano-NCM-35M-ID with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "RessAI/Nano-NCM-35M-ID" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RessAI/Nano-NCM-35M-ID", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "RessAI/Nano-NCM-35M-ID" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "RessAI/Nano-NCM-35M-ID", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use RessAI/Nano-NCM-35M-ID with Docker Model Runner:
docker model run hf.co/RessAI/Nano-NCM-35M-ID
- 🧠 Nano-NCM-35M-ID: Optimized Next-Concept Modeling (NCM) for Indonesian & Cybersecurity
🧠 Nano-NCM-35M-ID: Optimized Next-Concept Modeling (NCM) for Indonesian & Cybersecurity
Nano-NCM-35M-ID adalah implementasi from-scratch dan pengembangan teroptimasi dari kerangka kerja Next-Concept Modeling (NCM) yang diperkenalkan oleh peneliti dari Stanford University (Hazy Research) & Together AI dalam paper "Next-Concept Modeling: Fast, Parallel Coarse-to-Fine Text Generation" (Kumbong et al., arXiv:2610.14162).
Model ini dirancang sebagai Proof-of-Concept (PoC) berskala Nano (35.47 Juta Parameter) untuk domain Keamanan Siber (Cybersecurity), Teknologi Informasi, dan Pengetahuan Umum Bahasa Indonesia, serta dilengkapi kompatibilitas ekspansi bobot (Net2Wider function-preserving upscaling) menuju skala >100M parameter.
🔬 Latar Belakang Ilmiah: Mengapa Next-Concept Modeling (NCM)?
Model bahasa modern umumnya terbagi dalam dua paradigma yang memiliki kelemahan mendasar:
- Next-Token Prediction (Autoregressive LLM): Memprediksi satu token demi satu token secara sekuensial ($L$ langkah untuk $L$ token), sehingga mengalami memory-bandwidth bottleneck saat inferensi.
- Masked Diffusion Language Models (MDLM): Memproses seluruh sekuens secara paralel, namun harus menghaluskan seluruh panjang sekuens $L$ berulang kali dalam banyak langkah denoising $T$, serta membutuhkan training token 4–5x lebih banyak.
Next-Concept Modeling (NCM) memecahkan masalah ini melalui pendekatan Coarse-to-Fine (Kasar-ke-Halus) dalam dua tahap:
- Stage 1 (Multiscale Residual VQ-VAE Compressor): Memampatkan sekuens token dengan rasio kompresi spasial $R=4:1$ ke dalam hierarki kode laten diskrit (discrete concept codes) $r_k^i$ sebanyak $K=4$ level kedalaman (
Level 1: Ide/Sketsa Kasar$\rightarrow$Level 4: Detail Leksikal Halus). - Stage 2 (Coarse-to-Fine Concept Generator): Menggunakan Transformer Backbone untuk memprediksi kode konsep dari level kasar ke level halus, diikuti oleh Concept-Guided Decoder yang menerjemahkan hierarki konsep kembali menjadi teks utuh.
🛠️ Optimasi Arsitektur pada Implementasi Ini
Dalam mengadaptasi paper arXiv:2610.14162 untuk kosakata morfologis Bahasa Indonesia dan keterbatasan komputasi (2x NVIDIA Tesla T4), model ini memperkenalkan 5 optimasi arsitektural penting:
- Factorized Qwen Tokenizer Embedding ($V = 152,064$):
Menggunakan vocabulary keluarga Qwen (
152.064token) dengan dekomposisi matriks berperingkat rendah (Low-Rank Bottleneck Factorization $152.064 \times 96 \times 256$) dan Weight-Tying, yang memangkas beban parameter embedding sebesar >60% tanpa kehilangan kekayaan kosakata. - Causal Concept Encoder (Anti-Future Leakage): Berbeda dengan VQ-VAE bidirectional standar yang rentan mengalami pergeseran distribusi (out-of-distribution shift) ketika diberi prompt pendek saat inferensi, Encoder Stage 1 dikalibrasi secara Causal sehingga representasi konsep pada prompt pendek dijamin 100% konsisten dengan fase pelatihan.
- True Autoregressive Concept-Guided Decoder: Mengatasi masalah tabrakan batas suku kata (syllable boundary collision) pada subword tokenizer Bahasa Indonesia dengan menggabungkan jalur causal token shift ($t-1$) dan Concept Adapter berpengatur gerbang terlatih ($\tanh(\alpha) \cdot h_{\text{concept}}$).
- Frozen-RVQ & Student-Forced Concept Rollout (SFT): Selama tahap Supervised Fine-Tuning (SFT), buku kode (codebooks) RVQ dibekukan untuk mencegah codebook drift, sementara Decoder dilatih menggunakan konsep hasil prediksi Stage 2 (Student-Forcing) guna menghilangkan exposure bias saat inferensi.
- 4-Token Boundary Prompt Alignment & Loss Masking:
Menyelaraskan panjang token instruksi tepat pada kelipatan rasio kompresi $R=4$ dan menerapkan cross-entropy loss masking (
ignore_index = -100) pada segmen pertanyaan baik di ruang konsep (Stage 2) maupun di ruang kata (Stage 1).
📐 Arsitektur Visual & Rincian Parameter Eksak
[Teks Instruksi] ──► Qwen Tokenizer (152K) ──► Factorized Embedding (152064 x 96 x 256)
│
▼
Stage 1 Causal Encoder (3 Layers, RoPE, SwiGLU)
│
▼ (Patch Down-Sampling 4:1)
Multiscale RVQ (4 Levels x 4096 Codebook Entries)
├── Level 1: Coarse Semantic Sketch
├── Level 2: Syntactic Structure
├── Level 3: Contextual Phrase
└── Level 4: Fine Lexical Residual
│
▼
Stage 2 NCM Generator (8 Layers, Coarse-to-Fine)
│
▼ (Patch Up-Sampling 1:4 + Concept Adapter)
Stage 1 Concept-Guided AR Decoder (3 Layers)
│
▼
[Teks Jawaban Bahasa Indonesia]
Tabel Spesifikasi & Parameter
| Komponen Modul | Spesifikasi Dimensi | Jumlah Parameter Eksak |
|---|---|---|
| 1. Factorized Qwen Embedding (Tied) | $152.064 \times 96 + 96 \times 256$ | 14.622.720 |
| 2. Stage 1 Causal Encoder | 3 Layer ($d=256, d_{ff}=768, H=4$, SwiGLU, RoPE) | 2.557.440 |
| 3. Spatial Patch Down/Up-Samplers | Rasio Kompresi $R=4:1$ ($1024 \leftrightarrow 256$) + RMSNorm | 524.800 |
| 4. Multiscale RVQ Codebooks (Shared) | $K=4$ Level $\times 4.096$ Kode $\times 256$ Dimensi | 4.194.304 |
| 5. Stage 1 Concept-Guided AR Decoder | 3 Layer + Concept Adapter ($256 \times 256$) + Gate | 2.623.489 |
| 6. Stage 2 NCM Transformer Backbone | 8 Layer ($d=256, d_{ff}=768, H=4$, SwiGLU, RoPE) | 6.821.376 |
| 7. Stage 2 Multiscale Concept Heads | 4 Level Output Heads ($256 \times 4.096$) | 4.194.304 |
| TOTAL PARAMETER AKTIF | Nano-NCM (Siap Upscale ke $d=512$ / 106M) | 35.538.433 (~35.5M) |
🚀 Cara Penggunaan (Quick Start)
Model ini telah terintegrasi penuh dengan AutoModelForCausalLM dari Hugging Face transformers (trust_remote_code=True). Tidak diperlukan instalasi repositori eksternal:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
repo_id = "RessAI/Nano-NCM-35M-ID"
# 1. Muat Tokenizer & Model Nano-NCM
tokenizer = AutoTokenizer.from_pretrained(repo_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(repo_id, trust_remote_code=True)
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = model.to(device).eval()
# 2. Ajukan Instruksi / Pertanyaan (Cybersecurity & Pengetahuan Umum)
prompts = [
'Apa itu keamanan siber atau cybersecurity?',
'Jelaskan apa fungsi utama dari jaringan komputer!',
'Bagaimana cara menjaga keamanan kata sandi di internet?',
'Apa perbedaan antara perangkat keras dan perangkat lunak komputer?',
'Sebutkan ibu kota Indonesia dan jelaskan perannya!'
]
for q in prompts:
jawaban = model.chat(q, tokenizer, max_new_concepts=10, auto_stop=True)
print(f'User : {q}')
print(f'NCM-AI : {jawaban}')
print('-' * 70)
Contoh Output Model
Instruksi / Pertanyaan (User) |
Output Generasi Coarse-to-Fine (Nano-NCM-35M) |
|---|---|
| Apa itu keamanan siber atau cybersecurity? | Keamanan siber adalah upaya melindungi sistem komputer, jaringan, program, dan data penting dari serangan digital. |
| Jelaskan apa fungsi utama dari jaringan komputer! | Fungsi utama jaringan komputer adalah menghubungkan berbagai perangkat komputer agar dapat saling bertukar data. |
| Sebutkan ibu kota Indonesia dan jelaskan perannya! | Ibu kota Indonesia adalah Jakarta. Jakarta berperan sebagai pusat pemerintahan nasional. |
| Apa perbedaan antara perangkat keras dan perangkat lunak komputer? | Perangkat keras atau hardware adalah komponen fisik dan komputer belajar dari satu perangkat pada saat. |
📚 Dataset & Kurikulum Pelatihan
Pelatihan dilakukan dari nol (from scratch) menggunakan perangkat keras 2x NVIDIA Tesla T4 (2x 16GB VRAM) melalui 3 fase kurikulum:
- Phase 1 — Concept Compressor & Backbone Pre-Training: Dilatih pada korpus Wikipedia Bahasa Indonesia
carlesoctav/miracl-corpus-id(~1,45 juta bagian teks / ~150 juta token) menggunakan jadwal Warmup-Stable-Decay (WSD) dan Chunked Tied Cross-Entropy. - Phase 2 — Causal Encoder Alignment & Autoregressive Decoder Calibration: Menyelaraskan representasi konsep kausal dan melatih mekanisme Concept Adapter untuk menghilangkan distorsi morfologi kata.
- Phase 3 — Domain-Filtered Supervised Fine-Tuning (SFT): Dilatih pada subset instruksi teknologi, jaringan komputer, keamanan siber, dan pengetahuan umum dari
cahya/alpaca-id-cleanedhingga mencapai Honest Student-Forced Word Loss 0.3197 dan Concept Prediction Loss 0.4766.
⚠️ Batasan Saat Ini (Limitations)
- Skala Parameter Nano (35.5M): Model ini merupakan prototipe riset (Proof-of-Concept) berukuran sangat ringkas (otak generator Stage 2 hanya berukuran ~11M parameter). Kapasitas penalaran faktualnya difokuskan pada definisi inti seputar jaringan komputer, keamanan siber dasar, dan pengetahuan umum Indonesia.
- Panjang Konteks Jawaban: Dioptimalkan untuk jawaban ringkas dan padat (10–14 blok konsep atau sekitar 40–56 token).
📖 Sitasi & Referensi (Citation)
Model ini dibangun berdasarkan kerangka kerja teoritis Next-Concept Modeling (NCM). Jika Anda menggunakan atau merujuk pada arsitektur NCM, silakan kutip paper asli dari tim peneliti Stanford University & Together AI berikut:
@misc{kumbong2026nextconcept,
title={Next-Concept Modeling: Fast, Parallel Coarse-to-Fine Text Generation},
author={Hermann Kumbong and Ishan S. Khare and Iddah Mlauzi and Andrew Woen and Charles Ding and E. Kelly Buchanan and Simran Arora and Azalia Mirhoseini and Christopher R{\'e}},
year={2026},
eprint={2610.14162},
archivePrefix={arXiv},
primaryClass={cs.CL},
doi={10.48550/arXiv.2610.14162},
url={https://arxiv.org/abs/2610.14162}
}
- Downloads last month
- 2