ชุดข้อมูลที่ใช้ในการทดลองนี้คือ DpgMedia2019: ชุดข้อมูล Dutch News สำหรับการตรวจจับพรรคพวก
ประกอบด้วยส่วนต่างๆ มากมาย แต่ส่วนหลักที่ฉันใช้ในพื้นที่เก็บข้อมูลนี้เป็นส่วนย่อยจากบทความข่าว 104K ต้นฉบับ สำหรับแต่ละบทความจะมีป้ายกำกับ 'พรรคพวก' ที่ระบุว่าบทความนั้นเป็นพรรคพวกหรือไม่ (จริง/เท็จ) จำนวนสิ่งของที่เข้าข้าง/ไม่เข้าข้างมีความสมดุลโดยประมาณ
ชุดข้อมูลนี้สร้างขึ้นโดยผู้เขียนโดยมีวัตถุประสงค์เพื่อสนับสนุน เช่น การสร้างเครื่องมือตรวจจับข่าวพรรคพวก ในโค้ด Python ที่ใช้ในการทดลอง ไฟล์ชุดข้อมูลเฉพาะจะถูกดาวน์โหลดโดยอัตโนมัติ
ชำระเงิน GitHub และกระดาษเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลและวิธีการสร้างชุดข้อมูล ดูข้อมูลอ้างอิงสำหรับข้อมูล
บันทึก !! ณ เดือนมกราคม 2023 ไฟล์บางไฟล์อาจไม่พร้อมใช้งานอีกต่อไปในตำแหน่ง GitHub ดั้งเดิมของชุดข้อมูล หากคุณต้องการไฟล์ต้นฉบับ ให้ดาวน์โหลดจากชุดข้อมูล Kaggle
ชุดย่อยการฝึกอบรมและการตรวจสอบความถูกต้องที่ใช้ในพื้นที่เก็บข้อมูลนี้มีอยู่ในโฟลเดอร์ 'data'
ในสมุดบันทึก 'Prepare_Train_and_Validation_Datasets.ipynb' ชุดข้อมูลทั้งหมดจะถูกแบ่งออกเป็นชุดย่อยเล็กๆ ที่ใช้สำหรับการฝึกอบรมและการตรวจสอบ
ไฟล์เหล่านี้มีอยู่ในโฟลเดอร์ 'data' ในพื้นที่เก็บข้อมูลนี้
เหตุผลหลักในการสร้างชุดย่อยของข้อมูลที่มีขนาดเล็กลงก็คือ โมเดล GPT (หรือ LLM อื่นๆ) ต้องการตัวอย่างเพียงไม่กี่พันตัวอย่างเพื่อทำการปรับแต่งอย่างละเอียด ชุดข้อมูลที่เล็กลงยังหมายถึงโทเค็นที่น้อยลงและการเรียกเก็บเงินที่น้อยลงสำหรับบัตรเครดิตของคุณ ;-)
ชุดย่อยที่เล็กกว่าจะมีจำนวนตัวอย่างดังต่อไปนี้:
Transformer รุ่นปกติต่อไปนี้ที่ได้รับการฝึกอบรมและตรวจสอบในสมุดบันทึก 'Transformer_Model_Training_And_Validation.ipynb' บนชุดย่อยข้อมูลการฝึกอบรมและการตรวจสอบที่เล็กกว่า:
โมเดล PolyLM 1.7B และ OpenLLaMA 7B V2 Open LLM ได้รับการฝึกล่วงหน้าบนชุดข้อมูลหลายภาษาซึ่งมีภาษาดัตช์ด้วย
ในโน้ตบุ๊ก 'Open_LLM_Training_And_Validation.ipynb' โมเดล Open LLM จะถูกแปลงเป็น 4 บิตและปรับแต่งอย่างละเอียดด้วยการตั้งค่า QLoRA เพื่อลดพื้นที่หน่วยความจำ GPU ให้เหลือน้อยที่สุด
LoraConfig ถูกตั้งค่าไว้ที่อันดับ 64 และอัลฟ่าที่ 16
หลังจากการฝึก โมเดล PolyLM 1.7B มีความแม่นยำในชุดการตรวจสอบความถูกต้อง 84.4% ในขณะที่รุ่น OpenLLaMA 7B V2 มีความแม่นยำถึง 89.5%
ฉันฝึกซ้อมหลายครั้ง และในโอกาสต่างๆ ทั้งสองรุ่นมีคะแนนสูงกว่าหรือต่ำกว่าสูงสุดถึง 0.5% เมื่อเทียบกับค่าที่กล่าวข้างต้น
รหัสสำหรับการปรับแต่ง GPT-3.5 อย่างละเอียดมีอยู่ในสมุดบันทึก 'Finetune_GPT-3.5.ipynb' ตามการฝึกอบรมและการตรวจสอบไฟล์ CSV ไฟล์เฉพาะจะถูกสร้างขึ้นและอัปโหลดไปยัง OpenAI ซึ่งใช้สำหรับการปรับแต่งโมเดล GPT-3.5 อย่างละเอียด บทความข่าวถูกรวมไว้ในข้อความแจ้งเฉพาะที่ได้รับการออกแบบมาเพื่อการจัดหมวดหมู่ที่เราต้องการให้โมเดลเรียนรู้ผ่านการปรับแต่งอย่างละเอียด
รหัสตรวจสอบมีอยู่ในสมุดบันทึก 'Validate_GPT-3.5.ipynb' สำหรับแต่ละบันทึกในชุดการตรวจสอบความถูกต้อง ข้อความของบทความข่าวจะถูกรวมไว้ในพรอมต์ และ OpenAI จะถูกเรียกผ่าน API เพื่อรับการตอบกลับจากการเสร็จสิ้นการแชท การตอบสนองจะถูกแปลงเป็นป้ายกำกับไบนารี่ และด้วยป้ายกำกับความจริงภาคพื้นดิน รายงานการจัดหมวดหมู่ขั้นสุดท้ายจะถูกสร้างขึ้น
โมเดล OpenAI GPT-3.5 ที่ได้รับการปรับแต่งอย่างละเอียดมีความแม่นยำในชุดการตรวจสอบที่ 89.4%
โปรดทราบว่าฉันใช้ OpenAI เพื่อปรับแต่งและตรวจสอบความถูกต้อง ไม่ใช่ Azure OpenAI
ในเวอร์ชันล่าสุด (5 ธันวาคม 2023) ของสมุดบันทึกนี้ ฉันได้ทำการอัปเดตต่อไปนี้:
ค้นหาคะแนนความแม่นยำที่ได้รับด้านล่างในชุดการตรวจสอบสำหรับ Transformer 3 รุ่นและรุ่น GPT-3.5
รุ่น GPT-3.5 ได้รับคะแนนความแม่นยำสูงหลังจากการปรับแต่งแบบละเอียด
ประสิทธิภาพของ Transformer ทั้ง 3 รุ่นล้าหลังเล็กน้อย พวกเขาจะได้รับประโยชน์อย่างชัดเจนจากการฝึกอบรมเกี่ยวกับตัวอย่างข้อมูลเพิ่มเติม
Open LLM PolyLM ได้รับคะแนนต่ำสุด อย่างไรก็ตาม รุ่น OpenLLaMA 7B V2 ได้คะแนนที่น่าทึ่งถึง 89.5% ซึ่งเทียบได้กับคะแนนที่ได้รับจากรุ่น GPT-3.5 Turbo ที่ได้รับการปรับแต่งอย่างละเอียด (0613 และ 1106)
(LLM) ประเภทรุ่น | คะแนนความแม่นยำในการตรวจสอบ (%) |
---|---|
โพลีLM 1.7B (ลอรา: r = 64) | 84.4 |
DistilBert หลายภาษา | 85.6 |
เบิร์ตพูดได้หลายภาษา | 86.3 |
Multi-linqual DeBERTa V3 | 85.8 |
OpenLLaMA 7B V2 (ลอรา: r = 64) | 89.5 |
GPT-3.5 Turbo 0613 (ปรับแต่ง) | 90.8 |
GPT-3.5 Turbo 1106 (ปรับแต่ง) | 89.4 |
GPT-3.5 Turbo 1106 (การเรียนรู้ในบริบท) | 56.0 |
- Multi-linqual DeBERTa V3 (ชุดข้อมูลแบบเต็ม) | 95.2 |
@misc{1908.02322,
Author = {Chia-Lun Yeh and Babak Loni and Mariëlle Hendriks and Henrike Reinhardt and Anne Schuth},
Title = {DpgMedia2019: A Dutch News Dataset for Partisanship Detection},
Year = {2019},
Eprint = {arXiv:1908.02322},
}