/ Модель

Характеристики

Контекст
512 токенов
Параметры
124 млн
Лицензия
Apache 2.0
Архитектура
vegalm · dense
Библиотека
transformers
Опубликована
17 апр 2026

vega-100m-indo

Генерация текстаТекст → текст3 профессии

Небольшая базовая причинная языковая модель, обученная с нуля для генерации текста на индонезийском языке и последующей тонкой настройки.

296скачиваний за 30 дней4лайкавеса обновлены19 апр 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Vega-100M-Indo — причинная языковая модель VegaLM, разработанная автором репозитория Veenn и обученная с нуля для индонезийского языка. Модель содержит 123,7 млн параметров по метаданным Hugging Face; в README указано 96,6 млн. Она предназначена как базовая модель для генерации текста и последующей тонкой настройки под прикладные задачи. Обучение проводилось на корпусе Lyon28/Corpus-Indonesia и индонезийской Википедии; на первом этапе использовалась knowledge distillation от Qwen/Qwen3-0.6B как вспомогательный сигнал, а продолжение предобучения выполнялось без учителя.

Модель использует собственную плотную архитектуру VegaLM для causal language modeling, реализованную на Transformers; заявлены grouped-query attention, сочетание глобального и скользящего внимания и блоки SwiGLU. По README, в опубликованном чекпойнте обучение продолжено до шага 17 500. Лицензия Apache 2.0 разрешает использование, изменение и распространение, включая коммерческое, с соблюдением условий атрибуции.

Это компактная базовая модель, а не готовый специализированный ассистент. README описывает её как основание для дальнейшей настройки, поэтому качество диалогов и специализированных ответов не следует считать гарантированным без адаптации. Для загрузки пользовательской архитектуры требуется включить trust_remote_code=True; в README также зафиксировано, что ранняя версия не загружалась из-за отсутствовавшего файла modeling_vegalm.py, и сообщается о его добавлении в обновлении.

Сценарии применения

  • генерация продолжения текста на индонезийском языке
  • создание базового чекпойнта для тонкой настройки
  • эксперименты с компактными причинными языковыми моделями
  • адаптация модели под индонезийские текстовые задачи

Ограничения

Модель опубликована как базовая и может требовать тонкой настройки для диалогов и специализированных задач. Для загрузки пользовательской архитектуры Transformers нужно установить trust_remote_code=True; в README приведено расхождение в размере: 96,6 млн параметров в описании и 123,7 млн в метаданных.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Vega-100M-Indo

Model bahasa Indonesia 96.6M parameter — dilatih dari nol, gratis, dalam beberapa jam.

License Language Platform Budget Parameters


🔧 Update Log

v1.2 — Fase 3 Continued Pretraining + Model Inspection (April 2026)

Weight model diperbarui ke checkpoint step 17,500 — hasil lanjutan training Fase 2 (Wikipedia Indonesia) yang sebelumnya berhenti di step 12,182. Sesi ini melanjutkan dari checkpoint-12000 dengan learning rate yang dilanjutkan dari cosine schedule yang sama.

Yang berubah:

  • ✅ Weight diperbarui ke checkpoint-17500 (loss turun dari 3.099 → 2.965)
  • ✅ Tambah log training Fase 3 lengkap per 100 step
  • ✅ Tambah section hasil model inspection (embedding, attention, generation)
  • ✅ Upload inspect_vega.py — script untuk membedah perilaku model

v1.1 — Bug Fix Kritis (April 2026)

⚠️ Pengguna sebelumnya wajib baca!

Ditemukan bug kritis: modeling_vegalm.py tidak ikut terupload saat rilis pertama, sehingga semua pengguna sebelumnya tidak bisa load model sama sekali — baik untuk inference maupun fine-tuning. Mohon maaf atas ketidaknyamanannya! 🙏

Fix yang dilakukan:

  • ✅ Upload modeling_vegalm.py (arsitektur VegaLM)
  • ✅ Update config.json — tambah auto_map dan fix model_type
  • ✅ Update cara penggunaan di README

Cara load yang benar (wajib tambah trust_remote_code=True):

model = AutoModelForCausalLM.from_pretrained(
    "Veenn/vega-100m-indo",
    trust_remote_code=True  # ← wajib, tanpa ini error
)

📖 Deskripsi

Vega-100M-Indo adalah causal language model untuk Bahasa Indonesia yang dilatih dari nol (from scratch) di Google Colab dengan GPU T4 gratis — tanpa biaya sepeser pun.

Model ini dirilis di bawah lisensi Apache 2.0 — bebas digunakan, dimodifikasi, dan didistribusikan untuk keperluan apapun, termasuk komersial, selama menyertakan atribusi yang sesuai.

Tentang Knowledge Distillation yang Digunakan

Model ini menggunakan teknik Knowledge Distillation dari Qwen/Qwen3-0.6B sebagai teacher — tapi bukan distilasi konvensional.

Distilasi konvensional bertujuan agar student semirip mungkin dengan teacher: student belajar meniru distribusi output teacher, sehingga menjadi versi yang lebih kecil dan lebih cepat dari model yang sama.

Vega menggunakan distilasi sebagai training accelerator, bukan sebagai cara mentransfer pengetahuan dari teacher ke student. Tujuannya bukan agar Vega menjadi "Qwen versi kecil". Pretraining dari nol di hardware terbatas (T4 16GB) sangat brutal — tanpa sinyal tambahan, model kecil bisa stuck lama di loss tinggi sebelum representasi internal-nya mulai terbentuk. Distilasi di sini berfungsi sebagai scaffolding: sinyal dari representasi intermediate teacher membantu gradien mengalir lebih bermakna di awal training, sehingga model bisa belajar lebih efisien dari data yang sama. Teacher dibuang setelah fase 1 selesai — fase 2 dan 3 berjalan murni dengan CE loss tanpa teacher sama sekali.

Model ini melewati tiga fase training:

  1. Pretraining pada Lyon28/Corpus-Indonesia (~175M token dari 1M baris) — dengan distilasi sebagai accelerator
  2. Continued Pretraining pada Wikipedia Bahasa Indonesia (3.7M baris, sesi 1–4, hingga step 12,182) — tanpa distilasi
  3. Continued Pretraining lanjutan pada Wikipedia Bahasa Indonesia (resume dari step 12,000, hingga step 17,500) — tanpa distilasi

Model ini dirilis sebagai base model — fondasi yang bisa di-fine-tune untuk berbagai downstream task.


🏗️ Arsitektur

KomponenNilai
ArsitekturVegaLM (Causal LM Custom)
Hidden Size768
Jumlah Layer12
Attention Heads8 Query / 2 Key-Value (GQA)
Head Dimension64
FFN Dimension2048 (SwiGLU)
Vocab Size32,000 (SentencePiece Unigram)
Max Sequence512 token
Hybrid AttentionFull Attention setiap 3 layer; Sliding Window (128) untuk sisanya
Tied EmbeddingsYa
Total Parameter Fisik96.6M

Desain Arsitektur

  • GQA (Grouped Query Attention): Rasio 8Q:2KV mengurangi memory footprint KV cache tanpa degradasi performa signifikan.
  • Hybrid Attention: Layer 2, 5, 8, 11 menggunakan full attention untuk konteks global; layer lainnya pakai sliding window 128 untuk efisiensi.
  • SwiGLU FFN: Gated activation function yang terbukti lebih efisien dibanding ReLU/GELU standar.
  • Tied Embeddings: Input dan output embedding di-share untuk menghemat parameter.

📊 Training

Fase 1 — Pretraining (Lyon28 Corpus)

ParameterNilai
DatasetLyon28/Corpus-Indonesia
Jumlah Baris1,000,000
Total Token~175 juta
Teacher ModelQwen/Qwen3-0.6B (sebagai accelerator, bukan imitasi)
Distilled Layers7, 14, 21, 28 (projector Linear 1024→768 + LayerNorm)
Distillation Weight0.5
Batch Size Efektif64 (8 × 8 grad accum)
Learning Rate1e-4 (cosine + warmup 1000 step)
OptimizerAdamW (β1=0.9, β2=0.95)
PrecisionFP16
Total Steps~5,086
Waktu Training~2 jam 42 menit
Loss Akhir2.126 (Perplexity ≈ 8.39)

Fase 1 Training

Fase 2 — Continued Pretraining (Wikipedia Indonesia, Sesi 1–4)

ParameterNilai
DatasetWikipedia Bahasa Indonesia
Jumlah Baris~3,700,000
TeacherTidak ada (pure CE loss)
Learning Rate3e-5 (cosine decay)
Batch Size Efektif64
Total Steps12,182
Jumlah Sesi4 sesi terpisah (Colab timeout)
Waktu Training~2 jam 54 menit
Loss Akhir3.099 (step 12,182)

Fase 2 Training

Fase 3 — Continued Pretraining (Wikipedia Indonesia, Sesi 5)

Resume dari checkpoint-12000, melanjutkan cosine schedule yang sama.

ParameterNilai
DatasetWikipedia Bahasa Indonesia (lanjutan)
Resume daricheckpoint-12000
Learning Rate3e-5 → decay ke ~2.42e-5
Batch Size Efektif64
Total Steps12,500 – 17,500
Loss Akhir2.965 (step 17,200–17,300)

Catatan: Loss di Fase 3 berhasil menembus di bawah 3.0 untuk pertama kalinya di Wikipedia domain — turun dari 3.099 ke 2.965. Tren penurunan masih aktif saat sesi dihentikan di step 17,520.

Log Training Fase 3 (per 100 Step)

StepLossGrad NormLRΔ Loss
12,5003.0991.4182.72e-5—
12,6003.1021.5012.71e-5+0.003
12,7003.0771.6322.71e-5-0.025
12,8003.0922.2612.70e-5+0.015
12,9003.0881.8232.70e-5-0.004
13,0003.0661.7302.69e-5-0.022
13,1003.0661.5502.69e-50.000
13,2003.0881.4782.68e-5+0.022
13,3003.1001.6602.68e-5+0.012
13,4003.0571.7312.67e-5-0.043
13,5003.0521.6662.64e-5-0.005
13,6003.0831.7532.64e-5+0.031
13,7003.0621.6382.63e-5-0.021
13,8003.0601.6702.63e-5-0.002
13,9003.0732.1312.62e-5+0.013
14,0003.0311.5832.62e-5-0.042
14,1003.0221.4852.61e-5-0.009
14,2003.0551.7782.61e-5+0.033
14,3003.0251.8202.60e-5-0.030
14,4003.0242.3732.60e-5-0.001
14,5003.0521.9302.59e-5+0.028
14,6003.0291.8252.58e-5-0.023
14,7003.0461.7072.58e-5+0.017
14,8003.0371.4402.57e-5-0.009
14,9003.0181.8532.57e-5-0.019
15,0003.0091.9712.56e-5-0.009
15,1003.0502.1752.56e-5+0.041
15,2003.0271.5862.55e-5-0.023
15,3003.0141.4892.54e-5-0.013
15,4003.0261.4412.54e-5+0.012
15,5003.0221.5992.53e-5-0.004
15,6003.0271.8442.53e-5+0.005
15,7003.0181.5772.52e-5-0.009
15,8003.0151.6042.51e-5-0.003
15,9003.0081.7642.51e-5-0.007
16,0002.9851.6972.50e-5-0.023
16,1002.9991.7322.50e-5+0.014
16,2003.0041.6402.49e-5+0.005
16,3003.0051.4142.48e-5+0.001
16,4003.0261.7232.48e-5+0.021
16,5002.9721.4772.47e-5-0.054
16,6003.0271.5382.47e-5+0.055
16,7003.0061.4592.46e-5-0.021
16,8002.9851.6242.45e-5-0.021
16,9002.9711.5702.45e-5-0.014
17,0003.0061.7122.44e-5+0.035
17,1002.9661.4222.44e-5-0.040
17,2002.9651.8342.43e-5-0.001
17,3002.9852.5222.42e-5+0.020
17,4002.9971.9552.42e-5+0.012
17,500———(checkpoint saved)

📈 Kurva Loss Lengkap

Ringkasan per 1000 Step (Fase 1)

RangeΔ LossFase
0 – 1000-2.093Rapid Learning
1000 – 2000-0.786Momentum Building
2000 – 3000-0.412Overdrive
3000 – 4000-0.169Fine-Tuning Alami
4000 – 5000-0.126Konvergensi

Ringkasan per Sesi (Fase 2 + 3)

SesiStepsLoss AkhirCatatan
Sesi 10 – 1,5003.640
Sesi 21,500 – 4,0043.400
Sesi 34,004 – 9,0093.186
Sesi 49,009 – 12,1823.099
Sesi 512,500 – 17,5002.965Tembus < 3.0 pertama kali

⚙️ Cara Penggunaan

⚠️ Penting: Model ini menggunakan arsitektur custom. Wajib menambahkan trust_remote_code=True saat load model, jika tidak akan error.

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("Veenn/vega-100m-indo")
model = AutoModelForCausalLM.from_pretrained(
    "Veenn/vega-100m-indo",
    trust_remote_code=True  # wajib untuk arsitektur custom VegaLM
)
model.eval()

prompt = "Bahasa Indonesia adalah"
inputs = tokenizer(prompt, return_tensors="pt")

with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_new_tokens=100,
        temperature=0.8,
        top_p=0.9,
        top_k=50,
        repetition_penalty=1.3,
        do_sample=True,
    )

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Inference Config yang Direkomendasikan

generation_config = {
    "max_new_tokens": 100,
    "temperature": 0.8,
    "top_p": 0.9,
    "top_k": 50,
    "repetition_penalty": 1.3,
    "no_repeat_ngram_size": 3,
    "min_new_tokens": 10,
    "do_sample": True,
}

🔬 Model Inspection

Setelah training selesai, model dibedah menggunakan inspect_vega.py untuk memahami perilaku internal — mulai dari representasi embedding, pola attention, distribusi prediksi token, hingga tracing generasi step-by-step. Berikut temuan-temuannya.

Embedding Space

Cosine similarity antar kata menunjukkan bahwa model belum membangun semantic clustering yang kuat di level embedding. Kata-kata yang secara intuitif berkaitan (jakarta–indonesia, gunung–sungai) hanya punya similarity 0.09–0.22 — rendah untuk model yang sudah melihat ratusan juta token. Ini konsisten dengan arsitektur tied embedding: karena embedding input dan output berbagi weight, gradien dari LM objective menarik embedding ke arah prediksi token berikutnya, bukan ke arah semantic similarity antar kata.

Satu anomali menarik: surabaya dan sungai punya cosine similarity = 1.000 — persis identik. Ini hampir pasti karena keduanya di-tokenize ke token yang sama oleh tokenizer Unigram 32K (kemungkinan keduanya collapse ke prefix S atau subword yang overlap).

Nearest neighbors juga masih didominasi prefix token (J, In, S, G) daripada kata-kata semantically related. Ini side effect dari tokenizer Unigram yang agresif split kata kapital jadi subword.

Attention Pattern

Entropy attention per layer berkisar 0.8–1.4 untuk sequence pendek (9 token), yang wajar — pada sequence sepanjang ini semua token masih dalam sliding window 128, jadi tidak ada perbedaan visible antara layer full attention dan sliding window. Perbedaan baru akan terlihat pada sequence panjang (>128 token).

Yang menarik: layer pertama (layer 0) punya entropy paling rendah (0.808) dibanding layer lain. Ini menunjukkan bahwa layer awal lebih "fokus" dan selektif — kemungkinan belajar mengekstrak fitur lokal yang tajam, sementara layer tengah dan akhir lebih "spread" untuk integrasi konteks yang lebih luas.

Token Prediction & Generasi

Distribusi prediksi menunjukkan model sudah berfungsi dengan benar:

  • "Ibukota Indonesia adalah" → top prediction: sebuah (24.4%), entropy 4.30. Model tahu ini konteks deskripsi, tapi belum tahu bahwa "ibukota" harus diikuti nama kota.
  • "Presiden pertama Indonesia adalah" → top prediction: P (7.3%), W (6.8%), entropy 5.48. Model ragu antara nama yang diawali P atau W — distribusi masih cukup flat, belum confident ke "Soekarno".
  • "Bahasa resmi Indonesia adalah" → top prediction: b (93.5%) yang berlanjut ke "bahasa" → "tradisional". Model tahu konteksnya bahasa, tapi lanjutnya salah faktual.

Generasi traced menunjukkan banyak token di tengah kalimat punya probabilitas mendekati 1.0 — artinya setelah beberapa token pertama model sangat confident dengan kelanjutannya (misalnya setelah "Kemen" → "ter" → "ian" semua p=1.0). Ini tanda model sudah menguasai morfologi dan struktur kata Bahasa Indonesia dengan baik, tapi factual recall masih terbatas — karena base model ini dilatih untuk memprediksi teks, bukan untuk menjawab pertanyaan faktual.

Kesimpulan Inspection

Model berfungsi normal dan weight ter-load dengan benar (entropy turun dari ~7.1 di awal ke 4.3–5.5 setelah fix). Kelemahan utama ada di dua area: (1) semantic embedding space yang belum ter-cluster dengan baik, dan (2) factual recall yang masih lemah untuk pertanyaan seperti "ibukota X adalah Y". Keduanya adalah karakteristik wajar base model yang belum instruction-tuned — dan keduanya bisa diperbaiki dengan fine-tuning yang tepat.


🧪 Contoh Output

Model ini adalah base model — outputnya adalah kelanjutan teks, bukan jawaban instruksi.

Prompt: "Ibukota Indonesia adalah"

"...bagian dari Kementerian Kelautan dan Perikanan Republik Indonesia..."

Prompt: "Presiden pertama Indonesia adalah"

"...Wakil Presiden Indonesia, pada tanggal 8 Desember 1994..."

Prompt: "Bahasa resmi Indonesia adalah"

"...bahasa tradisional yang dituturkan oleh bahasa Indonesia..."

Model sudah menguasai struktur Bahasa Indonesia dengan baik (morfologi, kalimat kompleks, SPOK benar) namun pengetahuan faktual masih terbatas. Fine-tuning instruksi diperlukan untuk task factual QA.


📊 Zona Loss Optimal (96M Parameter)

Range LossStatus
< 1.5❌ Impossible (information theory)
1.5 – 1.8⚠️ Kemungkinan Overfit
1.8 – 2.0⚠️ Risky
2.0 – 2.3✅ OPTIMAL
2.3 – 2.6🟡 Good
2.6 – 3.0🟠 Acceptable
> 3.0🔴 Underfit

Loss Fase 1 sebesar 2.126 berada di zona optimal ✅. Loss Fase 2+3 (2.965) mencerminkan kesulitan domain Wikipedia yang lebih tinggi — sekarang masuk zona Acceptable dan terus turun.


🎯 Intended Use & Limitasi

✅ Cocok untuk:

  • Fine-tuning untuk downstream task Bahasa Indonesia (klasifikasi, NER, QA, summarization)
  • Penelitian NLP bahasa Indonesia
  • Basis eksperimen arsitektur LM skala kecil
  • Deployment edge device (96M param, ringan)

❌ Tidak cocok untuk:

  • Penggunaan langsung sebagai chatbot/asisten (belum instruction-tuned)
  • Factual QA tanpa fine-tuning tambahan
  • Aplikasi produksi yang memerlukan akurasi faktual tinggi

⚠️ Limitasi yang Diketahui:

  • Factual recall masih lemah — model tahu konteks tapi bukan fakta spesifik
  • Semantic embedding space belum ter-cluster kuat (tied embedding trade-off)
  • Tokenizer Unigram 32K agresif split kata kapital jadi subword
  • Max sequence 512 token

📂 Isi Repo

Semua file di repo ini dirilis secara terbuka — bukan hanya weights-nya, tapi juga kode dan artefak training yang memungkinkan siapapun untuk mereproduksi atau melanjutkan eksperimen ini dari nol.

Model & Arsitektur

model.safetensors — Weight model hasil training Fase 3 (checkpoint step 17,500), format SafeTensors. Ini yang di-load saat from_pretrained().

modeling_vegalm.py — Definisi arsitektur VegaLM dalam PyTorch. File ini wajib ada di repo agar AutoModelForCausalLM bisa mengenali arsitektur custom ini via trust_remote_code=True. Berisi implementasi lengkap GQA, hybrid attention, SwiGLU FFN, dan tied embeddings.

config.json — Konfigurasi model: hidden size, jumlah layer, vocab size, parameter distilasi, dll. Juga berisi auto_map yang menghubungkan AutoModelForCausalLM ke VegaLMForCausalLM di modeling_vegalm.py.

Tokenizer

tokenizer.model — File model SentencePiece Unigram 32K yang dilatih langsung dari Lyon28/Corpus-Indonesia. Bukan tokenizer off-the-shelf — dilatih khusus untuk distribusi teks Bahasa Indonesia.

tokenizer.json — Representasi tokenizer dalam format HuggingFace, digunakan oleh AutoTokenizer.

tokenizer.vocab — Daftar lengkap 32,000 token beserta skor unigram-nya. Berguna untuk inspeksi vocab atau analisis coverage.

tokenizer_config.json — Metadata tokenizer: special tokens (<pad>, <unk>, <s>, </s>), model_max_length, dan pointer ke class tokenizer.

Training & Inspection Scripts

train_phase1.py — Script training Fase 1 yang digunakan untuk melatih Vega dari nol. Ini bukan sekadar boilerplate — script ini mendokumentasikan seluruh keputusan arsitektur dan engineering yang dibuat selama proses development, termasuk implementasi DistillationTrainer custom, mekanisme attention pooling per-layer untuk distilasi, dan serangkaian fix engineering yang terdokumentasi ([F1]–[F9], [FIX-A]–[FIX-C]). Script ini bisa dijalankan langsung di Google Colab T4 gratis dan otomatis resume dari checkpoint terakhir di Google Drive.

inspect_vega.py — Script untuk membedah perilaku model secara menyeluruh: analisis cosine similarity embedding antar kata, visualisasi entropy attention per layer, distribusi prediksi next token, dan generation trace step-by-step dengan probabilitas tiap token. Berguna untuk memahami apa yang sudah dan belum dipelajari model sebelum memutuskan strategi fine-tuning.

Artefak Training

trainer_state.json — Log training step-by-step dari HuggingFace Trainer: loss per step, learning rate schedule, dan metadata checkpoint.

training_args.bin — Serialisasi TrainingArguments yang dipakai saat training. Berisi semua hyperparameter: batch size, learning rate, scheduler, precision, dll.

scheduler.pt — State LR scheduler di akhir training.

training_phase1_pretrain.png — Grafik kurva loss Fase 1 (Lyon28 corpus, ~5086 steps).

training_phase2_wiki.png — Grafik kurva loss Fase 2 (Wikipedia Indonesia, 12,182 steps lintas 4 sesi Colab).

mascot.png — Maskot Vega. 🌟


🗺️ Roadmap

  • Vega-100M-Indo-Instruct — Instruction tuning dengan dataset Alpaca/ShareGPT Bahasa Indonesia
  • Evaluasi formal (validation perplexity, downstream benchmarks)
  • Extended pretraining dengan lebih banyak data

💻 Infrastruktur Training

ItemDetail
PlatformGoogle Colab (Free Tier)
GPUNVIDIA T4 (16GB VRAM)
Budget$0
FrameworkPyTorch + HuggingFace Transformers
PrecisionFP16
Total Waktu~7 jam+ (ketiga fase)

🙏 Acknowledgements

  • Qwen Team — untuk Qwen3-0.6B yang digunakan sebagai teacher model (training accelerator)
  • Lyon28 — untuk Corpus-Indonesia dataset
  • Wikimedia — untuk Wikipedia Bahasa Indonesia
  • Google Colab — untuk akses GPU gratis yang memungkinkan proyek ini ada

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
VegaLMForCausalLM
Ревизия весов
384040d

0 моделей