How to use from the
Use from the
Transformers library
# Use a pipeline as a high-level helper
from transformers import pipeline

pipe = pipeline("text-generation", model="Lyon28/caca-650M-untrained", trust_remote_code=True)
# Load model directly
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Lyon28/caca-650M-untrained", trust_remote_code=True, device_map="auto")
Quick Links
caca-650M-untrained

๐Ÿค– caca-650M-untrained

Arsitektur Transformer dengan Multi-head Latent Attention (MLA)

License Python 3.8+ PyTorch Transformers Model Type Parameters Status

526,860,267 parameters โ€ข 527M โ€ข 20 layers โ€ข 8,192 tokens (efektif 32,768 dgn YaRN)

๐Ÿ“š Dokumentasi โ€ข ๐Ÿ’ป Usage โ€ข โš™๏ธ Konfigurasi โ€ข ๐Ÿ”ฌ Arsitektur


โš ๏ธ 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

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)

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

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


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" ๐ŸŒŸ

Downloads last month
45
Safetensors
Model size
0.5B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support