ไฟน์จูน ใช้ระบบค้นคืนข้อมูล หรือปรับพรอมต์ให้ดีขึ้น: ควรเลือกอย่างไร
สามวิธีในการทำให้โมเดลทำงานตามที่ต้องการ ซึ่งมีต้นทุนและอายุการใช้งานแตกต่างกันมาก คู่มือตัดสินใจที่เริ่มจากปัญหาที่เกิดขึ้นจริง แทนที่จะเลือกจากเทคนิคที่ฟังดูจริงจังที่สุด
คำตอบโดยย่อ
ฉันควรไฟน์จูนโมเดล ใช้ RAG หรือปรับปรุงพรอมต์?
เริ่มจากวินิจฉัยความล้มเหลวก่อน หากโมเดลไม่รู้อะไรบางอย่าง นั่นคือช่องว่างด้านความรู้ ซึ่งแก้ได้ด้วยการค้นคืนข้อมูล หากโมเดลรู้แต่ตอบด้วยโครงสร้าง น้ำเสียง หรือรูปแบบที่ไม่ถูกต้อง นั่นคือช่องว่างด้านพฤติกรรม ซึ่งควรแก้ด้วยพรอมต์ก่อน แล้วจึงพิจารณาไฟน์จูน หากลองทั้งสองวิธีแล้วโมเดลยังทำทักษะเฉพาะทางไม่ได้ การไฟน์จูนคือทางเลือกที่เหลืออยู่ การใช้พรอมต์มีต้นทุนต่ำที่สุดและย้อนกลับได้ง่าย การค้นคืนข้อมูลเป็นตัวเลือกเริ่มต้นที่เหมาะสมสำหรับข้อเท็จจริง ส่วนการไฟน์จูนมีต้นทุนสูงที่สุดและย้อนกลับได้ยากที่สุดในสามวิธี
ประเด็นสำคัญ
- เทคนิคทั้งสามใช้แก้ความล้มเหลวคนละประเภท การเลือกเทคนิคก่อนวินิจฉัยความล้มเหลวคือข้อผิดพลาดที่พบบ่อยและมีต้นทุนสูงที่สุด
- การไฟน์จูนไม่ได้ช่วยเพิ่มข้อเท็จจริงได้อย่างน่าเชื่อถือ มันเป็นเพียงการปรับพฤติกรรม เช่น รูปแบบ น้ำเสียง สไตล์ หรือทักษะเฉพาะทางแคบๆ และข้อเท็จจริงที่เรียนรู้ด้วยวิธีนี้ก็อัปเดตยาก และอ้างอิงแหล่งที่มาไม่ได้ด้วย
- การดึงข้อมูล (Retrieval) คือทางเลือกที่ถูกต้องโดยพื้นฐานสำหรับข้อมูลที่เปลี่ยนแปลงอยู่เสมอ ข้อมูลที่ต้องอ้างอิงแหล่งที่มา และข้อมูลที่ขึ้นอยู่กับสิทธิ์การเข้าถึงของผู้ใช้แต่ละราย
- การเขียนพรอมต์ไม่ใช่ทางเลือกสำหรับมือใหม่ พรอมต์ที่มีโครงสร้างดีพร้อมตัวอย่างประกอบสามารถแก้ปัญหาส่วนใหญ่ที่ทีมงานพยายามแก้ด้วยการฝึกโมเดลได้
- การไฟน์จูนมีต้นทุนด้านการบำรุงรักษาที่มักถูกมองข้ามในการประเมิน นั่นคือทุกครั้งที่มีการอัปเกรดโมเดลพื้นฐาน คำถามเดิมก็จะถูกหยิบยกขึ้นมาอีกครั้ง
โมเดลไม่ทำงานอย่างที่คุณต้องการ มีเทคนิคให้เลือกสามวิธี แต่ผู้คนมักตัดสินใจย้อนลำดับ กล่าวคือเลือกแนวทางก่อน แล้วค่อยหาเหตุผลมารองรับ การไฟน์จูนฟังดูจริงจังที่สุด จึงถูกเสนอมากที่สุด แต่กลับได้ผลน้อยที่สุด
ลำดับที่เชื่อถือได้คือทำในทางกลับกัน วินิจฉัยความล้มเหลว แล้วความล้มเหลวนั้นจะบอกเองว่าควรใช้เทคนิคใด
ความล้มเหลวสามแบบ เครื่องมือสามชนิด
ข้อร้องเรียนเกี่ยวกับพฤติกรรมของโมเดลแทบทั้งหมดจัดอยู่ในสามประเภท
ช่องว่างด้านความรู้ โมเดลไม่รู้อะไรบางอย่าง เช่น แค็ตตาล็อกผลิตภัณฑ์ของคุณ การเปลี่ยนแปลงนโยบายเมื่อสัปดาห์ที่แล้ว หรือประวัติคำสั่งซื้อของลูกค้ารายนี้ โมเดลไม่มีทางรู้ได้ เพราะข้อมูลเหล่านี้ไม่ได้อยู่ในชุดฝึกและไม่ได้อยู่ในพรอมต์
ช่องว่างด้านพฤติกรรม โมเดลมีความรู้เพียงพอ แต่ตอบผิดลักษณะ เช่น ยาวเกินไป ใช้น้ำเสียงไม่ถูกต้อง ขาดหัวข้อที่กำหนด ใช้คำศัพท์ที่อุตสาหกรรมของคุณไม่ใช้ หรือตอบทั้งที่ควรปฏิเสธ
ช่องว่างด้านทักษะ โมเดลทำงานเฉพาะทางได้ไม่ดี แม้จะมีข้อมูลที่ถูกต้องอยู่ตรงหน้าและได้รับคำสั่งชัดเจน เช่น การจำแนกข้อมูลเฉพาะสาขาที่มีเส้นแบ่งละเอียดอ่อน ระบบสัญกรณ์ทางการที่ใช้เฉพาะวงการ หรือการใช้วิจารณญาณที่ขึ้นอยู่กับธรรมเนียมปฏิบัติซึ่งแทบไม่มีตัวอย่างบนเว็บสาธารณะ
เหตุใดการไฟน์จูนจึงแก้ช่องว่างด้านความรู้ไม่ได้
นี่คือความเข้าใจผิดที่ส่งผลกระทบมากที่สุดในเรื่องนี้ จึงควรอธิบายให้ชัดเจน
การไฟน์จูนปรับค่าน้ำหนักด้วยคู่ตัวอย่าง ข้อเท็จจริงที่อยู่ในตัวอย่างเหล่านั้นมีแนวโน้มปรากฏในผลลัพธ์มากขึ้น เรื่องนี้เป็นความจริง แต่สิ่งที่ไม่ได้ตามมาด้วยคือคุณสมบัติต่าง ๆ ที่ระบบความรู้จำเป็นต้องมี:
- คุณแจกแจงไม่ได้ว่าโมเดลเรียนรู้อะไรไปบ้าง ไม่มีคำสั่งค้นหาใดที่คืนรายการข้อเท็จจริงซึ่งถูกเรียนรู้เข้าไป
- คุณอัปเดตข้อเท็จจริงเพียงรายการเดียวไม่ได้ การแก้ราคาเพียงรายการเดียวหมายถึงต้องจัดทำชุดข้อมูลใหม่และฝึกโมเดลอีกครั้ง
- โมเดลอ้างอิงแหล่งที่มาไม่ได้ โมเดลสร้างข้อเท็จจริงขึ้นมาโดยไม่มีแหล่งที่มาตรวจสอบย้อนกลับได้ จึงใช้ไม่ได้ในบริบทที่อยู่ภายใต้กฎระเบียบหรือต้องผ่านการตรวจสอบ
- กำหนดสิทธิ์การเข้าถึงไม่ได้ โมเดลที่ฝึกด้วยข้อมูลของลูกค้าทุกรายจะตอบเรื่องข้อมูลของลูกค้าทุกรายให้กับทุกคน
- ข้อผิดพลาดที่แสดงออกอย่างมั่นใจจะรุนแรงขึ้น ไม่ได้ลดลง การไฟน์จูนด้วยข้อเท็จจริงมักทำให้โมเดลตอบเรื่องเฉพาะด้านได้ลื่นไหลและมั่นใจขึ้น โดยไม่ได้เพิ่มความแม่นยำในสัดส่วนเดียวกัน ซึ่งเป็นส่วนผสมที่มีประโยชน์น้อยที่สุดเท่าที่จะเป็นไปได้
การค้นคืนข้อมูลมีคุณสมบัติตรงกันข้ามในทุกข้อ เปลี่ยนเอกสารแล้วคำตอบถัดไปก็เปลี่ยนตาม เนื้อหาทุกส่วนมีรหัสประจำตัว และสิทธิ์การเข้าถึงจะถูกใช้เป็นตัวกรองก่อนที่โมเดลจะเห็นข้อมูลใด ๆ
เหตุใดการใช้พรอมต์จึงถูกประเมินต่ำเกินไป
ทีมต่าง ๆ มักมองว่าการใช้พรอมต์เป็นทางเลือกสำหรับผู้เริ่มต้น ซึ่งระบบที่จริงจังจะต้องก้าวข้ามไป ในทางปฏิบัติ ปัญหาด้านพฤติกรรมจำนวนมากแก้ได้ด้วยวิธีนี้ เพราะพรอมต์ที่ไม่มีประสิทธิภาพส่วนใหญ่มักบกพร่องในสามด้านเหมือนกัน
ไม่มีตัวอย่าง การสาธิตรูปแบบผลลัพธ์ที่ต้องการสองหรือสามตัวอย่างมีค่ามากกว่าคำบรรยายหลายย่อหน้า แสดงให้ดูแทนการแจกแจงข้อกำหนด
ไม่มีโครงสร้าง คำสั่งที่ฝังอยู่ในร้อยแก้วมักได้รับการปฏิบัติตามอย่างไม่สม่ำเสมอ การแบ่งหัวข้อ การระบุข้อจำกัดเป็นลำดับเลข และการกำหนดรูปแบบผลลัพธ์อย่างชัดเจนจะได้รับการปฏิบัติตามอย่างน่าเชื่อถือกว่ามาก
ไม่อนุญาตให้ปฏิเสธ พรอมต์ที่ไม่เคยระบุว่าควรทำอย่างไรเมื่อไม่ทราบคำตอบ เท่ากับเรียกร้องให้โมเดลต้องตอบโดยปริยาย เพียงประโยคเดียวว่า "หากเอกสารไม่มีคำตอบ ให้แจ้งว่าไม่มีแล้วหยุด" ก็ขจัดการแต่งข้อมูลขึ้นมาเองได้ทั้งประเภท
การใช้พรอมต์ยังมีคุณสมบัติที่อีกสองวิธีไม่มี คือ ย้อนกลับได้ภายในไม่กี่วินาที ในช่วงที่ข้อกำหนดยังเปลี่ยนแปลงอยู่ คุณสมบัตินี้มีค่ามากกว่าประสิทธิภาพที่เพิ่มขึ้นไม่ว่ารูปแบบใด
ข้อจำกัดที่ต้องยอมรับคือต้นทุนและความสม่ำเสมอ พรอมต์ระบบขนาด 2,000 โทเค็นจะถูกคิดค่าบริการในทุกคำขอ และชุดคำสั่งที่ยาวมากมักได้รับการปฏิบัติตามอย่างไม่สม่ำเสมอ เมื่อพฤติกรรมลงตัวแล้วและมีปริมาณการใช้งานสูง การย้ายพฤติกรรมนั้นเข้าไปไว้ในค่าน้ำหนักคือการเพิ่มประสิทธิภาพที่ถูกต้อง แต่นั่นเป็นการตัดสินใจด้านประสิทธิภาพหลังจากทราบแล้วว่าต้องการพฤติกรรมแบบใด ไม่ใช่วิธีค้นหาว่าพฤติกรรมควรเป็นอย่างไร
การไฟน์จูนเหมาะกับอะไรอย่างแท้จริง
มีสามกรณีที่สมเหตุสมผลอย่างชัดเจน
ความสม่ำเสมอของรูปแบบและสไตล์เมื่อใช้งานในปริมาณมาก เมื่อทุกคำตอบต้องเป็นไปตามโครงสร้างขององค์กร และการใช้พรอมต์ทำให้สำเร็จได้ 95% การฝึกด้วยตัวอย่างที่สอดคล้องกันไม่กี่ร้อยรายการอาจยกระดับผลลัพธ์ได้มาก พร้อมตัดโทเค็นคำสั่งออกจากทุกคำขอ
การเรียนรู้ทักษะเฉพาะทาง เช่น การจำแนกข้อมูลที่มีเส้นแบ่งเฉพาะสาขาอันละเอียดอ่อน ระบบสัญกรณ์ภายใน หรือธรรมเนียมขององค์กรที่ไม่มีตัวอย่างบนเว็บสาธารณะ นี่เป็นวิธีเดียวในสามวิธีที่เปลี่ยนสิ่งที่โมเดลทำได้ แทนที่จะเปลี่ยนเพียงสิ่งที่โมเดลได้รับคำสั่งให้ทำ
ทำให้โมเดลขนาดเล็กเพียงพอต่อการใช้งาน นี่คือกรณีที่น่าสนใจที่สุดในเชิงเศรษฐศาสตร์ โมเดลขนาดเล็กที่ผ่านการไฟน์จูนและทำงานเฉพาะด้านอย่างหนึ่งได้ทัดเทียมโมเดลแนวหน้า สามารถลดต้นทุนและเวลาแฝงได้อย่างมาก และมักเป็นกลไกเบื้องหลังการติดตั้งใช้งานบนระบบของตนเองที่คุ้มค่า
วิธีที่ใช้พารามิเตอร์อย่างมีประสิทธิภาพ ซึ่งฝึกอะแดปเตอร์ขนาดเล็กแทนการฝึกทั้งเครือข่าย ทำให้ทั้งสามกรณีมีต้นทุนต่ำกว่าเดิมมาก สิ่งนี้เปลี่ยนสมการในการตัดสินใจ แต่ไม่ได้เปลี่ยนการวินิจฉัย วิธีแก้ราคาถูกสำหรับปัญหาที่ไม่ตรงจุดก็ยังคงเป็นวิธีแก้ที่ผิด
ต้นทุนที่ตัวเลขประมาณการมักไม่นับรวม
การจัดทำชุดข้อมูล ต้องมีตัวอย่างที่สอดคล้องกันและถูกต้องตั้งแต่หลายร้อยถึงหลายพันรายการ ซึ่งโดยทั่วไปหมายถึงงานติดป้ายกำกับ ตัวอย่างที่ขัดแย้งกันแย่ยิ่งกว่าการไม่มีตัวอย่าง เพราะมันสอนให้โมเดลทำงานอย่างไม่สม่ำเสมอ
การประเมินผล คุณต้องมีชุดข้อมูลที่กันไว้สำหรับทดสอบและวิธีเปรียบเทียบผลก่อนกับหลัง มิฉะนั้นจะไม่มีทางรู้ว่าโมเดลที่ปรับแต่งแล้วดีขึ้นหรือไม่ ขั้นตอนนี้ถูกข้ามบ่อยที่สุด แต่เป็นขั้นตอนที่ทำให้ตรวจพบความแตกต่างได้
วงจรการไล่ตามโมเดลฐาน ทุกครั้งที่มีการอัปเกรดโมเดลฐาน คำถามเดิมจะกลับมาอีกครั้งว่าจะฝึกใหม่บนโมเดลฐานรุ่นใหม่ หรือใช้รุ่นเก่าต่อไปและสละประโยชน์จากการปรับปรุง ปัญหานี้เกิดซ้ำอย่างไม่สิ้นสุด แต่การใช้พรอมต์ไม่มีภาระดังกล่าว เพราะโมเดลฐานที่ดีขึ้นจะเข้ามาแทนได้ทันที
ความเสี่ยงจากการถดถอย การฝึกให้เกิดพฤติกรรมอย่างหนึ่งอาจทำให้ความสามารถด้านอื่นแย่ลง หากไม่มีชุดประเมินที่ครอบคลุม ผู้ใช้จะเป็นผู้ค้นพบปัญหานี้เอง
ลำดับที่ได้ผล
- เขียนความล้มเหลวออกมา เป็นหนึ่งประโยค แล้วจำแนกว่าเป็นปัญหาด้านความรู้ พฤติกรรม หรือทักษะ
- สร้างชุดประเมินก่อน จากกรณีจริงที่ล้มเหลว หากไม่มีชุดนี้ ก็ไม่อาจตัดสินทั้งสามวิธีได้
- แก้พรอมต์ เพิ่มตัวอย่าง โครงสร้าง และวิธีปฏิเสธอย่างชัดเจน แล้ววัดผล
- เพิ่มการค้นคืนข้อมูล หากเป็นความล้มเหลวด้านข้อเท็จจริง ตรวจสอบการค้นคืนข้อมูลแยกจากการสร้างคำตอบ
- ไฟน์จูน เฉพาะเมื่อพฤติกรรมลงตัวแล้วแต่มีต้นทุนสูงเมื่อต้องกำหนดผ่านพรอมต์ หรือยังมีช่องว่างด้านทักษะที่แท้จริงหลงเหลืออยู่หลังผ่านขั้นตอนที่ 3 และ 4
ทีมส่วนใหญ่ที่ทำตามลำดับนี้จะหยุดที่ขั้นตอนที่ 3 หรือ 4 นั่นไม่ใช่การขาดความทะเยอทะยาน แต่เป็นผลลัพธ์ที่ถูกต้อง และเวลาหลายเดือนที่ไม่ต้องเสียไปกับการสร้างกระบวนการฝึกโมเดลคือผลตอบแทนจากการเริ่มต้นด้วยการวินิจฉัย
คำถามที่พบบ่อย
- การไฟน์จูนสามารถสอนให้โมเดลรู้จักข้อมูลของบริษัทฉันได้หรือไม่
- ได้ในระดับหนึ่งเท่านั้น การฝึกโมเดลจะเพิ่มโอกาสให้ข้อมูลบางส่วนปรากฏขึ้นมา แต่คุณไม่สามารถตรวจสอบได้ว่าข้อเท็จจริงใดถูกเรียนรู้ไปบ้าง ไม่สามารถอัปเดตข้อมูลเพียงจุดเดียวได้โดยไม่ต้องฝึกใหม่ทั้งหมด และโมเดลก็ไม่สามารถอ้างอิงแหล่งที่มาได้ สำหรับความรู้เฉพาะขององค์กร การดึงข้อมูลคือเครื่องมือที่เหมาะสมกว่า
- การไฟน์จูนเก่งเรื่องอะไรจริงๆ
- ทำให้โมเดลสามารถผลิตผลลัพธ์ในรูปแบบที่กำหนดได้อย่างสม่ำเสมอ ปรับใช้สไตล์เฉพาะขององค์กร ปฏิบัติตามธรรมเนียมของแต่ละสาขา หรือทำการจัดหมวดหมู่แบบเฉพาะทางได้ดีพอที่จะใช้โมเดลขนาดเล็กและราคาถูกกว่ามาแทนที่โมเดลขนาดใหญ่ได้
- การไฟน์จูนต้องใช้ตัวอย่างกี่ชุด
- น้อยกว่าที่หลายคนคาดคิดมากสำหรับงานด้านสไตล์และรูปแบบ ตัวอย่างที่คัดสรรมาอย่างดีและสอดคล้องกันเพียงไม่กี่ร้อยชุดก็มักจะเพียงพอแล้ว ความสม่ำเสมอสำคัญกว่าปริมาณ เพราะตัวอย่างที่ขัดแย้งกันเองจะสอนให้โมเดลทำงานอย่างไม่แน่นอนแทน
- ระบบพรอมต์ที่ยาวเกินไปแย่กว่าการไฟน์จูนหรือไม่
- มันกินโทเคนในทุกคำขอ ซึ่งส่งผลกระทบเมื่อใช้งานในระดับใหญ่ และคำสั่งที่ยาวมากก็มักถูกปฏิบัติตามอย่างไม่สม่ำเสมอ แต่ข้อดีคือสามารถแก้ไขและย้อนกลับได้ทันที ซึ่งมีค่ามากในช่วงที่ความต้องการยังเปลี่ยนแปลงอยู่ตลอดเวลา
- สามารถใช้ทั้งสองวิธีร่วมกันได้หรือไม่
- ได้ และระบบที่พัฒนาเต็มที่แล้วส่วนใหญ่ก็ทำเช่นนั้น คือใช้โมเดลที่ผ่านการไฟน์จูนมาเพื่อผลิตผลลัพธ์ในรูปแบบที่ถูกต้องอย่างสม่ำเสมอ ใช้การดึงข้อมูลเพื่อป้อนข้อเท็จจริงล่าสุด และใช้พรอมต์แบบกระชับเพื่อจัดการคำสั่งเฉพาะของแต่ละคำขอ