เผยแพร่เมื่อวันที่ 30 ตุลาคม 2024
การสร้างฟีเจอร์ด้วยโมเดลภาษาขนาดใหญ่ (LLM) นั้นแตกต่างจากวิศวกรรมซอฟต์แวร์แบบดั้งเดิมมาก นักพัฒนาแอปต้องเรียนรู้การสร้างพรอมต์เพื่อจัดการกับผลลัพธ์ที่ไม่แน่นอน อินพุตก่อนการประมวลผล และผลลัพธ์หลังการประมวลผล
ปัญหาอย่างหนึ่งที่คุณแชร์กับเราคือการทดสอบเอาต์พุตจาก LLM, การกำหนดความถูกต้องและคุณภาพนั้นใช้เวลานาน นักพัฒนาแอปมักใช้วิธีสร้างเอาต์พุตแบบเป็นกลุ่มโดยใช้อินพุตที่แตกต่างกัน จากนั้นตรวจสอบด้วยตนเองโดยใช้วิจารณญาณ
แนวทางที่ปรับขนาดได้มากขึ้นในการประเมินผลลัพธ์ของโมเดลและพรอมต์ต่างๆ คือเทคนิคLLM เป็นตัวตัดสิน เทคนิคนี้จะช่วยในการตรวจสอบโมเดลโดยมอบหมายให้ LLM อื่นแทนการอาศัยการตัดสินของมนุษย์ LLM ตัวที่ 2 ต้องเป็น LLM ขนาดใหญ่กว่าซึ่งทำงานบนระบบคลาวด์ และมีแนวโน้มที่จะมีความสามารถด้านการอนุมานได้ดีกว่า
ในเอกสารนี้ เราใช้การสรุปเพื่อสาธิตวิธีเปรียบเทียบรูปแบบต่างๆ และแสดงการปรับปรุงคุณภาพจาก Gemma เป็น Gemma 2 เป็นโบนัส
เลือกรูปแบบสําหรับการเปรียบเทียบและเตรียมข้อมูล
เราประเมินความสามารถของโมเดล 3 รูปแบบในการสรุป เราเปรียบเทียบผลการค้นหาของโมเดลแบบเปิด 2 โมเดลของ Google ที่ทำงานฝั่งไคลเอ็นต์ได้ ซึ่งได้แก่ Gemma และ Gemma 2 โดยทั้ง 2 โมเดลมีขนาดพารามิเตอร์ 2,000 ล้านรายการ ในทางตรงกันข้าม เรายังได้ประเมินโมเดลที่ทำงานบนระบบคลาวด์ซึ่งมีขนาดใหญ่และมีประสิทธิภาพมากขึ้นด้วย ซึ่งก็คือ Gemini 1.5 Flash
เราใช้ชุดข้อมูลบทความ BBC 2,225 รายการ ซึ่งครอบคลุมหัวข้อต่างๆ เช่น ธุรกิจ ความบันเทิง การเมือง กีฬา และเทคโนโลยี และสร้างสรุปของแต่ละบทความโดยใช้โมเดลที่เลือกแต่ละรายการ ใช้พรอมต์เดียวกันกับทุกรูปแบบ
สรุปบทความเป็นย่อหน้าเดียว
เราได้จัดเก็บบทความต้นฉบับและสร้างข้อมูลสรุปไว้ในฐานข้อมูลเพื่อให้เข้าถึงได้ง่ายในแต่ละขั้นตอน
เลือกผู้ตัดสินเพื่อวิเคราะห์และให้คะแนนข้อมูลสรุป
ในการวิเคราะห์คุณภาพของข้อมูลสรุป เราใช้ Gemini 1.5 Flash เพื่อตัดสินข้อมูลสรุปที่ Gemma 2B และ Gemma 2 2B สร้างขึ้น แนวทางที่เฉพาะเจาะจงของเราอิงตามการปรับ ซึ่งเป็นส่วนหนึ่งของเมตริกการสรุปของ DeepEval
การปรับแนวคือเมตริกที่วัดความถี่ที่ข้อความที่รวมอยู่ในข้อมูลสรุปได้รับการสนับสนุนในเนื้อหาต้นฉบับที่ข้อมูลสรุปนั้นอิงตาม
เราได้แบ่งกระบวนการประเมินออกเป็น 2 ขั้นตอน ก่อนอื่น เราแจ้งให้โมเดลแบ่งข้อมูลสรุปแต่ละรายการออกเป็นข้อความแยกกัน จากนั้นเราแจ้งให้โมเดลระบุว่าข้อความแต่ละรายการได้รับการสนับสนุนจากข้อความต้นฉบับของบทความหรือไม่
ดึงข้อมูลคำสั่งจากข้อมูลสรุป
เราขอให้ Gemini 1.5 Flashแบ่งข้อความที่ยาวออกเป็นคำสั่งแยกต่างหาก เช่น
กองหลังของเอฟเวอร์ตันอย่าง David Weir ไม่ได้สนใจเรื่องการไปเล่นฟุตบอลยุโรป แม้ว่าทีมของเขาจะรั้งอันดับ 2 ในพรีเมียร์ลีกหลังจากเอาชนะลิเวอร์พูล
Gemini 1.5 Flash จะแบ่งประโยคนี้ออกเป็นข้อความต่อไปนี้
- "David Weir เล่นตำแหน่งกองหลังให้กับ Everton"
- "ตอนนี้เอฟเวอร์ตันอยู่ในอันดับที่ 2 ของพรีเมียร์ลีก"
- "เอฟเวอร์ตันชนะลิเวอร์พูลในการแข่งขันล่าสุด"
- "David Weir ได้ลดการพูดคุยเกี่ยวกับ Everton ที่เล่นฟุตบอลยุโรป"
ตรวจสอบคำสั่ง
จากนั้นเราขอให้ Gemini 1.5 Flashวิเคราะห์ประโยคต้นฉบับ เทียบกับข้อความที่แยก โมเดลจัดประเภทความถูกต้องของข้อความแต่ละรายการดังนี้
- ใช่: ข้อความต้นฉบับสนับสนุนข้อความดังกล่าว
- ไม่ ข้อความดังกล่าวขัดแย้งกับข้อความต้นฉบับ
- Idk เราไม่สามารถยืนยันได้ว่าข้อความดังกล่าวได้รับการสนับสนุนหรือไม่ หรือขัดแย้งกับข้อความต้นฉบับหรือไม่
การวิเคราะห์ผลลัพธ์
กระบวนการนี้ส่งผลให้เกิดเมตริก 2 รายการที่สามารถใช้เปรียบเทียบโมเดลได้ ดังนี้
- การจัดแนว: โมเดลสร้างข้อมูลสรุปที่มีข้อความที่สนับสนุนโดยข้อความต้นฉบับบ่อยเพียงใด
- ความสมบูรณ์: จํานวนข้อความโดยเฉลี่ยที่มีอยู่ในข้อมูลสรุปที่โมเดลสร้างขึ้น
การจัดข้อความ
เราคำนวณความสอดคล้องโดยนับจำนวนข้อมูลสรุปที่มีข้อความอย่างน้อย 1 รายการที่ทําเครื่องหมายเป็น "ไม่" แล้วหารด้วยจํานวนข้อมูลสรุปทั้งหมด
โมเดล Gemini 1.5 Flash มีคะแนนการจับคู่สูงสุดกว่า 92% ซึ่งหมายความว่าเนื้อหามีความโดดเด่นตรงที่ยึดถือข้อเท็จจริงและหลีกเลี่ยงการเขียนขึ้นเอง
Gemma 2 2B ได้คะแนน 78.64% ซึ่งถือว่าดี บ่งบอกถึงความแม่นยำในระดับดี ส่วน Gemma 2B เวอร์ชันเก่ามีคะแนนการจัดตำแหน่งต่ำกว่า ซึ่งหมายความว่ามีแนวโน้มที่จะรวมข้อมูลที่ข้อความต้นฉบับไม่รองรับ
ความหลากหลาย
เราคํานวณความหลากหลายของโมเดลโดยหาค่าเฉลี่ยของจํานวนข้อความที่โมเดลสร้างขึ้นสําหรับข้อมูลสรุปแต่ละรายการ
Gemma 2 2B มีคะแนนความหลากหลายสูงสุดที่ 9.1 ซึ่งบ่งบอกว่าข้อมูลสรุปมีรายละเอียดและประเด็นสำคัญมากกว่า นอกจากนี้ โมเดล Gemini 1.5 Flash ยังมีคะแนนความสมบูรณ์สูงเกิน 8.4 Gemma 2B มีคะแนนความสมบูรณ์ต่ำกว่า ซึ่งบ่งชี้ว่าอาจไม่ได้บันทึกข้อมูลสำคัญจากข้อความต้นฉบับมากนัก
บทสรุป
เราพบว่าโมเดลขนาดเล็กที่ทำงานฝั่งไคลเอ็นต์ได้ เช่น Gemma 2 2B สามารถสร้างเอาต์พุตที่มีคุณภาพยอดเยี่ยม แม้ว่าโมเดลที่ทำงานบนระบบคลาวด์ เช่น Gemini 1.5 Flash จะยอดเยี่ยมในการสร้างข้อมูลสรุปที่สอดคล้องกับบทความต้นฉบับและบรรจุข้อมูลจํานวนมาก แต่คุณควรพิจารณาความแตกต่างนี้ควบคู่ไปกับประสิทธิภาพของแอปพลิเคชัน ความต้องการด้านความเป็นส่วนตัวและความปลอดภัย รวมถึงคําถามอื่นๆ ที่คุณอาจถามเมื่อพิจารณาว่าจะสร้าง AI ฝั่งไคลเอ็นต์ หรือไม่
ความสามารถของกลุ่มโมเดล Gemma พัฒนาไปอย่างชัดเจน เนื่องจาก Gemma 2 2B สามารถสร้างสรุปที่สมบูรณ์และสอดคล้องกับข้อมูลจริงมากกว่า Gemma 2B
ประเมิน Use Case
เอกสารนี้เป็นเพียงตัวอย่างคร่าวๆ ของสิ่งที่เป็นไปได้เมื่อใช้ LLM เป็นเทคนิคการตัดสิน แม้จะมีการสรุป แต่คุณก็ดูเมตริกเพิ่มเติมได้ และผลลัพธ์อาจแตกต่างกัน เช่น คุณอาจประเมินความครอบคลุมโดยใช้พรอมต์เพื่อระบุประเด็นสำคัญจากบทความ จากนั้นใช้พรอมต์อื่นเพื่อตรวจสอบว่าสรุปแต่ละรายการครอบคลุมประเด็นสำคัญเหล่านั้นหรือไม่
กรณีการใช้งานอื่นๆ เช่น การเขียนข้อความ การเขียนข้อความใหม่ หรือการสร้างข้อความที่เพิ่มการดึงข้อมูล (RAG) อาจให้ผลลัพธ์ที่แตกต่างกันสำหรับเมตริกเดียวกัน หรือควรใช้เมตริกอื่นๆ ในการประเมิน
เมื่อใช้แนวทางนี้ ให้พิจารณาว่ามนุษย์จะประเมินเอาต์พุตอย่างไรเพื่อพิจารณาว่าเมตริกใดเหมาะกับ Use Case ของคุณมากที่สุด นอกจากนี้ คุณยังควรพิจารณาเฟรมเวิร์กที่มีอยู่ เช่น DeepEval ซึ่งอาจมีชุดเมตริกที่เหมาะสมกับกรณีการใช้งานของคุณอยู่แล้ว
คุณใช้ LLM เป็นตัวตัดสินเพื่อประเมินโมเดลไหม ทวีตสิ่งที่พบให้เราทราบที่ @ChromiumDev หรือแชร์กับChrome สำหรับนักพัฒนาซอฟต์แวร์ใน LinkedIn