Difference between revisions of "LLM: create model tanpa huggingface"

From OnnoWiki
Jump to navigation Jump 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 16: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:

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