อัปเกรดการค้นหาเว็บไซต์: คำตอบตามบริบทด้วย Generative AI

Generative AI หมายถึงการใช้ปัญญาประดิษฐ์ (AI) เพื่อสร้างเนื้อหาใหม่ๆ เช่น ข้อความ รูปภาพ เพลง เสียง และวิดีโอ Generative AI อาศัยโมเดลแมชชีนเลิร์นนิง (ML) เพื่อเรียนรู้รูปแบบและความสัมพันธ์ในชุดข้อมูลของเนื้อหาที่มนุษย์สร้างขึ้น

เทคโนโลยีนี้แสดงให้เห็นถึงความสามารถอันน่าทึ่งผ่านแอปพลิเคชันอย่าง Gemini คุณอาจสงสัยว่าฉันจะติดตั้งใช้งานเครื่องมือ Generative AI ในผลิตภัณฑ์บนเว็บได้อย่างไร

กรณีการใช้งานที่พบบ่อยอย่างหนึ่งคือ การให้อินเทอร์เฟซที่ดีขึ้นแก่ผู้ใช้ในการถามคำถามเกี่ยวกับเนื้อหาของเว็บไซต์ คุณปรับปรุงผลการค้นหาของผู้ใช้ได้อย่างมากด้วยความช่วยเหลือจากแมชชีนเลิร์นนิง

คุณอาจสร้างอินเทอร์เฟซที่ผู้ใช้เขียนคําถาม จากนั้นระบบจะส่งคําถามไปยังโมเดลภาษาขนาดใหญ่ (LLM) เช่น Gemini แล้วแสดงคําตอบต่อผู้ใช้

สมมติว่าฟีเจอร์ดังกล่าวมีอยู่ในเว็บไซต์นี้ ผู้ใช้ต้องการทราบว่า API ใดบ้างที่รวมอยู่ใน Interop 2024 และป้อนข้อความค้นหาต่อไปนี้

What are the features included in Interop 24?

ขออภัย ผลลัพธ์มีแนวโน้มที่จะไม่ถูกต้องเนื่องจากสาเหตุ 2 ประการต่อไปนี้

  • ผู้ใช้ให้บริบทกับ LLM เพียงเล็กน้อยสำหรับคำถาม LLM จึงมีแนวโน้มที่จะแสดงคำตอบที่ไม่ถูกต้องหรือคำตอบที่เพ้อเจ้อ
  • LLM อาจได้รับการฝึกก่อนการสร้าง Interop 2024 หรือก่อนตัดสินใจเกี่ยวกับฟีเจอร์ต่างๆ ของ Interop 2024 จึงไม่ทราบข้อมูลดังกล่าว

แม้ว่า LLM จะค้นหาข้อมูลที่เป็นปัจจุบันมากขึ้นได้ แต่ชุดข้อมูลการฝึก LLM ก็ล้าสมัยโดยเนื้อแท้ การรักษาผลลัพธ์ให้ใหม่อยู่เสมออาจใช้เวลาและค่าใช้จ่ายสูงมาก

ใช้วิศวกรรมพรอมต์

การปรับแต่งพรอมต์คือการรวมเทคนิคต่างๆ เพื่อดึงเอาเอาต์พุตที่ดีที่สุดจาก LLM

เทคนิคอย่างหนึ่งคือให้บริบทเพิ่มเติมในพรอมต์ ซึ่งจะทำให้ LLM มีแนวโน้มที่จะแสดงผลเนื้อหาที่เกี่ยวข้องกับบริบทมากขึ้น

มาดูตัวอย่างการทํางานร่วมกันกันต่อ ขั้นตอนแรกคือให้เนื้อหาทั้งหมดของบทความเป็นบริบท จากนั้นเพิ่มคำถามเป็นอินพุตสำหรับ LLM เพื่อตอบ เช่น

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

คุณคาดหวังได้ว่า Gemini จะแสดงผลลัพธ์ประมาณดังนี้

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

คำตอบนี้น่าจะดีกว่ามากเมื่อเทียบกับพรอมต์ที่ไม่มีบริบท เนื่องจากคำตอบจะอิงตามบริบทที่ระบุ

ปรับขนาดด้วย RAG

เช่น แทนที่จะตอบคำถามเกี่ยวกับบทความเดียว เราต้องการให้ LLM ตอบคำถามเพิ่มเติมเกี่ยวกับ web.dev โดยใช้บทความใดก็ได้เป็นบริบทเพิ่มเติม แม้ว่าวิธีนี้อาจใช้ได้กับเว็บไซต์ขนาดเล็ก แต่เนื่องจากหน้าต่างบริบทของ Gemini 1.5 มีโทเค็น 1 ล้านรายการ พรอมต์ที่ใหญ่ขึ้นจึงช้าลงและมีค่าใช้จ่ายแพงขึ้น

ระบบจะวัดและเรียกเก็บเงินตามความยาวอินพุตและเอาต์พุตของ LLM เป็นโทเค็น ซึ่งเป็นวิธีแสดงลำดับอักขระทั่วไปที่พบในอินพุตข้อความ โดยปกติแล้วจํานวนโทเค็นจะมากกว่าจํานวนคํา ตัวอย่างเช่น อินพุตในตัวอย่างแรกมี 775 คำ ซึ่งแสดงด้วยโทเค็น 1, 097 รายการ LLM แต่ละรายการอาจคํานวณโทเค็นแตกต่างกันไป และส่วนใหญ่จะมี API หรือปลายทางเพื่อคํานวณจํานวนโทเค็นสําหรับการป้อนข้อความ

วิธีแก้ปัญหาอย่างหนึ่งคือให้บทความที่เกี่ยวข้องกับพรอมต์ LLM งานนี้ควรแบ่งออกเป็น 2 ส่วน ดังนี้

  1. เพิ่มเนื้อหาของบทความยอดนิยมเป็นบริบทเมื่อแสดงข้อความแจ้ง LLM
  2. ค้นหาเนื้อหาสำหรับบทความที่เกี่ยวข้องกับ "ฟีเจอร์ที่รวมอยู่ใน Interop 2024 มีรายการใดบ้าง"

เราต้องการให้ผลการค้นหาของ Gemini แสดงเนื้อหาตามบทความต่อไปนี้

อินพุตควรมีลักษณะดังนี้

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

บริบทนี้ให้ผลลัพธ์ตามที่คาดไว้

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

สําหรับผู้ที่คุ้นเคยกับเทคนิค AI แนวทางนี้ใช้ RAG ซึ่งเป็นแนวทางปฏิบัติทั่วไปเพื่อปรับปรุงความน่าจะเป็นที่จะได้รับคําตอบจริงจากเครื่องมือ Generative AI

แม้ว่าเทคนิค RAG จะทํางานกับการค้นหาข้อความแบบเต็มปกติได้ แต่ก็มีข้อบกพร่องอยู่

  • การค้นหาข้อความทั้งหมดช่วยให้ AI พบคีย์เวิร์ดที่ตรงกันทุกประการ อย่างไรก็ตาม LLM ไม่สามารถระบุความหมายที่ต้องการที่อยู่เบื้องหลังคำค้นหาของผู้ใช้ ซึ่งอาจทําให้เอาต์พุตไม่สมบูรณ์หรือไม่ถูกต้อง
  • อาจเกิดปัญหาเมื่อคํามีความหมายหลายอย่างหรือคําค้นหาใช้คำพ้องความหมาย เช่น "ธนาคาร" (สถาบันการเงินเทียบกับริมฝั่งแม่น้ำ) อาจทําให้ได้ผลลัพธ์ที่ไม่เกี่ยวข้อง
  • การค้นหาข้อความทั้งหมดอาจแสดงผลลัพธ์ที่มีคีย์เวิร์ดแต่ไม่ได้สอดคล้องกับวัตถุประสงค์ของผู้ใช้

การค้นหาเชิงความหมายคือการปรับปรุงความแม่นยำในการค้นหาโดยมุ่งเน้นที่ประเด็นสำคัญต่อไปนี้

  • เจตนาของผู้ค้นหา: พยายามทำความเข้าใจสาเหตุที่ผู้ใช้ค้นหาข้อมูล ผู้ชมกําลังพยายามค้นหาหรือทําสิ่งใด
  • ความหมายตามบริบท: ตีความคำและวลีโดยสัมพันธ์กับข้อความรอบตัว รวมถึงปัจจัยอื่นๆ เช่น สถานที่ตั้งหรือประวัติการค้นหาของผู้ใช้
  • ความสัมพันธ์ระหว่างแนวคิด: การค้นหาเชิงความหมายใช้กราฟความรู้ (เครือข่ายขนาดใหญ่ของเอนทิตีที่เกี่ยวข้อง) และการประมวลผลภาษาธรรมชาติเพื่อทำความเข้าใจความเชื่อมโยงระหว่างคำและแนวคิด

ดังนั้น เมื่อคุณสร้างเครื่องมือที่มีการค้นหาเชิงความหมาย ผลลัพธ์การค้นหาจะอิงตามวัตถุประสงค์โดยรวมของคำค้นหาแทนคีย์เวิร์ด ซึ่งหมายความว่าเครื่องมือจะระบุเอกสารที่เกี่ยวข้องได้แม้ว่าจะไม่มีคีย์เวิร์ดดังกล่าว และยังหลีกเลี่ยงผลลัพธ์ที่มีคำนั้นอยู่แต่มีความหมายต่างกันได้ด้วย

ปัจจุบันคุณใช้เครื่องมือค้นหา 2 รายการที่ใช้การค้นหาเชิงความหมายได้ ได้แก่ Vertex AI Search และ Algolia AI Search

ดึงคำตอบจากเนื้อหาที่เผยแพร่

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

เป็นที่ทราบกันดีว่าเครื่องมือ Generative AI อาจ "หลอน" ซึ่งทำให้เครื่องมือเหล่านี้ไม่น่าเชื่อถือในบางครั้ง หรืออาจส่งผลเสียต่อธุรกิจได้ เทคนิคเหล่านี้ช่วยให้ทั้งผู้ใช้และนักพัฒนาแอปปรับปรุงความน่าเชื่อถือได้ และอาจสร้างความไว้วางใจต่อเอาต์พุตจากแอปพลิเคชันเหล่านี้