ฝึกรุ่นปรับ (Fine-tune) Local LLM ด้วย LoRA: สอน AI ส่วนตัวให้ทำงานตามสไตล์คุณแบบออฟไลน์ 100% ด้วย Ollama

แทนที่จะบอกให้ AI จำเป็น Prompt ซ้ำ ๆ ทุกครั้ง ลอง 'ฝึก' โมเดลในเครื่องของคุณเองให้เข้าใจสไตล์การเขียน งาน และบริบทส่วนตัวของคุณด้วยเทคนิค LoRA แบบออฟไลน์ 100% ด้วย Ollama

Share
ฝึกรุ่นปรับ (Fine-tune) Local LLM ด้วย LoRA: สอน AI ส่วนตัวให้ทำงานตามสไตล์คุณแบบออฟไลน์ 100% ด้วย Ollama

ถ้าใช้ Local LLM อยู่ทุกวันแล้วเคยพบว่าตัวเองต้องพิมพ์ Prompt ยาว ๆ ซ้ำแล้วซ้ำเล่า เพื่อให้ AI ออกมาเป็นตามต้องการ — ไม่ว่าจะเป็นสไตล์การเขียนภาษาไทยขององค์กร, รูปแบบการสรุปโน้ต, หรือการตอบในโทนเฉพาะทางที่โมเดลทั่วไปยังไม่เข้าใจดี — ถึงเวลาแล้วที่จะเปลี่ยนจาก การขอร้อง (Prompting) ให้กลายเป็น การฝึก (Fine-tuning)

วันนี้เราจะมาฝึกโมเดลในเครื่องของคุณให้ "เข้าใจงานของคุณ" เป็นนิสัย ด้วยเทคนิค LORA (Low-Rank Adaptation) ที่ไม่ต้องเทรนทั้งโมเดล ใช้ VRAM น้อยมาก และ ทำงานบนเครื่องของคุณแบบออฟไลน์ 100%


ทำไมต้อง Fine-tune แทนการเขียน Prompt ธรรมดา

Fine-tuning คือกระบวนการนำข้อมูลตัวอย่าง (Dataset) ของคุณไปปรับ "หัว" ของโมเดลที่มีอยู่แล้ว ให้ตอบในรูปแบบที่คุณต้องการแบบอัตโนมัติ โดยไม่ต้องพึ่ง Prompt ยาว ๆ ทุกครั้ง

LoRA (Low-Rank Adaptation) คือเทคนิคที่ช่วย ลดต้นทุนการ Fine-tune ให้เหลือเพียงเศษเสี้ยวของวิธีดั้งเดิม แทนที่จะเทรน (แก้) พารามิเตอร์ทั้งก้อน ของโมเดล 10B-พารามิเตอร์ คุณฝึกแค่ "Adapter" ขนาดเล็กจิ๋ว ที่ต่อพ่วงเข้าไปข้างนอก — ทำให้การ์ดจอตัวเล็ก (12GB เช่น RTX 3060) ก็ยังฝึกโมเดล 7B ได้อยู่

ข้อดีของ LoRA + Local: * ใช้ VRAM น้อย: ฝึก Adapter ขนาด ~100MB-2GB เทียบกับโมเดลหลัก 7GB-14GB ที่ถูก "ฟรีซ" (ฟอสซิล) ไว้ * ไม่แตะตัวโมเดลหลัก: ไฟล์โมเดลเดิมยังใช้กับงานอื่นได้ตามปกติ * สลับสไตล์ได้ง่าย: ฝึก Adapter สำหรับ "โน้ตองค์กร" หนึ่งอัน อีกอันสำหรับ "สรุปงาน" แล้วสลับไปมาได้ทันที


ประโยชน์ทาง Privacy ของ Local Fine-tuning

นี่คือจุดเด่นที่สำคัญที่สุด — หากคุณต้องการสอน AI ให้เขียนตาม สไตล์เฉพาะขององค์กรคุณ โดยใช้ตัวอย่างจากอีเมลภายใน, โน้ตโปรเจกต์, หรือเอกสารที่เป็นความลับ:

  • การ Fine-tune บนคลาวด์ (เช่น GPT, Claude API) = ต้อง ส่งข้อมูลความลับนั้นออกนอกเครื่อง ไปยังเซิร์ฟเวอร์ของผู้ให้บริการ (ซึ่งอาจมีนโยบายเก็บข้อมูลหรือใช้เพื่อเทรนโมเดลต่อไป แม้จะเลือกปิดบางตัวเลือกก็ยังเสี่ยง)
  • การ Fine-tune บนเครื่องคุณ + LoRA = ข้อมูล ไม่เคยออกจากเครื่องเลยแม้แต่ไบต์เดียว — GPU ของคุณคำนวณ Gradient ทุกอย่างเอง ไฟล์ Adapter ที่ออกมา (ขนาดประมาณ 100MB-1GB) เป็นของคุณ 100% ลบได้เมื่อไหร่ก็ได้

5 ขั้นตอนฝึก Local LLM ด้วย LoRA

1. เตรียม Dataset (100–2,000 ตัวอย่าง)

Dataset ที่ดีคือ ตัวอย่าง Input → Output จำนวนมากที่สอดคล้องกับงานของคุณ (เช่น 200 ตัวอย่าง "อีเมลลูกค้า → ร่างอีเมลตอบกลับตามสไตล์บริษัท")

รูปแบบ JSONL ที่ใช้กับ Trainer ส่วนใหญ่:

{"prompt": "ลูกค้าถามว่างานจัดส่งเมื่อไหร่", "completion": "สวัสดีค่ะ งานของคุณได้รับแล้วและอยู่ระหว่างการจัดส่ง..."}
{"prompt": "ลูกค้าแจ้งว่าสินค้าได้รับล่าช้า", "completion": "ขออภัยในความไม่สะดวก..."}

สำคัญที่สุด: ความสม่ำเสมอของ Output สำคัญกว่าปริมาณ จำนวนมากแต่ไม่สม่ำเสมอทำให้โมเดล "สับสน" ได้

2. เลือกโมเดลฐาน (Base Model) เลือกตาม VRAM

อ้างอิงแนวทางในบทความ "สเปกคอมเท่านี้ รันโมเดลไหนไหว":

  • VRAM ~8GB: Llama-3.2-1B หรือ Phi-3 (3.8B) — เหมาะกับการ "ปรับโทน" หรืองานเบา
  • VRAM ~12GB (RTX 3060/4070): Mistral-7B หรือ Llama-3.1-8B — จุดสมดุลที่ดีที่สุดสำหรับงานส่วนใหญ่
  • VRAM ~16GB+: Qwen-7B / 14B หรือ Mistral-7B ที่ rank สูง

ใช้ ollama pull <model-name> เพื่อดึงโมเดลฐานลงเครื่อง

3. ฝึก LoRA ด้วย Trainer ออฟไลน์

Unsloth หรือ LLaMA-Factory เป็นทางเลือกยอดนิยมสำหรับ Local Fine-tuning LoRA — ทั้งคู่รันบน GPU ของคุณได้โดยตรง ทำงานแบบ batch/offline ไม่ต้องส่งอะไรออกอินเทอร์เน็ต

Parameter ที่แนะนำสำหรับเริ่มต้น:

  • LoRA rank (r): 16–64 (สูงขึ้น = ฝึกได้ลึกขึ้น ใช้ VRAM นิ่งขึ้น/ช้าลง)
  • Learning rate: 1e-4 หรือ 5e-5 (ถ้าผลลัพธ์ "เละ" ให้ลดครึ่งหนึ่ง)
  • Epochs: 2–5 (มากเกิน = Overfitting — โมเดลจำตัวอย่างแต่ไม่ได้ "เข้าใจ")
  • Batch size: ปรับให้พอดีกับ VRAM ของคุณ (ใช้ Gradient Accumulation หากจำเป็น)

4. Export Adapter เป็น GGUF

เมื่อฝึกเสร็จ (คุณจะได้ไฟล์ Adapter ขนาด ~100MB-1GB) ให้แปลงเป็น GGUF (รูปแบบที่ Ollama อ่านได้) โดยผ่าน Trainer เดิม เช่น Unsloth จะรองรับการ export To GGUF Adapter ในตัว

⚠️ Adapter ≠ โมเดลเต็ม — Ollama ยังต้อง "โหลดโมเดลฐาน + Adapter" พร้อมกันเสมอ Adapter เป็นเพียง "ส่วนเสริม" ที่ทำให้โมเดลตอบดีขึ้นสำหรับงานเฉพาะของคุณ

5. ประกอบเข้า Ollama ด้วย Modelfile

สร้างไฟล์ Modelfine (หรือไฟล์ใหม่ตามชื่อ) สำหรับ Ollama:

FROM mistral:7b
ADAPTER my_lora_adapter.gguf
PARAMETER temperature 0.7
SYSTEM "คุณคือผู้ช่วยเขียนอีเมลตามสไตล์องค์กร"

แล้วรัน:

OLLAMA_HOST=127.0.0.1:11434 ollama create my-org-tuned -f Modelfine
ollama run my-org-tuned "ลูกค้าถามเรื่องการจัดส่งเมื่อไหร่"

จากนี้ ทุกครั้งที่รัน my-org-tuned โมเดลจะตอบตามสไตล์ที่คุณฝึกไว้ — โดยไม่ต้องพิมพ์ Prompt ยาวทุกครั้ง


ระวัง 3 ข้อ ก่อนตัดสินใจ Fine-tune

  1. โมเดลหลักไม่ได้โง่ — ถ้า Prompt 3-5 บรรทัดได้ผลดีอยู่แล้ว (เช่น Modelfile + Persona) ไม่ต้อง Fine-tune มันใช้ทรัพยากรมากกว่าและฝึกยากกว่า
  2. Overfitting เป็นกับดักยอดนิยม: Dataset 50 ตัวอย่าง → ฝึก 10 epoch = โมเดลจะ "จำ" 50 ตัวอย่างนั้น แต่เจอกรณีใหม่แล้วตอบ "พัง" — ทดสอบกับกรณีที่คุณ ไม่ได้ ใส่ใน Dataset เสมอ
  3. ข้อมูลคุณภาพต่ำ = ผลลัพธ์ทุกระดับ: Garbage In, Garbage Out — ทบทวน Dataset 2-3 รอบก่อนกดเริ่มฝึก

สรุป

LoRA Fine-tuning บน Local LLM คือเครื่องมือที่ทรงพลังสำหรับคนที่ต้องการให้ AI "พูดภาษาเดียวกับองค์กรคุณ" โดยไม่ต้องพึ่ง Prompt ยาว ๆ และไม่ต้องเสี่ยงส่งข้อมูลความลับไปคลาวด์ — เมื่อประกอบกับ Ollama คุณจะได้ โมเดล AI ของคุณคนเดียว ที่เข้าใจงานของคุณดีที่สุด โดยที่ ไม่มีใครเลย (รวมบริษัท AI ด้วย) รู้ว่าคุณเทรนอะไรไว้ข้างในเครื่องคุณ

นี่คือแก่นของ Private Brain OS — AI ที่ไม่เพียงแต่ "คิด" แต่ "คิด" ด้วยวิธีที่คุณต้องการ

Read more

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

สร้าง AI Agent สำหรับการทำ Decision Log อัตโนมัติ: เปลี่ยนทุกการตัดสินใจสำคัญให้เป็นบทเรียนเพื่อการเติบโต

เรียนรู้วิธีใช้ AI Agent ช่วยบันทึกและวิเคราะห์การตัดสินใจสำคัญในชีวิตประจำวัน เพื่อเปลี่ยนทุกทางเลือกให้กลายเป็นฐานข้อมูลบทเรียนที่มีค่าสำหรับอนาคต

By Linn
คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

คู่มือใช้งาน Obsidian Graph View: เปลี่ยนใยแมงมุมความรู้ให้เป็นเครื่องมือนำทางความคิดใน Second Brain

Graph View ใน Obsidian ไม่ใช่แค่ภาพกราฟสวยๆ ไว้ดูเล่น มาเรียนรู้วิธีปรับแต่ง Local Graph, Color Groups และฟิลเตอร์ เพื่อเปลี่ยนเครือข่ายความรู้ให้กลายเป็นเครื่องมือนำทางความคิดจริง

By Linn
สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

สร้าง Smart Clipboard Agent: ดักจับและคัดแยกข้อความที่คัดลอกระหว่างวัน บันทึกเข้า Obsidian อัตโนมัติด้วย Python + Ollama

เปลี่ยนข้อความ โค้ด ลิงก์ และไอเดียที่คุณคัดลอกระหว่างวันให้กลายเป็นบันทึกความรู้ที่มีบริบทใน Second Brain โดยอัตโนมัติ ด้วยสคริปต์ Python คอยมอนิเตอร์คลิปบอร์ดคู่กับ Local LLM บน Ollama แบบออฟไลน์ 100%

By Linn
บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

บอกลาคำสั่ง Docker CLI ที่ซับซ้อน: คู่มือติดตั้ง Dockge จัดการ Docker Compose บน Home Server อย่างมือโปร

ยกระดับการจัดการคอนเทนเนอร์บน Home Server ให้ง่ายและเป็นระเบียบ ด้วย Dockge ตัวจัดการ Docker Compose สไตล์มินิมอลที่เน้นความโปร่งใส ควบคุมไฟล์ .yml ได้โดยตรง 100%

By Linn