ลองรัน 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 ที่เคยต้องใช้ทรัพยากรเยอะๆ ได้ง่ายขึ้นเยอะเลย ใครยังไม่เคยลอง ต้องลองดูนะ!

Read more

ไอลีน กู: ตำนานนักสกีฟรีสไตล์ผู้พลิกโฉมวงการและความหมายของชัยชนะ

ไอลีน กู: ตำนานนักสกีฟรีสไตล์ผู้พลิกโฉมวงการและความหมายของชัยชนะ

เจาะลึกเรื่องราวของ Eileen Gu นักสกีฟรีสไตล์ผู้สร้างประวัติศาสตร์ในโอลิมปิก 2026 สถิติที่ไม่เคยมีมาก่อน ประเด็นถกเถียง และความแข็งแกร่งส่วนตัวที่ทำให้เธอก้าวสู่ระดับโลก

By ทีมงาน devdog
วันพระ: คู่มือฉบับสมบูรณ์สำหรับพุทธศาสนิกชนและผู้สนใจยุคใหม่

วันพระ: คู่มือฉบับสมบูรณ์สำหรับพุทธศาสนิกชนและผู้สนใจยุคใหม่

เจาะลึกวันพระและความสำคัญของวันมาฆบูชา 2569 ทั้งวันหยุดราชการ ธนาคาร กิจกรรมเวียนเทียนต้นไม้ และผลกระทบต่อบริการขนส่ง เตรียมตัววางแผนทำบุญและพักผ่อน

By ทีมงาน devdog
ถอดรหัสรักแท้: "บังมัดคลองตันต้นข้าว" เรื่องราวที่สะท้อนการให้อภัยและการเริ่มต้นใหม่

ถอดรหัสรักแท้: "บังมัดคลองตันต้นข้าว" เรื่องราวที่สะท้อนการให้อภัยและการเริ่มต้นใหม่

เจาะลึกงานวิวาห์ "บังมัดคลองตัน" กับ "ต้นข้าว มิสแกรนด์" พร้อมเหตุผลจากใจเจ้าสาวที่เลือกความรักเหนือกาลเวลาและคำวิจารณ์ สู่การเริ่มต้นชีวิตคู่ที่สะท้อนการให้อภัย

By ทีมงาน devdog
ไฮไลท์บอลไทยลีก 2: มหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรงสู่เส้นทางเพลย์ออฟ

ไฮไลท์บอลไทยลีก 2: มหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรงสู่เส้นทางเพลย์ออฟ

เจาะลึกไฮไลท์บอลไทยลีก 2 ของมหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรง ชัยชนะสำคัญจาก ชิตชนก และบทบาทโค้ชดุสิต สู่เส้นทางเพลย์ออฟที่น่าจับตา!

By ทีมงาน devdog