- เป็นเวิร์กช็อปที่ให้คุณใช้เวลาสองสามชั่วโมงในช่วงสุดสัปดาห์ เพื่อลองเขียนโค้ดตามและดูภาพรวมของขั้นตอนการสร้าง การเรียนรู้ และการใช้งาน วิธีการทำงานของ LLM ได้ในครั้งเดียว
- การลงมือทำเริ่มจากการแนะนำ LLM แล้วค่อย ๆ ต่อเนื่องเป็นขั้นตอนผ่าน ข้อมูลอินพุต, tokenizer และการสร้างสถาปัตยกรรมโมเดล
- หลังจากสร้างสถาปัตยกรรมแล้ว จะครอบคลุม GPT-2 และ Llama 2, การ pretraining และการโหลดน้ำหนักที่ผ่านการ pretrain มาแล้ว เชื่อมไปถึงโฟลว์การใช้งานโมเดลจริง
- รวมถึงการใช้น้ำหนักด้วย LitGPT, การ fine-tuning ตามคำสั่ง, การประเมิน benchmark และการประเมินประสิทธิภาพด้านการสนทนา
- มีหนังสือ, GitHub repository, โค้ดเวิร์กช็อป, Lightning Studio และ LitGPT repository ให้มาด้วย จึงทำตามเองได้ง่าย
ลำดับเนื้อหาในวิดีโอเวิร์กช็อป 3 ชั่วโมง
- ครอบคลุม กระบวนการสร้าง ฝึก และใช้งาน LLM ในรูปแบบเวิร์กช็อปเขียนโค้ดเดียว
- มี chapter ที่คลิกได้ จึงข้ามไปยังหัวข้อที่ต้องการได้ทันที
-
พื้นฐานและการประมวลผลอินพุต
- 0:00 ภาพรวมเวิร์กช็อป
- 2:17 แนะนำ LLM
- 9:14 สื่อประกอบเวิร์กช็อป
- 10:48 ทำความเข้าใจข้อมูลอินพุตของ LLM
- 23:25 คลาส tokenizer อย่างง่าย
-
การสร้างและการฝึกโมเดล
- 41:03 เขียนโค้ดสถาปัตยกรรม LLM
- 45:01 GPT-2 และ Llama 2
- 1:07:11 การ pretraining
- 1:29:37 การโหลดน้ำหนักที่ผ่านการ pretrain มาแล้ว
- 1:45:12 การใช้น้ำหนัก pretrain ผ่าน LitGPT
-
การ fine-tuning และการประเมินผล
- 1:53:09 การ fine-tuning ตามคำสั่ง
- 2:08:21 การ fine-tuning ตามคำสั่งผ่าน LitGPT
- 2:26:45 การประเมิน benchmark
- 2:36:55 การประเมินประสิทธิภาพด้านการสนทนา
- 2:42:40 ปิดท้าย
ทรัพยากรที่จำเป็นเมื่อลองทำตาม
- Build an LLM from Scratch book: หนังสือเกี่ยวกับการสร้าง LLM ตั้งแต่เริ่มต้น
- Build an LLM from Scratch GitHub repository: GitHub repository ที่เกี่ยวข้องกับหนังสือ
- GitHub repository with workshop code: repository โค้ดเวิร์กช็อป
- Lightning Studio for this workshop: Lightning Studio สำหรับเวิร์กช็อปนี้
- LitGPT GitHub repository: GitHub repository ของ LitGPT
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
มีส่วนที่ทับซ้อนกันมาก แต่ต่างฝ่ายก็ลงรายละเอียดในหัวข้อที่ต่างกันมากขึ้น หรือมีจุดเน้นต่างกัน ซีรีส์ทั้งหมดของ Andrej คุ้มค่ามากที่จะดู และงานของ Eureka Labs ที่กำลังจะออกมาก็ดูน่าสนใจมาก บล็อกและหนังสือของ Sebastian ก็คุ้มค่ากับเวลาและเงินเช่นกัน
https://ai.meta.com/research/publications/the-llama-3-herd-o...
มันเป็น tutorial PyTorch ที่ดี แต่หมายถึงว่าอย่า pretend ว่านี่เป็นระดับล่างจริง ๆ
ก่อนหน้านั้นพยายามเรียนจาก fast.ai แต่เขาเริ่มสร้างเน็ตเวิร์กด้วย Pytorch ทันที เลยหลุดออกมาอย่างรวดเร็ว รู้สึกน่าเบื่อพอ ๆ กับการเรียน Java ตอนมัธยม และผมต้องเข้าใจว่าสิ่งที่ตัวเองกำลังจัดการอยู่นั้นคืออะไร
https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
และอยากรู้ว่าของที่สร้างได้เอาไปทำอะไรได้บ้าง รวมถึงจะฝึกให้รู้เหตุการณ์ล่าสุดได้อย่างไร
ลองว่ากันจริง ๆ แล้ว "code" คือสิ่งที่สร้างขึ้นด้วยเนื้อหาในสื่อที่เรียกว่า codex ดูภูมิหลังทางประวัติศาสตร์ได้ที่ https://en.wikipedia.org/wiki/Codex และเริ่มจากชุดกฎในแวดวงกฎหมาย ก่อนที่ในภาษาอังกฤษจะขยายไปใช้ในสาขาอื่น ๆ อย่างน้อยตั้งแต่กลางศตวรรษที่ 16
"program" ใกล้เคียงกับการเผยแพร่ชุดของเจตนา เช่น มีความหมายอย่าง "เล่น Bach ก่อน แล้วค่อยเล่น Mozart" ติดมาด้วย การใช้งานแบบนี้เกิดขึ้นหลังจาก code ในความหมาย "ชุดกฎ" อยู่หลายศตวรรษ
"develop" มีความหมายว่าแผ่ออกหรือคลี่ออก ซึ่งก็ดี แต่ไม่ได้สื่อถึงกฎหรือขั้นตอนตามลำดับเหมือนสองคำแรก
ไม่รู้เหตุผลแน่ชัด แต่คิดว่าเป็นเพราะในภาษาโปรตุเกสแบบบราซิล คำว่า "program" เชื่อมโยงกับการค้าประเวณีค่อนข้างแรง
เนื้อหาของ Andrej สำหรับผมต่ำระดับเกินไป จนมักหลงอยู่ในรายละเอียด นี่ไม่ใช่คำวิจารณ์ แต่เป็นคอมเมนต์ที่อาจเป็นประโยชน์กับคนที่อยู่ในสถานการณ์คล้ายผม
นานมาแล้วเคยไล่ตามดูว่า backpropagation ทำงานอย่างไรใน RNN ลึก ๆ เลยคิดว่าถ้าได้ดูส่วนที่เหลือก็น่าจะสนุก
ถ้าไม่ได้พูดถึง Windows อย่างชัดเจน ผมมักเห็นว่ามันไม่ได้ถูกทดสอบในสภาพแวดล้อมนั้น และมักรันไม่ค่อยได้เพราะปัญหาจิปาถะ
https://developer.nvidia.com/cuda-downloads?target_os=Linux&...