LLM: create model tanpa huggingface

From OnnoWiki
Revision as of 16:18, 5 May 2025 by Onnowpurbo (talk | contribs) (→‎Tips Tambahan:)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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:

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:

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.

Pranala Menarik