อัปเกรดการค้นหาเว็บไซต์: คำตอบตามบริบทด้วย 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-3 ประการดังนี้

  • ผู้ใช้ได้ให้บริบทเล็กน้อยแก่ LLM สำหรับคำถาม ดังนั้น LLM มีแนวโน้มที่จะส่งคืนคำตอบผิดหรือความไม่สมเหตุสมผล
  • LLM น่าจะได้รับการฝึกก่อนการสร้างการทำงานร่วมกันปี 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 โดยใช้บทความต่างๆ เป็น บริบทเพิ่มเติม แม้ว่าการดำเนินการดังกล่าวจะเป็นไปได้สำหรับเว็บไซต์ขนาดเล็ก แต่ หน้าต่างบริบทที่มี 1 ล้านโทเค็นของ Gemini 1.5 ข้อความแจ้งที่มีขนาดใหญ่ขึ้นจะเรียกใช้ได้ช้ากว่าและแพงกว่า

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

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

  1. เพิ่มเนื้อหาของบทความยอดนิยมเป็นบริบทเมื่อเรียกใช้ LLM
  2. ค้นหาเนื้อหาสำหรับบทความที่เกี่ยวข้องกับ "มีฟีเจอร์อะไรบ้างใน การทำงานร่วมกันในปี 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 อาจ "พบคำตอบที่ไม่สมเหตุสมผล" ซึ่งทำให้ ดีที่สุด บางครั้งไม่น่าเชื่อถือ หรือแย่ที่สุด อาจเป็นอันตรายสำหรับ ให้เติบโต ทั้งผู้ใช้และนักพัฒนาซอฟต์แวร์จึงสามารถปรับปรุง ความน่าเชื่อถือ และบางทีอาจทำให้เกิดความเชื่อใจในเอาต์พุตจากแอปพลิเคชันเหล่านี้ได้ด้วย