1 คะแนน โดย GN⁺ 2024-09-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นเวิร์กช็อปที่ให้คุณใช้เวลาสองสามชั่วโมงในช่วงสุดสัปดาห์ เพื่อลองเขียนโค้ดตามและดูภาพรวมของขั้นตอนการสร้าง การเรียนรู้ และการใช้งาน วิธีการทำงานของ 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 ปิดท้าย

ทรัพยากรที่จำเป็นเมื่อลองทำตาม

1 ความคิดเห็น

 
GN⁺ 2024-09-01
ความคิดเห็นบน Hacker News
  • อาจเป็นคำถามโง่ ๆ ก็ได้ แต่สงสัยว่าเนื้อหานี้ต่างจากของ Andrej Karpathy ที่ https://www.youtube.com/watch?v=kCc8FmEb1nY หรือไม่
    • ซีรีส์ของ Andrej ก็ยอดเยี่ยม และ หนังสือกับวิดีโอนี้ ของ Sebastian ก็ยอดเยี่ยมเช่นกัน
      มีส่วนที่ทับซ้อนกันมาก แต่ต่างฝ่ายก็ลงรายละเอียดในหัวข้อที่ต่างกันมากขึ้น หรือมีจุดเน้นต่างกัน ซีรีส์ทั้งหมดของ Andrej คุ้มค่ามากที่จะดู และงานของ Eureka Labs ที่กำลังจะออกมาก็ดูน่าสนใจมาก บล็อกและหนังสือของ Sebastian ก็คุ้มค่ากับเวลาและเงินเช่นกัน
  • ชอบงานเขียนของ Sebastian และก็ตั้งตารอหนังสือด้วย มีรายละเอียดเยอะเกี่ยวกับ วิธีประกอบ LLM แต่ในระยะยาวดูเหมือนว่าสมรภูมิจะไปทางนั้น เลยอยากให้พูดถึงมากขึ้นว่า Llama กับ OpenAI สามารถคัดกรองและจัดโครงสร้างข้อมูลฝึกได้อย่างไร
    • ถ้าสนใจเรื่อง การคัดกรองและจัดโครงสร้างข้อมูลฝึก ในเปเปอร์ของ Llama มีหลายส่วนที่อ่านสนุก
      https://ai.meta.com/research/publications/the-llama-3-herd-o...
  • การใช้ PyTorch ไม่ใช่การทำ LLM จากศูนย์
    มันเป็น tutorial PyTorch ที่ดี แต่หมายถึงว่าอย่า pretend ว่านี่เป็นระดับล่างจริง ๆ
    • ถ้าจะทำพายแอปเปิลตั้งแต่ต้น ก่อนอื่นต้อง ประดิษฐ์จักรวาล ขึ้นมาก่อน
    • คอนเทนต์ของ Sebastian ดีมากจริง ๆ แต่เห็นด้วยกับประเด็นนี้ จนกว่าจะเริ่มจากการสร้าง เอนจิน automatic differentiation จากศูนย์แบบซีรีส์ของ Karpathy ก็ยังรู้สึกว่ายังไม่ได้เข้าไปสู่ deep learning อย่างแท้จริง
      ก่อนหน้านั้นพยายามเรียนจาก fast.ai แต่เขาเริ่มสร้างเน็ตเวิร์กด้วย Pytorch ทันที เลยหลุดออกมาอย่างรวดเร็ว รู้สึกน่าเบื่อพอ ๆ กับการเรียน Java ตอนมัธยม และผมต้องเข้าใจว่าสิ่งที่ตัวเองกำลังจัดการอยู่นั้นคืออะไร
    • เรียนเล่น Bach: เริ่มจาก สร้างเปียโนเอง
    • ตามเกณฑ์ไหนถึงเรียกว่าไม่ใช่ระดับล่าง? การเขียน IRC client ใน Python โดยใช้แค่ socket API ก็ไม่ใช่ จากศูนย์ เหรอ?
    • ในบริบทของ LLM แม้แต่ pytorch.nn ก็ถือว่าเป็นระดับล่าง ในการศึกษาสิ่งสำคัญคือไม่ต้องรับมือกับชั้น abstraction มากเกินไปพร้อมกัน
  • เคยเขียนคู่มือภาคปฏิบัติสำหรับ ฝึก nanoGPT จากศูนย์บน Azure ไว้ ทำตามด้วยมือได้ง่ายและค่อนข้างใช้งานได้จริง
    https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
    • สงสัยจริง ๆ ว่าค่าใช้จ่ายแค่ 200 ดอลลาร์ เท่านั้นหรือเปล่า
      และอยากรู้ว่าของที่สร้างได้เอาไปทำอะไรได้บ้าง รวมถึงจะฝึกให้รู้เหตุการณ์ล่าสุดได้อย่างไร
  • อาจจะไม่ค่อยสมเหตุสมผล แต่โดยพื้นฐานแล้วรู้สึกในแง่ลบกับการใช้คำว่า coding แทน programming หรือ development
    • รู้สึกว่าปฏิกิริยาแบบนั้นดังเอะอะพอสมควร เมื่อมาจากโพสต์ของคนที่น่าจะหมกมุ่นกับภาษามากที่สุดกลุ่มหนึ่งในคอมมูนิตี้นี้
      ลองว่ากันจริง ๆ แล้ว "code" คือสิ่งที่สร้างขึ้นด้วยเนื้อหาในสื่อที่เรียกว่า codex ดูภูมิหลังทางประวัติศาสตร์ได้ที่ https://en.wikipedia.org/wiki/Codex และเริ่มจากชุดกฎในแวดวงกฎหมาย ก่อนที่ในภาษาอังกฤษจะขยายไปใช้ในสาขาอื่น ๆ อย่างน้อยตั้งแต่กลางศตวรรษที่ 16
      "program" ใกล้เคียงกับการเผยแพร่ชุดของเจตนา เช่น มีความหมายอย่าง "เล่น Bach ก่อน แล้วค่อยเล่น Mozart" ติดมาด้วย การใช้งานแบบนี้เกิดขึ้นหลังจาก code ในความหมาย "ชุดกฎ" อยู่หลายศตวรรษ
      "develop" มีความหมายว่าแผ่ออกหรือคลี่ออก ซึ่งก็ดี แต่ไม่ได้สื่อถึงกฎหรือขั้นตอนตามลำดับเหมือนสองคำแรก
    • ผมเป็นคนบราซิล และที่เรื่องนี้น่าสนใจก็คือ ในหมู่เพื่อนหรือเพื่อนร่วมงานของผม เวลาพูดอังกฤษมักใช้ coding และถ้าเป็นคนบราซิลคุยกันเองก็มักใช้ codar เหมือนเป็นกริยาโปรตุเกส
      ไม่รู้เหตุผลแน่ชัด แต่คิดว่าเป็นเพราะในภาษาโปรตุเกสแบบบราซิล คำว่า "program" เชื่อมโยงกับการค้าประเวณีค่อนข้างแรง
    • เห็นด้วยเต็มที่ ปีที่แล้วก็เคยคุยประเด็นนี้กัน: https://news.ycombinator.com/item?id=36924239
    • ตอนนี้คงเป็นความเห็นที่ไม่ค่อยเป็นที่นิยมแล้ว แต่ผมก็เห็นด้วย แม้จะอยู่ในบรรยากาศที่การตัดสินแบบนั้นถูกมองว่าเป็น การชอบตัดสินคนอื่น หรือ การกีดกันคนวงนอก
    • อันนี้ใกล้กับ เซนส์แบบยุโรป มากกว่า
  • เป็นระดับรายละเอียดตรงกับที่ผมตามหาเลย ผมมีประสบการณ์กับ deep learning และ pytorch พอสมควร จึงไม่อยากดูฉากที่ implement สิ่งนั้นตั้งแต่ต้น
    เนื้อหาของ Andrej สำหรับผมต่ำระดับเกินไป จนมักหลงอยู่ในรายละเอียด นี่ไม่ใช่คำวิจารณ์ แต่เป็นคอมเมนต์ที่อาจเป็นประโยชน์กับคนที่อยู่ในสถานการณ์คล้ายผม
  • เยี่ยมเลย เมื่อวานเพิ่งสงสัยอยู่พอดีว่า Transformer/Attention และ LLM ทำงานอย่างไรกันแน่
    นานมาแล้วเคยไล่ตามดูว่า backpropagation ทำงานอย่างไรใน RNN ลึก ๆ เลยคิดว่าถ้าได้ดูส่วนที่เหลือก็น่าจะสนุก
    • ถ้าอยากได้ intuition วิดีโอของ 3b1b อธิบายได้ค่อนข้างดี แต่ไม่ได้ลงไปถึงรายละเอียดปลีกย่อยมากนัก
  • ดีมาก ถ้าใช้งานบน Windows 11 ได้ด้วยก็คงดี
    ถ้าไม่ได้พูดถึง Windows อย่างชัดเจน ผมมักเห็นว่ามันไม่ได้ถูกทดสอบในสภาพแวดล้อมนั้น และมักรันไม่ค่อยได้เพราะปัญหาจิปาถะ
    • บน WSL2 เข้าถึง GPU ได้ จึงน่าจะรันได้ไม่มีปัญหา อย่าลืมติดตั้ง Cuda toolkit และ NVIDIA ก็มีตัวที่ให้มาสำหรับ WSL2 โดยเฉพาะด้วย
      https://developer.nvidia.com/cuda-downloads?target_os=Linux&...
    • ถ้าใช้บน Windows 11 ไม่ได้ ลองใน WSL (Windows Subsystem for Linux) ก็เป็นอีกวิธี
  • หน้านี้โดยพื้นฐานแล้วเป็นแค่คอนเทนเนอร์ที่ฝังวิดีโอ YouTube ไว้เท่านั้น ในคำอธิบายของหน้าก็มีลิงก์เดียวกันอยู่แล้ว ดังนั้นน่าจะเปลี่ยนลิงก์ HN ให้ ไปที่วิดีโอโดยตรง จะดีกว่า
    • กลับกัน มันช่วยลดขั้นตอนเพิ่มเติมในการไปค้นหา repository บทความของ Sebastian Raschka เสียมากกว่า
    • เขาแชร์วิดีโอและโค้ดเยอะมาก และคุณค่าของสื่อการสอนก็สูงจริง ๆ แค่ สนับสนุนผู้สร้าง ไม่ได้หรือ?
    • มีเหตุผลอะไรที่ไม่ควรสนับสนุนเว็บไซต์ของผู้เขียนเอง? เว็บไซต์ก็ดูดีด้วย