DeepSeek-R1: รัน LLM ระดับโปรบนเครื่องเราเอง
ตั้งแต่ติดตั้ง Ollama ไปจนถึงสั่ง DeepSeek-R1 ให้ตอบเราแบบคิดเป็นขั้นตอน พร้อมไอเดียต่อยอดสำหรับสายเล่น LLM ตัวจริง

ถ้าพูดถึง LLM ในช่วงนี้ เชื่อได้เลยว่าทุกคนคงได้ยินชื่อเสียงเรียงนามของ Model จากจีนแท้ที่เป็น Open weight อย่าง Deepseek ที่ทุกคนต่างหลั่งไหลเข้าไปทดลองใช้(ฟรี) กันจนติดอันดับใน App store (ถึงจะร่วงมาเป็นอันดับ 3 แล้ว รองจาก ThaiID และ Smart vote เพราะการเลือกตั้งท้องถิ่น)
แต่สิ่งที่ทุกคนหลีกเลี่ยงไม่ได้จากการใช้ LLM เหล่านี้จาก website ก็คือ การที่เราต้องส่งข้อมูลไปประมวลผลที่ server (อาจโดนเก็บข้อมูลได้) ซึ่งโพสต์นี้จะสอนทุกคนรัน Deepseek-R1 บนเครื่องตัวเองโดยไม่ง้อ server ✨
ต้องขอ disclaimer ไว้ก่อนว่าตัวที่จะสอนทุกคนเล่นในวันนี้ ไม่ได้เป็น Model ตัวใหญ่ แต่เป็นเวอร์ชั้น distillation (กลั่น) เอาตัวใหญ่ 671B มาสอน Model ตัวเล็ก ๆ ที่เป็น open weight (ปล่อยให้โหลดฟรี) อยู่แล้ว อย่างเช่น Qwen (จาก Alibaba), LLama (จาก Meta)
เรามาเข้าสู่เนื้อหาหลักกันดีกว่า หลังจากเกริ่นมา(อย่างยาว) 😂
1.) เริ่มด้วย Tools open source อย่าง ollama ที่สามารถใช้ได้ทุกระบบปฏิบัติการในปัจจุบัน แล้วกดปุ่ม download จากนั้นทำตามติดตั้งตามขั้นตอนให้เสร็จเรียบร้อย
Ollama Official Website2.) เราจะเข้ามาส่อง Model กันแล้ว ว่าจะ run ตัวไหน โดยเข้าไปที่หน้าเลือก Model ของ ollama เพราะจะมี comand ให้ copy มาวาง ได้ง่าย ๆ
Search Models in Ollama Official Website3.) ในกรณีนี้ผมใช้ตัว DeepSeek-R1-Distill-Qwen-1.5B ก็กดตรง drop down เลือกขนาด model เป็น 1.5B จากนั้น copy command ไปวางใน terminal (MacOs / Linux) ถ้าหากเป็น Windows จะใช้ CMD แทน
Download DeepSeek-R1-Distill-Qwen-1.5B4.) ollama จะทำการ download weight model มาลงในเครื่อง (จะช้าหรือเร็วขึ้นอยู่กับความเร็ว internet) พอเสร็จแล้วจะขึ้น >>> แปลว่าพร้อมรับคำสั่งแล้ว
5.) เราสามารถใส่ prompt ลงไปตามปกติ (เหมือนตอนใช้ ChatGPT) โดยผลลัพธ์จะออกมารวมถึง process การ thinking ด้วย (Chain of Thought) โดย output สุดท้ายจะอยู่หลัง </think>
6.) เราสามารถ interrupt model โดยการกด ctrl + c หรือถ้าอยากหยุด run model ใช้ ctrl + d หรือพิมพ์ /bye ก็ได้เช่นกัน
สำหรับใครที่มี resource เหลือ ๆ
อาจลองโหลด model อื่น ๆ มาทดลอง run ได้ โดยวิธีที่ผมสอนไปข้างต้นทำให้ได้ทดลองรัน LLM แบบง่าย ๆ เพื่อทดสอบแบบเร็ว ๆ ได้ครับ
โดยส่วนตัวผมมองว่าตัว distill ของ deepseek R1 ตัวที่ weight ใหญ่สักหน่อย (14B ขึ้นไป) จะเริ่มคุยรู้เรื่อง การให้เหตุผลเริ่มโอเคมากขึ้น แต่ตัว distill (1.5B,7B,8B,14B) โดนคำถาม "How many 'r' in strawberry" แล้วแตกหมดครับ -> ใช้ token ในการคิดเยอะมาก + คำตอบที่ได้ถูกบ้าง ไม่ถูกบ้าง
สำหรับโพสต์ถัด ๆ ไป ผมจะมาสอน tools / ลง detail ในการนำมาใช้จริงที่ practical มากขึ้น + อาจลง theory สรุปจาก paper (แต่ขอเวลากลับไปอ่าน paper อย่างละเอียดก่อนครับ 😅)



