หัวข้อ
- #RAG
- #Multi-Agent
- #LLM
- #AI
- #Function Call
สร้าง: 2025-03-04
สร้าง: 2025-03-04 21:53
ปัจจุบัน คำสำคัญที่ร้อนแรงที่สุดในอุตสาหกรรมก็คือ LLM นั่นเอง
มีการเปิดตัวโมเดลอย่างต่อเนื่อง เช่น Claude 3.5, Grok3
และบริการต่างๆ ที่ใช้ LLM ก็เพิ่มมากขึ้นเช่นกัน เช่น 뤼튼 (Ruiton) และ 제타 (Zeta)
ในฐานะนักพัฒนาซอฟต์แวร์ สักวันเราคงต้องนำ LLM มาใช้กับบริการของเราด้วยเช่นกัน
เพื่อไม่ให้ตกใจเมื่อถึงเวลานั้น เราควรทำความเข้าใจพื้นฐานไว้ก่อนล่วงหน้าจะดีกว่านะ!
ดังนั้น ผมจึงรวบรวมคำสำคัญหลักๆ มาให้ดูกัน
LLM (Large Language Model) พูดให้เข้าใจง่ายๆ ก็คือ
"AI ที่เข้าใจข้อความที่ป้อนเข้าไป แล้วตอบกลับมาเป็นข้อความ"
ตัวอย่างเช่น โมเดลอย่าง GPT-4o, Claude 3, Grok3
ปัจจุบัน LLM ไม่ได้แค่สร้างประโยคอย่างเดียวอีกต่อไปแล้ว
แต่สามารถทำงานได้หลากหลาย เช่น การเขียนโค้ด การวิเคราะห์ภาพ การแก้สมการ
ผมว่าตอนนี้มาถึงยุคที่นักพัฒนาใช้ AI เป็นเครื่องมือแล้วล่ะ
LLM ไม่ได้แค่ตอบคำถามอย่างเดียว
"สามารถขอให้เรียกใช้เครื่องมือที่จำเป็นเพื่อช่วยทำงานได้"
ตัวอย่างเช่น
แต่ LLM ไม่ได้เรียกใช้ API โดยตรงนะ
เราต้องเขียนโค้ดเพื่อเรียกใช้เอง ㅜㅜ
ไม่ว่า LLM จะฉลาดแค่ไหน
มันก็สร้างคำตอบได้จากข้อมูลที่เรียนรู้มาเท่านั้น
แล้วจะเรียกใช้ข้อมูลอย่างข่าวล่าสุดหรือเอกสารภายในบริษัทได้ยังไงล่ะ?
ตอนนั้นแหละที่ต้องใช้ RAG นี่แหละ
แบบนี้ LLM ก็สามารถใช้ข้อมูลล่าสุดได้แล้ว
กล่าวคือ ก่อนที่ LLM จะตอบคำถาม จะมีการป้อนข้อมูลที่จำเป็นสำหรับการตอบคำถามก่อน แล้วสรุปหรือใช้ข้อมูลนั้นเป็นพื้นฐานในการตอบคำถาม
ทั้งหมดนี้เรียกว่า RAG นั่นเอง
ถ้าดูโมเดล LLM จะเห็นตัวเลขอย่าง 8B, 70B ติดอยู่
นี่คือ จำนวนพารามิเตอร์ (Parameter) ที่โมเดลเรียนรู้มา นั่นเอง
ยิ่งโมเดลใหญ่ ยิ่งแม่นยำ แต่ก็อาจจะใช้เวลาและค่าใช้จ่ายมาก
ปัจจุบันนี้ โมเดลขนาดเล็ก กำลังเป็นที่นิยม
เพราะโมเดลใหญ่จะทำให้ความเร็วในการตอบสนองช้าลง
ส่งผลให้ผู้ใช้เลิกใช้บริการไป
LLM ไม่ได้ทำงานทุกอย่างคนเดียว
แต่ใช้ AI หลายตัว (เอเจนต์) ร่วมมือกันทำงาน
เช่น
การแบ่งงานแบบนี้จะทำให้ เร็วขึ้นและตอบคำถามได้แม่นยำขึ้น เหมือนบริษัทเลยใช่ไหม? มีคนทำฝั่ง front-end ... มีคนทำฝั่ง back-end ...
เป็นต้น
LLM ไม่ได้ตอบถูกเสมอไป
อาจจะตอบผิดบ้าง
ดังนั้นจึงจำเป็นต้องมี Validation Feedback นี่แหละ
สามารถทำให้เป็นระบบอัตโนมัติได้ด้วยนะเพื่อให้ LLM เรียนรู้ด้วยตัวเอง นั่นเอง
หรือในกรณีที่ใช้ Function Call หรือรูปแบบการตอบกลับที่กำหนดไว้
สามารถบังคับให้ปฏิบัติตามรูปแบบได้
ถ้าจะใช้ Function Call กับ GPT-4o ของ OpenAI จริงๆ
สามารถเขียนโค้ดได้ดังนี้
🔹 ตัวอย่าง TypeScript
การใช้ Function Call แบบนี้จะทำให้
LLM ไม่ได้แค่สร้างข้อความอย่างเดียว
แต่สามารถทำงานจริงได้ด้วย ทำให้เป็น **AI ที่มีประโยชน์จริงๆ**
การกรอกค่าพารามิเตอร์ลงใน FunctionCall อย่างละเอียด อาจจะยุ่งยากมาก
ดังนั้น Vercel ai และ LangChain จึงใช้ไลบรารี่ zod
เพื่อตรวจสอบว่าค่าพารามิเตอร์ที่ LLM ส่งกลับมานั้นถูกต้องหรือไม่ ทำการ Validation Feedback
ซึ่งจะทำให้การเรียกใช้ Function Call แม่นยำมากขึ้น
แต่การเขียนสกีมาด้วย zod สำหรับค่าพารามิเตอร์ของฟังก์ชันที่ซับซ้อนนั้นยุ่งยากมาก
นักพัฒนาอาจจะรู้สึกว่า"ยุ่งยาก" นั่นเอง
ดังนั้นผมจึงขอแนะนำไลบรารี่ Agentica ดูนะครับ
ด้วยโค้ดสั้นๆ นี้ สามารถกำหนดฟังก์ชันในสามคลาสและ endpoint ของ swagger
เป็น Function Call และตั้งค่าให้เรียกใช้โดยอัตโนมัติในระหว่างการสนทนา
ซึ่งจะสร้าง "เอเจนต์แชทบอท" ขึ้นมา
การใช้งาน LLM และ AI กำลังง่ายขึ้นเรื่อยๆ
น่ากลัวจริงๆ ว่าเทคโนโลยีจะพัฒนาไปถึงไหน
ความคิดเห็น0