Skip to content

Arlchoose-code/Aibys-Data-Collector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ Aibys Data Collector

Tools untuk mengumpulkan, membersihkan, dan mempersiapkan dataset teks Bahasa Indonesia untuk melatih LLM. Dikembangkan oleh Syahril Haryono sebagai bagian dari ekosistem Aibys.

πŸ’‘ Repo ini adalah langkah pertama sebelum pre-training β€” kumpulkan dan siapkan dataset kamu di sini, lalu lanjut ke Indonesian LLM Starter.


πŸ”— Ekosistem Aibys

Repo Fungsi
πŸ“¦ Aibys Data Collector (repo ini) Kumpulkan & siapkan dataset untuk training
πŸ—οΈ Indonesian LLM Starter Pre-training LLM dari scratch
🎯 Indonesian LLM Fine-tune Fine-tuning model hasil pre-training dengan LoRA

Alur lengkap:

Aibys Data Collector    β†’    Indonesian LLM Starter    β†’    Indonesian LLM Fine-tune
(kumpul & siap data)         (pre-train model)               (fine-tune jadi assistant)
        ↓                            ↓                                  ↓
  train_shuffled.txt    β†’      aibys_final.pt           β†’        model siap chat

🎯 Untuk Apa Repo Ini?

Sebelum bisa melatih LLM, kamu butuh data teks dalam jumlah besar β€” idealnya 10 Miliar token ke atas. Repo ini menyediakan tools untuk:

  • πŸ“₯ Download dataset dari HuggingFace secara streaming (RAM-efficient)
  • 🧹 Bersihkan teks dari noise, null character, URL, dan karakter aneh
  • πŸ”€ Shuffle dataset raksasa secara disk-based tanpa meledakkan RAM
  • πŸ“Š Audit kualitas dan estimasi jumlah token
  • πŸ€– Generate data identitas AI untuk menanamkan kepribadian model

πŸ—‚οΈ Struktur Project

aibys-data-collector/
β”‚
β”œβ”€β”€ aibys_collector.py          # πŸ“₯  Download dataset dari HuggingFace
β”œβ”€β”€ aibys_shuffler.py           # πŸ”€  Shuffle dataset besar secara disk-based
β”œβ”€β”€ cek_progres.py              # πŸ“Š  Cek total ukuran, karakter & estimasi token
β”œβ”€β”€ cek_ascii.py                # πŸ”  Audit kebersihan data (non-ASCII checker)
β”œβ”€β”€ buat_blueprint_identitas.py # πŸ€–  Generate data identitas & kepribadian AI
β”‚
└── data/                       # Output dataset (tidak di-commit)
    β”œβ”€β”€ dataset1.txt
    β”œβ”€β”€ dataset2.txt
    └── ...

βš™οΈ Penjelasan Tiap Script

aibys_collector.py β€” Downloader Dataset

Script interaktif untuk download dataset dari HuggingFace. Bisa tambah banyak repo ke "keranjang" sekaligus, lalu download semua dalam satu proses.

Fitur:

  • Streaming mode β€” dataset sebesar apapun tidak akan meledakkan RAM
  • Multi-repo β€” download banyak dataset sekaligus
  • Pembersihan otomatis β€” hapus null character, URL, control character, normalisasi Unicode
  • Separator <|endoftext|> β€” otomatis ditambah antar dokumen supaya model tau batas antar teks
πŸ›’ AIBYS DATA COLLECTOR V5.2
1. Tambah Repo ke Daftar
2. πŸ”₯ GAS DOWNLOAD
3. Keluar

aibys_shuffler.py β€” Disk-Based Shuffler

Shuffle dataset yang sudah besar (puluhan GB) tanpa perlu load semua ke RAM.

Cara kerjanya:

  1. Distribusi β€” bagi semua dokumen ke 200-300 bucket kecil secara random
  2. Deep shuffle β€” shuffle dokumen di dalam setiap bucket
  3. Konsolidasi β€” gabungkan semua bucket dengan urutan random
# Default: 300 chunks, cocok untuk dataset 47GB+ di RAM 32GB
shuffle_raksasa_aibys("train.txt", "train_shuffled.txt", num_chunks=300)

cek_progres.py β€” Progress Checker

Scan semua file .txt di folder data/ dan tampilkan laporan lengkap:

  • Total ukuran file
  • Total baris & karakter
  • Estimasi token (pakai rasio 3.7 karakter/token untuk Bahasa Indonesia)
  • Status: apakah sudah cukup untuk training 10B+ token
πŸ“Š LAPORAN AKHIR TOTAL DATASET
πŸ“¦ Total Ukuran     : 47.23 GB
πŸ”‘ Total Karakter   : 48,291,023,841
πŸš€ ESTIMASI TOKEN   : 13.051 Billion
πŸŽ‰ STATUS: SIAP TRAINING 10B+ TOKEN!

cek_ascii.py β€” ASCII Auditor

Audit semua file .txt dan cari baris yang mengandung karakter non-ASCII. Berguna untuk memastikan dataset bersih sebelum tokenisasi.

βœ… SEMUA FILE BERSIH ASCII.
# atau
⚠️  Masih ada 0.0023% baris mengandung non-ASCII.

buat_blueprint_identitas.py β€” Identity Data Generator

Generate 500.000 baris data percakapan identitas dalam format formal/baku. Digunakan untuk "menanamkan" kepribadian dan identitas model supaya model tau siapa dirinya.

Format output:

User: Siapakah pencipta dari sistem kecerdasan buatan ini?
Assistant: Sistem Aibys ini diciptakan dan dikembangkan sepenuhnya oleh Syahril Haryono.
<|endoftext|>

πŸš€ Cara Pakai dari Awal

Install

git clone https://github.com/syhrlhyn834/aibys-data-collector.git
cd aibys-data-collector
pip install datasets tqdm

Step 1 β€” Download Dataset

python aibys_collector.py

Contoh input:

[+] Nama Repo HF     : wikipedia
[+] Nama Subset      : id
[+] Nama Kolom       : text
[+] Limit data       : 1M
[+] Simpan sebagai   : wikipedia_id.txt

Dataset Indo yang direkomendasikan:

Repo HuggingFace Subset Kolom
wikipedia id text
mc4 id text
uonlp/CulturaX id text
cahya/all-indo-man-made-corpus - text
Xavier-Nuttall/indo-wiki - text

Step 2 β€” Generate Data Identitas

python buat_blueprint_identitas.py

Output: identitas_aibys_baku.txt (500.000 baris)

Gabungkan ke dataset utama:

# Windows
type identitas_aibys_baku.txt >> data\train.txt

# Linux/Mac
cat identitas_aibys_baku.txt >> data/train.txt

Step 3 β€” Cek Progress

python cek_progres.py

Step 4 β€” Audit Kebersihan Data

python cek_ascii.py

Step 5 β€” Shuffle Dataset

python aibys_shuffler.py

Output: train_shuffled.txt β€” siap dipakai untuk training!

Step 6 β€” Lanjut ke Pre-training

Pindahkan hasil ke folder data/ di Indonesian LLM Starter:

cp train_shuffled.txt ../Indonesian-LLM-Starter/data/train.txt

πŸ”§ Konfigurasi Shuffler

Sesuaikan num_chunks di aibys_shuffler.py berdasarkan RAM:

RAM Dataset Size num_chunks
8GB ~10GB 100
16GB ~25GB 200
32GB ~50GB 300
64GB ~100GB 500

πŸ“¦ Dependencies

datasets>=2.14.0
tqdm>=4.66.0
pip install datasets tqdm

πŸ‘€ Author

Syahril Haryono β€” Developer independen asal Indonesia.


πŸ“„ License

Apache 2.0 β€” bebas digunakan, dimodifikasi, dan didistribusikan dengan atribusi.


Langkah pertama membangun LLM kamu sendiri. Lanjut ke Indonesian LLM Starter setelah dataset siap. πŸš€

About

Tools to collect, clean, shuffle, and prepare Indonesian text datasets for LLM pre-training.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages