<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=LLM%3A_Fine_Tune_Ollama_qwen3%3A0.6b</id>
	<title>LLM: Fine Tune Ollama qwen3:0.6b - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=LLM%3A_Fine_Tune_Ollama_qwen3%3A0.6b"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=LLM:_Fine_Tune_Ollama_qwen3:0.6b&amp;action=history"/>
	<updated>2026-04-19T19:19:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=LLM:_Fine_Tune_Ollama_qwen3:0.6b&amp;diff=72954&amp;oldid=prev</id>
		<title>Unknown user: Created page with &quot;### Panduan Fine-Tuning Model Qwen2-0.5B dengan Dataset JSONL untuk Ollama  Saya asumsikan &quot;qwen3:0.6b&quot; merujuk pada model Qwen2-0.5B (atau varian serupa seperti Qwen2.5-0.5B-...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=LLM:_Fine_Tune_Ollama_qwen3:0.6b&amp;diff=72954&amp;oldid=prev"/>
		<updated>2025-10-04T22:01:56Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;### Panduan Fine-Tuning Model Qwen2-0.5B dengan Dataset JSONL untuk Ollama  Saya asumsikan &amp;quot;qwen3:0.6b&amp;quot; merujuk pada model Qwen2-0.5B (atau varian serupa seperti Qwen2.5-0.5B-...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;### Panduan Fine-Tuning Model Qwen2-0.5B dengan Dataset JSONL untuk Ollama&lt;br /&gt;
&lt;br /&gt;
Saya asumsikan &amp;quot;qwen3:0.6b&amp;quot; merujuk pada model Qwen2-0.5B (atau varian serupa seperti Qwen2.5-0.5B-Instruct, karena Qwen3 belum dirilis secara luas per Oktober 2025). Model ini ringan dan cocok untuk fine-tuning lokal. Proses ini menggunakan **LLaMA-Factory** untuk fine-tuning (mudah dan efisien), dataset dalam format JSONL (standar chat format), lalu konversi ke GGUF agar langsung bisa dijalankan di **Ollama**.&lt;br /&gt;
&lt;br /&gt;
**Prasyarat:**&lt;br /&gt;
- Python 3.10+ dengan CUDA (jika GPU) atau CPU.&lt;br /&gt;
- Install LLaMA-Factory: `pip install -U &amp;quot;llama-factory[torch,metrics]&amp;quot;` (lihat [GitHub LLaMA-Factory](https://github.com/hiyouga/LLaMA-Factory)).&lt;br /&gt;
- Install llama.cpp: Clone repo `git clone https://github.com/ggerganov/llama.cpp` dan build dengan `make`.&lt;br /&gt;
- Ollama terinstall (download dari [ollama.com](https://ollama.com)).&lt;br /&gt;
- Dataset JSONL: Setiap baris adalah JSON object, format ShareGPT untuk Qwen (contoh di bawah).&lt;br /&gt;
&lt;br /&gt;
#### 1. Siapkan Dataset JSONL&lt;br /&gt;
Dataset harus dalam format chat (multi-turn conversation). Contoh `train.jsonl` (simpan sebagai file teks):&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
{&amp;quot;conversations&amp;quot;: [{&amp;quot;from&amp;quot;: &amp;quot;human&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;Apa itu AI?&amp;quot;}, {&amp;quot;from&amp;quot;: &amp;quot;gpt&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;AI adalah kecerdasan buatan yang mensimulasikan proses berpikir manusia.&amp;quot;}]}&lt;br /&gt;
{&amp;quot;conversations&amp;quot;: [{&amp;quot;from&amp;quot;: &amp;quot;human&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;Jelaskan machine learning.&amp;quot;}, {&amp;quot;from&amp;quot;: &amp;quot;gpt&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;Machine learning adalah subset AI di mana model belajar dari data tanpa diprogram eksplisit.&amp;quot;}]}&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- `from: &amp;quot;human&amp;quot;` = input user.&lt;br /&gt;
- `from: &amp;quot;gpt&amp;quot;` = output assistant (ganti dengan &amp;quot;assistant&amp;quot; jika format chatml).&lt;br /&gt;
- Taruh file di folder dataset, misal `./data/train.jsonl`.&lt;br /&gt;
- Split jika perlu: 80% train, 20% eval.&lt;br /&gt;
&lt;br /&gt;
#### 2. Fine-Tuning dengan LLaMA-Factory&lt;br /&gt;
LLaMA-Factory mendukung Qwen secara native. Gunakan script SFT (Supervised Fine-Tuning).&lt;br /&gt;
&lt;br /&gt;
- Buat file config YAML (`sft.yaml`) atau gunakan CLI. Contoh CLI command untuk Qwen2-0.5B:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
llamafactory-cli train \&lt;br /&gt;
  --stage sft \&lt;br /&gt;
  --model_name_or_path Qwen/Qwen2-0.5B \&lt;br /&gt;
  --dataset your_dataset_name \  # Daftarkan dataset di examples/dataset_info.json jika custom&lt;br /&gt;
  --dataset_dir ./data \&lt;br /&gt;
  --template qwen \  # Template chat untuk Qwen&lt;br /&gt;
  --finetuning_type lora \  # Efisien, gunakan LoRA untuk model kecil&lt;br /&gt;
  --lora_target q_proj,v_proj  # Target LoRA untuk Qwen&lt;br /&gt;
  --output_dir ./output/qwen-finetuned \&lt;br /&gt;
  --overwrite_output_dir \&lt;br /&gt;
  --cutoff_len 1024 \&lt;br /&gt;
  --max_samples 1000 \  # Jumlah sample dari JSONL&lt;br /&gt;
  --per_device_train_batch_size 4 \&lt;br /&gt;
  --gradient_accumulation_steps 4 \&lt;br /&gt;
  --lr_scheduler_type cosine \&lt;br /&gt;
  --logging_steps 10 \&lt;br /&gt;
  --save_steps 100 \&lt;br /&gt;
  --learning_rate 5e-5 \&lt;br /&gt;
  --num_train_epochs 3 \&lt;br /&gt;
  --plot_loss \&lt;br /&gt;
  --fp16  # Gunakan FP16 untuk hemat memori&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- **Penjelasan:**&lt;br /&gt;
  - `--model_name_or_path`: Ambil base model dari Hugging Face.&lt;br /&gt;
  - `--dataset`: Jika custom JSONL, tambahkan ke `src/llamafactory/data/dataset_info.json` seperti: `&amp;quot;your_dataset&amp;quot;: {&amp;quot;file_name&amp;quot;: &amp;quot;train.jsonl&amp;quot;, &amp;quot;columns&amp;quot;: {&amp;quot;messages&amp;quot;: &amp;quot;conversations&amp;quot;}}`.&lt;br /&gt;
  - Jalankan di GPU jika ada (minimal 4GB VRAM untuk 0.5B).&lt;br /&gt;
  - Output: Model fine-tuned di `./output/qwen-finetuned` (dengan adapter LoRA).&lt;br /&gt;
&lt;br /&gt;
- Jika ingin notebook: Lihat [Unsloth notebook untuk Qwen](https://huggingface.co/unsloth/Qwen2.5-0.5B-Instruct) – gratis di Colab, 2x lebih cepat.&lt;br /&gt;
&lt;br /&gt;
- Waktu estimasi: 10-30 menit untuk 1000 sample di GPU.&lt;br /&gt;
&lt;br /&gt;
#### 3. Merge LoRA dan Export ke Hugging Face Format&lt;br /&gt;
Setelah fine-tuning, merge adapter ke base model:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
llamafactory-cli export \&lt;br /&gt;
  --model_name_or_path Qwen/Qwen2-0.5B \&lt;br /&gt;
  --adapter_name_or_path ./output/qwen-finetuned \&lt;br /&gt;
  --template qwen \&lt;br /&gt;
  --export_dir ./merged_model \&lt;br /&gt;
  --export_size 2 \  # Export ke FP16&lt;br /&gt;
  --export_legacy_format False&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Ini hasilkan model lengkap di `./merged_model` siap untuk konversi.&lt;br /&gt;
&lt;br /&gt;
#### 4. Konversi ke GGUF untuk Ollama&lt;br /&gt;
Gunakan llama.cpp converter:&lt;br /&gt;
&lt;br /&gt;
- Di folder llama.cpp, jalankan:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
python convert_hf_to_gguf.py ../merged_model --outfile qwen-finetuned.gguf --outtype f16&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- Quantize jika perlu (hemat ruang, misal Q4_K_M):&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
./llama-quantize qwen-finetuned.gguf qwen-finetuned-q4.gguf Q4_K_M&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- Hasil: File `.gguf` (ukuran ~300MB untuk 0.5B quantized).&lt;br /&gt;
&lt;br /&gt;
#### 5. Deploy ke Ollama&lt;br /&gt;
- Buat `Modelfile` (file teks):&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
FROM ./qwen-finetuned-q4.gguf&lt;br /&gt;
&lt;br /&gt;
TEMPLATE &amp;quot;&amp;quot;&amp;quot;{{ if .System }}&amp;lt;|im_start|&amp;gt;system&lt;br /&gt;
{{ .System }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
{{ end }}{{ if .Prompt }}&amp;lt;|im_start|&amp;gt;user&lt;br /&gt;
{{ .Prompt }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
{{ end }}&amp;lt;|im_start|&amp;gt;assistant&lt;br /&gt;
{{ .Response }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PARAMETER stop &amp;quot;&amp;lt;|im_end|&amp;gt;&amp;quot;&lt;br /&gt;
PARAMETER temperature 0.7&lt;br /&gt;
PARAMETER top_p 0.9&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- (Sesuaikan TEMPLATE dengan format Qwen: Gunakan `&amp;lt;|im_start|&amp;gt;` dan `&amp;lt;|im_end|&amp;gt;` untuk chat.)&lt;br /&gt;
&lt;br /&gt;
- Import ke Ollama:&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
ollama create qwen-custom -f Modelfile&lt;br /&gt;
ollama run qwen-custom&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
- Test: `ollama run qwen-custom &amp;quot;Apa itu AI?&amp;quot;` – output harus mengikuti pola fine-tuning dari JSONL.&lt;br /&gt;
&lt;br /&gt;
#### Tips Tambahan&lt;br /&gt;
- **Evaluasi:** Gunakan `--do_eval` di CLI untuk metric seperti perplexity.&lt;br /&gt;
- **Masalah Umum:**&lt;br /&gt;
  - Memori: Gunakan LoRA + gradient checkpointing.&lt;br /&gt;
  - Format JSONL salah: Pastikan valid JSON per baris (cek dengan `jq . train.jsonl`).&lt;br /&gt;
  - Ollama error: Pastikan GGUF kompatibel (test dengan `llama-cli` dari llama.cpp).&lt;br /&gt;
- **Sumber Lanjutan:** &lt;br /&gt;
  - LLaMA-Factory docs untuk Qwen: [qwen.readthedocs.io](https://qwen.readthedocs.io/en/latest/training/llama_factory.html).&lt;br /&gt;
  - Konversi GGUF: [llama.cpp tutorial](https://github.com/ggerganov/llama.cpp/discussions/2948).&lt;br /&gt;
&lt;br /&gt;
Proses ini end-to-end dan output langsung usable di Ollama. Jika butuh contoh kode spesifik atau error, beri detail lebih lanjut!&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>