วิธีที่ผมสร้างหน้าเปรียบเทียบ AI ในงบประมาณที่จำกัด
ผมจำเป็นต้องสร้างหน้าเปรียบเทียบสำหรับไดเรกทอรีเครื่องมือ AI ของผม
ตัวเลขมันน่ากลัวมาก ด้วยโมเดล 200 ตัว ผมต้องเจอกับคู่เปรียบเทียบที่เป็นไปได้เกือบ 20,000 คู่ การใช้ Claude Haiku เพื่อสร้างเนื้อหาสำหรับทุกคู่จะมีค่าใช้จ่ายสูงเกินไปหากผมต้องรันมันทุกวัน
นี่คือวิธีที่ผมแก้ปัญหาโดยใช้ตรรกะและข้อจำกัด
กลยุทธ์
ผมมุ่งเน้นไปที่คำค้นหาที่มีความตั้งใจสูง (high-intent queries) ผู้ใช้ต้องการทราบว่า "Llama 3 vs Mistral" พวกเขาต้องการการตัดสินใจ ไม่ใช่เรียงความยาวๆ
ผมใช้กฎเหล่านี้เพื่อควบคุมค่าใช้จ่าย:
• จัดกลุ่มโมเดลตาม pipeline tag ของพวกมัน • เลือกเฉพาะ 4 โมเดลแรกที่มีจำนวนดาวน์โหลดสูงสุดในแต่ละกลุ่ม • กำหนดขีดจำกัดสูงสุดสำหรับจำนวนคู่ทั้งหมด
สิ่งนี้ช่วยลดจำนวนคู่จาก 20,000 เหลือเพียงประมาณ 50 คู่ ซึ่งช่วยให้ค่าใช้จ่ายของผมต่ำในขณะที่ยังครอบคลุมโมเดลที่ได้รับความนิยมมากที่สุด
การตั้งค่าทางเทคนิค
ผมสร้างกระบวนการ ETL ที่ทำงานทุกคืน มันเป็นแบบ idempotent ซึ่งหมายความว่าหากคู่นั้นมีอยู่ในฐานข้อมูลของผมแล้ว สคริปต์จะข้ามไป
เกือบทุกคืน สคริปต์จะทำงานเสร็จภายใน 3 วินาทีและไม่มีค่าใช้จ่ายเลย ($0) เพราะมันข้ามทุกอย่างไป
ผมใช้เทคนิคหลายอย่างเพื่อให้มันมีประสิทธิภาพ:
• Prompt Caching: ผมใช้ Claude Haiku client ร่วมกัน เนื่องจาก system prompt ยังคงเดิม การทำ caching จึงทำให้การเรียกใช้งานครั้งต่อๆ ไปแทบจะไม่มีค่าใช้จ่าย • Lean Prompts: ผมตัดทอนสรุปโมเดลให้เหลือเพียง 400 ตัวอักษร เพื่อให้ input มีขนาดเล็กและทำงานได้รวดเร็ว • Static Generation: ผมใช้ Astro เพื่อเปลี่ยนข้อมูลให้เป็นไฟล์ JSON แบบ static ทำให้ผู้ใช้ไม่ต้องรอการเรียกฐานข้อมูลที่ล่าช้าหรือความหน่วงของ edge function
จะเกิดอะไรขึ้นเมื่อมันล้มเหลว?
AI อาจคาดเดาไม่ได้ บางครั้ง Claude ส่งคืน JSON ที่ผิดพลาด
ผมเขียนระบบ fallback ไว้ หาก AI ล้มเหลว หน้าเว็บจะไม่พัง แต่จะแสดงเทมเพลตมาตรฐานแทน โดยจะบอกให้ผู้ใช้ไปตรวจสอบที่หน้าโมเดลแต่ละตัว ผมบันทึกความล้มเหลวเหล่านี้ไว้ในฐานข้อมูลเพื่อที่จะสามารถลองใหม่ได้ในภายหลัง
สิ่งที่ผมจะทำต่างออกไป
หากผมเริ่มใหม่อีกครั้งในวันนี้ ผมจะเปลี่ยนสองอย่าง:
- การเปรียบเทียบข้าม pipeline: การเปรียบเทียบโมเดลข้อความ (text model) กับโมเดลภาพ (vision model) มีคุณค่ามากกว่าการเปรียบเทียบโมเดลข้อความที่คล้ายกันสองตัว
- การเลือกโดยใช้การค้นหาเป็นตัวขับเคลื่อน: แทนที่จะใช้จำนวนดาวน์โหลด ผมจะใช้บันทึกการค้นหา (search logs) จริงของผู้ใช้เพื่อตัดสินใจว่าจะสร้างคู่เปรียบเทียบใดบ้าง
การสร้างภายใต้ข้อจำกัดจะบังคับให้คุณสร้างอย่างชาญฉลาดขึ้น
Optional learning community: https://t.me/GyaanSetuAi
