ลองรัน LLM บนเครื่องตัวเอง: มาเล่น Ollama กับ Python กัน!
ลองรัน LLM บนเครื่องตัวเอง: มาเล่น Ollama กับ Python กัน!
เอ่อ.. ตอนนี้ LLM มันบูมมากนะ ใครๆ ก็พูดถึง ไม่ว่าจะ ChatGPT, Gemini, หรือ Llama 3 บลาๆๆ แต่ปัญหาคือเวลาจะเอามาใช้จริงจังมันก็ต้องเสียตังค์ หรือบางทีเราก็แอบกังวลเรื่องข้อมูลส่วนตัวใช่มะ? ผมเองก็เคยเจอปัญหานี้แหละ เวลาจะทำอะไรที่มันเป็น POC หรือทดลองเล่นแบบส่วนตัวนี่ไม่อยากผูกกับ API เลย ก็เลยไปเจอเจ้า Ollama เข้าให้ โคตรน่าสนใจเลย!
Ollama คืออะไร?
เข้าใจง่ายๆ เลยนะ Ollama มันคือรันไทม์ที่ช่วยให้เราสามารถดาวน์โหลด แล้วก็รัน Large Language Models (LLM) ต่างๆ บนเครื่องของเราได้เองแบบง่ายๆ เลย ไม่ต้องไปเซ็ตอัพอะไรยุ่งยาก เหมือน Docker สำหรับโมเดล AI อ่ะ! มันรองรับโมเดลดังๆ เพียบเลยนะ ทั้ง Llama, Mistral, Code Llama และอีกเยอะแยะ ลองไปดูในเว็บมันได้เลย ollama.com/library โคตรดี!
มาติดตั้ง Ollama กัน
การติดตั้งง่ายม๊ากก ไม่ต้องงงเลย เข้าไปที่เว็บ ollama.com แล้วโหลดตัว Installer มาลงได้เลย รองรับทั้ง macOS, Linux, Windows เลยนะ เจ๋งปะล่ะ?!
พอติดตั้งเสร็จ เปิด Terminal (หรือ Command Prompt) ขึ้นมา เราจะลองดึงโมเดล llama3 มาลองรันดูนะ โมเดลนี้มันค่อนข้างเก่งเลยแหละ:
ollama pull llama3
ตรงนี้แหละ บางทีอาจจะเจอว่ามันโหลดนานหน่อยนะ ขึ้นอยู่กับเน็ตเราเลย เพราะไฟล์โมเดลมันใหญ่พอตัว บางทีเป็นสิบๆ GB ก็มี ถ้าเน็ตช้าก็ไปชงกาแฟรอได้เลย 🤣
พอโหลดเสร็จแล้ว ลองรันดูเลย:
ollama run llama3
แล้วเราก็จะสามารถพิมพ์ข้อความเข้าไปคุยกับมันได้เลย เหมือนคุยกับ ChatGPT ใน Terminal อ่ะ!
เชื่อม Ollama กับ Python
ทีนี้มาดูพระเอกของเรา คือการเอาไปเชื่อมกับ Python นี่แหละ ง่ายยิ่งกว่าปอกกล้วยซะอีก!
ก่อนอื่นก็ติดตั้งไลบรารี่ ollama ก่อนเลย:
pip install ollama
จากนั้นก็เขียนโค้ด Python ง่ายๆ แบบนี้เลย:
import ollama
def chat_with_llama():
print("เริ่มแชทกับ Llama 3 แล้ว! (พิมพ์ 'ออก' เพื่อจบ)")
messages = [] # เก็บประวัติแชท
while True:
user_input = input("คุณ: ")
if user_input.lower() == 'ออก':
break
# เพิ่มข้อความผู้ใช้เข้าในประวัติ
messages.append({'role': 'user', 'content': user_input})
try:
# ส่งข้อความไปให้ Ollama โมเดล llama3
response = ollama.chat(model='llama3', messages=messages)
ai_response = response['message']['content']
print(f"Llama 3: {ai_response}")
# เพิ่มข้อความ AI เข้าในประวัติ
messages.append({'role': 'assistant', 'content': ai_response})
except ollama.ResponseError as e:
print(f"โอ๊ะโอ! เกิดข้อผิดพลาด: {e}")
print("ลองเช็คดูว่า Ollama Server กำลังรันอยู่ไหม หรือชื่อโมเดล 'llama3' ถูกต้องนะ")
break
except Exception as e:
print(f"เกิดข้อผิดพลาดที่ไม่คาดคิด: {e}")
break
if __name__ == "__main__":
chat_with_llama()
เออ.. ตรงนี้ผมเคยเจอ error บ่อยๆ ถ้าโมเดลมันไม่ได้โหลดมา หรือชื่อโมเดลผิด คือมันจะฟ้องว่า ollama.ResponseError: An unexpected error occurred: model 'xxxxx' not found แบบนี้แหละ บางทีก็งงนะ! เช็คดีๆ ว่าเรา ollama pull โมเดลนั้นมาหรือยัง และชื่อตรงกับที่เราใช้ในโค้ดมั้ยนะ ไม่งั้นได้หงุดหงิดแน่ๆ!
รันโค้ด Python นี้แล้วเราก็จะได้แชทบอท Llama 3 ที่รันบนเครื่องเราเองแหละ เจ๋งปะล่ะ! ลองถามอะไรยากๆ ดูสิ!
ข้อดี ข้อควรระวัง (จากประสบการณ์ตรง)
ข้อดี: * ฟรี: ไม่ต้องจ่ายค่า API เลย ดีต่อใจสายประหยัดอย่างเราๆ * Privacy: ข้อมูลของเราก็อยู่บนเครื่องเรา ไม่ต้องส่งไปไหน * Offline: ทำงานได้แม้ไม่มีอินเทอร์เน็ต อันนี้แหงแซะ! เพราะรันบนเครื่องเราเอง * ปรับแต่งได้: บางทีเราอยากลอง Fine-tune โมเดล หรือเอาไปทำอะไรที่ซับซ้อนขึ้น มันก็เปิดทางให้เราทำได้ง่ายกว่า
ข้อควรระวัง: * กินสเปค: โมเดล LLM มันใหญ่มากนะ โดยเฉพาะเรื่อง RAM กับ VRAM (ถ้ามี GPU) ถ้าเครื่องใครแรมไม่เยอะ หรือไม่มีการ์ดจอดีๆ อาจจะรันโมเดลใหญ่ๆ ไม่ไหวก็ได้นะ เตือนไว้ก่อน บางทีรันแล้วเครื่องค้างไปเลยก็มี ผมเคยเจอมาละ สเปคไม่ถึงก็คือไม่ถึงจริงๆ 😅 * ความเร็ว: ถึงจะรันบนเครื่องตัวเอง แต่ถ้าโมเดลใหญ่มากๆ แล้วสเปคไม่ถึง มันก็อาจจะตอบช้ามากกกก จนหงุดหงิดได้นะ
สรุป
สำหรับผมนะ Ollama นี่เป็นทางเลือกที่โคตรดีสำหรับใครที่อยากลองเล่น LLM แบบจริงจังบนเครื่องตัวเอง ไม่ว่าจะเอาไปพัฒนาต่อยอด หรือแค่ลองเล่นสนุกๆ ก็ตาม มันช่วยให้เข้าถึงเทคโนโลยี AI ที่เคยต้องใช้ทรัพยากรเยอะๆ ได้ง่ายขึ้นเยอะเลย ใครยังไม่เคยลอง ต้องลองดูนะ!