ทาง Anthropic ซึ่งเป็นเจ้าของ Claude.AI นั่นเอง
ได้เขียนบทความเรื่อง Introducing Contextual Retrieval
อธิบายเรื่องของการปรับปรุงความสามารถของ AI Model ต่าง ๆ
ด้วยแนวคิด Retrieval-Augmented Generation (RAG)


โครงสร้างของ RAG เป็นดังนี้

โดยในบทความได้แนะนำสำหรับ Anthropic ไว้ดังนี้

แบบที่ 1

ถ้าข้อมูลที่ต้องการเพิ่ม หรือ knowledge ไม่มากนัก
ซึ่งไม่เกิน 200,000 token หรือเอกสาร 500 หน้า
สามารถตรวจสอบผ่าน Token counter ได้เลย
ทำการส่งข้อมูลเหล่านี้ไปในส่วนของ context ใน user prompt ปกติได้เลย

แต่ถ้ากลัวว่าถ้ามีหลาย ๆ prompt ที่ใช้ข้อมูลเดิม
สามารถใช้งานผ่าน feature Prompt caching
ที่ทาง Anthropic เพิ่งปล่อยออกมาใน beta version
สามารถช่วยลดค่ายใช้จ่ายลงไปได้เยอะมาก ๆ
โดยที่อื่น ๆ เช่น Gemini ก็มีให้ใช้งานด้วย

แบบที่ 2

ถ้าข้อมูลมีขนาดที่ใหญ่มาก ๆ เกินแบบที่ 1
สามารถทำการ pre-processing ข้อมูลก่อน มีขั้นตอนดังนี้

  • ทำการแบ่งข้อมูลเป็น chunk เล็ก ๆ
  • สร้าง embedding model จาก check เล็ก ๆ เพื่อจัดเก็บใน Vector database
  • สร้าง TF-IDF(Term Frequency Inverse Document Frequency of records เพื่อจัดเก็บในการค้นหา หรือ ranking ข้อมูล
  • เมื่อต้องส่ง user prompt ไปจะนำข้อมูลจากทั้งสองที่ไปใส่ เพื่อให้ได้ผลลัพธ์ที่ถูกต้องมากยิ่งขึ้น
  • เมื่อได้ผลลัพธ์กลับมา จะทำการ ranking หรือ เรียงลำดับกลับออกมา

แสดงการทำงานดังรูป

โดยที่ทาง Anthropic ได้เสนอแนวทางปรับปรุงออกมา คือ Contextual Retrieval

ทำการสร้าง Prompt template ออกมาให้ใช้งาน
โดยมีโครงสร้างดังนี้

จากนั้นทางระบบจะจัดการข้อมูลต่าง ๆ ใน pre-processing ให้อัตโนมัติ
และมีการทำ prompt caching ให้เลย
ค่าใช้จ่ายประมาณ 1.02 USD ต่อ 1 ล้าน token
ดังรูป

ตัวอย่างของการสร้าง Prompt พร้อมใช้งาน caching

โดยแนวทางนี้ช่วยปรับปรุงความถูกต้องของผลลัพธ์มากขึ้น
รวมทั้ง performance ที่ดีขึ้น
เป็นอีกแนวทางที่น่าสนใจมาก ๆ