𝗪𝗵𝘆 𝗧𝘄𝗶𝗼 𝗖𝗵𝗼𝘀𝗲 𝗩𝗲𝗿𝘁𝗲𝘅 𝗔𝗜 𝗦𝗲𝗮𝗿𝗰𝗵 𝗼𝘃𝗲𝗿 𝗽𝗴𝘃𝗲𝗰𝘁𝗼𝗿

เราสร้างระบบ RAG แรกที่ Twio โดยใช้ pgvector มันเป็นทางเลือกที่รวดเร็ว ข้อมูลของเราอยู่ใน PostgreSQL การเพิ่ม embeddings เข้าไปจึงทำได้ง่าย

เมื่อเราขยายขนาดขึ้น ปัญหาของเราก็เปลี่ยนไป เราไม่ได้ถามอีกต่อไปว่าจะจัดเก็บ vectors อย่างไร แต่เราถามว่าจะทำความเข้าใจเอกสารของโบรกเกอร์ อีเมล และไฟล์แนบที่กระจัดกระจายจำนวนหลายพันรายการได้อย่างไร

Twio ให้บริการโบรกเกอร์สินเชื่อ ในหนึ่งเคสประกอบด้วย: • เธรดอีเมล • สลิปเงินเดือนและรายการเดินบัญชีธนาคาร • แบบฟอร์มเงินกู้และกฎเกณฑ์ของผู้ให้กู้ • บันทึกที่เขียนด้วยลายมือ

AI ต้องสามารถตอบคำถามได้ เช่น: • อีเมลฉบับไหนที่พูดถึงข้อกำหนดที่ขาดหายไป? • รายการเดินบัญชีนี้ยืนยันรายได้หรือไม่? • สรุปเอกสารทั้งหมดสำหรับผู้กู้รายนี้

หากการดึงข้อมูล (retrieval) อ่อนแอ คำตอบก็จะอ่อนแอ หากการแยกแยะข้อมูล (parsing) ผิดพลาด โมเดลก็จะเห็นหลักฐานที่ผิด RAG คือความจำของผลิตภัณฑ์เรา

pgvector ทำงานได้ดีสำหรับเวอร์ชันแรกของเราเพราะ: • ไม่ต้องใช้โครงสร้างพื้นฐานใหม่ • มีต้นทุนต่ำ • ช่วยให้การทำ SQL debugging ทำได้ง่าย • ส่งมอบงานได้รวดเร็ว

แต่ pgvector เป็นเพียงส่วนหนึ่งของ RAG pipeline เท่านั้น ส่วนที่เหลือยังเป็นหน้าที่ของเรา: • การดาวน์โหลดไฟล์แนบ • การดึงข้อความจาก PDF และเอกสารสแกนผ่าน OCR • การแบ่งส่วนเอกสาร (chunking) และการสร้าง embeddings • การออกแบบ metadata และการสืบค้น (retrieval queries) • การปรับแต่ง indexes และการจัดลำดับ (ranking) • การตรวจสอบภาระงานของฐานข้อมูล (database load)

PDF ที่สะอาดนั้นง่าย แต่รายการเดินบัญชีที่สแกนมานั้นยาก และอีเมลที่มีไฟล์แนบห้าไฟล์พร้อมตารางยิ่งยากกว่านั้นอีก เมื่อใช้ pgvector เราต้องตามแก้ทุกจุดอ่อนใน pipeline นั้น

ต้นทุนเปลี่ยนจากค่าบริการคลาวด์ไปเป็นเวลาของวิศวกรแทน ซึ่งเวลาของวิศวกรคือทรัพยากรที่มีจำกัดที่สุดของเรา

การเปรียบเทียบ: • เอกสารสแกน: เราต้องสร้าง OCR เองเมื่อใช้ pgvector แต่ Vertex จัดการการประมวลผลเอกสารส่วนใหญ่ให้ • คำถามเกี่ยวกับเอกสาร: เราต้องออกแบบ queries และการจัดลำดับเองเมื่อใช้ pgvector แต่ Vertex มีระบบการค้นหาแบบ managed search ให้ • การรับโหลดไฟล์แนบจำนวนมาก: Postgres ต้องรับภาระหนักเมื่อใช้ pgvector แต่ Vertex ช่วยแยกภาระงานออกไปจากฐานข้อมูลหลักของเรา • ต้นทุน: pgvector มีค่าบริการที่ต่ำกว่า แต่ Vertex มีค่าใช้จ่ายด้านวิศวกรรมและการบำรุงรักษาที่ต่ำกว่า

pgvector ถูกกว่าในฐานะส่วนขยายของฐานข้อมูล แต่ Vertex ถูกกว่าในฐานะการตัดสินใจเชิงผลิตภัณฑ์

Vertex ช่วยเราใน 4 ด้าน: • จัดการโครงสร้างพื้นฐานน้อยลง • ดูแลรักษา logic การประมวลผลเอกสารน้อยลง • Postgres สามารถโฟกัสกับการทำธุรกรรมทางธุรกิจได้อย่างเต็มที่ • รองรับการขยายตัวตามปริมาณเอกสารที่เพิ่มขึ้น

Vertex ไม่ได้ฟรี แต่การสร้าง OCR, indexing และ ranking ขึ้นมาเองก็มีต้นทุนเช่นกัน ซึ่งเราต้องจ่ายต้นทุนนั้นด้วยเวลาการทำงานของวิศวกรเป็นสัปดาห์

ใช้ pgvector หาก: • ปริมาณข้อมูลของคุณอยู่ในระดับปานกลาง • เอกสารของคุณเป็นข้อความที่สะอาดอยู่แล้ว • คุณต้องการการกรองข้อมูลด้วย SQL ที่แม่นยำ • คุณต้องการสร้างเวอร์ชันแรกที่รวดเร็วและต้นทุนต่ำ

บทเรียนของเรานั้นเรียบง่าย: เริ่มต้นด้วยเครื่องมือที่ช่วยให้คุณเรียนรู้ได้เร็วที่สุด แล้วค่อยเปลี่ยนไปใช้เครื่องมือที่ช่วยให้คุณดำเนินงานได้ดีที่สุด

Source: https://dev.to/twio_ai/why-twio-chose-vertex-ai-search-over-pgvector-for-production-rag-51jm

Optional learning community: https://t.me/GyaanSetuAi