8 คะแนน โดย GN⁺ 2024-01-28 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • rasbt/LLMs-from-scratch เป็นรีโพซิทอรีที่มีโค้ดสำหรับ พัฒนา, pretrain และ fine-tune LLM คล้าย GPT และเป็นรีโพซิทอรีโค้ดอย่างเป็นทางการของหนังสือ Manning Build a Large Language Model (From Scratch)
  • แนวทางการเรียนรู้ถูกจัดเป็นกระบวนการสร้าง โมเดลขนาดเล็กแต่ใช้งานได้จริง ตั้งแต่เริ่มต้นเพื่อวัตถุประสงค์ด้านการศึกษา โดยดำเนินไปในลักษณะคล้ายกับแนวทางการสร้างโมเดลฐานขนาดใหญ่ที่อยู่เบื้องหลัง ChatGPT
  • เนื้อหามีโค้ดและโน้ตบุ๊กแยกตามบท ครอบคลุมการประมวลผลข้อมูลข้อความ, กลไก attention, การสร้าง GPT, การ pretrain ด้วยข้อมูลไม่มี label, การ fine-tune สำหรับการจำแนกข้อความ ไปจนถึง instruction-following fine-tuning
  • โค้ดของบทหลักออกแบบมาให้รันได้ภายในเวลาที่เหมาะสมบนโน้ตบุ๊กทั่วไป ใช้ GPU โดยอัตโนมัติ เมื่อมี และสร้างด้วย PyTorch โดยไม่ใช้ไลบรารี LLM ภายนอก
  • ภาคผนวกและเนื้อหาโบนัสขยายไปถึง LoRA, KV Cache, MoE, การสร้างโมเดลตระกูล Llama/Qwen/Gemma, การประเมินผล, DPO และตัวอย่าง UI ช่วยให้ขยายการฝึก LLM แบบลงมือทำได้กว้างขึ้น

วัตถุประสงค์ของรีโพซิทอรีและความสัมพันธ์กับหนังสือ

  • rasbt/LLMs-from-scratch เป็นรีโพซิทอรีโค้ดสำหรับ สร้าง LLM คล้าย GPT ตั้งแต่เริ่มต้น
  • จัดทำเป็นรีโพซิทอรีโค้ดอย่างเป็นทางการของหนังสือ Manning Build a Large Language Model (From Scratch)
  • หนังสือมีโครงสร้างเพื่อทำความเข้าใจว่า LLM ทำงานภายในอย่างไรผ่านการเขียนโค้ดทีละขั้นตอน
    • คำอธิบายประกอบด้วยข้อความ ไดอะแกรม และตัวอย่าง
    • ผู้อ่านจะได้พัฒนาและฝึกโมเดลขนาดเล็กแต่ใช้งานได้จริงเพื่อการศึกษาโดยตรง
  • รีโพซิทอรียังมีโค้ดสำหรับโหลด น้ำหนักโมเดลที่ผ่านการ pretrain ขนาดใหญ่กว่าเพื่อนำมา fine-tune
  • ข้อมูลหนังสือ:

การติดตั้งและการใช้โค้ด

  • สามารถรับรีโพซิทอรีได้ด้วยการดาวน์โหลด ZIP หรือใช้ git clone
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
  • หากได้รับชุดโค้ดจากเว็บไซต์ Manning จะมีคำแนะนำให้ตรวจสอบอัปเดตล่าสุดจากรีโพซิทอรีทางการบน GitHub
  • การติดตั้ง Python และแพ็กเกจ รวมถึงการตั้งค่าสภาพแวดล้อมโค้ด อธิบายไว้ใน setup/README.md
  • เอกสารแก้ปัญหามีให้ใน Troubleshooting Guide

ลำดับการเรียนรู้ตามบท

  • หนังสือและรีโพซิทอรีแบ่งการสร้าง LLM เป็น หลักสูตรแบบเป็นขั้นตอน
  • โครงสร้างบทหลัก:
  • ภาคผนวกมีบทนำสู่ PyTorch, เอกสารอ้างอิง, เฉลยแบบฝึกหัด, การปรับปรุง training loop และ parameter-efficient fine-tuning ด้วย LoRA

ความรู้พื้นฐานและสภาพแวดล้อมในการรัน

  • ความรู้พื้นฐานที่สำคัญที่สุดคือพื้นฐาน การเขียนโปรแกรม Python
  • หากมีประสบการณ์กับโครงข่ายประสาทเทียมด้าน deep learning จะช่วยให้คุ้นเคยกับบางแนวคิดมากขึ้น
  • โค้ดสร้างขึ้นตั้งแต่เริ่มต้นด้วย PyTorch โดยไม่ใช้ไลบรารี LLM ภายนอก
    • ไม่จำเป็นต้องเชี่ยวชาญ PyTorch
    • ความรู้พื้นฐานของ PyTorch จะเป็นประโยชน์
    • Appendix A ให้คำแนะนำสั้น ๆ เกี่ยวกับ PyTorch
  • โค้ดในบทหลักออกแบบมาให้รันได้ภายในเวลาที่เหมาะสมบนโน้ตบุ๊กทั่วไป
  • ไม่จำเป็นต้องใช้ฮาร์ดแวร์พิเศษ และหากมี GPU จะใช้งานโดยอัตโนมัติ

วิดีโอคอร์สและหนังสือภาคต่อ

  • Manning มี วิดีโอคอร์สประกอบความยาว 17 ชั่วโมง 15 นาที ที่เดินตามโครงสร้างของหนังสือ
    • สะท้อนโครงสร้างของแต่ละบทและแต่ละส่วนในหนังสือ
    • ใช้เป็นทางเลือกแบบแยกเดี่ยว หรือเป็นสื่อเสริมสำหรับเขียนโค้ดตามได้
  • มีการแนะนำหนังสือที่มีลักษณะเป็นภาคต่อ Build A Reasoning Model (From Scratch) ด้วย
    • เป็นหนังสือแยกเล่ม แต่ถือได้ว่าเป็นภาคต่อของ Build A Large Language Model (From Scratch)
    • เริ่มจากโมเดลที่ผ่านการ pretrain แล้ว และสร้างแนวทางเพื่อยกระดับความสามารถด้าน reasoning
    • แนวทางที่รวมอยู่: inference-time scaling, reinforcement learning, distillation
    • รีโพซิทอรีที่เกี่ยวข้อง: rasbt/reasoning-from-scratch

แบบฝึกหัดและเนื้อหาโบนัส

  • แต่ละบทมี แบบฝึกหัด หลายข้อ
  • เฉลยสรุปไว้ใน Appendix C และโน้ตบุ๊กโค้ดที่สอดคล้องกันอยู่ในโฟลเดอร์ของแต่ละบท
  • สามารถรับ PDF ฟรี 170 หน้า Test Yourself On Build a Large Language Model (From Scratch) ได้จากเว็บไซต์ Manning
    • มีควิซและเฉลยประมาณ 30 ข้อต่อบท
  • หัวข้อโบนัสหลัก

    • Setup:
    • เคล็ดลับการตั้งค่า Python
    • การติดตั้งแพ็กเกจและไลบรารี
    • การตั้งค่าสภาพแวดล้อม Docker
    • Ch 2:
    • สร้าง BPE tokenizer ตั้งแต่เริ่มต้น
    • เปรียบเทียบการสร้าง BPE หลายแบบ
    • ความแตกต่างระหว่าง embedding layer กับ linear layer
    • สร้างความเข้าใจเชิงสัญชาตญาณเกี่ยวกับ dataloader ด้วยตัวเลขง่าย ๆ
    • Ch 3:
    • เปรียบเทียบการสร้าง multi-head attention ที่มีประสิทธิภาพ
    • ทำความเข้าใจ PyTorch buffers
    • Ch 4:
    • วิเคราะห์ FLOPs
    • KV Cache
    • Grouped-Query Attention, Multi-Head Latent Attention, Sliding Window Attention
    • Gated DeltaNet, DeepSeek Sparse Attention, Cross-Layer KV Sharing
    • Mixture-of-Experts
    • Ch 5:
    • วิธีโหลดน้ำหนักทางเลือก
    • pretrain ด้วยชุดข้อมูล Project Gutenberg
    • ปรับปรุง training loop
    • เพิ่มประสิทธิภาพ hyperparameter
    • UI สำหรับโต้ตอบกับ LLM ที่ผ่านการ pretrain
    • แปลง GPT เป็น Llama
    • โหลดน้ำหนักโมเดลแบบประหยัดหน่วยความจำ
    • ขยาย Tiktoken BPE tokenizer
    • เคล็ดลับประสิทธิภาพ PyTorch สำหรับฝึก LLM ให้เร็ว
    • การสร้าง Llama 3.2, Qwen3, Gemma 3, Olmo 3, Tiny Aya, Qwen3.5, Gemma 4
    • Ch 6:
    • การทดลองเพิ่มเติมเพื่อ fine-tune เลเยอร์อื่นและโมเดลที่ใหญ่ขึ้น
    • fine-tune การจำแนกด้วยชุดข้อมูลรีวิวภาพยนตร์ IMDb 50k รายการ
    • UI ตัวจำแนกสแปมบนพื้นฐาน GPT
    • Ch 7:
    • ยูทิลิตีชุดข้อมูลสำหรับตรวจจับรายการซ้ำใกล้เคียงและสร้างรายการ passive voice
    • ประเมินคำตอบตามคำสั่งด้วย OpenAI API และ Ollama
    • สร้างและปรับปรุงชุดข้อมูล instruction fine-tuning
    • สร้าง preference dataset ด้วย Llama 3.1 70B และ Ollama
    • สร้างการ align LLM ด้วย DPO
    • UI โมเดล GPT ที่ผ่าน instruction fine-tuning

การมีส่วนร่วมและการอ้างอิง

  • รับฟีดแบ็กและคำถามผ่าน Manning Forum หรือ GitHub Discussions
  • เนื่องจากเป็นรีโพซิทอรีโค้ดที่สอดคล้องกับหนังสือฉบับพิมพ์ ปัจจุบันจึงไม่รับการมีส่วนร่วมที่ขยายเนื้อหาของ main chapter code
    • เป็นข้อจำกัดเพื่อไม่ให้เกิดความแตกต่างระหว่างหนังสือฉบับเล่มกับโค้ด
  • หากหนังสือหรือโค้ดมีประโยชน์ต่องานวิจัย แนะนำให้อ้างอิง
    • มี citation แบบ Chicago-style และรายการ BibTeX ให้

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

 
GN⁺ 2024-01-28
ความคิดเห็นจาก Hacker News
  • กำลังเขียนคู่มือเป็นเอกสารเสริมอยู่ แต่ยังทำให้เสร็จทีละหลายขั้นตอน
    ตอนนี้ดูเหมือนว่า คู่มือการ fine-tuning จะเป็นแหล่งข้อมูลที่ดีที่สุด
    https://ravinkumar.com/GenAiGuidebook/language_models/finetu...
  • ดูยอดเยี่ยมมาก เลยสงสัยว่าเป้าหมายหลักคือ เพิ่มความเข้าใจและลดความลึกลับของมันลง หรืออยากให้ผู้คนสร้างโมเดลขนาดเล็กที่เหมาะกับความต้องการของตัวเองได้
    • แรงจูงใจหลักค่อนข้างเป็นเชิงการศึกษา คือช่วยให้ผู้คนเข้าใจว่า LLM ทำงานอย่างไร ผ่านการลงมือสร้างด้วยตัวเอง
      LLM เป็นหัวข้อสำคัญ แต่มีวิดีโอและบทความจำนวนมากที่อธิบายแบบผ่าน ๆ ไป ผมคิดว่าการเขียนโค้ด LLM จากระดับล่างสุดขึ้นมาจะช่วยให้หลายแนวคิดชัดเจนขึ้น
      เป้าหมายรองคือช่วยให้คนที่ต้องการสามารถสร้าง LLM ของตัวเองได้ ในหนังสือจะเขียนโค้ดทั้ง pipeline รวมถึง pretraining และ fine-tuning แต่เพราะมองว่าการ pretrain LLM ด้วยตัวเองไม่สมจริงในเชิงการเงิน จึงมีแผนจะแสดงวิธี โหลดน้ำหนักที่ pretrain ไว้แล้ว ด้วย
      ใช้ LLM ที่คล้าย GPT-2 เพื่อทำทุกอย่างตั้งแต่ต้น และเปิดให้โหลดน้ำหนักได้ตั้งแต่โมเดล 124M ที่รันบนโน้ตบุ๊กได้ ไปจนถึงโมเดล 1558M ที่รันบน GPU ขนาดเล็กได้ ในทางปฏิบัติจริงก็คงใช้เฟรมเวิร์กอย่าง HF transformers หรือ axolotl แต่หวังว่าวิธีลงมือทำเองแบบนี้จะทำให้กระบวนการดูเป็น black box น้อยลง
  • การเขียนหนังสือเทคนิคแบบเปิดสาธารณะฟังดูเป็นเรื่องที่น่ากังวลจนแทบนึกภาพไม่ออก เลยขอปรบมือให้ผู้เขียน
    • ก็จริงในระดับหนึ่ง แต่ในขณะเดียวกันมันก็สร้างแรงจูงใจได้มากเหมือนกัน :)
    • บางทีความเสี่ยงอาจน้อยกว่าด้วยซ้ำ เพราะคุณได้ประโยชน์จากการเขียนหนังสือแม้ยังเขียนไม่จบ ตามอุดมคติแล้วอาจไม่ต้องเขียนเกินบทที่ 1 มากนักก็ได้
  • ถ้าตัวอย่างโค้ดแรกคือ import torch ก็คงไม่ใช่การ สร้างตั้งแต่ต้นจริง ๆ ล่ะมั้ง :-)
    • ก็จริง แต่ไม่อย่างนั้นมันคงยืดยาวจนอ่านยากเกินไป ถึงอย่างนั้นในหนังสือก็ยังแสดงวิธีสร้าง LayerNorm, Softmax, ชั้น Linear, GeLU ฯลฯ โดยไม่ใช้ torch เวอร์ชันที่แพ็กมาให้แล้ว
    • automatic differentiation คือสิ่งที่ทำให้สร้างโมเดลซับซ้อนอย่าง Transformer ได้ นอกจากข้อมูลมหาศาลและทรัพยากรประมวลผลขนาดใหญ่แล้ว ผมมองว่านี่ก็เป็นอีกหนึ่งเหตุผลสำคัญที่ทำให้การปฏิวัติ AI ในปัจจุบันเกิดขึ้นได้
      ไม่มีใครที่ทำงานในสายนี้คำนวณอนุพันธ์ของโมเดลแบบนี้ด้วยมือกันอยู่แล้ว การคิดในกรอบของ differentiable programming เป็นสมมติฐานพื้นฐาน และในกรณีนี้ก็นับว่าเป็น “ตั้งแต่ต้น” ได้อย่างเพียงพอ
      ทุกครั้งที่เห็นคอมเมนต์แบบนี้ก็อดสงสัยไม่ได้ว่าคนพูดอาจยังไม่ค่อยเข้าใจว่าข้างในเกิดอะไรขึ้น หรือ machine learning สมัยใหม่ทำงานอย่างไร
    • สำหรับการเรียนรู้ว่า Transformer ทำงานอย่างไร การ เขียน autograd เอง ดูทั้งเกี่ยวข้องน้อยและอยู่นอกขอบเขต ผมนึกไม่ออกเลยว่าจะต้องเขียน gradient ของ Transformer ด้วยมือยังไง
  • ผมนึกว่าเป็นเนื้อหาฟรีเลยกดไปที่ GitHub ทันที เคารพในงานของผู้เขียนนะ แต่ก็สงสัยว่ามีแหล่งข้อมูลฟรีแบบ พาไล่สร้างตั้งแต่ต้น ที่แนะนำไหม
    • Andrej Karpathy's Neural Networks: Zero to Hero[1]
      [1] https://karpathy.ai/zero-to-hero.html
    • มี GPT-2 inference engine ที่ทำด้วย NumPy อยู่ที่ https://jaykmody.com/blog/gpt-from-scratch/ และถัดจากนั้นถ้าอยากเพิ่ม การทำ KV cache ก็ไปดู https://www.dipkumar.dev/becoming-the-unbeatable/posts/gpt-k... ได้
    • ผมแนะนำ https://course.fast.ai/
      เข้าถึงง่ายกว่ามากสำหรับนักพัฒนาทั่วไป และไม่ได้ตั้งสมมติฐานว่าต้องมีพื้นฐานคณิตศาสตร์ เป็นจุดเริ่มต้นที่ดี และหลังจากนั้นคุณจะเริ่มเข้าใจแหล่งข้อมูลแนวเดียวกันอื่น ๆ ได้ดีขึ้น
    • พูดตรง ๆ ว่าผมเข้าใจยากมากว่าทำไมคนที่ทำงานด้าน AI ถึงรู้สึกว่า $50 ยังแพงเกินไปสำหรับการได้มาซึ่งความเข้าใจเชิงลึกขึ้นเกี่ยวกับหัวข้อนี้
      การทำสื่อการสอนต้องใช้แรงงานมหาศาลแบบไม่น่าเชื่อ และต่อให้หนังสือเล่มนี้ประสบความสำเร็จมากแค่ไหน ถ้า rasbt เอาเวลาที่ลงไปมาเทียบกับรายได้ ก็คงออกมาเป็นค่าแรงต่อชั่วโมงที่ไม่สมเหตุสมผลอยู่ดี
      มีคนมากมายที่เข้าใจหัวข้อนี้ แต่พวกเขาเอาความรู้นั้นไปทำอะไร? ก็เก็บไว้คนเดียว ไปทำงานที่ OpenAI และรักษาความรู้นั้นไว้แบบไม่เปิดเผย พร้อมหาเงินได้มากกว่านี้อีกมาก
      ถ้าคุณอยากอยู่ในโลกที่ความรู้แบบนี้เปิดกว้าง ผมคิดว่าอย่างน้อยก็ควรหลีกเลี่ยงการออกมาบ่นต่อสาธารณะเรื่องราคาหนังสือที่พอ ๆ กับมื้อเย็นดี ๆ หนึ่งมื้อ
    • ผมได้เพิ่มบันทึกอธิบายไว้ใน Jupyter notebook แล้ว หวังว่าแค่อ่านจาก repository ก็จะพอเข้าใจได้แบบไม่ต้องพึ่งอย่างอื่น
  • สงสัยว่าหนังสือเล่มนี้จะใช้เรียนรู้ reinforcement learning ได้ไหม
    เป้าหมายคือให้บางอย่างเรียนรู้การลงจอด คล้ายยานลงจอดบนดวงจันทร์ โดยเริ่มแบบง่าย ๆ ที่ความสูง 100 ฟุต ให้แรงขับไปทางเดียว และลองซ้ำไปเรื่อย ๆ จนทำหลุมน้อยลง
    จากนั้นอยากเพิ่มตัวแปรอย่างการเคลื่อนที่แนวนอน ใส่ thruster แนวนอน แล้วต่อมาก็เอา thruster แนวนอนออกและให้ยานลงจอดหมุนได้ เป็นการค่อย ๆ ขยายโจทย์
    ผมไม่รู้เลยว่าควรเริ่มจากตรงไหน และเพราะหนังสือเล่มนี้ดูเป็น machine learning แบบ “กระแสหลัก” เลยสงสัยว่าจะช่วยได้ไหม
    • ผมชอบ "Grokking Deep Reinforcement Learning"[0] มาก สนุกดี ไม่มีเนื้อหาเรื่อง Transformer
      ในไลบรารี gymnasium[1] ของ Python มี environment สำหรับยานลงจอดให้ดูเป็นตัวอย่าง ซึ่งเป็น environment ที่ผมโฟกัสมากที่สุดตอนเรียน และเคยลองแก้มาหลายวิธี
      คุณยังดูโน้ตบุ๊กของผม2 ที่ใช้ตอน implement Soft Actor Critic ด้วย PyTorch ได้ด้วย อาจไม่ได้เป็นสื่อสอนที่ดีนัก แต่บางทีอาจพอได้อะไรจากมัน
      [0]: https://www.manning.com/books/grokking-deep-reinforcement-le...
      [1]: https://gymnasium.farama.org/environments/box2d/
  • การเรียนรู้แบบเสริมกำลังเป็นสาขาวิจัยที่แยกจาก LLM โดยสิ้นเชิง แม้จะมักถูกมองว่าเป็นส่วนหนึ่งของแมชชีนเลิร์นนิง และในหนังสือคลาสสิก Machine Learning ของ Tom Mitchell ก็มีบทที่ยอดเยี่ยมเกี่ยวกับ Q-learning แต่โดยรวมแล้วเกี่ยวข้องกับงานแมชชีนเลิร์นนิงสมัยใหม่น้อย
    แม้แต่สิ่งอย่าง AlphaGo ก็ยังอาจมองได้ว่าใกล้เคียงกับการใช้โครงข่ายประสาทเชิงลึกเป็นอินพุตให้กับเทคนิคการเรียนรู้แบบเสริมกำลังแบบคลาสสิก
    Reinforcement Learning: An Introduction ของ Sutton และ Barto ได้รับการยอมรับอย่างกว้างขวางว่าเป็นตำราเริ่มต้นที่เป็นมาตรฐานของหัวข้อนี้
  • ถ้าเป็นกรณีนั้นก็ขอแนะนำหนังสือการเรียนรู้แบบเสริมกำลังโดยเฉพาะ ส่วนการเรียนรู้แบบเสริมกำลังใน LLM นั้นเฉพาะทางกับ LLM มาก และน่าจะครอบคลุมเฉพาะพื้นฐานที่เกี่ยวข้องจริง ๆ เท่านั้น
    มีหนังสือแมชชีนเลิร์นนิง/ดีปเลิร์นนิงทั่วไปบางเล่มที่เขียนบทแนะนำการเรียนรู้แบบเสริมกำลังไว้ค่อนข้างยาว(https://github.com/rasbt/machine-learning-book/tree/main/ch1...) แต่ถึงอย่างนั้น ในกรณีนี้หนังสือเฉพาะทางด้านการเรียนรู้แบบเสริมกำลังก็ยังเหมาะกว่าอย่างที่คนอื่นพูดไว้
  • น่าลอง OpenAI Spinning Up: https://spinningup.openai.com/en/latest/
  • ภาคปฏิบัติ Q-learning ของคอร์สนี้ว่าด้วยเรื่องนั้นโดยตรง
    https://www.ida.liu.se/~TDDC17/info/labs/rl.en.shtml
  • สงสัยว่าเมื่อเทียบกับวิดีโอของ Karpathy[0] แล้วเป็นอย่างไร กำลังพยายามเริ่มต้นกับ LLM และกำลังหาว่าสื่อไหนดีที่สุดสำหรับให้ได้ความเข้าใจในระดับนั้น
    [0] https://www.youtube.com/watch?v=kCc8FmEb1nY
    • ยังดูวิดีโอไม่จบ แต่จากที่ไล่ดูคร่าว ๆ หนังสือมีความต่างอยู่บ้าง
      แทนที่จะทำ LLM ระดับอักขระ จะพาไปสร้าง LLM ระดับคำ จริง ๆ แสดงการโหลดค่าน้ำหนักพรีเทรนหลังการพรีเทรน และทำ instruction fine-tuning ให้กับ LLM นั้น
      นอกจากนี้ยังมีการโค้ดกระบวนการจัดแนวของ LLM ที่ผ่าน instruction fine-tuning แล้ว และแสดงการ fine-tuning สำหรับงานจัดประเภทด้วย ทั้งเล่มมีภาพประกอบเยอะมาก แค่บทที่ 3 ก็มีภาพ 26 ภาพแล้ว :)
      วิดีโอก็ดูยอดเยี่ยมเช่นกัน เพราะยาว 2 ชั่วโมงจึงน่าจะเป็นสื่อเสริมสำหรับผู้เริ่มต้นที่แน่นดี การอ่านหนังสือน่าจะใช้เวลามากกว่านั้นราว 10 เท่า
    • ถ้ายังไม่ได้รู้เนื้อหาส่วนใหญ่ล่วงหน้าอยู่แล้ว จะเข้าใจได้ยาก
      ฉันเองก็ดูหลายรอบกว่าจะพอเข้าใจส่วนใหญ่ได้ดี
      แน่นอนว่าต้องรู้ PyTorch ดีมากด้วย และต้องรู้เรื่องการคูณเมทริกซ์, backpropagation ฯลฯ อีกทั้งพูดเร็วมาก
  • ไม่ได้สนใจ language model เองมากนัก แต่สนใจเทคนิคบางอย่างที่ใช้ใน language model ซึ่งอยากนำไปใช้ที่อื่น
    ตัวอย่างเช่น รู้ว่าattention ถูกใช้ในโมเดลหลากหลายแบบ และ Transformer ก็ถูกใช้ในงานอื่นนอกเหนือจาก language model
    เลยสงสัยว่าถ้าอ่านหนังสือเล่มนี้ จะเข้าใจ attention และ Transformer ดีพอที่จะนำไปใช้นอก language model ได้หรือไม่
    • กลไก attention ที่อิมพลีเมนต์ในหนังสือเล่มนี้แม้จะเฉพาะกับ LLM ในแง่ที่ใช้อินพุตเป็นข้อความ แต่ในแก่นแท้แล้วก็คือกลไก attention แบบเดียวกับที่ใช้ใน Vision Transformer
      ความต่างคือใน LLM จะเปลี่ยนข้อความเป็นโทเค็น แล้วแปลงโทเค็นเหล่านั้นเป็นเวกเตอร์เอ็มเบดดิงที่ป้อนเข้า LLM ส่วนใน Vision Transformer จะใช้แพตช์ของภาพเป็นโทเค็นแทนภาพทั้งภาพ แล้วแปลงสิ่งนั้นเป็นเวกเตอร์เอ็มเบดดิง
      ไม่ว่าจะเป็นข้อความหรือวิชัน ก็ใช้กลไก attention แบบเดียวกัน และทั้งสองกรณีก็รับเวกเตอร์เอ็มเบดดิงเป็นอินพุต
      (*บทที่ 3 ส่งไปแล้วตั้งแต่สัปดาห์ก่อน และน่าจะขึ้นบน MEAP เร็ว ๆ นี้ ระหว่างนี้ดูโค้ดพร้อมโน้ตได้ที่นี่: https://github.com/rasbt/LLMs-from-scratch/blob/main/ch03/01...)
  • ตัวสถาปัตยกรรมโมเดลเอง โดยเฉพาะถ้าใช้ torch ไม่ได้ซับซ้อนขนาดนั้น ทั้งกระบวนการโดยรวมก็ค่อนข้างเป็นเส้นตรง จึงดูเป็นโปรเจกต์ที่ทำได้จริงที่น่าลอง