ปัญญาประดิษฐ์

การสำรวจลึกเกี่ยวกับการสร้างแบบจำลองที่เพิ่มประสิทธิภาพด้วยการค้นหาข้อมูลใน LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

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

“ขอโทษ แต่ฉันไม่สามารถให้ข้อมูลแบบเรียลไทม์หรือข้อมูลหลังวันที่ปิดการฝึกอบรมได้ ข้อมูลการฝึกอบรมล่าสุดของฉันสิ้นสุดในเดือนมกราคม 2022 เท่านั้น”

โมเดลภาษาขนาดใหญ่สำหรับพลังภาษา แต่ขาดความสามารถในการเข้าใจ “ปัจจุบัน” และในโลกที่เปลี่ยนแปลงอย่างรวดเร็ว “ปัจจุบัน” คือทุกอย่าง

การวิจัยแสดงให้เห็นว่าโมเดลภาษาขนาดใหญ่ที่ได้รับการฝึกอบรมก่อนหน้านี้ยังเป็นที่เก็บข้อมูลแห่งความรู้ที่เป็นข้อเท็จจริง

พวกมันได้รับการฝึกอบรมจากข้อมูลมากมายจนได้ซึมซับข้อเท็จจริงและตัวเลขมากมาย เมื่อได้รับการฝึกอบรมเพิ่มเติม พวกมันสามารถให้ผลลัพธ์ที่น่าประทับใจในงาน NLP ต่างๆ

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

การอัปเกรดการค้นหาของ OpenAI’s ChatGPT

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

https://twitter.com/OpenAI/status/1707077710047216095

ปัจจุบันใช้งานได้สำหรับผู้ใช้ Plus และ Enterprise และ OpenAI มีแผนที่จะปล่อยฟังก์ชันนี้ให้กับผู้ใช้ทั้งหมดในเร็วๆ นี้ ผู้ใช้สามารถเปิดใช้งานฟังก์ชันนี้ได้โดยเลือก ‘ค้นหาด้วย Bing’ ในตัวเลือก GPT-4

ฟังก์ชันการค้นหาของ ChatGPT

ฟังก์ชันการค้นหาของ ChatGPT

 วิศวกรรมคำสั่งเป็นเครื่องมือที่มีประสิทธิภาพ แต่ไม่เพียงพอ

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

  1. ความชัดเจน: คำสั่งที่กำหนดไว้อย่างชัดเจนจะกำจัดความคลุมเครือ มันควรจะตรงไปตรงมา เพื่อให้โมเดลเข้าใจความตั้งใจของผู้ใช้ ความชัดเจนนี้มักจะส่งผลให้ได้คำตอบที่สอดคล้องกันและเกี่ยวข้องมากขึ้น
  2. บริบท: โดยเฉพาะสำหรับข้อมูลที่ยาว การวางคำสั่งไว้ที่จุดใดจุดหนึ่งสามารถมีอิทธิพลต่อผลลัพธ์ได้ ตัวอย่างเช่น การย้ายคำสั่งไปท้ายข้อมูลที่ยาวสามารถให้ผลลัพธ์ที่ดีขึ้นได้
  3. ความแม่นยำของคำสั่ง: กำลังของคำถาม ซึ่งมักจะถูกส่งผ่านโครงสร้าง “ใคร, อะไร, ที่ไหน, เมื่อไหร่, ทำไม, และ如何” สามารถชี้นำโมเดลให้ไปสู่คำตอบที่มุ่งเน้นมากขึ้น นอกจากนี้ การระบุรูปแบบการให้คำตอบที่ต้องการหรือขนาดยังสามารถปรับปรุงผลลัพธ์ของโมเดลได้
  4. การรับมือกับความไม่แน่นอน: มันสำคัญที่จะชี้แนะโมเดลว่าจะตอบสนองอย่างไรเมื่อมันไม่แน่นอน ตัวอย่างเช่น การสั่งให้โมเดลตอบว่า “ฉันไม่รู้” เมื่อมันไม่แน่นอนสามารถป้องกันไม่ให้โมเดลสร้างคำตอบที่ไม่ถูกต้องหรือ “หลอกลวง”
  5. การคิดแบบขั้นตอน: สำหรับคำสั่งที่ซับซ้อน การชี้แนะโมเดลให้คิดอย่างเป็นระบบหรือแบ่งงานออกเป็นงานย่อยๆ สามารถนำไปสู่ผลลัพธ์ที่ครอบคลุมและแม่นยำมากขึ้น

เกี่ยวกับความสำคัญของคำสั่งในการชี้นำ ChatGPT สามารถอ่านบทความที่ครอบคลุมได้ที่ Unite.ai

ความท้าทายในโมเดล AI ที่สร้างข้อมูล

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

  • การหลอกลวง: สิ่งนี้หมายถึงกรณีที่โมเดลตอบกลับด้วยความมั่นใจว่าเป็นข้อมูลที่ไม่ถูกต้องหรือสร้างขึ้น
การหลอกลวงใน LLM

การหลอกลวงใน LLM

  • ขีดจำกัดความรู้: ทุกๆ โมเดล LLM มีวันที่สิ้นสุดการฝึกอบรม ซึ่งหมายความว่าโมเดลไม่ทราบเหตุการณ์หรือการพัฒนาที่เกิดขึ้นหลังจากวันที่สิ้นสุดการฝึกอบรม
ขีดจำกัดความรู้ใน LLM

ขีดจำกัดความรู้ใน LLM

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

มันช่วยให้ LLM ดึงข้อมูลจากแหล่งข้อมูลภายนอกได้แบบเรียลไทม์ ซึ่งอาจเป็นฐานความรู้ ฐานข้อมูล หรือแม้กระทั่งอินเทอร์เน็ต

การแนะนำการสร้างแบบจำลองที่เพิ่มประสิทธิภาพด้วยการค้นหาข้อมูล

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

โครงสร้าง RAG ทำงานในลักษณะที่มีโครงสร้าง:

การรับข้อมูลจากผู้ใช้

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

การค้นหาข้อมูลจากแหล่งข้อมูลภายนอก

แทนที่จะสร้างคำตอบโดยตรงจากข้อมูลการฝึกอบรม โมเดลจะค้นหาข้อมูลจากแหล่งข้อมูลภายนอกด้วยส่วนประกอบการค้นหา ซึ่งอาจเป็นฐานความรู้ ฐานข้อมูล หรือข้อมูลที่สามารถเข้าถึงได้ทางอินเทอร์เน็ต

การทำความเข้าใจการค้นหา

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

  1. การสร้างดัชนี: ส่วนนี้เป็นกระบวนการที่ท้าทายที่สุดในการใช้ RAG การสร้างดัชนีของฐานความรู้สามารถแบ่งออกเป็นสองขั้นตอน: การโหลดและการแบ่ง ในเครื่องมืออย่าง LangChain กระบวนการเหล่านี้เรียกว่า “การโหลด” และ “การแบ่ง” การโหลดจะดึงข้อมูลจากแหล่งข้อมูลต่างๆ เช่น หน้าเว็บหรือเอกสาร PDF หลังจากดึงข้อมูลแล้ว การแบ่งจะแบ่งข้อมูลออกเป็นชิ้นเล็กๆ ที่เหมาะสมสำหรับการฝังและค้นหา
  2. การค้นหา: สิ่งนี้คือการดึงข้อมูลที่เกี่ยวข้องมากที่สุดตามคำค้นหา

แม้ว่าจะมีหลายวิธีในการเข้าถึงการค้นหา แต่ระบบ RAG ที่ทันสมัยขึ้นใช้การค้นหาที่มีความหมาย ในใจกลางของการค้นหาที่มีความหมายคือแนวคิดเรื่องการฝัง

การเพิ่มข้อมูลให้กับคำสั่ง

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

การสร้างคำตอบ

ด้วยคำสั่งที่เพิ่มข้อมูลแล้ว โมเดลจะสร้างคำตอบหรือการเติมคำตอบ โดยคำตอบนี้ไม่ได้มาจากการฝึกอบรมของโมเดลเท่านั้น แต่ยังมาจากข้อมูลที่ดึงมาจากแหล่งข้อมูลภายนอกด้วย

การสร้างแบบจำลองที่เพิ่มประสิทธิภาพด้วยการค้นหาข้อมูล

การสร้างแบบจำลองที่เพิ่มประสิทธิภาพด้วยการค้นหาข้อมูล

สถาปัตยกรรมของ RAG LLM แรก

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

  1. ความจำแบบพาราเมตริก: สิ่งนี้คือโมเดลภาษาขนาดใหญ่แบบดั้งเดิม เช่น โมเดล seq2seq มันถูกฝึกอบรมจากข้อมูลจำนวนมากและรู้มาก
  2. ความจำแบบไม่ใช่พาราเมตริก: คิดว่าสิ่งนี้เป็นเหมือนเครื่องมือค้นหา มันเป็นดัชนีเวกเตอร์ที่หนาแน่นของข้อมูล เช่น วิกิพีเดีย ซึ่งสามารถเข้าถึงได้โดยใช้เครื่องมือค้นหาที่เป็นแบบประสาท

เมื่อรวมกัน สิ่งเหล่านี้สร้างโมเดลที่แม่นยำ โมเดล RAG ค้นหาข้อมูลที่เกี่ยวข้องจากความจำที่ไม่ใช่พาราเมตริกของมัน แล้วใช้ความรู้ของมันเพื่อให้คำตอบที่สอดคล้องกัน

โมเดล RAG เดิมโดย Meta

โมเดล RAG เดิมโดย Meta

1. กระบวนการสองขั้นตอน:

โมเดล RAG ทำงานในกระบวนการสองขั้นตอน:

  • การค้นหา: โมเดลค้นหาดокументหรือส่วนของข้อมูลที่เกี่ยวข้องจากชุดข้อมูลขนาดใหญ่โดยใช้กลไกการค้นหาที่หนาแน่น ซึ่งใช้การฝังเพื่อแสดงคำสั่งและเอกสารเป็นเวกเตอร์เหล่านั้น
  • การสร้าง: ด้วยเอกสารที่เกี่ยวข้องมากที่สุด โมเดลจะสร้างคำตอบสุดท้ายโดยใช้คำสั่งและเอกสารที่ดึงมา

2. การค้นหาที่หนาแน่น:

ระบบการค้นหาที่ใช้การแทนแบบหนาแน่นแทนการแทนแบบกระจาย เช่น TF-IDF ทำให้สามารถเปรียบเทียบความคล้ายคลึงกันในระดับเชิงความหมายได้ดีขึ้น

3. การสร้างแบบลำดับต่อลำดับ:

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

การค้นหาดокумент

การสร้างดัชนีเอกสารและการค้นหา

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

ฐานข้อมูลเวกเตอร์

ฐานข้อมูลเวกเตอร์

Source: Redis

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

ฐานข้อมูลเวกเตอร์ที่มีชื่อเสียงบางตัว ได้แก่ Annoy, Faiss โดย Meta, Milvus และ Pinecone ฐานข้อมูลเหล่านี้มีความสำคัญในแอปพลิเคชัน AI โดยช่วยในงานต่างๆ เช่น ระบบแนะนำ การค้นหาภาพ และอื่นๆ แพลตฟอร์มอย่าง AWS ยังให้บริการที่ออกแบบมาเพื่อตอบสนองความต้องการของฐานข้อมูลเวกเตอร์ เช่น Amazon OpenSearch Service และ Amazon RDS สำหรับ PostgreSQL บริการเหล่านี้ได้รับการปรับให้เหมาะสมสำหรับกรณีการใช้งานเฉพาะ เพื่อให้การสร้างดัชนีและค้นหามีประสิทธิภาพ

การแบ่งออกเป็นชิ้นเล็กๆ สำหรับการเกี่ยวข้อง

เนื่องจากเอกสารหลายๆ ฉบับอาจมีขนาดใหญ่ จึงมีการใช้เทคนิคที่เรียกว่า “การแบ่งออกเป็นชิ้นเล็กๆ” ซึ่งหมายถึงการแบ่งเอกสารขนาดใหญ่ออกเป็นชิ้นเล็กๆ ที่สอดคล้องกันทางเชิงความหมาย ชิ้นเล็กๆ เหล่านี้จะถูกสร้างดัชนีและดึงมาใช้ตามความจำเป็น เพื่อให้แน่ใจว่าส่วนที่เกี่ยวข้องมากที่สุดของเอกสารจะถูกใช้สำหรับการเพิ่มข้อมูลให้กับคำสั่ง

การคำนึงถึงหน้าต่างบริบท

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

ประโยชน์ของการใช้การสร้างแบบจำลองที่เพิ่มประสิทธิภาพด้วยการค้นหาข้อมูล

  1. ความแม่นยำที่ดีขึ้น: โดยการนำข้อมูลจากแหล่งข้อมูลภายนอกมาใช้ โมเดล RAG สามารถสร้างคำตอบที่ไม่เพียงแต่มาจากการฝึกอบรมเท่านั้น แต่ยังมาจากข้อมูลที่เกี่ยวข้องและทันสมัยที่สุดในคอร์ปัสการค้นหา
  2. การเอาชนะช่องว่างความรู้: RAG ช่วยแก้ไขข้อจำกัดด้านความรู้ที่มีอยู่ในโมเดล LLM ไม่ว่าจะเป็นเพราะวันที่สิ้นสุดการฝึกอบรมหรือการขาดข้อมูลเฉพาะโดเมนในคอร์ปัสการฝึกอบรม
  3. ความยืดหยุ่น: RAG สามารถรวมกับแหล่งข้อมูลภายนอกต่างๆ ได้ ตั้งแต่ฐานข้อมูลเฉพาะขององค์กรไปจนถึงข้อมูลที่สามารถเข้าถึงได้ทางอินเทอร์เน็ต ทำให้เหมาะสำหรับการใช้งานที่หลากหลายและในอุตสาหกรรมต่างๆ
  4. การลดการหลอกลวง: หนึ่งในความท้าทายของ LLM คือการหลอกลวงหรือการสร้างข้อมูลที่ไม่ถูกต้องหรือไม่มีอยู่จริง โดยการให้บริบทข้อมูลแบบเรียลไทม์ RAG สามารถลดโอกาสของการหลอกลวงได้อย่างมาก
  5. การปรับขนาด: ประโยชน์หลักของโมเดล RAG คือความสามารถในการปรับขนาด โดยการแยกกระบวนการค้นหาและสร้างออกจากกัน โมเดลสามารถจัดการข้อมูลจำนวนมากได้อย่างมีประสิทธิภาพ ทำให้เหมาะสำหรับการใช้งานในโลกแห่งความเป็นจริงที่มีข้อมูลมากมาย

ความท้าทายและข้อพิจารณา

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

สรุป

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

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

ฉันใช้เวลาที่ผ่านมา 5 ปีในการศึกษาสิ่งที่น่าสนใจเกี่ยวกับ Machine Learning และ Deep Learning ความเชี่ยวชาญและความหลงใหลของฉันทำให้ฉันเข้าร่วมในโครงการพัฒนาซอฟต์แวร์มากกว่า 50 โครงการที่มีความหลากหลาย โดยมุ่งเน้นไปที่ AI/ML ความอยากรู้อยากเห็นของฉันยังทำให้ฉันสนใจในด้าน Natural Language Processing ซึ่งเป็นสาขาที่ฉันต้องการสำรวจต่อไป