Generative AI
Boonyawee Sirimaya
4
นาที อ่าน
October 10, 2024

AI กับการดึงข้อมูลที่แม่นยำขึ้น ตรงตามบริบทที่เราต้องการ

สำหรับการทำให้โมเดล AI มีประสิทธิภาพในสถานการณ์เฉพาะ ความรู้พื้นฐานเป็นสิ่งจำเป็น ตัวอย่างเช่น แชทบอทที่ให้บริการลูกค้าจำเป็นต้องมีข้อมูลเกี่ยวกับธุรกิจที่เป็นตัวแทน ในขณะที่บอทกฎหมายต้องสามารถเข้าถึงข้อมูลคดีในอดีตได้ เพื่อทำงานอย่างมีประสิทธิภาพ วิธีการที่ใช้ทั่วไปในการเสริมสร้างความรู้ของ AI คือ Retrieval-Augmented Generation (RAG) ซึ่งใช้การดึงข้อมูลที่เกี่ยวข้องจากฐานข้อมูลแล้วผนวกเข้ากับข้อมูลที่ผู้ใช้ป้อน ส่งผลให้การตอบสนองของ AI ดีขึ้นอย่างมาก

อย่างไรก็ตาม วิธีการ RAG แบบดั้งเดิมมักจะสูญเสียบริบทสำคัญไปเมื่อเข้ารหัสข้อมูล ทำให้การเรียกค้นจากฐานข้อมูลมีข้อผิดพลาดหรือไม่สมบูรณ์ ทาง Anthropic ได้นำเสนอทางออกที่ดีกว่าด้วยการใช้ Contextual Retrieval ซึ่งรวมถึงสองเทคนิคหลักคือ Contextual Embeddings และ Contextual BM25 วิธีนี้ช่วยลดข้อผิดพลาดในการเรียกค้นข้อมูลได้ถึง 49% และเมื่อรวมกับการใช้ reranking จะช่วยเพิ่มความแม่นยำถึง 67% นำไปสู่การปรับปรุงประสิทธิภาพของงานที่ตามมาได้อย่างมีนัยสำคัญ

การใช้ Prompt ที่ยาวขึ้นกับฐานข้อมูลขนาดเล็ก

ในบางกรณี วิธีที่ง่ายที่สุดอาจเพียงพอแล้ว หากฐานข้อมูลของคุณมีขนาดต่ำกว่า 200,000 โทเค็น (ประมาณ 500 หน้า) คุณสามารถเลี่ยงการใช้ RAG ได้เลยด้วยการใส่ฐานข้อมูลทั้งหมดใน prompt ของโมเดล ซึ่งช่วยเพิ่มประสิทธิภาพได้อย่างมาก นอกจากนี้ Claude ยังมีฟีเจอร์ใหม่ที่เรียกว่า prompt caching ที่ช่วยลดเวลาตอบสนองและค่าใช้จ่าย โดยการเก็บ prompt ที่ใช้งานบ่อยระหว่างการเรียก API ลดความล่าช้าได้มากกว่า 2 เท่า และลดค่าใช้จ่ายได้ถึง 90% แต่สำหรับฐานข้อมูลขนาดใหญ่ จำเป็นต้องใช้วิธีการที่ขยายได้อย่าง Contextual Retrieval

การขยายด้วย RAG: การจัดการฐานข้อมูลขนาดใหญ่

สำหรับฐานข้อมูลขนาดใหญ่ที่เกินกว่าขนาดหน้าต่างบริบท RAG ยังคงเป็นวิธีที่ได้รับความนิยม โดยทำงานผ่านขั้นตอนต่าง ๆ ดังนี้:

  • แบ่งฐานข้อมูลออกเป็นชิ้นเล็ก ๆ
  • แปลงชิ้นข้อมูลเหล่านั้นเป็น vector embeddings ที่เข้ารหัสความหมาย
  • เก็บ embeddings เหล่านี้ในฐานข้อมูลเวกเตอร์เพื่อการค้นหาเชิงความหมายอย่างมีประสิทธิภาพ
  • ในขณะเรียกใช้ เมื่อผู้ใช้ส่งคำถาม ฐานข้อมูลเวกเตอร์จะระบุชิ้นข้อมูลที่เกี่ยวข้องมากที่สุดตามความคล้ายคลึงเชิงความหมาย และเพิ่มลงในพรอมพ์

แม้ว่า embeddings จะเก่งในการจับความหมาย แต่มักจะพลาดการจับคู่คำที่ชัดเจน ซึ่งตรงนี้ BM25 เข้ามาช่วย โดยเป็นฟังก์ชันจัดอันดับที่เน้นการจับคู่ตามความคล้ายคลึงของคำ ทำให้มีประโยชน์สำหรับคำถามที่มีคำทางเทคนิคหรือรหัสเฉพาะ

การเพิ่มประสิทธิภาพการเรียกค้นด้วย BM25

BM25 ช่วยเสริม RAG แบบดั้งเดิมด้วยการจับคู่คำที่ตรงกันอย่างแม่นยำ สร้างขึ้นบนวิธี TF-IDF (Term Frequency-Inverse Document Frequency) ซึ่งเป็นวิธีที่เหมาะสำหรับการค้นหาคำถามที่ต้องการการจับคู่ที่แม่นยำ เช่น การดึงเอกสารตามรหัสข้อผิดพลาดหรือข้อมูลเฉพาะ โดยการผสมผสาน embeddings เชิงความหมายกับ BM25 สามารถปรับปรุงความแม่นยำในการเรียกค้นข้อมูลได้ ดังนี้:

  • แบ่งฐานข้อมูลออกเป็นชิ้นเล็ก ๆ
  • เข้ารหัสชิ้นข้อมูลเหล่านั้นด้วยทั้ง TF-IDF และ semantic embeddings
  • ใช้ BM25 เพื่อระบุชิ้นข้อมูลที่ตรงกันมากที่สุดตามคำที่ใช้
  • ใช้ embeddings เพื่อค้นหาความคล้ายคลึงเชิงความหมาย
  • รวมและจัดอันดับผลลัพธ์เพื่อให้ได้ประสิทธิภาพที่ดีที่สุด
แผนผังแสดงขั้นตอนการประมวลผลและการทำงานในช่วงเวลาเรียลไทม์ของระบบ Retrieval-Augmented Generation (RAG) มาตรฐาน ซึ่งรวมถึงการประมวลผลคอร์ปัส โมเดลการฝัง (embedding model) TF-IDF ฐานข้อมูลเวกเตอร์ และโมเดลการสร้างข้อมูล (generative model)
ระบบ Retrieval-Augmented Generation (RAG) มาตรฐานใช้ทั้งการฝัง (embeddings) และ Best Match 25 (BM25) เพื่อการดึงข้อมูล

วิธีการแบบไฮบริดนี้ช่วยให้สามารถเรียกค้นข้อมูลจากฐานข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพและคุ้มค่า อย่างไรก็ตาม RAG แบบดั้งเดิมยังมีข้อจำกัดใหญ่ นั่นคือ การสูญเสียบริบทสำคัญ

ปัญหาบริบทใน RAG แบบดั้งเดิม

RAG มักจะแบ่งเอกสารออกเป็นชิ้นเล็ก ๆ เพื่อให้เรียกค้นได้อย่างมีประสิทธิภาพ แม้ว่าจะมีประสิทธิภาพ แต่วิธีนี้บางครั้งทำให้ชิ้นข้อมูลสูญเสียบริบทสำคัญ ส่งผลให้การเรียกค้นข้อมูลไม่ครบถ้วน เช่น ชิ้นข้อมูลอาจอ้างอิงถึงการเติบโตไตรมาสของบริษัท แต่ขาดบริบทว่าเป็นบริษัทใดหรือช่วงเวลาใดที่กล่าวถึง

การแก้ปัญหาด้วย Contextual Retrieval

Contextual Retrieval แก้ปัญหานี้ด้วยการแนบบริบทเฉพาะชิ้นก่อนการเข้ารหัส ทำให้มั่นใจได้ว่าชิ้นเล็ก ๆ ยังคงมีความเกี่ยวข้อง โดยการเพิ่มคำอธิบายบริบทสั้น ๆ ให้กับแต่ละชิ้น ทำให้โมเดล AI สามารถเรียกค้นและตีความข้อมูลได้อย่างถูกต้องมากขึ้น แม้ว่าในทางปฏิบัติจะเป็นไปได้ยากที่จะใส่คำอธิบายให้ทุกชิ้นในฐานข้อมูล แต่โมเดล Claude ของ Anthropic สามารถทำการสร้างบริบทอัตโนมัติสำหรับแต่ละชิ้นได้ ทำให้สามารถประมวลผลฐานข้อมูลได้อย่างมีประสิทธิภาพ

แผนภาพแสดงขั้นตอนการประมวลผลเบื้องต้นใหม่สำหรับ Contextual Retrieval ซึ่งรวมถึงการสร้างชิ้นข้อมูล การสร้างบริบท และการบูรณาการกับกระบวนการฝังข้อมูลและ TF-IDF
การทำงานลำดับขั้นการประมวลผลเบื้องต้นสำหรับ Contextual Retrieval

การลดต้นทุนด้วย Prompt Caching

ฟีเจอร์ prompt caching ของ Claude ช่วยเพิ่มประสิทธิภาพการเรียกข้อมูลเชิงบริบท โดยการโหลดเอกสารอ้างอิงลงใน cache หนึ่งครั้ง และอ้างอิงเอกสารที่ cache ไว้นี้ในหลาย ๆ ชิ้นข้อมูล ซึ่งช่วยลดความจำเป็นในการส่งเอกสารเดียวกันในทุกชิ้นข้อมูล ตัวอย่างเช่น การประมวลผลชิ้นข้อมูลขนาด 800 โทเค็น เอกสารขนาด 8,000 โทเค็น คำสั่งบริบท 50 โทเค็น และบริบทเพิ่มเติม 100 โทเค็นต่อชิ้น ค่าใช้จ่ายในการสร้างชิ้นข้อมูลที่มีบริบทครั้งเดียวอยู่ที่ประมาณ $1.02 ต่อ 1 ล้านโทเค็นของเอกสาร ทำให้เป็นโซลูชันที่มีต้นทุนต่ำในการจัดการเอกสารขนาดใหญ่

การเพิ่มประสิทธิภาพด้วย Reranking

การใช้ Reranking ช่วยกรองข้อมูลเพิ่มเติมในขั้นตอนการเรียกค้น โดยทำให้มั่นใจว่ามีเพียงชิ้นข้อมูลที่เกี่ยวข้องที่สุดเท่านั้นที่ถูกส่งไปยังโมเดล โดยเริ่มจากการเรียกคืนชิ้นข้อมูลที่มีศักยภาพสูงสุด และใช้โมเดล reranking เพื่อทำการจัดอันดับความเกี่ยวข้องและเลือกชิ้นข้อมูลที่ดีที่สุดมาใช้งาน แม้ว่า reranking จะเพิ่มเวลาตอบสนองเล็กน้อย แต่การเพิ่มขั้นตอนนี้ช่วยเพิ่มความแม่นยำในการเรียกข้อมูล โดยเฉพาะในฐานข้อมูลขนาดใหญ่ จากการทดสอบพบว่าการรวม Contextual Retrieval กับ reranking ช่วยลดข้อผิดพลาดในการเรียกคืนได้มากถึง 67%

แผนภูมิแท่งเปรียบเทียบอัตราความล้มเหลวในการดึงข้อมูลเฉลี่ยระหว่างวิธีการดึงข้อมูลแบบมาตรฐานและแบบ Contextual Retrieval โดยแสดงให้เห็นถึงการลดอัตราความล้มเหลวด้วยเทคนิค Contextual Retrieval
การเปรียบเทียบอัตราความล้มเหลวในการดึงข้อมูล

ข้อสรุปที่สำคัญ

จากการทดลองของ Anthropic พบว่าการรวม embeddings, BM25, Contextual Retrieval และ Reranking นำไปสู่การเพิ่มความแม่นยำในการเรียกคืนข้อมูลอย่างมีนัยสำคัญ เทคนิคร่วมเหล่านี้ช่วยให้ผู้พัฒนาปลดล็อกประสิทธิภาพใหม่ ๆ ของ AI โดยเฉพาะในการจัดการฐานข้อมูลขนาดใหญ่ Anthropic ยังมี cookbook หรือคู่มือที่สามารถช่วยผู้พัฒนาทดลองใช้วิธีการเหล่านี้เพื่อค้นหาผลลัพธ์ที่ดีที่สุด

ทาง Amity Solutions ก็มีบริการ AI solutions ที่ช่วยเพิ่มประสิทธิภาพการดำเนินงานเช่นกัน ปรึกษาผู้เชี่ยวชาญของเราได้ที่นี่