หนังสือออนไลน์ด้านวิศวกรรม ML
(github.com/stas00)-
วิศวกรรมการรบของปัญญาประดิษฐ์ - สิ่งที่ควรรู้
- คอลเลกชันแบบเปิดที่รวบรวมวิธีการสำหรับการฝึกโมเดลปัญญาประดิษฐ์ (ML) ให้ประสบความสำเร็จ โดยเฉพาะโมเดลภาษาขนาดใหญ่ (LLM) และโมเดลหลายสื่อ (VLM)
- เป็นแหล่งข้อมูลทางเทคนิคสำหรับวิศวกรและผู้ปฏิบัติการฝึก LLM/VLM โดยมีสคริปต์และคำสั่งแบบคัดลอก-วางจำนวนมาก จึงช่วยให้ทำงานที่ต้องการได้อย่างรวดเร็ว
- มีการบันทึกประสบการณ์และเคล็ดลับที่ได้จากการฝึกโมเดลโอเพนซอร์ส BLOOM-176B ในปี 2022 และโมเดลหลายสื่อ IDEFICS-80B ในปี 2023 อย่างต่อเนื่อง และปัจจุบันกำลังพัฒนา/ฝึกโมเดล retrieval-augmented แบบโอเพนซอร์สที่ Contextual.AI
-
สารบัญ
- ขออภัยสำหรับเลย์เอาต์ที่ยังไม่เสถียร เนื่องจากกำลังเขียนบทใหม่และจัดโครงสร้างเนื้อหาใหม่ให้เข้าใจง่ายขึ้น
-
องค์ประกอบฮาร์ดแวร์
- ตัวเร่งความเร็ว - ม้าศึกของงาน ML รวมถึง GPU, TPU, IPU, FPGA, HPU, QPU, RDU เป็นต้น
- เครือข่าย - การเชื่อมต่อภายในโหนดและระหว่างโหนด รวมถึงการคำนวณความต้องการแบนด์วิดท์
- สตอเรจ - ดิสก์และระบบไฟล์ทั้งแบบโลคัลและแบบกระจาย
- CPU - เนื้อหาเกี่ยวกับ CPU และ affinity
- หน่วยความจำ CPU - บทที่สั้นที่สุด ว่าหน่วยความจำ CPU เท่าไรจึงจะเพียงพอ
-
ประสิทธิภาพ
- ความทนทานต่อความขัดข้อง
- ประสิทธิภาพ
- เครือข่ายหลายโหนด
- การขนานโมเดล
-
การปฏิบัติการ
- SLURM
- ไฮเปอร์พารามิเตอร์สำหรับการฝึกและการกำหนดค่าเริ่มต้นของโมเดล
- ความไม่เสถียร
-
การพัฒนา
- การดีบักความล้มเหลวของซอฟต์แวร์และฮาร์ดแวร์
- การดีบักเพิ่มเติม
- ความสามารถในการทำซ้ำ
- ความละเอียดของเทนเซอร์ / ชนิดข้อมูล
- โน้ตเกี่ยวกับ HF Transformers - ทิปเกี่ยวกับโมเดลขนาดเล็ก โทเคไนเซอร์ ดาต้าเซ็ต เป็นต้น
-
อื่น ๆ
- แหล่งข้อมูล - ลำดับเหตุการณ์ของ LLM/VLM
-
ทางลัด
- เครื่องมือและคู่มือที่มักต้องค้นหาอย่างรวดเร็ว
- เครื่องมือ:
all_reduce_bench.py,torch-distributed-gpu-test.py - คู่มือ:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
การทำหนังสือ
- หากต้องการสร้าง PDF หรือตรวจสอบลิงก์ ให้ดูส่วน 'การทำหนังสือ'
-
คำขอบคุณ
- การได้เรียนรู้เคล็ดลับเหล่านี้เป็นสิทธิพิเศษที่มีเพียงไม่กี่คนเท่านั้นที่เข้าถึงได้ เพราะค่าใช้จ่ายในการเช่าคลัสเตอร์คอมพิวต์ ML ขนาดใหญ่นั้นสูงมาก
- ขอขอบคุณเป็นพิเศษต่อ Thom Wolf และ HuggingFace
-
การมีส่วนร่วม
- หากพบข้อบกพร่อง คำผิด หรือมีข้อเสนอแนะเพื่อปรับปรุง แนะนำให้เปิด issue หรือส่ง PR เข้ามา
-
สัญญาอนุญาต
- เนื้อหาบนเว็บไซต์นี้เผยแพร่ภายใต้สัญญาอนุญาต Attribution-ShareAlike 4.0 International
-
แผนที่คลังเก็บของฉัน
- แมชชีนเลิร์นนิง: ML Engineering Open Book | ML ways | Porting
- คู่มือ: The Art of Debugging
- แอปพลิเคชัน: ipyexperiments
- เครื่องมือและชีตสรุป: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
ความเห็นของ GN⁺
- แหล่งข้อมูลนี้มีส่วนช่วยอย่างมากต่อชุมชน ML โดยมอบความรู้เชิงปฏิบัติและเครื่องมือที่จำเป็นสำหรับการฝึกโมเดลภาษาขนาดใหญ่และโมเดลหลายสื่อ
- การแบ่งปันเคล็ดลับจากประสบการณ์ในโครงการจริงช่วยให้วิศวกรซอฟต์แวร์ระดับเริ่มต้นได้เรียนรู้ความรู้เชิงปฏิบัติที่จำเป็นต่อการฝึกโมเดล ML ขนาดใหญ่
- แนวทางโอเพนซอร์สช่วยส่งเสริมการแบ่งปันความรู้และความร่วมมือในแวดวง ML ซึ่งมีบทบาทสำคัญต่อการเร่งการวิจัยและนวัตกรรม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
บทความนี้มีคุณค่ามากจริง ๆ ผมกำลังทำงานดีบักการตั้งค่าเทรน LLM เพื่อสนับสนุนงานวิจัย และคงจะดีมากถ้ามีโน้ตแบบนี้ตั้งแต่ตอนเริ่มต้น
ผมทำงานร่วมกับ Applied Scientist และช่วยงานที่เกี่ยวข้องกับการเทรนและการดีพลอยโมเดล; คนแบบผมจะได้สัมผัสงานวิศวกรรมระดับล่างอย่างการทำ optimization และ performance ได้อย่างไร? เรามีทีม ML infrastructure แต่เป้าหมายของพวกเขาคือการสร้างเครื่องมือรอบแพลตฟอร์ม ไม่ได้จำเป็นว่าจะต้องรัน workload ให้เหมาะสมที่สุดเสมอไป
ผมอยากลองเล่นกับสิ่งนี้ดู แต่ไม่มี GPU ที่เหมาะสม พวกคุณรันสิ่งเหล่านี้กันอย่างไร?
ขอบคุณมากจริง ๆ สำหรับทุกอย่างใน "Unsolicited Advice" ของส่วน AI Battlefield [1] นี่เป็นมุมมองที่สมจริงมากต่อการพัฒนา AI ที่ก้าวหน้าอย่างรวดเร็วอยู่ตลอด และภาระทางอารมณ์ที่ตามมาจากสิ่งนั้น
Slurm ถูกใช้งานอย่างแพร่หลายแค่ไหน?
ผมกดอ่านแบบสุ่มแล้วไปเจอเรื่อง repeatability และยังสงสัยอยู่ว่าใน distributed training ทำสิ่งนี้ให้เกิดขึ้นได้อย่างไร deterministic synchronization ไม่ทำให้งานช้าลงหรือ? แต่ก็ได้ยินมาว่าอย่างน้อยบางบริษัทใหญ่ก็ทำให้การเทรนของพวกเขาทำซ้ำได้
ถ้ายังไม่มีงาน จะสะสมประสบการณ์เกี่ยวกับเรื่องพวกนี้ได้อย่างไร?
มีไฟล์ pdf อยู่ที่ไหนสักแห่งไหม? เหมือนจะมีวิธี build แต่ไม่มีไฟล์จริง