LLM จะเข้ามาทำให้เราเลิกใช้ Search Engine ได้จริงเหรอ ?
เมื่อหลายวันก่อน เราเลื่อนเฟสไปเจอความเห็นนึงที่อ่านแล้วถึงกับต้องขยี้ตาอ่านซ้ำบอกว่า ให้เราลองถาม ChatGPT ดูแล้วเราจะไม่กลับไปหา Google อีกเลย มันเป็นแบบนั้นได้จริงหรือไม่ วันนี้เราจะมาอธิบายในแง่หลักการทำงานของมัน และความเป็นไปได้กันว่า มันเป็นไปได้จริงหรือไม่อย่างไร
Search Engine ทำงานอย่างไร ?
อันดับแรก เราจะต้องทำความเข้าใจกันก่อนว่า Search Engine ที่เราใช้งานกันมา อย่าง Google และ DuckDuckGo นั้นมีหลักการทำงานอย่างไร
หลักการทำงานของ Search Engine เอาแบบพื้น ๆ มันไม่ได้ซับซ้อนมากขนาดนั้น อย่างแรกคือ เราจะมีโปรแกรมที่เรียกว่า Crawler เข้าไปในอินเตอร์เน็ต พยายามเก็บข้อมูลของเว็บต่าง ๆ เข้ามาในระบบ เช่น หน้าเว็บที่ทุกคนกำลังอ่านนี้มี URL อะไร แล้วมีข้อมูลอะไรอยู่ในหน้าเว็บนี้บ้างทั้งข้อความ และรูปภาพต่าง ๆ ก็จะถูกเก็บเข้าสู่ฐานข้อมูลของผู้ให้บริการทั้งหมด จากนั้น จะมีโปรแกรมอีกตัวเข้ามาเพื่ออ่านสิ่งที่ Crawler เก็บ (Parsing) แล้วสร้างออกมาเป็น Index หรือสารบัญเก็บเอาไว้ หากเราเข้าไปเรียนลึกกว่านี้ เราจะต้องเรียน Algorithm ที่ใช้ในการ Index ต่าง ๆ ว่า มันทำการถอดคำ หรือจัดเรียงข้อมูลอย่างไร เอาแบบเบสิกเขียนเป็นการบ้านส่ง เช่นการใช้พวก TF-IDF อะไรเทือก ๆ นั้น ตอนที่เราเรียน เราจะได้เรียนในวิชาชื่อว่า Information Retrieval (IR) เป็นวิชาโปรดในดวงใจเลอ (ทุกวันนี้งานที่ทำใช้พื้นฐานจากวิชานี้เต็ม ๆ แค่เปลี่ยนไป Search Genome เท่านั้นเอง)
จากนั้นเมื่อเราต้องการค้นหาข้อมูลบางอย่าง เรากรอกคำค้น (Keyword) เข้าไป กด Search มันจะเอา Keyword นั้นแหละ วิ่งเข้าไปหาใน Index ว่า มีหน้าเว็บไหนบางที่เกี่ยวข้องกับผลลัพธ์ แต่เราเรียงผลลัพธ์มั่ว ๆ มันไม่โอเคแน่ ๆ ทำให้มันต้องมีวิธีการบางอย่างเพื่อทำให้เรียงลำดับแล้ว หน้าเว็บที่น่าจะเกี่ยวข้องกับสิ่งที่เราค้นหาจะต้องขึ้นมาเป็นอันดับต้น ๆ หรืออันดับแรกเลยได้ยิ่งได้ ทำให้เขาจะต้องมีการออกแบบ Ranking Algorithm หรือขั้นตอนวิธีการจัดอันดับ ตัวที่เราคุ้นเคยกันดีเป็นของ Google ที่ชื่อว่า PageRank Algorithm หากอยากรู้ว่า The Daddy ของ Google มันถูกคิดขึ้นมา ณ วันนั้นอย่างไร ลองกลับไปอ่าน Publication ที่ผู้ก่อตั้ง Google เคยเขียนไว้ The anatomy of a large-scale hypertextual Web search engine
ดังนั้นกว่าที่ Search Engine จะสร้างผลลัพธ์ออกมาให้เราได้นั้น จะต้องผ่าน 3 ขั้นตอนคือ Crawling, Indexing และ Ranking เพื่อที่ออกมาเป็น List ของเว็บที่มีความเกี่ยวข้องกับสิ่งที่เราค้นหาไปได้มากที่สุด ไม่ว่าจะเป็น Search Engine ตัวไหนบนโลก หลักการทำงานจะออกมาคล้าย ๆ กันหมด แตกต่างกันที่ Algorithm ในแต่ละขั้นตอน บางตัวตอน Ranking อาจจะเอาข้อมูล Browsing History เข้ามาช่วย หรืออย่าง Google ที่เอาเรื่อง Performance Scoring เข้ามาใช้ แล้วแต่นโยบายและวิธีการ ซึ่งพวกนี้ต้องบอกเลยว่า มันเป็นเหมือน Secret Recipies ของแต่ละเจ้าเลยก็ว่าได้ มันมีการเปลี่ยนแปลงไปตลอดเวลาอีกด้วย
LLM Search ทำงานอย่างไร ?
มาในฝั่งของคู่แข่งกันบ้างอย่าง LLM Search หรือกลุ่มที่ถามคำถามกับ LLM แล้วให้มันตอบ อันนี้จะซับซ้อนกว่าละ
ก่อนอื่น เราจะต้องเข้าใจก่อนว่า LLM หรือ Large Language Model มันเป็น Model ที่เราโยนพวกข้อความ หรือบทความจำนวนเยอะ ๆ เข้าไปให้เครื่องมันเรียนรู้ สิ่งที่มันเรียนรู้คือ ความสัมพันธ์ระหว่างคำ เหมือนกับเวลาเราเรียนรู้ภาษาตอนเด็ก ๆ ที่เราจะต้องเรียง ประธาน กิริยา และกรรม เมื่อเราถามมันโดยการเขียน Prompt เข้าไป มันจะพยายามสร้างคำออกมาเพื่อเลียนแบบคำตอบที่มันเคยได้เรียนรู้มาก่อนแล้ว
เช่น ถามว่า "พระอาทิตย์ขึ้นทางไหน" มันอาจจะยังไม่เคยเห็นชุดคำถามและคำตอบนี้ แต่มันอาจจะเคยเห็นข้อความจำนวนมากที่มีคำว่า "พระอาทิตย์ขึ้นทาง" และ "ทิศตะวันออก" เลยตอบออกมาแบบนั้น ซึ่งแตกต่างกับมนุษย์เราที่เข้าใจว่าพระอาทิตย์ขึ้นทางไหนแล้วค่อยสร้างประโยคออกมาตอบ มันแตกต่างกันมาก ๆ นะ
ดังนั้น ประเด็นสำคัญคือ Model ที่เราใช้งานกันตอนนี้ มันยังไม่ได้เข้าใจเหตุและผล รวมไปถึง Logic ต่าง ๆ เลย มันเป็นเพียง Model ที่เดาคำจากคำก่อน ๆ หน้า และชุดข้อมูลที่เรียนรู้มาเท่านั้น ซึ่งต้องยอมรับว่า มันเก่งมากขึ้นเรื่อย ๆ จนหลาย ๆ ครั้งการตอบของมันทำให้เราเชื่อได้ว่า มันรู้ในสิ่งที่ตอบจริง ๆ แต่จริง ๆ ไม่
ในช่วงแรกหลังจากที่มี LLM ออกมาให้เราใช้งาน แน่นอนว่ามันมีคนเอาไปถามพวก Fact ต่าง ๆ เข้าไปเหมือนเราพยายามจะค้นหาจาก Search Engine กลับกลายเป็นว่า เราเจอปัญหาใหม่กันคือ ข้อมูลที่มันตอบ มันไม่ใช่ข้อมูลล่าสุด กลายเป็นข้อมูลล่าสุด ณ วันที่ข้อมูลถูกเก็บ ทำให้มีวิธีการแก้ไขขึ้นมาอย่างการใช้ RAG
Retrieval Augmented Generation (RAG) เข้ามาช่วย เพื่อให้เราได้ข้อมูลที่เป็นปัจจุบันที่สุดเท่าที่จะเป็นไปได้ วิธีการทำงานคือ มันจะใช้พวก Crawler เหมือนกับที่ Search Engine ใช้เข้าไปอ่านหน้าเว็บต่าง ๆ แล้วเอามาเก็บไว้ พร้อมกับ Index ข้อมูล แต่พวกนี้ เขาจะใช้คนละวิธีการในการ Index แล้วเก็บลง Database จากนั้นเวลาเราเขียน Prompt เข้าไป มันก็จะวิ่งเข้าไปเอาสิ่งที่อยู่ใน Database ขึ้นมาแล้วเอามาผสมเป็นข้อมูลเพื่อให้ LLM มันตอบออกมานั่นเอง
สรุป: แต่ละวิธีการ มีข้อดี ข้อเสียของมัน
เราคงบอกไม่ได้ว่า วิธีใดดีกว่าวิธีใด เพราะแต่ละวิธีการมันมีข้อดีข้อเสียของมัน ด้วยวิธีการที่มันใช้ เรามองว่า การใช้ Search Engine มันน่าจะเหมาะกับอะไรที่เรารู้อยู่แล้วว่าเราต้องการหาอะไร มี Keyword ชัดเจน แต่การใช้ LLM เราคิดว่ามันเหมือนกับการ Brainstorm และการขยายขอบเขตการค้นหา ซึ่งทั้งสองวิธีการมันอยู่ด้วยกันได้ อาจจะเป็นการเริ่มต้นโดยการใช้ LLM และค่อยใช้ Search Engine ค่อย ๆ ยืนยันสิ่งที่ LLM บอกมา ดังนั้นคนที่ประติดประต่อเรื่องราวก็ยังคงเป็นคน ไม่ใช่เครื่องที่เราไม่ได้ไว้ใจมากขนาดนั้น แต่ถามว่า ในอนาคตเป็นไปได้มั้ยที่เราจะใช้ LLM สำหรับการค้นหาข้อมูลตรง ๆ ไปเลย
ส่วนตัวเรามองว่า คงไม่ขนาดนั้น เราว่า การใช้ LLM ในการค้นหาข้อมูล มันเหมือนกับการที่เราไปถามสักเรื่องกับคน ๆ นึง ที่เขาอาจจะคิดว่าเขารู้ แล้วตอบเหมือนรู้แต่จริง ๆ เขาไม่รู้ หรืออาจจะ Bias ตอบไปผิดประเด็นได้ ตราบใดที่เรายังไม่สามารถแก้ปัญหานี้ได้อย่างหมดจด เราคิดว่า มันอาจจะยังไม่ใช่ตัวเลือกที่จะทำให้เราทิ้ง Search Engine แล้วไปซบ LLM แบบเต็ม ๆ ขนาดนั้น
BONUS: Hybrid Approach
การใช้งาน Search Engine แบบเพียว ๆ มันเริ่มดูล้าสมัย ไม่น่าสนใจเท่าการใช้ AI หรือการใช้ LLM เอง ก็อาจจะทำให้เราไม่ได้ผลลัพธ์ที่น่าพึงพอใจเท่าไหร่ ทำให้มีคนที่พยายามเอาทั้งสองรูปแบบนี้มาทำงานร่วมกันเพื่อสร้างผลลัพธ์ที่ดีที่สุดในเทคโนโลยีที่มีกัน
วิธีการยอดนิยมคือ เอา Search Keyword เข้าไปหาใน Search Engine โดยคาดหวังว่ามันจะให้ผลลัพธ์ที่เป็นเว็บที่ตรงกับ Keyword ที่กรอกเข้าไปมากที่สุด อาจจะดึงมาสัก 10 อันดับแรก จากนั้น Extract Content ของแต่ละเว็บ โยนให้กับ Text Summerisation ไม่ว่าจะเป็น Text Summerisation Model ที่ออกแบบมาเฉพาะ หรือ LLM ที่ผ่าน Prompt Engineer มาสรุปข้อมูลของแต่ละเว็บ แล้วค่อยโยนข้อมูลก้อนนั้นให้ LLM สรุปออกมาอีกที นอกจากนั้นยังมีอีกหลายวิธีที่เข้ามาช่วย ลองไปหาอ่านกันดูได้