LLM: create model tanpa huggingface
Jump to navigation
Jump to search
Untuk membuat library atau model Ollama berbahasa Indonesia tanpa bergantung pada Hugging Face, kamu bisa membangun atau melatih (fine-tune) model LLM secara lokal, lalu menjalankannya melalui Ollama. Berikut adalah langkah-langkah ringkas dan teknisnya:
Tujuan:
Membuat dan menjalankan model LLM Bahasa Indonesia secara lokal dengan Ollama, tanpa upload ke Hugging Face.
PRA-SYARAT:
- Ubuntu 24.04 (atau OS lain yang kompatibel)
- Docker (opsional, tapi disarankan)
- Python + venv (untuk preprocessing dan training)
- Ollama sudah terinstall
- Dataset Bahasa Indonesia (misalnya IndoSum, Wikipedia dump, OSCAR ID, dll.)
ALUR UMUM:
- Siapkan dataset Bahasa Indonesia
- Preprocessing teks dan tokenisasi
- Fine-tune model LLaMA/Mistral secara lokal
- Convert ke GGUF format
- Buat model file untuk Ollama (`Modelfile`)
- Load ke Ollama lokal
Ambil Dataset Bahasa Indonesia
Contoh:
- [OSCAR Indonesia](https://huggingface.co/datasets/oscar) (bisa download manual dari web atau wget)
- IndoSum (abstractive summary corpus)
- Wikipedia Bahasa Indonesia dump: [1](https://dumps.wikimedia.org/idwiki/latest/)
Jika tidak mau dari HuggingFace, kamu bisa:
wget https://data.statmt.org/oscar/corpus_id.txt.gz gunzip corpus_id.txt.gz
Preprocessing Dataset
Gunakan Python:
import re def clean_text(text): text = re.sub(r"http\S+", "", text) text = re.sub(r"\s+", " ", text) return text.strip() with open("corpus_id.txt", "r") as infile, open("cleaned.txt", "w") as outfile: for line in infile: cleaned = clean_text(line) if len(cleaned.split()) > 5: outfile.write(cleaned + "\n")
Fine-tune Model (LLaMA/Mistral)
Gunakan llama.cpp atau llama-factory:
- [2](https://github.com/ggerganov/llama.cpp)
- [3](https://github.com/huggingface/transformers) atau alternatif lokal
Contoh fine-tune dengan `llama-factory` (tanpa upload ke HF):
git clone https://github.com/hiyouga/LLaMA-Factory cd LLaMA-Factory pip install -r requirements.txt # Latih model dengan dataset lokal python src/train_bash.py \ --model_name_or_path "TheBloke/Mistral-7B-Instruct-v0.1" \ --dataset_dir ./my_data/ \ --template mistral \ --finetuning_type lora \ --output_dir ./output-id \ --cutoff_len 512 \ --fp16
Convert ke GGUF
Gunakan `llama.cpp` untuk konversi model hasil fine-tune:
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp python3 convert.py --outtype f16 --outfile model-id.gguf ./output-id
Buat Modelfile untuk Ollama
Buat file bernama `Modelfile`:
FROM ./model-id.gguf PARAMETER stop=[] prompt-template="### Pertanyaan:\nTemplate:Prompt\n\n### Jawaban:"
Lalu build:
ollama create indollama -f Modelfile
Jalankan Model di Ollama
ollama run indollama
Sekarang kamu sudah punya model Bahasa Indonesia lokal, 100% tanpa Hugging Face.
Tips Tambahan:
- Untuk model dasar, kamu bisa pakai model open-source seperti:
mistral-7b llama-2-7b
- Hindari Hugging Face dengan manual download model weight dari GitHub mirror atau torrent repo LLaMA.