คู่มือการติดตั้งและพัฒนา TinyLlama AI ภาษาไทย
Linux • CPU Only • RAM 8 GB • Web Chat Interface
โครงการ: Thai TinyLlama Local AI
โมเดล: TinyLlama 1.1B Chat
ระบบปฏิบัติการ: Linux
ฮาร์ดแวร์: Intel Core i5, RAM 8 GB, ไม่มี GPU
1. วัตถุประสงค์ของโครงการ
สร้างระบบ AI ภาษาไทยที่สามารถทำงานบนเครื่อง Linux ได้ โดยมีความสามารถดังนี้
- ใช้งาน TinyLlama แบบ Local
- สนทนาภาษาไทยผ่าน Web Browser
- ทำงานโดยไม่ต้องมี GPU
- เก็บประวัติการสนทนา
- เตรียม Dataset สำหรับ Fine-tuning ภาษาไทย
- รองรับการนำโมเดลที่ Fine-tune แล้วกลับมาใช้งานในเครื่อง
- สามารถใช้งานภายในเครือข่ายหรือแบบ Offline หลังติดตั้งโมเดลและซอฟต์แวร์ครบแล้ว
2. สถาปัตยกรรมระบบ
ระบบประกอบด้วย 4 ส่วน
- TinyLlama: โมเดล AI
- Ollama: ระบบจัดการและรันโมเดล
- Open WebUI: เว็บไซต์สำหรับสนทนากับ AI
- LoRA/QLoRA: ระบบปรับแต่งโมเดลภาษาไทย
โครงสร้างการทำงาน:
Linux Computer → Ollama → TinyLlama → Open WebUI → Web Browser
สำหรับการ Train ให้ใช้ Google Colab GPU เป็นตัวเลือกหลัก แล้วนำ Adapter กลับมาใช้งานใน Linux
3. เตรียมระบบ Linux
เปิด Terminal และติดตั้งเครื่องมือพื้นฐาน
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
curl \
git \
python3 \
python3-venv \
python3-pip
ตรวจสอบ CPU และ RAM
lscpu
free -h
ตรวจสอบพื้นที่ Disk
df -h
แนะนำให้มีพื้นที่ว่างอย่างน้อย 10 GB สำหรับเริ่มต้นทดลอง โดยควรเผื่อพื้นที่เพิ่มเติมสำหรับโมเดลและข้อมูล
4. ติดตั้ง Ollama
เว็บไซต์: https://ollama.com
ติดตั้ง:
curl -fsSL https://ollama.com/install.sh | sh
ตรวจสอบ:
ollama --version
ดาวน์โหลด TinyLlama:
ollama pull tinyllama
รันโมเดล:
ollama run tinyllama
ทดสอบด้วยคำถาม:
สวัสดี คุณสามารถพูดภาษาไทยได้ไหม?
หมายเหตุ: การรันโมเดลเป็น CPU Inference ไม่ใช่การ Train โมเดล
5. ติดตั้ง Chat Web Interface
แนะนำ Open WebUI
เว็บไซต์: https://openwebui.com
ใช้ Docker เพื่อให้ติดตั้งง่ายและดูแลระบบได้สะดวก
ติดตั้ง Docker หากยังไม่มี:
sudo apt install -y docker.io
sudo systemctl enable --now docker
เพิ่มผู้ใช้ปัจจุบันเข้า Docker Group:
sudo usermod -aG docker $USER
ออกจากระบบแล้ว Login ใหม่
จากนั้นติดตั้ง Open WebUI:
docker run -d \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
เปิด Browser:
http://localhost:3000
สร้างบัญชีผู้ดูแลระบบและเลือก TinyLlama จากรายการโมเดล
ผลลัพธ์: สามารถสนทนากับ TinyLlama ผ่านเว็บไซต์ได้
6. เตรียม Dataset ภาษาไทย
สร้างโฟลเดอร์:
mkdir -p ~/tinyllama-thai/dataset
cd ~/tinyllama-thai
สร้างไฟล์:
nano dataset/thai_train.jsonl
ตัวอย่างข้อมูล:
json
{"text":"### คำถาม: สวัสดี\n### คำตอบ: สวัสดีครับ ยินดีที่ได้รู้จัก"}
{"text":"### คำถาม: AI คืออะไร\n### คำตอบ: AI คือเทคโนโลยีที่ช่วยให้คอมพิวเตอร์ทำงานที่ต้องอาศัยความฉลาดได้"}
{"text":"### คำถาม: Python คืออะไร\n### คำตอบ: Python เป็นภาษาโปรแกรมที่นิยมใช้ในงาน AI และ Machine Learning"}
{"text":"### คำถาม: Machine Learning คืออะไร\n### คำตอบ: Machine Learning เป็นวิธีที่ทำให้คอมพิวเตอร์เรียนรู้รูปแบบจากข้อมูล"}
ควรตรวจสอบให้ข้อมูลมีคุณภาพ ไม่ซ้ำกัน และมีคำตอบที่ถูกต้อง
เริ่มต้นทดลองด้วย 100–500 ตัวอย่าง และแยกข้อมูลสำหรับ Validation ออกจากข้อมูล Train
7. แนวทาง Fine-tuning ภาษาไทย
เนื่องจากเครื่องมี RAM 8 GB และไม่มี GPU ไม่แนะนำให้ Full Fine-tuning TinyLlama 1.1B บนเครื่องนี้
แนวทางที่แนะนำ:
- เตรียม Dataset บน Linux
- อัปโหลด Dataset ไปยัง Google Colab
- ใช้ GPU บน Colab สำหรับ LoRA Fine-tuning
- บันทึก Adapter
- นำ Adapter กลับมา Linux
- รวม Adapter กับโมเดลฐานหรือแปลงเป็น GGUF
- นำโมเดลไปใช้ผ่าน Ollama
ค่าตั้งต้นสำหรับการทดลองบน GPU Cloud:
| Parameter | ค่า |
|---|---|
| Model | TinyLlama 1.1B Chat |
| Fine-tuning | LoRA |
| LoRA Rank | 8 |
| Batch Size | 1 |
| Epoch | 1 |
| Max Sequence Length | 256 |
| Learning Rate | 0.0001 |
การเลือกค่าจริงต้องปรับตาม GPU และ Dataset ที่ใช้
เอกสาร: https://huggingface.co/docs/peft
8. นำโมเดลที่ Train แล้วกลับมาใช้งาน
เมื่อได้โมเดลที่รวม Adapter แล้ว สามารถแปลงเป็น GGUF ด้วย llama.cpp
GitHub: https://github.com/ggml-org/llama.cpp
ตัวอย่างการสร้างไฟล์ Modelfile สำหรับ Ollama:
FROM ./tinyllama-thai.gguf
PARAMETER temperature 0.7
PARAMETER num_ctx 2048
SYSTEM คุณคือ AI ผู้ช่วยที่เชี่ยวชาญภาษาไทย
ตอบคำถามด้วยภาษาไทยที่ชัดเจนและสุภาพ
สร้างโมเดล:
ollama create tinyllama-thai -f Modelfile
เรียกใช้งาน:
ollama run tinyllama-thai
ข้อควรระวัง: ต้องตรวจสอบรูปแบบ GGUF และการแปลง Adapter ให้ถูกต้องก่อนนำเข้า Ollama
9. ทดสอบระบบ Chat Web
เปิด:
http://localhost:3000
ทดสอบคำถาม:
- สวัสดี คุณชื่ออะไร?
- ช่วยอธิบาย AI เป็นภาษาไทย
- Python ใช้ทำอะไร?
- ช่วยสรุปข้อความภาษาไทย
- ช่วยอธิบาย Machine Learning
เปรียบเทียบผลลัพธ์ก่อนและหลัง Fine-tuning
10. การแก้ไขปัญหา
ปัญหา RAM เต็ม
- ลดจำนวนโปรแกรมที่เปิดพร้อมกัน
- ลด Context Length
- ลดขนาด Batch
- ตรวจสอบหน่วยความจำด้วย
free -h
ปัญหา Ollama ไม่ทำงาน
sudo systemctl status ollama
sudo systemctl restart ollama
ปัญหา Open WebUI เปิดไม่ได้
docker ps
docker logs open-webui
ปัญหาโมเดลตอบภาษาไทยไม่ดี
- ตรวจสอบคุณภาพ Dataset
- เพิ่มความหลากหลายของภาษา
- ตรวจสอบรูปแบบข้อมูลที่ใช้ Train
- เปรียบเทียบผลกับโมเดลต้นฉบับ
11. แผนการพัฒนา
| ระยะ | งาน |
|---|---|
| Phase 1 | ติดตั้ง Linux และ Ollama |
| Phase 2 | ติดตั้ง Open WebUI |
| Phase 3 | ทดสอบ TinyLlama |
| Phase 4 | สร้าง Dataset ภาษาไทย |
| Phase 5 | Fine-tuning ผ่าน Colab |
| Phase 6 | นำโมเดลกลับมา Linux |
| Phase 7 | ทดสอบ Chat Web ภาษาไทย |
| Phase 8 | ปรับปรุงคุณภาพโมเดล |
12. ผลลัพธ์ที่ต้องการ
เมื่อทำครบทุกขั้นตอน จะได้ระบบ:
- Local AI Chatbot
- Web Chat Interface
- TinyLlama ภาษาไทยที่ผ่านการ Fine-tuning
- ใช้งานผ่าน Browser
- รันโมเดลด้วย CPU
- ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตขณะใช้งานหลังติดตั้งครบแล้ว
แหล่งข้อมูลและเอกสารอ้างอิง
- TinyLlama Model
https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0 - Ollama
https://ollama.com - Open WebUI
https://github.com/open-webui/open-webui - Hugging Face PEFT
https://huggingface.co/docs/peft - llama.cpp
https://github.com/ggml-org/llama.cpp
หมายเหตุ: คู่มือนี้เป็นแผนติดตั้งและพัฒนา ยังไม่ได้หมายความว่าโมเดลภาษาไทยผ่านการ Train หรือระบบ Web Chat ติดตั้งสำเร็จแล้ว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น