โมเดลและแพลตฟอร์ม AI

OLMo: การเพิ่มประสิทธิภาพวิทยาศาสตร์ของโมเดลภาษา

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

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

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

ในบทความนี้ เราจะพูดถึงเฟรมเวิร์ก OLMo ในรายละเอียด โดยตรวจสอบสถาปัตยกรรม วิธีการทำงาน และประสิทธิภาพเมื่อเทียบกับเฟรมเวิร์กที่มีอยู่ในปัจจุบัน ดังนั้น มาเริ่มต้นกันเลย

OLMo: การเพิ่มประสิทธิภาพวิทยาศาสตร์ของโมเดลภาษา

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

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

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

สำหรับการสร้างแบบจำลองและการฝึกอบรม เฟรมเวิร์ก OLMo รวมถึงโค้ดการฝึกอบรม น้ำหนักโมเดลที่สมบูรณ์ การลบส่วนประกอบ การบันทึกการฝึกอบรม และเมตริกการฝึกอบรมในรูปแบบโค้ดอินเทอร์เฟซ รวมถึงบันทึก Weights & Biases สำหรับการวิเคราะห์และการสร้างชุดข้อมูล เฟรมเวิร์ก OLMo รวมถึงข้อมูลการฝึกอบรมที่สมบูรณ์ที่ใช้สำหรับโมเดล AI2’s Dolma และ WIMBD พร้อมด้วยโค้ดที่สร้างข้อมูลการฝึกอบรม สำหรับการประเมิน เฟรมเวิร์ก OLMo รวมถึงโมเดล AI2’s Catwalk สำหรับการประเมินแบบลงสู่พื้นที่ และโมเดล Paloma สำหรับการประเมินแบบความสับสน

OLMo : โมเดลและสถาปัตยกรรม

โมเดล OLMo ใช้สถาปัตยกรรมทรานส์ฟอร์เมอร์ที่มีเพียงตัวถอดเท่านั้น โดยอาศัยการประมวลผลข้อมูลของระบบประสาท และมีโมเดลสองรูปแบบที่มีพารามิเตอร์ 1 พันล้านและ 7 พันล้านพารามิเตอร์ โดยมีโมเดล 65 พันล้านพารามิเตอร์ที่กำลังอยู่ในระหว่างการพัฒนา

สถาปัตยกรรมของเฟรมเวิร์ก OLMo นำเสนอการปรับปรุงที่สำคัญเหนือเฟรมเวิร์กที่รวมถึงส่วนประกอบทรานส์ฟอร์เมอร์แบบวานิลล่าในสถาปัตยกรรมของพวกมัน รวมถึงโมเดลภาษาที่มีความสามารถสูงล่าสุด เช่น OpenLM, Falcon, LLaMA และ PaLM รูปต่อไปนี้เปรียบเทียบโมเดล OLMo ที่มีพารามิเตอร์ 7 พันล้านกับโมเดล LLM ล่าสุดอื่นๆ ที่ทำงานบนจำนวนพารามิเตอร์ที่ใกล้เคียงกัน

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

ไม่มีอคติ

ไม่เหมือนกับโมเดล Falcon, PaLM, LLaMA และโมเดลภาษาอื่นๆ เฟรมเวิร์ก OLMo ไม่รวมอคติใดๆ ในสถาปัตยกรรมเพื่อเพิ่มเสถียรภาพในการฝึกอบรม

การปรับเปลี่ยนระดับชั้นแบบไม่ใช้พารามิเตอร์

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

ฟังก์ชันการกระตุ้น SwiGLU

เช่นเดียวกับโมเดลภาษาส่วนใหญ่ เช่น PaLM และ LLaMA เฟรมเวิร์ก OLMo รวมฟังก์ชันการกระตุ้น SwiGLU ในสถาปัตยกรรมแทนฟังก์ชันการกระตุ้น ReLU และเพิ่มขนาดการกระตุ้นแบบซ่อนเร้นให้ใกล้เคียงกับ 128 เพื่อปรับปรุงการผ่าน

การฝังตัวตำแหน่งแบบหมุน (RoPE)

โมเดล OLMo ใช้การฝังตัวตำแหน่งแบบหมุน (RoPE) แทนการฝังตัวตำแหน่งแบบสัมบูรณ์ เช่นเดียวกับโมเดล LLaMA และ PaLM

การฝึกอบรมก่อนหน้าด้วย Dolma

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

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

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

เฟรมเวิร์ก OLMo ใช้การประเมินหลายเมตริกเกี่ยวกับสถาปัตยกรรม โมเดล การเริ่มต้น ตัวเลือกการปรับเปลี่ยน อัตราการเรียนรู้ และส่วนผสมของข้อมูลระหว่างการฝึกอบรมของโมเดล ซึ่งเรียกว่าการประเมินแบบ “ออนไลน์” ของ OLMo เนื่องจากเป็นกระบวนการวนซ้ำในลูปที่ทุกๆ 1000 ขั้นตอนการฝึกอบรม (∼4B โทเค็นการฝึกอบรม) เพื่อให้สัญญาณเริ่มต้นและต่อเนื่องเกี่ยวกับคุณภาพของโมเดลที่กำลังฝึกอบรม การตั้งค่าการประเมินเหล่านี้ขึ้นอยู่กับงานหลักและการตั้งค่าการทดลองที่ใช้สำหรับการประเมินแบบออฟไลน์ของเรา

การฝึกอบรม OLMo

สิ่งสำคัญที่ต้องทราบคือ โมเดล OLMo ถูกฝึกอบรมโดยใช้กลยุทธ์ ZeRO optimizer ซึ่งจัดหาโดยเฟรมเวิร์ก FSDP ผ่าน PyTorch ซึ่งลดการใช้หน่วยความจำ GPU อย่างมีนัยสำคัญโดยการแบ่งน้ำหนักโมเดลออกเป็น GPU

เพื่อปรับปรุงการผ่าน เราใช้การฝึกอบรมแบบผสมความแม่นยำ (Micikevicius et al., 2017) ผ่านการตั้งค่า FSDP ที่มีไว้ล่วงหน้าและโมดูล amp ของ PyTorch ซึ่งรับประกันว่าการดำเนินการที่แน่นอน เช่น โซฟท์แม็กซ์ จะทำงานในความแม่นยำเต็มรูปแบบเพื่อปรับปรุงเสถียรภาพ ในขณะที่การดำเนินการอื่นๆ จะทำงานในความแม่นยำครึ่งโดยใช้รูปแบบ bfloat16

ตัวเลือกการปรับเปลี่ยน

เฟรมเวิร์ก OLMo ใช้ตัวเลือกการปรับเปลี่ยน AdamW โดยมีพารามิเตอร์ต่อไปนี้

สำหรับขนาดโมเดลทั้งหมด อัตราการเรียนรู้จะเพิ่มขึ้นอย่างเชิงเส้นในช่วง 5000 ขั้นตอนแรก (∼21B โทเค็น) ถึงค่าสูงสุด และจากนั้นจะลดลงอย่างเชิงเส้นด้วยรากที่สองผกผันของหมายเลขขั้นตอนไปยังค่าต่ำสุดของอัตราการเรียนรู้ หลังจากช่วงการอบอุ่น อัตราการเรียนรู้จะถูกตัดทอนเพื่อให้แน่ใจว่าขนาดรวมของกราดิเอ็นต์พารามิเตอร์ไม่เกิน 1.0 ตารางต่อไปนี้เปรียบเทียบการตั้งค่าตัวเลือกการปรับเปลี่ยนของเราที่ขนาด 7B กับตัวเลือกการปรับเปลี่ยนของโมเดล LMs ล่าสุดอื่นๆ ที่ใช้ AdamW

ข้อมูลการฝึกอบรม

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

ผลลัพธ์

จุดตรวจสอบที่ใช้สำหรับการประเมิน OLMo-7B ถูกฝึกอบรมจนถึง 2.46T โทเค็นบนชุดข้อมูล Dolma โดยใช้กำหนดการลดอัตราการเรียนรู้เชิงเส้นก่อนหน้านี้ การปรับแต่งจุดตรวจสอบนี้บนชุดข้อมูล Dolma เป็นเวลา 1000 ขั้นตอนโดยมีอัตราการเรียนรู้ลดลงเชิงเส้นไปยัง 0 ทำให้ประสิทธิภาพของโมเดลเพิ่มขึ้นบนความสับสนและชุดการประเมินงานปลายทางที่อธิบายไว้ก่อนหน้านี้ สำหรับการประเมินสุดท้าย ผู้พัฒนาได้เทียบ OLMo กับโมเดลที่เผยแพร่สาธารณะอื่นๆ เช่น LLaMA-7B, LLaMA2-7B, Pythia-6.9B, Falcon-7B และ RPJ-INCITE-7B

การประเมินแบบลงสู่พื้นที่

ชุดการประเมินแบบลงสู่พื้นที่หลักถูกสรุปในตารางต่อไปนี้

เราทำการประเมินแบบไม่มีการฝึกอบรมโดยใช้วิธีการจัดอันดับในการจัดอันดับความน่าจะเป็น (โดยปกติจะปรับขนาดด้วยปัจจัยการปรับขนาดบางอย่าง) และรายงานความแม่นยำของการคาดการณ์

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

รูปต่อไปนี้แสดงความก้าวหน้าของคะแนนความแม่นยำสำหรับงานปลายทาง 9 งานหลัก สามารถอนุมานได้ว่ามีการเพิ่มขึ้นของแนวโน้มความแม่นยำสำหรับงานทั้งหมด ยกเว้น OBQA เมื่อ OLMo-7B ได้รับการฝึกอบรมเพิ่มเติมบนโทเค็นมากขึ้น การเพิ่มขึ้นของความแม่นยำที่ชัดเจนในหลายงานระหว่างขั้นตอนสุดท้ายและขั้นตอนก่อนสุดท้ายแสดงให้เห็นถึงประโยชน์ของการลดอัตราการเรียนรู้เชิงเส้นลงถึง 0 ในช่วง 1000 ขั้นตอนการฝึกอบรมสุดท้าย

ความคิดสุดท้าย

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

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