Skip to content
โมเดลและงานวิจัย

ไฟน์จูน ใช้ระบบค้นคืนข้อมูล หรือปรับพรอมต์ให้ดีขึ้น: ควรเลือกอย่างไร

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

โดย DigitalNeuron Deskอ่าน 1 นาที

คำตอบโดยย่อ

ฉันควรไฟน์จูนโมเดล ใช้ RAG หรือปรับปรุงพรอมต์?

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

ประเด็นสำคัญ

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

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

ลำดับที่เชื่อถือได้คือทำในทางกลับกัน วินิจฉัยความล้มเหลว แล้วความล้มเหลวนั้นจะบอกเองว่าควรใช้เทคนิคใด

ความล้มเหลวสามแบบ เครื่องมือสามชนิด

ข้อร้องเรียนเกี่ยวกับพฤติกรรมของโมเดลแทบทั้งหมดจัดอยู่ในสามประเภท

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

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

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

เหตุใดการไฟน์จูนจึงแก้ช่องว่างด้านความรู้ไม่ได้

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

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

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

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

เหตุใดการใช้พรอมต์จึงถูกประเมินต่ำเกินไป

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

ไม่มีตัวอย่าง การสาธิตรูปแบบผลลัพธ์ที่ต้องการสองหรือสามตัวอย่างมีค่ามากกว่าคำบรรยายหลายย่อหน้า แสดงให้ดูแทนการแจกแจงข้อกำหนด

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

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

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

ข้อจำกัดที่ต้องยอมรับคือต้นทุนและความสม่ำเสมอ พรอมต์ระบบขนาด 2,000 โทเค็นจะถูกคิดค่าบริการในทุกคำขอ และชุดคำสั่งที่ยาวมากมักได้รับการปฏิบัติตามอย่างไม่สม่ำเสมอ เมื่อพฤติกรรมลงตัวแล้วและมีปริมาณการใช้งานสูง การย้ายพฤติกรรมนั้นเข้าไปไว้ในค่าน้ำหนักคือการเพิ่มประสิทธิภาพที่ถูกต้อง แต่นั่นเป็นการตัดสินใจด้านประสิทธิภาพหลังจากทราบแล้วว่าต้องการพฤติกรรมแบบใด ไม่ใช่วิธีค้นหาว่าพฤติกรรมควรเป็นอย่างไร

การไฟน์จูนเหมาะกับอะไรอย่างแท้จริง

มีสามกรณีที่สมเหตุสมผลอย่างชัดเจน

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

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

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

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

ต้นทุนที่ตัวเลขประมาณการมักไม่นับรวม

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

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

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

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

ลำดับที่ได้ผล

  1. เขียนความล้มเหลวออกมา เป็นหนึ่งประโยค แล้วจำแนกว่าเป็นปัญหาด้านความรู้ พฤติกรรม หรือทักษะ
  2. สร้างชุดประเมินก่อน จากกรณีจริงที่ล้มเหลว หากไม่มีชุดนี้ ก็ไม่อาจตัดสินทั้งสามวิธีได้
  3. แก้พรอมต์ เพิ่มตัวอย่าง โครงสร้าง และวิธีปฏิเสธอย่างชัดเจน แล้ววัดผล
  4. เพิ่มการค้นคืนข้อมูล หากเป็นความล้มเหลวด้านข้อเท็จจริง ตรวจสอบการค้นคืนข้อมูลแยกจากการสร้างคำตอบ
  5. ไฟน์จูน เฉพาะเมื่อพฤติกรรมลงตัวแล้วแต่มีต้นทุนสูงเมื่อต้องกำหนดผ่านพรอมต์ หรือยังมีช่องว่างด้านทักษะที่แท้จริงหลงเหลืออยู่หลังผ่านขั้นตอนที่ 3 และ 4

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

คำถามที่พบบ่อย

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

แหล่งข้อมูล

  1. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — arXiv
  2. LoRA: Low-Rank Adaptation of Large Language Models — arXiv
  3. Training language models to follow instructions with human feedback — arXiv
แท็กfine-tuningRAGpromptingarchitecturecost

อ่านเพิ่มเติม

วิเคราะห์: บริบทยาวไม่ได้ฆ่าการค้นคืนข้อมูล — แต่เปลี่ยนหน้าที่ของมันต่างหาก

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

อ่าน 16 นาที

RAG (retrieval-augmented generation) คืออะไร และเมื่อไหร่ที่คุณต้องการมัน?

การสร้างข้อมูลโดยการสืบค้น (Retrieval‑augmented generation) เป็นรูปแบบหนึ่งที่ระบบค้นหาเอกสารของคุณเองเพื่อหาบทที่เกี่ยวข้องกับคำถาม แล้วใส่บทเหล่านั้นเข้าไปใน Prompt ของโมเดลและขอให้โมเดลตอบโดยใช้ข้อมูลนั้น ระบบน้ำหนักของโมเดลไม่เคยเปลี่ยนแปลง; ความรู้จะมาถึงในรูปแบบของบริบทเมื่อใดก็ตามที่มีการเรียกใช้

อ่าน 8 นาที

บริบทหน้าต่างคืออะไร และทำไมมันถึงเต็ม?

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

อ่าน 8 นาที