8 คะแนน โดย GN⁺ 2024-07-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Transformer ที่ปรากฏขึ้นในปี 2017 เริ่มต้นจากงานแปลภาษาด้วยเครื่องก่อนจะขยายไปแทบทุกสาขา และกลายเป็นองค์ความรู้ AI หลักที่วิศวกรยุคใหม่ควรรู้
  • คู่มือนี้เรียบเรียงแบบเป็นขั้นตอนตั้งแต่ โครงข่ายประสาทเทียมไปจนถึง attention โดยพาไปเท่าที่จำเป็นสำหรับวิศวกรที่จะเข้าใจ Transformer
  • มี ตัวอย่างโค้ด Python ที่รันได้จริงและเอกสารอ้างอิงให้พร้อม จึงไม่จบแค่อ่าน แต่สามารถลองทำและตรวจสอบผลด้วยตัวเองได้
  • เนื้อหาแบ่งเป็นภาคเกี่ยวกับโครงข่ายประสาทเทียม, RNN, NLP และ attention, Transformer รวมถึงภาคผนวกพื้นฐาน Python·คณิตศาสตร์ และมีการเพิ่มหัวข้อ PyTorch กับ Multi-Agents บนพื้นฐาน LLM
  • เงื่อนไขการใช้งานเพื่อการศึกษาและไม่ใช่เชิงพาณิชย์ค่อนข้างเปิดกว้าง แต่การติดต่อสอบถามมีข้อจำกัดต่อการติดต่อแบบไม่เปิดเผยตัวตน เช่น ต้องระบุบัญชี SNS อย่างน้อย 2 แห่งเพื่อใช้ยืนยันตัวตน

เส้นทางการเรียนรู้เพื่อทำความเข้าใจ Transformer

  • The Engineer’s Guide To Deep Learning เป็นคู่มือขนาดกะทัดรัดที่มอบเส้นทางขั้นต่ำที่วิศวกรต้องใช้เพื่อทำความเข้าใจ Transformer
  • ปัจจุบัน AI ถูกนิยามว่าอยู่ในยุคทองครั้งที่สาม
    • ยุคทองสองครั้งก่อนหน้านี้คือช่วงทศวรรษ 1950~1960 และช่วงทศวรรษ 1980
    • ในเวลานั้น ความคาดหวังนำหน้าความสามารถทางเทคโนโลยี จนจบลงด้วยความผิดหวัง
    • ยุคทองของ AI ในปัจจุบันที่เริ่มขึ้นช่วงกลางทศวรรษ 2010 อธิบายได้ว่าเป็นกระแสที่ยังคงทำได้เกินความคาดหวังอย่างต่อเนื่อง
  • Transformer คือความก้าวหน้าครั้งสำคัญที่ถูกนำเสนอในปี 2017
    • แรกเริ่มถูกพัฒนาขึ้นเป็นโมเดลสำหรับการแปลภาษาด้วยเครื่อง
    • หลังจากนั้นอิทธิพลของมันก็ขยายไปแทบทุกสาขา
  • มี ตัวอย่างโค้ด Python ที่รันได้จริงเป็นสื่อช่วยการเรียนรู้
  • ยังแนะนำเอกสารอ้างอิงเพิ่มเติมไว้ด้วย เพื่อให้ผู้อ่านแต่ละคนเลือกแหล่งข้อมูลที่เหมาะกับตนเองได้

โครงสร้างเอกสารและการอัปเดต

  • คู่มือนี้ถูกออกแบบให้ค่อย ๆ สร้างพื้นฐานที่จำเป็นตามลำดับ แทนที่จะกระโดดเข้าไปหา Transformer ทันที
    • Part 1: Neural Networks — แนวคิดพื้นฐานของโครงข่ายประสาทเทียม
    • Part 2: Recurrent Neural Networks (RNNs) — RNN, LSTM, GRU
    • Part 3: Natural Language Processing (NLP) and Attention Mechanisms — หลักการสำคัญของ NLP รวมถึงการแปลภาษาด้วยเครื่องและ attention
    • Part 4: Transformer — โมเดล Transformer
    • Appendix: Basic Knowledge — ความรู้ขั้นต่ำด้าน Python และคณิตศาสตร์ที่จำเป็นต่อการทำความเข้าใจ Transformer
  • ประวัติการเปลี่ยนแปลงมีต่อเนื่องมาตั้งแต่เผยแพร่เวอร์ชันแรกเมื่อวันที่ 21 พฤษภาคม 2024
    • 23 กรกฎาคม 2024: เพิ่ม เวอร์ชัน PyTorch ใน Parts 1·2
    • 16 กันยายน 2024: เพิ่มส่วน Multi-Agents บนพื้นฐาน LLM
  • ในอนาคตอาจครอบคลุมทั้งเทคโนโลยีแบบ Transformer-based หลายอย่างที่กำลังพัฒนาอยู่ในปัจจุบัน และความก้าวหน้าครั้งใหญ่อีกครั้งในอนาคตอันใกล้

เงื่อนไขการใช้งานและช่องทางติดต่อ

  • เงื่อนไขการใช้งานใน FAQ ลิขสิทธิ์เปิดกว้างโดยเน้นการใช้เพื่อการศึกษาและไม่ใช่เชิงพาณิชย์
    • ครูและนักเรียนในสถาบันการศึกษาสามารถใช้เอกสารและภาพประกอบเพื่อการเรียนรู้ได้อย่างอิสระ
    • การพบปะและการบรรยายที่ไม่ใช่เชิงพาณิชย์สามารถใช้เอกสารและภาพประกอบได้ หากระบุลิงก์เว็บไซต์และลิขสิทธิ์
    • คำอธิบายเรื่อง revenue share และ full buyout ในหัวข้อการใช้งานเชิงพาณิชย์เป็นมุกตลก และผู้เขียนระบุว่าไม่ได้ตั้งใจจะทำความสัมพันธ์เชิงพาณิชย์
  • อีเมลสอบถามต้องระบุ ที่อยู่ SNS อย่างน้อย 2 แห่ง เช่น LinkedIn, Twitter เพื่อใช้ในการยืนยันตัวตน
  • หลังเหตุการณ์ XZ backdoor จะไม่รับการติดต่อจากบุคคลนิรนาม

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

 
GN⁺ 2024-07-17
ความคิดเห็นจาก Hacker News
  • มีแหล่งข้อมูลที่ดีกว่านี้อยู่ค่อนข้างมาก The Annotated Transformer / Attention is All You Need: http://nlp.seas.harvard.edu/annotated-transformer/
    Transformers from Scratch: https://e2eml.school/transformers.html
    ซีรีส์ปูพื้นฐานของ Andrej Karpathy ก็ดี: https://karpathy.ai/zero-to-hero.html
    Let's build GPT: from scratch, in code, spelled out: https://www.youtube.com/watch?v=kCc8FmEb1nY
    GPT with Andrej Karpathy: Part 1: https://medium.com/@kdwa2404/gpt-with-andrej-karpathy-part-1...
    “But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning” ของ 3Blue1Brown: https://www.youtube.com/watch?v=wjZofJX0v4M
    “Attention in transformers, visually explained | Chapter 6, Deep Learning”: https://www.youtube.com/watch?v=eMlx5fFNoYc
    เพลย์ลิสต์โครงข่ายประสาททั้งหมดของ 3Blue1Brown: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...
    • อีกอย่าง เว็บไซต์ข้างต้นทั้งหมดฟรี แต่เว็บที่โพสต์อยู่นี้บอกว่า “การซื้อสิทธิ์ใช้งานเชิงพาณิชย์แบบครบถ้วนสำหรับเนื้อหาทั้งหมดและ GitHub repository มีราคา €10,000,000” และยังเรียก royalty 20% สำหรับการใช้งานเชิงพาณิชย์ด้วย
      ถือว่าแพงทีเดียวสำหรับ tutorial ของ Keras
    • ขอถามแบบออกนอกประเด็นเล็กน้อย อยากลองเข้าร่วม Vesuvius Challenge แต่ไม่มีพื้นฐาน machine learning เป็นแค่นักพัฒนาเว็บทั่วไป สงสัยว่าถ้าสร้างพื้นฐาน machine learning เชิงปฏิบัติด้วย Zero to Hero ของ Karpathy และหนังสือ Understanding Deep Learning จะพอไหม หรือยังมีอย่างอื่นที่ควรเรียนเพิ่ม
      แผนคือทำความเข้าใจวิธีแก้ปัญหาของผู้ชนะปีที่แล้ว แล้วเลือกโจทย์ย่อยที่เล็กลงมาลองทำ: https://scrollprize.org/
    • สไลด์ของ Lucas Beyer ก็ค่อนข้างดี: https://docs.google.com/presentation/d/1ZXFIhYczos679r70Yu8v...
  • Tutorial เรื่อง Transformer ดูเหมือนจะกลายเป็น tutorial เรื่อง Monad แบบใหม่ไปแล้ว
  • เอกสารนี้เป็นแนวไล่เนื้อหาแบบย่อมากตั้งแต่ perceptron ไปจนถึง Transformer
    ตัวอย่างเช่น ส่วนที่ขยาย gradient ของ LSTM ไม่ได้มีไว้ช่วยให้คุณนำไป implement ใน framework ที่ชอบ แต่เพื่อช่วยให้เข้าใจ
    จุดประสงค์ของการแสดงวิธีแก้ด้วยหลาย framework ก็เพื่อเชื่อมให้เห็นว่าสูตรหน้าตาเป็นอย่างไร และในโค้ดอาจออกมาเป็นแบบไหน
  • สิ่งที่น่าหงุดหงิดที่สุดเกี่ยวกับเอกสาร Transformer คือแทบทั้งหมดโฟกัสเฉพาะ การประมวลผลภาษาธรรมชาติ
    โดยเฉพาะส่วนที่น่าสนใจของสถาปัตยกรรม Transformer คือกลไก attention มีคุณสมบัติไม่เปลี่ยนตามการสลับลำดับ ยิ่งถ้าผู้คนไม่ใช้ positional embedding เพื่อหักล้างคุณสมบัติเฉพาะนี้ก็ยิ่งเห็นชัด และยังสามารถ mask โหนดเฉพาะหรือ edge แยก ๆ ในกราฟได้ตามต้องการ จึงมีความยืดหยุ่นสูงในการใส่ความรู้เฉพาะโดเมนลงไปในสถาปัตยกรรม
    ในหลายกรณี positional embedding อาจยังจำเป็นอยู่ แต่เราสามารถออกแบบให้ฉลาดกว่านี้ได้ โดยไม่ต้องติดอยู่กับมุมมองที่จำกัดเกินไปว่า input ของชั้น attention เป็นเพียง sequence 1 มิติธรรมดา
  • อยากถามผู้เชี่ยวชาญด้าน machine learning/AI ถ้ามีแหล่งเริ่มต้นสำหรับคนที่อยากย้ายจาก CRUD/backend API ไปสู่ สาย ML/AI ช่วยแชร์หน่อย เพราะสาขานี้แตกแขนงเยอะจนไม่รู้ควรเริ่มตรงไหน
    เท่าที่เข้าใจ ML engineer คือวิศวกรที่สร้างโมเดลด้วย framework อย่าง PyTorch, AI engineer คือวิศวกรที่สร้างแอปบนโซลูชัน AI อย่าง prompt engineering หรือ OpenAI/Claude API, ส่วน MLOps คือคนที่ช่วย deploy และ serve โมเดล อยากรู้ว่าแบ่งแบบนี้ถูกไหม
    • คำพวกนี้ไม่มีนิยามที่เป็นทางการ มีกฎช่วยจำที่จำเป็นแค่อย่างเดียวคือ: ตำแหน่งงานที่ฟังดูดี → อาจหมายถึงอะไรก็ได้ตามที่บริษัทต้องการ
      ในความเป็นจริง บทบาทข้างต้นอาจครอบคลุมได้ตั้งแต่ “ทำงานวิจัยล้ำหน้าสุด” ไปจนถึง “เคยเปิดไฟล์ CSV ครั้งหนึ่ง”
    • เวลาในโปรเจกต์ machine learning 85% จะหมดไปกับคุณภาพข้อมูล และ feature engineering เฉพาะโดเมนอีกเล็กน้อย
      ถ้าอยากสร้างผลกระทบ ก็ทำด้านนั้นให้เก่งมาก ๆ ทักษะนี้ยังใช้ได้ในงานอย่าง system integration หรือ business analysis ด้วย ส่วน algorithm และทุกวันนี้แม้แต่โมเดลที่ผ่านการฝึกแล้ว ก็มีนักวิจัยคอยจัดหามาให้ได้
    • “AI engineer” น่าจะเรียกว่า application engineer ที่เชี่ยวชาญการผสาน machine learning เข้ากับซอฟต์แวร์มากกว่า
    • Kaggle เป็นจุดเริ่มต้นที่ดี
  • นอกจากย่อหน้าแนะนำไม่กี่ย่อหน้าแล้วก็ไม่มีเนื้อหา เนื้อหาจริงขึ้นว่า 404 not found
    • ลิงก์ในเนื้อหาพัง ลิงก์ในเมนู hamburger ยังทำงานได้ดี
    • เมนูด้านซ้ายบน desktop ใช้งานได้ ดูเหมือนจะมีแค่ลิงก์ในหน้าแรกที่เสีย
  • เห็นข้อความว่า “เวลาส่งอีเมล กรุณาให้ที่อยู่ SNS อย่างน้อยสองรายการ เช่น LinkedIn, Twitter เพื่อใช้ยืนยันตัวตน… ไม่รับการติดต่อจากบุคคลนิรนามอีกต่อไป”
    เห็นแม้แต่ในหมู่นักเทคนิคเองก็เริ่มใช้ social network เป็นเครื่องมือยืนยันตัวตนและความน่าเชื่อถือ แล้วก็รู้สึกขมขื่นพอสมควร ตอนที่บางรัฐบาลเริ่มขอชื่อผู้ใช้ social network ในการตรวจวีซ่า/คนเข้าเมืองก็แย่พออยู่แล้ว แต่นี่แม้แต่จะส่งอีเมลหานักเทคนิคสักฉบับ ก็ต้องมี social proof แล้วหรือ
    • ประโยค “ไม่รับการติดต่อจากบุคคลนิรนามอีกต่อไป” ทำให้นึกถึงมุกที่มีคนไปโผล่ที่ศูนย์รับสมัครกองบัญชาการกองทัพอากาศ พอถูกถามว่า “มีใบอนุญาตนักบินไหม? มีประสบการณ์ไหม? มีคุณสมบัติไหม?” ก็ตอบว่า “ไม่มีครับ แค่มาบอกว่าอย่าคาดหวังอะไรจากผม!”
    • ถ้าขยายส่วนที่ถูกย่อไว้ จะเป็นว่า “ไม่รับการติดต่อจากบุคคลนิรนามอีกต่อไป เพราะเหตุการณ์ backdoor ของ XZ
      ผู้โจมตี XZ น่าจะล็อกอินเข้าใช้บริการจำนวนมากผ่าน GitHub ได้ ผู้เขียนต้นฉบับเองก็น่าจะดาวน์โหลดอะไรบางอย่างจาก PyPI ซึ่งเคยอาจถูก compromise จาก token ที่รั่วและถูกปล่อยทิ้งไว้เกินหนึ่งปี
      อีกทั้งอยู่ในสาย machine learning จึงมีโอกาสสูงที่จะดาวน์โหลด Python framework ขนาดใหญ่จาก GitHub, conda, PyPI ที่ audit ได้ยาก และคนในสายนี้ก็ยังดาวน์โหลดโมเดลที่ไม่น่าเชื่อถือมาทดลองด้วย
      แล้วปัญหากลับเป็นอีเมลข้อความล้วนที่อ่านใน command-line mail client ซึ่งปิด MIME และ extension อื่น ๆ ไว้อย่างนั้นหรือ
  • เป็นแหล่งข้อมูลที่ดีมากสำหรับการปูพื้นฐานขึ้นมาอย่างกระชับ