LLM: create model tanpa huggingface: Difference between revisions
From OnnoCenterWiki
Jump to navigationJump to search
Created page with "Untuk membuat '''library atau model Ollama''' berbahasa Indonesia tanpa bergantung pada '''Hugging Face''', kamu bisa membangun atau melatih (fine-tune) model LLM secara lokal..." |
|||
| Line 108: | Line 108: | ||
* Hindari Hugging Face dengan '''manual download model weight''' dari GitHub mirror atau torrent repo LLaMA. | * Hindari Hugging Face dengan '''manual download model weight''' dari GitHub mirror atau torrent repo LLaMA. | ||
==Pranala Menarik== | |||
* [[LLM]] | |||
Latest revision as of 09:18, 5 May 2025
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.