--- license: apache-2.0 language: - id - en tags: - text-generation - pytorch - causal-lm - transformer - untrained - mla - multi-token-prediction - qk-norm - rope - yarn - swiglu - rmsnorm - sliding-window-attention - indonesian - bilingual library_name: transformers pipeline_tag: text-generation widget: - text: "Jakarta adalah ibu kota" example_title: "🇮🇩 Pelengkapan Teks (ID)" - text: | Pertanyaan: Apa itu kecerdasan buatan? Jawaban: example_title: "🇮🇩 Tanya Jawab (ID)" - text: "The capital of Indonesia is" example_title: "🇬🇧 Text Completion (EN)" - text: | User: Halo! Siapa kamu? Assistant: example_title: "💬 Format Chat (ID)" inference: parameters: max_new_tokens: 100 temperature: 0.7 top_p: 0.9 top_k: 50 do_sample: true repetition_penalty: 1.1 datasets: [] metrics: - perplexity model-index: - name: caca-650M-untrained results: [] ---
caca-650M-untrained # 🤖 caca-650M-untrained ### Arsitektur Transformer dengan Multi-head Latent Attention (MLA) ![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg) ![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg) ![PyTorch](https://img.shields.io/badge/PyTorch-2.0+-red.svg) ![Transformers](https://img.shields.io/badge/🤗%20Transformers-4.35+-yellow.svg) ![Model Type](https://img.shields.io/badge/Model-Causal%20LM-green.svg) ![Parameters](https://img.shields.io/badge/Parameters-527M-orange.svg) Status **526,860,267** parameters • **527M** • **20 layers** • **8,192 tokens** (efektif **32,768** dgn YaRN) [📚 Dokumentasi](#-dokumentasi) • [💻 Usage](#-cara-penggunaan) • [⚙️ Konfigurasi](#-spesifikasi-model) • [🔬 Arsitektur](#-struktur-arsitektur-lengkap)
--- ## ⚠️ PENTING: Model Belum Dilatih (Untrained)
⚠️ PERHATIAN: Bobot model ini adalah random initialization (belum melalui proses training apa pun). Output yang dihasilkan akan tidak bermakna dan acak.
**Status Model:** - 🔴 **Belum dilatih** — Bobot masih random init (`initializer_range=0.02`) - 🟡 **Untuk riset & eksperimen** — Arsitektur sudah siap, tinggal train dari nol - 🟢 **Base architecture release** — Titik awal pretraining | ✅ Bisa | ❌ Belum Bisa | |---------|----------------| | Load model architecture | Generate teks bermakna | | Test forward pass | Menjawab pertanyaan | | Measure memory & speed | Reasoning & understanding | | Mulai pretraining dari nol | Production deployment | --- ## 📋 Deskripsi **Caca** adalah arsitektur Large Language Model (LLM) yang menggabungkan **Multi-head Latent Attention (MLA)** ala DeepSeek-V2/V3, **Multi-Token Prediction (MTP)**, **QK-Normalization**, dan **sliding window attention** berselang-seling — dirancang untuk efisiensi KV cache dan skalabilitas dari model kecil (~650M) sampai sangat besar (1T+).

📖 Tentang Project Caca

Caca adalah eksperimen open-source Indonesian LLM yang dibuat dari nol secara individual dan bertahap. Bukan kompetitor siapa-siapa, cuma pengen eksplorasi apa yang bisa dilakukan dengan budget terbatas, passion unlimited, dan mindset collaborative.

Kalau berguna buat orang lain, alhamdulillah. Kalau enggak, ya tetap fun kok.

Lyon, Creator

### 🌟 Mengapa Caca? 1. **🇮🇩 Fokus pada Bahasa Indonesia** — dirancang bilingual ID/EN 2. **💾 KV Cache Sangat Hemat** — MLA menekan KV cache ~81% dibanding attention standar setara 3. **🎯 Multi-Token Prediction** — prediksi 1 token ke depan sekaligus, potensi throughput lebih baik 4. **📏 Long Context via YaRN** — RoPE scaling dari 8,192 ke 32,768 token 5. **🪟 Sliding Window Berselang-seling** — 10 full-attention layer + 10 sliding-window layer --- ## 📊 Spesifikasi Model
ParameterValueParameterValue
Total Parameters526,860,267Vocab Size32,000
Hidden Size1280Intermediate Size5120
Num Layers20Attention Heads10
Max Context Length8,192Efektif (YaRN)32,768
RoPE Base (θ)10,000Tie EmbeddingsTrue
Model Size (FP16)1.05 GBFormatted Size527M
--- ## 💾 Kebutuhan Memory ### Training Requirements
ConfigurationModel Weights+ Optimizer StatesTotal Training
FP32 (AdamW)2.11 GB+6.32 GB8.43 GB
Mixed Precision1.05 GB+7.38 GB8.43 GB
+ Gradient CheckpointingMenghemat ~30-50% activation memory~5.06 GB
### Inference Requirements (MLA KV Cache)
PrecisionModel SizeKV Cache (2K ctx)Total Memory
FP16 / BF161.05 GB0.020 GB1.07 GB
INT80.53 GB0.020 GB0.55 GB
INT4 (NF4)0.26 GB0.020 GB0.28 GB
> 💡 KV cache MLA jauh lebih kecil drpd attention standar karena cuma nyimpen `kv_lora_rank + qk_rope_head_dim` (245 dim) per token, bukan `num_heads × head_dim` penuh. Pada 8K context, KV cache ~0.080 GB. ### Performance Estimates
MetricValueNotes
FLOPs per Token1,053,720,534Forward pass only
TFLOPs per Token0.0011≈ 6× untuk backward
--- ## 💻 Cara Penggunaan ### Basic Loading ```python from transformers import AutoConfig, AutoModelForCausalLM import torch config = AutoConfig.from_pretrained("Lyon28/caca-650M-untrained", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( "Lyon28/caca-650M-untrained", config=config, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="auto" ) print(f"Model loaded: {model.num_parameters():,} parameters") print("⚠️ Model ini UNTRAINED — output belum bermakna") ``` ### Quantized Loading (4-bit) ```python from transformers import AutoModelForCausalLM, BitsAndBytesConfig import torch bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True ) model = AutoModelForCausalLM.from_pretrained( "Lyon28/caca-650M-untrained", trust_remote_code=True, quantization_config=bnb_config, device_map="auto" ) print(f"Memory footprint: ~0.28GB (4-bit)") ``` ### Mulai Pretraining ```python from transformers import TrainingArguments, Trainer training_args = TrainingArguments( output_dir="./output", per_device_train_batch_size=1, gradient_accumulation_steps=16, learning_rate=3e-4, max_steps=10000, lr_scheduler_type="cosine", warmup_steps=500, bf16=True, gradient_checkpointing=True, ) trainer = Trainer(model=model, args=training_args, train_dataset=train_dataset) trainer.train() ``` --- ## 📦 Isi Repo Weight tersimpan dalam satu file model.safetensors. ## 🏗️ Status Training Tidak ada metrik training (loss, wandb, tensorboard) — ini adalah **base architecture release** untuk dipakai sebagai titik awal pretraining dari nol. --- ## 📄 License Model ini dirilis di bawah **Apache License 2.0** — bebas dipakai, dimodifikasi, dan didistribusikan (dengan attribution), disediakan "as is" tanpa warranty. --- ## 👥 Team & Contact - **Lyon** — Architecture design & implementation - 📧 cacatransformers@gmail.com - 💬 [Discussions](https://huggingface.co/Lyon28/caca-650M-untrained/discussions) ---
Model ini adalah bagian dari Caca Project — eksplorasi Indonesian LLM dari nol.
Dibuat oleh @Lyon28 | Licensed under Apache 2.0 | Built with 🤗 Transformers
**🌟 "Dari nol, untuk semua" 🌟**