โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)
โมเดลเปิดพื้นฐานส่วนใหญ่เรียกใช้เครื่องมือได้ไม่ดี แต่ Hermes และ Functionary ได้รับการปรับแต่งมาเพื่อการนี้
โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
โมเดลพื้นฐานไม่สามารถเรียกใช้เครื่องมือได้อย่างน่าเชื่อถือ
โมเดลพื้นฐานอย่าง Llama, Mistral หรือ Qwen อาจได้รับคำสั่งให้ "ส่งคืน JSON ในรูปแบบ {...}" ได้ แต่บ่อยครั้งจะสร้างผลลัพธ์ที่มีรูปแบบไม่ถูกต้อง ขาดอาร์กิวเมนต์ หรือสร้างเครื่องมือขึ้นมาเอง
การฝึกต่อยอดแบบเรียกใช้ฟังก์ชันช่วยแก้ปัญหานี้ได้
ตระกูล Hermes
โมเดล Hermes ของ NousResearch เป็นโมเดลที่ฝึกต่อยอดแบบเรียกใช้ฟังก์ชันระดับแนวหน้า:
- Hermes 3 Llama 3.1 8B / 70B
- มีความแม่นยำในการเรียกใช้เครื่องมือสูง
- ใช้ใบอนุญาตแบบเปิดกว้างคล้าย Apache
Functionary
โมเดล Functionary ของ MeetKai ได้รับการฝึกมาโดยเฉพาะสำหรับการเรียกใช้ฟังก์ชันที่เข้ากันได้กับ OpenAI:
- Functionary v3 ซึ่งพัฒนาบน Llama 3.1
- รองรับการเรียกใช้เครื่องมือแบบขนาน
- พร้อมใช้งานบน HuggingFace และ Together AI
การใช้เครื่องมือในตัวของ Llama 3.1 ขึ้นไป
รุ่น instruct ล่าสุดของ Llama 3.1, Llama 3.3 และ Llama 4 มีความสามารถในการเรียกใช้เครื่องมือในตัว สำหรับงานจำนวนมากเพียงเท่านี้ก็เพียงพอแล้ว แต่สำหรับกรณีที่ยาก ให้ใช้ Hermes หรือ Functionary
การใช้เครื่องมือใน Qwen 2.5
Qwen 2.5 มีความสามารถในการเรียกใช้เครื่องมือในตัวที่ดีมาก และแข่งขันกับโมเดลแบบปิดได้ จึงมักเป็นตัวเลือกตั้งต้นสำหรับเอเจนต์หลายภาษาที่โฮสต์เอง
การเรียกใช้โมเดลแบบเปิดที่รองรับเครื่องมือ
เซิร์ฟเวอร์ใด ๆ ที่เข้ากันได้กับ OpenAI เช่น Ollama, vLLM และ Together AI จะยอมรับพารามิเตอร์เครื่องมือแบบเดียวกัน:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:11434/v1', api_key='ollama')
tools = [{'type': 'function', 'function': {
'name': 'get_weather',
'description': 'Current weather',
'parameters': {'type': 'object', 'properties': {'city': {'type': 'string'}}, 'required': ['city']}
}}]
response = client.chat.completions.create(
model='hermes3:8b',
messages=[{'role': 'user', 'content': 'Weather in Paris?'}],
tools=tools
)ตรวจสอบผลลัพธ์อย่างรอบคอบ
การเรียกใช้เครื่องมือของโมเดลแบบเปิดล้มเหลวบ่อยกว่าของโมเดลแบบปิด โปรดทำสิ่งต่อไปนี้เสมอ:
- แยกวิเคราะห์ JSON ภายใน try/except
- ตรวจสอบความถูกต้องด้วย Pydantic
- เพิ่มกระบวนการแก้ไขผลลัพธ์
บังคับการเรียกใช้เครื่องมือด้วย Outlines
สำหรับผลลัพธ์ที่มีโครงสร้างและรับประกันได้บนโมเดลแบบเปิด ให้ใช้ Outlines เพื่อการถอดรหัสที่จำกัดด้วยไวยากรณ์:
import outlines
model = outlines.models.transformers('meta-llama/Llama-3.1-8B-Instruct')
generator = outlines.generate.json(model, ToolCall)
result = generator(prompt)การใช้เครื่องมือของ Hugging Face TGI
TGI รองรับการใช้เครื่องมือรูปแบบ OpenAI สำหรับโมเดลแบบเปิดจำนวนมาก จึงสามารถนำมาแทนที่ได้ทันที
การทดสอบคุณภาพการใช้เครื่องมือ
การเรียกใช้เครื่องมือมีการทดสอบประสิทธิภาพด้วย:
- Berkeley Function Calling Leaderboard (BFCL) — การจัดอันดับมาตรฐานหลัก
- ToolBench — ครอบคลุมกว้างกว่า
- API-Bank — สถานการณ์ที่ใช้เครื่องมือหลายตัว
ชุดเทคโนโลยีตั้งต้นที่เหมาะสม
การผสมผสานที่ทีมส่วนใหญ่เลือกใช้:
- Llama 3.1 8B Instruct สำหรับงานเอเจนต์ทั่วไป
- Qwen 2.5 Coder สำหรับเอเจนต์ด้านโค้ด
- Hermes 3 สำหรับเอเจนต์ที่เรียกใช้เครื่องมือจำนวนมาก
- Outlines หรือ Instructor เพื่อรับประกันผลลัพธ์ที่มีโครงสร้าง
เรียกใช้ผ่านผู้ให้บริการบนโฮสต์
หากไม่ต้องการดูแลโครงสร้างพื้นฐานเอง: Together AI, Fireworks และ Anyscale ให้บริการโฮสต์ Hermes, Functionary, Llama และ Qwen ผ่าน API ที่เข้ากันได้กับ OpenAI โดยมีราคาถูกกว่า OpenAI เมื่อมีคุณภาพใกล้เคียงกัน
ตัวอย่างการเปรียบเทียบค่าใช้จ่าย
ค่าใช้จ่ายโดยประมาณต่อหนึ่งล้านโทเค็นในช่วงกลางปี 2025:
- GPT-4o: ขาเข้า $2.50 ขาออก $10
- Llama 3.1 70B (Together AI): ขาเข้า $0.88 ขาออก $0.88
- Llama 8B ที่โฮสต์เอง: $0 โดยคิดเฉพาะค่าไฟฟ้าของคุณ
เหตุใดจึงใช้โมเดลที่ฝึกต่อยอดแบบเรียกใช้ฟังก์ชัน
เหตุใดจึงใช้ Hermes หรือ Functionary แทน Llama พื้นฐานสำหรับการเรียกใช้เครื่องมือ
ทบทวน
Llama และ Qwen รุ่นล่าสุดมีความสามารถในการใช้เครื่องมือในตัวในระดับดีพอสมควร หากต้องการความน่าเชื่อถือที่สูงขึ้น ให้ใช้ Hermes หรือ Functionary และผสานกับ Outlines/Instructor เพื่อรับประกันโครงสร้าง
คำถามที่พบบ่อย
บทเรียน “โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)”
โมเดลเปิดพื้นฐานส่วนใหญ่เรียกใช้เครื่องมือได้ไม่ดี แต่ Hermes และ Functionary ได้รับการปรับแต่งมาเพื่อการนี้ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ภาพรวม Llama, Mistral และ Qwen
- การเรียกใช้โมเดลภายในเครื่องด้วย Ollama และ llama.cpp
- โมเดลเปิดที่รองรับการเรียกใช้ฟังก์ชัน (Hermes, Functionary)
- ข้อแลกเปลี่ยน: เวลาแฝง ต้นทุน ความสามารถ