AI
น้องๆ เคยสงสัยไหมว่า AI เก่งๆ ที่เราเห็นทุกวันนี้ มันทำงานยังไง? แล้วถ้าอยากลองเล่น AI แบบไม่ต้องง้อ Cloud ล่ะ ต้องทำยังไง? ไอ้เจ้า Local LLM, Ollama, Llama เนี่ยแหละ คือคำตอบ
Local LLM (Local Large Language Model) ก็คือโมเดลภาษาขนาดใหญ่ ที่เราเอามาติดตั้งและรันบนเครื่องของเราเอง ไม่ต้องส่งข้อมูลไปให้ใคร ไม่ต้องกลัวเรื่องความลับรั่วไหล สมัยผมทำร้านเน็ตเมื่อก่อนนะ เรื่องความปลอดภัยของข้อมูลลูกค้าสำคัญสุดๆ อันนี้ก็เหมือนกัน เราควบคุมทุกอย่างได้เองเลย
Ollama เป็นเหมือน Docker สำหรับ LLM ทำให้การติดตั้งและจัดการ LLM ง่ายเหมือนปอกกล้วย สมัยก่อนต้อง compile เอง ปวดหัวจะตาย เดี๋ยวนี้ Ollama ช่วยชีวิตไว้เยอะ
Llama เป็นชื่อของ LLM ตัวนึง ที่ Meta (Facebook เดิม) พัฒนาขึ้นมา และเปิดให้ใช้ได้ฟรี (แต่ต้องดูเงื่อนไขการใช้งานดีๆ นะ) Llama มีหลายเวอร์ชัน หลายขนาดให้เลือกใช้ตามความเหมาะสม
ทำไมมันถึงสำคัญ? สำคัญตรงที่เราไม่ต้องพึ่งพาบริการ Cloud ของคนอื่น 100% เราสามารถสร้าง AI เป็นของตัวเองได้ แถมยังประหยัดค่าใช้จ่ายในระยะยาวด้วย คิดดูนะ ถ้าเราต้องจ่ายค่า API ให้ ChatGPT ทุกเดือนๆ สู้เอาเงินมาซื้อการ์ดจอแรงๆ แล้วรัน Llama เอง คุ้มกว่าเยอะ
LLM หรือ Large Language Model ก็คือ AI ที่ถูกฝึกฝนมาให้เข้าใจและสร้างภาษาได้ มันถูกฝึกด้วยข้อมูลมหาศาล ทำให้มันสามารถตอบคำถาม, เขียนบทความ, แปลภาษา, สรุปเนื้อหา ฯลฯ ได้อย่างน่าทึ่ง เปรียบเทียบง่ายๆ เหมือนเด็กที่อ่านหนังสือมาเยอะมากๆ พอมีคนถามอะไร ก็ตอบได้ฉะฉาน
Prompt Engineering คือศาสตร์และศิลป์ของการเขียนคำสั่ง (prompt) เพื่อให้ LLM ตอบสนองได้ตรงตามที่เราต้องการ Prompt ที่ดี จะช่วยให้ LLM เข้าใจว่าเราต้องการอะไร และสร้างผลลัพธ์ที่ดีที่สุด สมัยผมเขียนโปรแกรมยุคแรกๆ ก็ต้องเขียน manual ให้ละเอียดที่สุด Prompt ก็เหมือนกัน ต้องชัดเจนและกระชับ
# ตัวอย่าง Prompt ที่ดี
ช่วยสรุปเนื้อหาของบทความนี้ให้กระชับ โดยเน้นใจความสำคัญและใช้ภาษาที่เข้าใจง่าย
การรัน LLM โดยเฉพาะตัวใหญ่ๆ ต้องการ Hardware ที่มีประสิทธิภาพพอสมควร สิ่งสำคัญที่สุดคือ GPU (การ์ดจอ) ที่มี VRAM เยอะๆ ยิ่งเยอะยิ่งดี เพราะ LLM จะใช้ VRAM ในการประมวลผล RAM ก็สำคัญเช่นกัน ถ้า RAM น้อยเกินไป อาจจะทำให้เครื่องช้าหรือไม่สามารถรัน LLM ได้เลย CPU ก็มีผลบ้าง แต่ไม่มากเท่า GPU กับ RAM
เอาล่ะ มาถึงส่วนที่สำคัญที่สุด คือการใช้งานจริง ผมจะสอนแบบ Step-by-Step เลยนะ
Ollama สามารถติดตั้งได้ง่ายๆ บน MacOS, Linux, และ Windows (ผ่าน WSL) เข้าไปที่ เว็บไซต์ Ollama แล้วดาวน์โหลดตัวติดตั้งที่เหมาะสมกับระบบปฏิบัติการของเรา แล้วก็ทำตามขั้นตอนที่โปรแกรมบอกเลย ง่ายมากๆ
หลังจากติดตั้ง Ollama เสร็จแล้ว ให้เปิด Terminal หรือ Command Prompt แล้วพิมพ์คำสั่งนี้:
ollama run llama2
Ollama จะทำการดาวน์โหลด Llama 2 มาให้โดยอัตโนมัติ และเมื่อดาวน์โหลดเสร็จแล้ว เราก็สามารถเริ่มคุยกับ Llama 2 ได้เลย ลองพิมพ์อะไรก็ได้ แล้วดูว่ามันตอบอะไร
ทีนี้ลองเล่น Prompt Engineering ดู ลองพิมพ์คำสั่งที่ซับซ้อนขึ้น เช่น:
เขียนบทกวีเกี่ยวกับความรักในยุคดิจิทัล โดยใช้คำศัพท์เกี่ยวกับเทคโนโลยี
ลองปรับเปลี่ยน Prompt ไปเรื่อยๆ แล้วดูว่าผลลัพธ์เปลี่ยนไปอย่างไร นี่แหละคือหัวใจของการ Prompt Engineering
ถ้าอยาก advanced ขึ้นไปอีกขั้น เราสามารถสร้าง Dockerfile เพื่อ package LLM ของเราให้เป็น Container ได้ วิธีนี้จะช่วยให้เรา deploy LLM ไปยัง Server ต่างๆ ได้ง่ายขึ้น SiamCafe Blog มีบทความเกี่ยวกับ Docker อยู่เยอะ ลองไปอ่านดูได้
FROM ubuntu:latest
RUN apt-get update && apt-get install -y curl
RUN curl -fsSL https://ollama.ai/install.sh | sh
CMD ollama serve
Ollama อนุญาตให้เราปรับแต่ง Parameters ของ LLM ได้ เช่น Temperature (ความสร้างสรรค์) และ Top P (ความหลากหลาย) ลองปรับค่าเหล่านี้ดู แล้วดูว่าผลลัพธ์เปลี่ยนไปอย่างไร
ollama run llama2 --temp 0.7 --top-p 0.9
แน่นอนว่า Llama ไม่ใช่ LLM ตัวเดียวในโลก ยังมีทางเลือกอื่นๆ อีกมากมาย แต่ละตัวก็มีข้อดีข้อเสียแตกต่างกันไป ผมจะสรุปให้ดูในตารางนี้
| LLM | ข้อดี | ข้อเสีย | เหมาะสำหรับ |
|---|---|---|---|
| Llama 2 | Open Source, ฟรี (แต่ต้องดูเงื่อนไข), ประสิทธิภาพดี | ต้องใช้ GPU แรงๆ, ต้องจัดการเอง | ผู้ที่ต้องการควบคุมทุกอย่าง, นักวิจัย, องค์กรที่ต้องการความปลอดภัย |
| GPT-3/4 | ใช้งานง่าย, ประสิทธิภาพสูง, มี API ให้ใช้ | เสียเงิน, ต้องพึ่งพา Cloud ของ OpenAI | ผู้ที่ต้องการความสะดวกสบาย, ผู้ที่ไม่มี Hardware แรงๆ |
| PaLM 2 | คล้าย GPT, พัฒนาโดย Google, มี API ให้ใช้ | เสียเงิน, ต้องพึ่งพา Cloud ของ Google | ผู้ที่ต้องการความสะดวกสบาย, ผู้ที่คุ้นเคยกับ Google Cloud |
| Falcon | Open Source, ฟรี, ขนาดเล็กกว่า Llama, รันบน CPU ได้ | ประสิทธิภาพอาจจะไม่ดีเท่า Llama | ผู้ที่ไม่มี GPU แรงๆ, ผู้ที่ต้องการ LLM ขนาดเล็ก |
สรุปง่ายๆ คือ ถ้ามีเงิน และต้องการความสะดวกสบาย ไป GPT/PaLM เลย แต่ถ้าอยากประหยัด และต้องการควบคุมทุกอย่าง Llama คือคำตอบ Falcon ก็เป็นทางเลือกที่ดี ถ้า Hardware ไม่แรงพอ SiamCafe Blog มีบทความเปรียบเทียบ AI Model อีกเพียบ ลองไปอ่านดูนะ
เอ้อ... ไหนๆ ก็ลองเล่น Local LLM กันแล้ว ผมมีเคล็ดลับเล็กๆ น้อยๆ จากประสบการณ์ตรงสมัยทำร้านเน็ตมาฝากกันนิดหน่อยครับ เอาไปปรับใช้กันดูนะ
สมัยก่อนตอนเซ็ตเกมออนไลน์ในร้านเน็ต ผมต้องปรับแต่ง config file ของเกมแต่ละเกมให้เหมาะสมกับสเปคเครื่องแต่ละเครื่อง ไม่งั้นเครื่องลูกแฮงค์กันระนาว LLM ก็เหมือนกันครับ ต้องปรับ parameters เช่น temperature (ความสร้างสรรค์) หรือ top_p (ความหลากหลาย) ให้เหมาะกับงานที่เราต้องการ
# ตัวอย่างการปรับ temperature ใน Ollama
ollama run llama2 "Translate 'Hello, world!' to Thai" --temp 0.7
ถ้าต้องการคำตอบที่แม่นยำและตรงประเด็น (เหมือนเวลาลูกค้าถามเรื่องเกมเป๊ะๆ) ก็ลด temperature ลง แต่ถ้าอยากได้ไอเดียสร้างสรรค์ (เหมือนเวลาเด็กมันโม้เรื่องเกมกัน) ก็เพิ่ม temperature ขึ้นครับ
Prompt ก็เหมือนคำสั่งที่เราพิมพ์เข้าไปใน command line นั่นแหละครับ ยิ่งเขียนละเอียดและชัดเจนเท่าไหร่ ผลลัพธ์ที่ได้ก็จะดีขึ้นเท่านั้น สมัยก่อนผมต้องเขียนคู่มือการใช้งานโปรแกรมให้ลูกค้าแบบละเอียดมากๆ เพราะรู้ว่าถ้าเขียนไม่ดี ลูกค้าก็จะทำตามไม่ได้ LLM ก็เหมือนกันครับ
# Prompt ที่ดี
"Summarize the following article in three sentences: [ใส่บทความ]"
# Prompt ที่ไม่ดี
"สรุปบทความนี้"
ลองใช้คำสั่งที่ชัดเจน ระบุ format ที่ต้องการ หรือใส่ตัวอย่างให้ LLM ดู จะช่วยให้ได้ผลลัพธ์ที่ดีขึ้นครับ
Local LLM กินทรัพยากรเครื่องเยอะมากครับ ยิ่งโมเดลใหญ่ ยิ่งกินเยอะ สมัยก่อนผมต้องคอยดู CPU usage และ RAM usage ของเครื่องเซิร์ฟเวอร์ร้านเน็ตตลอดเวลา ไม่งั้นร้านเจ๊ง! LLM ก็เหมือนกัน ต้องคอย monitor CPU, RAM และ GPU usage เพื่อไม่ให้เครื่องค้างครับ
ลองใช้ tools อย่าง htop (Linux) หรือ Task Manager (Windows) เพื่อดูว่า LLM กำลังกินทรัพยากรเครื่องไปเท่าไหร่ จะได้ปรับแต่งการใช้งานได้เหมาะสม
ถ้าอยากให้ LLM ตอบคำถามเฉพาะทางได้ดีขึ้น การ Fine-tuning (การปรับแต่งโมเดลด้วยข้อมูลของเราเอง) เป็นทางเลือกที่ดีครับ เหมือนสมัยก่อนที่ผมต้องคอยอัพเดท patch เกมให้เข้ากับ server ของเกมนั้นๆ LLM ก็เหมือนกัน ยิ่งเราใส่ข้อมูลที่เกี่ยวข้องเข้าไปมากเท่าไหร่ LLM ก็จะยิ่งฉลาดขึ้นเท่านั้น
เครื่องมืออย่าง LoRA (Low-Rank Adaptation) ช่วยให้เรา Fine-tune โมเดลได้โดยใช้ทรัพยากรน้อยลง ลองศึกษาดูนะครับ
เยอะครับ! โดยเฉพาะตอน run โมเดลใหญ่ๆ ถ้าเครื่องสเปคไม่ถึง อาจจะค้างได้ ลองใช้โมเดลขนาดเล็กก่อนก็ได้ครับ
Ollama เองฟรีครับ แต่โมเดล LLM บางตัวอาจจะมี license ที่ต้องจ่ายเงิน ลองเช็คดูก่อนใช้งานนะครับ
ส่วนใหญ่รองรับ NVIDIA ครับ แต่ก็มีบางโมเดลที่รองรับ AMD หรือ Apple Silicon ลองเช็ค documentation ของแต่ละโมเดลดูครับ iCafeForex
Local LLM เป็นเทคโนโลยีที่น่าสนใจมากๆ ครับ ถึงจะยังใหม่ แต่ก็มีศักยภาพที่จะเปลี่ยนแปลงหลายๆ อย่างได้ ผมว่ามันเหมือนกับตอนที่อินเทอร์เน็ตเริ่มบูมเมื่อ 20 กว่าปีที่แล้วนั่นแหละ ใครที่เริ่มศึกษาและทำความเข้าใจก่อน ก็จะได้เปรียบครับ
ลองเล่น Ollama ดูครับ แล้วเอา SiamCafe Blog เทคนิคที่ผมบอกไปปรับใช้ดู รับรองว่าคุณจะสนุกกับการสร้าง AI ของตัวเองแน่นอน!