25/05/2026 03:18น.

Golang The Series EP.145: วิธีติดตั้ง Ollama รัน Llama 3 ในเครื่องตัวเองด้วย Go
#Ollama
#Local LLM
#Llama 3
#Golang
#Go
#AI Privacy
ในตอนที่แล้ว เราได้เรียนรู้วิธีเชื่อมต่อ GPT-4o ผ่าน Cloud API กันไปแล้ว แต่สำหรับโปรเจกต์ที่ต้องการความเป็นส่วนตัวสูงหรือต้องการควบคุมค่าใช้จ่ายในระยะยาว Local LLM คือทางเลือกที่ตอบโจทย์ครับ วันนี้เราจะมาเปลี่ยนเครื่องคอมพิวเตอร์ของคุณให้เป็นเซิร์ฟเวอร์ AI ด้วย Ollama ซึ่งมีจุดเด่นคือรันฟรี ข้อมูลไม่รั่วไหล และทำงานได้แม้ไม่มีอินเทอร์เน็ต
วิธีติดตั้ง Ollama บน Windows/Mac เพื่อรันโมเดล AI ในเครื่องตัวเอง
Ollama คือเครื่องมือที่ช่วยจัดการเรื่องการดาวน์โหลดและรันโมเดลภาษา (LLMs) เช่น Llama 3, Mistral, หรือ Phi-3 ให้เป็นเรื่องง่ายที่สุดในปัจจุบัน โดยมันจะจัดการเรื่องความซับซ้อนของ Library ต่างๆ เบื้องหลังให้เราทั้งหมดครับ
ขั้นตอนการติดตั้ง:
Download: เข้าไปที่ ollama.com เพื่อดาวน์โหลดตัวติดตั้ง (รองรับทั้ง macOS, Linux และ Windows)
Install: ติดตั้งตามขั้นตอนปกติเหมือนแอปพลิเคชันทั่วไป
Run Model: เปิด Terminal ของคุณขึ้นมา แล้วพิมพ์คำสั่งเพื่อดาวน์โหลดและรันโมเดลที่ต้องการ:
Bash
ollama run llama3
หมายเหตุ: ครั้งแรกที่รัน ระบบจะทำการดาวน์โหลดตัวโมเดลลงมาเก็บไว้ในเครื่อง (ขนาดประมาณ 4.7GB สำหรับ Llama 3 8B) เมื่อดาวน์โหลดเสร็จแล้ว คุณสามารถพิมพ์คุยกับ AI ได้โดยตรงผ่าน Terminal ทันทีครับ
เชื่อมต่อ Ollama ด้วย Go: สั่งการ AI ผ่านโค้ด
เมื่อเราติดตั้ง Ollama เสร็จแล้ว ตัวโปรแกรมจะรัน API Server ให้เราโดยอัตโนมัติที่พอร์ต 11434 (localhost:11434) ทำให้เราสามารถเขียนโปรแกรมภาษา Go เข้าไปสั่งการโมเดลได้ทันทีครับ
แม้ว่าเราจะเขียนโค้ดเพื่อยิง net/http ไปที่ API โดยตรงได้ แต่เพื่อความรวดเร็วและเป็นระเบียบ เราจะใช้ Library อย่างเป็นทางการของ Ollama เพื่อให้โค้ดของเราดูเป็น Gopher มากขึ้นครับ
การติดตั้ง Library
ใช้คำสั่งนี้ใน Terminal เพื่อติดตั้ง SDK หลักของ Ollama:
Bash
go get github.com/ollama/ollama
ตัวอย่างโค้ด: สั่งให้โมเดลตอบคำถาม (Streaming)
หัวใจสำคัญของ Ollama SDK ในภาษา Go คือการใช้ฟังก์ชัน Generate ร่วมกับ Callback Function เพื่อรับข้อมูลแบบ Real-time ครับ
Go
package main
import (
"context"
"fmt"
"log"
"github.com/ollama/ollama/api"
)
func main() {
// 1. สร้าง Client เพื่อเชื่อมต่อกับ Ollama (ดึงค่าจาก Environment อัตโนมัติ)
client, err := api.ClientFromEnvironment()
if err != nil {
log.Fatal("ไม่สามารถเชื่อมต่อ Ollama ได้:", err)
}
ctx := context.Background()
// 2. กำหนดรายละเอียดคำสั่ง (Request)
req := &api.GenerateRequest{
Model: "llama3", // ระบุชื่อโมเดลที่โหลดไว้ในเครื่อง
Prompt: "Docker สำคัญกับงานสาย AI อย่างไร? สรุปสั้นๆ",
}
// 3. ฟังก์ชันสำหรับจัดการคำตอบที่ส่งมาแบบ Streaming
respFunc := func(resp api.GenerateResponse) error {
// พิมพ์คำตอบออกมาทีละส่วน (Chunk) ทันทีที่ข้อมูลมาถึง
fmt.Print(resp.Response)
return nil
}
// 4. ส่งคำสั่งไปยังโมเดล
err = client.Generate(ctx, req, respFunc)
if err != nil {
fmt.Println("\nเกิดข้อผิดพลาด:", err)
}
}
ทำไมต้องเขียนแบบนี้?
api.ClientFromEnvironment(): สะดวกมากเพราะมันจะหาทางเชื่อมต่อกับ Ollama ที่รันอยู่ในเครื่องเราให้เองโดยไม่ต้องระบุ IP/Port ให้วุ่นวาย
respFunc: ตัว SDK ของ Ollama ถูกออกแบบมาให้รับข้อมูลแบบ Streaming เป็นค่าเริ่มต้น การใช้ฟังก์ชันรับค่าแบบนี้จะทำให้โปรแกรมของเราดู "ลื่นไหล" ไม่ต้องรอ AI คิดจนจบแล้วค่อยแสดงผลทีเดียวครับ
Local vs Cloud: เปรียบเทียบจุดเด่น Ollama และ OpenAI เลือกใช้ตัวไหนดี?
การตัดสินใจว่าจะรันโมเดลเองในเครื่อง (Ollama) หรือจะใช้บริการภายนอก (OpenAI) ไม่มีคำตอบที่ถูกที่สุดครับ แต่ขึ้นอยู่กับ "โจทย์ของโปรเจกต์" ที่คุณกำลังทำอยู่ นี่คือตารางสรุปแบบหมัดต่อหมัดเพื่อช่วยให้คุณตัดสินใจได้ง่ายขึ้นครับ
หัวข้อเปรียบเทียบ | Local LLM (Ollama) | Cloud API (OpenAI) |
ค่าใช้จ่าย (Cost) | ฟรี (ไม่มีค่า Subscription/Token) | จ่ายตามจริงตามปริมาณ Token |
ความเป็นส่วนตัว (Privacy) | สูงสุด ข้อมูลวนอยู่แค่ในเครื่อง 100% | ข้อมูลถูกส่งไปประมวลผลบน Cloud |
อินเทอร์เน็ต (Network) | ไม่ต้องใช้ ทำงานแบบ Offline ได้ | จำเป็นต้องเสถียรตลอดเวลา |
ความเร็ว (Performance) | ขึ้นอยู่กับความแรงของ GPU/RAM | ขึ้นอยู่กับเน็ตและความหนาแน่นของ Server |
ความฉลาด (Intelligence) | ปานกลาง (ตามขนาดโมเดลที่เครื่องไหว) | สูงมาก (ใช้โมเดลขนาดใหญ่พิเศษ) |
ความง่ายในการ Scale | ยาก (ต้องอัปเกรดเครื่องหรือเพิ่ม Server) | ง่ายมาก แค่จ่ายเงินเพิ่มเพื่อขอโควต้า |
💡 สรุปสั้นๆ ให้เลือกง่ายขึ้น:
เลือก Local (Ollama) เมื่อ: คุณทำโปรเจกต์ที่ซีเรียสเรื่องความลับข้อมูลมาก (เช่น ข้อมูลลูกค้า, บัญชีบริษัท) หรือต้องการประหยัดงบในระยะยาว และมีเครื่องสเปกแรงพอสมควร (เน้นการมี GPU ที่ดี)
เลือก Cloud (OpenAI) เมื่อ: คุณต้องการความฉลาดสูงสุดของโมเดล (Reasoning สูงๆ) ไม่อยากกังวลเรื่องการ Setup ระบบเอง หรือกำลังทำแอปที่มีผู้ใช้งานจำนวนมากพร้อมกัน (High Scalability)
🎯 ท้าให้ลอง (Daily Mission)
เพื่อให้เห็นภาพการทำงานจริง ผมอยากให้ทุกคนลองติดตั้ง Ollama และดาวน์โหลดโมเดลขนาดเล็ก (Small Language Models) ที่ไม่กินสเปกเครื่องมากอย่าง phi3 หรือ gemma:2b มาทดสอบดูครับ
โจทย์การบ้าน
ลองนำโค้ด Go จากหัวข้อที่แล้วมาดัดแปลงให้รับอินพุตผ่าน Command Line โดยใช้ os.Args เพื่อให้เราสามารถพิมพ์คำถามต่อท้ายคำสั่งรันโปรแกรมได้ทันที
เป้าหมาย: สามารถรันคำสั่งแบบนี้ได้ =>
go run main.go "สรุปจุดเด่นของ Go ใน 3 ข้อ"คำแนะนำ: อย่าลืมเช็คจำนวน Argument เพื่อป้องกันโปรแกรมพัง (Panic) หากผู้ใช้ลืมพิมพ์คำถามมาด้วยนะครับ
บทสรุป: ก้าวสำคัญสู่การสร้าง AI ที่เป็นอิสระ
การเลือกใช้ Ollama ร่วมกับภาษา Go ไม่ใช่แค่เรื่องของการประหยัดค่าใช้จ่าย แต่มันคือการเปิดประตูสู่การสร้างแอปพลิเคชันที่ทำงานได้ทุกที่และปลอดภัยแบบ 100% แม้ในวันที่โลกไม่มีอินเทอร์เน็ต แอปของคุณก็ยังคงความฉลาดและพร้อมรับใช้ผู้ใช้งานอยู่เสมอ
อย่างไรก็ตาม การเลือกใช้ Local หรือ Cloud ไม่มีทางเลือกไหนที่สมบูรณ์แบบที่สุดครับ หน้าที่ของโปรแกรมเมอร์อย่างเราคือการเลือกเครื่องมือให้เหมาะสมกับโจทย์ และดึงประสิทธิภาพของมันออกมาให้ได้มากที่สุดนั่นเองครับ
ตอนต่อไป | EP.146: Prompt Engineering for Gophers เทคนิคสั่งงาน AI ให้คมกริบ
ไม่ว่าคุณจะเลือกใช้โมเดลระดับโลกอย่าง GPT-4o หรือโมเดลในเครื่องผ่าน Ollama สิ่งหนึ่งที่เป็นตัวตัดสินว่า AI จะทำงานได้คุ้มค่าตัวหรือไม่ก็คือคำสั่ง (Prompt) ครับ ในตอนหน้า เราจะขยับจากการแค่เชื่อมต่อได้ไปสู่การสั่งให้เป็น ด้วยเทคนิคการเขียน Prompt ภายใน Code เพื่อคุม Output ให้แม่นยำและรีดประสิทธิภาพของ AI ออกมาให้ถึงขีดสุด!
ฝากกดติดตามพวกเราได้ที่ Superdev Academy ในทุกช่องทางนะครับ!
🔵 Facebook: Superdev Academy Thailand (อัปเดตข่าวสารและบทความใหม่)
🎬 YouTube: Superdev Academy Channel (ติวเข้มแบบวิดีโอ)
📸 Instagram: @superdevacademy (เกร็ดความรู้สั้นๆ และเบื้องหลังการทำงาน)
🎬 TikTok: @superdevacademy (Tips & Tricks ฉบับย่อยง่าย)
🌐 Website: superdevacademy.com (คลังบทความและคอร์สเรียนฉบับเต็ม)