▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Tinkering with DFlash2: How to Speed Up Local AI Models

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

> **ที่มา:** [YouTube — Tonbi's AI Garage](https://www.youtube.com/watch?v=NtLoOc_vvSo) · เผยแพร่ 27 ส.ค. 2026 · ~23:47 นาที

# สรุปภาษาไทย — Tinkering with DFlash2: How to Speed Up Local AI Models

> **ที่มา:** [YouTube — Tonbi's AI Garage](https://www.youtube.com/watch?v=NtLoOc_vvSo) · เผยแพร่ 27 ส.ค. 2026 · ~23:47 นาที
> *สรุปโดยอัตโนมัติ — เนื้อหาต้นฉบับ © Tonbi's AI Garage*

## วิดีโอนี้เกี่ยวกับอะไร
Tonbi อธิบาย **DFlash 2** (Inco AI) — เทคนิค speculative decoding ที่เร่งโมเดล local ได้โดยไม่ต้อง retrain — ตั้งแต่หลักการจนทดลองจริงบน DGX Spark เทียบ 3 แบบ: ไม่ใส่ drafter vs DFlash vs DFlash 2

## ประเด็นหลัก

1. **ทำไมโมเดล local ช้า:** decoding ธรรมดาเขียนทีละ token — 1 forward pass อ่าน weight ทั้งหมด (เช่น 60 GB) เพื่อ token เดียว เหมือนอ่านสารานุกรมทั้งเล่มเพื่อเขียนคำเดียว · GPU แทบไม่ได้ compute แค่รอ memory
2. **Speculative decoding:** ใช้โมเดลเล็ก (drafter) เดาล่วงหน้าสองสาม token แล้วให้โมเดลหลักตรวจทีเดียวรอบเดียว — เหมือนผู้ช่วยเขียนดินสอล่วงหน้า บอสอ่านครั้งเดียวตัดสินว่าอะไรรอดเป็นหมึก · ตัวชี้วัดเดียวคือ acceptance (เหลือบนกระดาษกี่ตัวหลังตรวจ)
3. **ปัญหาของวิธีเดิม:** drafter เองก็เขียนทีละ token (4 ตัว = 4 pass) — แก้ปัญหา serial ก้อนใหญ่ด้วยการแลกเป็น pass ใหญ่ + serial ก้อนเล็ก
4. **DFlash (ตัวแรก):** ยื่นช่องว่างให้ทีละแถว เติมพร้อมกันหมดใน pass เดียว (ไอเดียเดียวกับ image diffusion ได้ภาพทั้งภาพทีเดียว) เลยเรียก **block diffusion** (D = diffusion) — เหมือนคนแก้ครอสเวิร์ดเขียนทุกช่องพร้อมกัน · ข้อเสีย: แต่ละตำแหน่งเดาอิสระ ไม่สอดคล้องกัน
5. **drafter คืออะไร:** ไม่ใช่โมเดลแคบกว่าแต่ตื้นกว่า — block กว้างเท่าโมเดลใหญ่แต่มี 5 layer แทน 52 (เครื่องจักรเดียวกันแค่รื้อชั้นออก) · ต้องฝึกมาคู่กัน หยิบแปะมั่วไม่ได้ · block size 16 = เติม 16 ช่องต่อ pass · ท้าย block อ่อนกว่าหัวมากเพราะตำแหน่ง 16 แทบไม่รู้ว่าตำแหน่ง 15 ตกลงอะไร
6. **ของใหม่ชิ้นที่ 1 — path selector:** คำถูกมักอยู่ใน ranked list อยู่แล้ว (ตำแหน่งแรก: ตัวบนสุดถูก 85.4% แต่คำถูกอยู่ใน top 16 ถึง 99.5% — เหมือน autocomplete มือถือ) เลยเก็บ 16 candidate ต่อตำแหน่ง ให้คะแนนคู่เพื่อนบ้าน แล้วเดิน path สอดคล้องสุด (แก้ปัญหา the the) — เลือกถูกกว่าทำนาย ใช้พารามิเตอร์น้อยกว่าวิธี DSpark 40 เท่า
7. **ของใหม่ชิ้นที่ 2 — two-tap convolution:** แก้ suffix decay (candidate ท้าย block แย่ลงเพราะ capacity) — ให้ทุกคำแอบดูคำก่อนหน้าหนึ่งก้าว (kernel size 2) · ตำแหน่ง 7: 72.9% → 77.6% ด้วยพารามิเตอร์เพิ่มแค่ 3% (เทียบเพิ่ม 10 layer ได้พอๆ กันแต่แพงกว่ามาก)
8. **ต้นทุน:** เพิ่ม ~216 ล้านพารามิเตอร์ (convolution 110.9M + selector 105.1M) = 400 MB บนดิสก์ · เวลาต่อรอบเพิ่มแค่ ~1.3%
9. **ผลทดลองจริง (Muse Glimmmer 30B บน DGX Spark):** C1: ไม่มี drafter 4.3 token/วิ → DFlash 12.29 → **DFlash 2 ได้ 15.12 (เร็วขึ้น 3.5 เท่า)** · DFlash 2 ชนะ DFlash 1 ได้ 23% (C4 aggregate 29.3%) · acceptance length 3.251 → 4.112 · acceptance rate 15 → 20.83 · ใช้ verification pass น้อยกว่าเพื่อ output เท่าเดิม (1,224 serial) · trade-off: startup นานกว่า + กิน memory มากกว่า (ระวังถ้าชิด memory wall)
10. **คำตัดสิน:** ใช้ DFlash 2 สำหรับงาน Muse Glimmer ที่สน latency บน Spark — acceptance อธิบายความเร็วได้จริง (output ต่อ verification มากกว่า 26–36%)

## ใครควรดู
สาย local AI ที่อยากเข้าใจ speculative decoding แบบเห็นภาพ + มีผลทดลองจริงพร้อมตัวเลขบนฮาร์ดแวร์ไม่กี่พันดอลลาร์

---
*Attribution: Tinkering with DFlash2 — Tonbi's AI Garage (youtube.com/watch?v=NtLoOc_vvSo), เผยแพร่ 27 ส.ค. 2026*
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

ตอนนี้คือยุคทองของ local AI มากกว่าที่เคย คุณรันโมเดลทรงพลังที่ใกล้ frontier ของห้องแล็บปิดได้ที่บ้าน บนเครื่องตัวเอง บน GPU หรืออย่างผมบน DGX Spark DGX Spark ออกมาสักพักแล้ว แต่ข้อร้องเรียนแรกๆ ของโมเดล local คือช้ามาก ก็จริง เทียบกับของที่รันใน data center โมเดลบนเครื่องเราช้ากว่าในหลายเคส แต่ไม่เสมอไป ขอบคุณนวัตกรรมใหม่ๆ ช่องนี้จะคุยเทคนิคพวกนี้เยอะ เทคนิคที่พ่อมดสาย local ใช้เร่งและเพิ่มคุณภาพโมเดล local น่าตื่นเต้นตรงงานพวกนี้ทำระดับบุคคลในชุมชนโอเพนซอร์ส ไม่ต้องทำงาน OpenAI หรือ Anthropic ก็ทำได้ ทำเองได้ด้วยฮาร์ดแวร์ไม่กี่พันดอลลาร์ วันนี้จะแนะนำเทคนิคหนึ่งชื่อ DFlash 2 ตอนแรกจะคุยแค่ DFlash แต่เขาออก DFlash 2 พอดี เขียนบล็อกโดย Inco AI สัปดาห์ก่อน เขาปล่อย DFlash เดือนมกราคม ตอนนี้ฮิตมากในฐานะวิธี speculative decoding speculative decoding น่าสนใจเพราะเร่งโมเดล local ง่ายสุด ไม่ต้อง retrain อะไร มักเป็นอย่างแรกที่คนหยิบเมื่อ optimize รุ่นใหม่ นี่คือ inco.ai เห็น GGlu ประกาศว่า DFlash 2 มาแล้ว คลิปนี้ผมจะแจกแจงว่า DFlash กับ DFlash 2 คืออะไร ตอนท้ายจะทดลองบน DGX Spark รันสามโมเดล ตัวหนึ่งโมเดลเปล่าๆ ตัวหนึ่งใส่ DFlash ตัวหนึ่งใช้ DFlash 2 ดูส่วนต่าง performance และสำคัญสุดคือความเร็ว มาเริ่มกัน ถ้าอยากยกระดับเอเจนต์ของตัวเอง ลองดูโปรเจกต์ Agent Wikis ของผม ที่นั่นมี knowledge base ที่ผมใช้ทุกวันทั้งค้นคว้าทำคลิปและสร้างโปรเจกต์ หัวข้อมี Hermes agent กับ hyperframes กับเครื่องมือ local AI และอีกเพียบ wiki มาตรฐานเปิดให้ใช้ฟรีทั้งหมด แต่ถ้าสมัคร Agent Wikis Pro จะได้ Excel wiki ด้วย รวมถึง custom skill ที่ผมพัฒนาร่วมกับเอเจนต์มาตลอดหลายเดือน Pro เดือนละ 9.99 ดอลลาร์เท่านั้น สมัครตอนนี้ล็อกเรทราคานี้ตลอดชีพ ตอนนี้ผมกำลังทำโปรไฟล์เอเจนต์เฉพาะทางกับเทมเพลตเวิร์กโฟลว์อัตโนมัติ พอของพวกนี้ออก ราคา Pro จะขึ้น เลยแนะนำให้สมัครวันนี้ที่ agentwikis.com ขอบคุณทุกคนที่สนับสนุนครับ กลับเข้าวิดีโอกันต่อ ทบทวนเร็วๆ ว่า decoding คืออะไร เพราะศัพท์นี้สำคัญ โมเดลเขียนทีละ token แปะต่อท้าย แล้วทำนายตัวถัดไป การทำนายแต่ละครั้งเรียก forward pass forward pass หนึ่งครั้งอ่าน weight ทุกตัวในโมเดลออกจาก memory ทั้งหมดเพื่อ token เดียว นึกภาพออกว่าช้าแค่ไหนถ้าไม่มีท่าพิเศษ เหมือนอ่านสารานุกรมทั้งเล่มตั้งแต่ปกถึงปกเพื่อเขียนคำเดียว แล้วทำใหม่เพื่อคำถัดไป นี่คือ decoding ธรรมดา สี่ token ต้องสี่ pass pass วิ่งผ่านทุกอัน อันแรกไม่เท่าไร แต่จะตอบ answer แล้วทำนายว่ามันคืออะไร อย่าง pass สี่ตรง 42 ต้องย้อนอ่านทั้งหมดทุก pass อ่าน weight 60 GB ใหม่หมดในตัวอย่างนี้ GPU แทบไม่ได้ compute แค่รอ memory นี่คือที่มาของ speculative decoding วิธีเดาล่วงหน้าแล้วตรวจทีเดียว มีชื่อเรียกหลายแบบ เทคนิคย่อยหลายตัว MTP ฮิตมาก multi-token prediction แต่นี่คือหมวดใหญ่ ได้ยิน speculative decoding หมายถึงพวกไหนก็ได้ แต่ละ forward pass ตรวจหลายตำแหน่งพร้อมกันได้อยู่แล้ว ก็หาอะไรมาให้ตรวจสิ มันใช้โมเดลถูกๆ ชื่อ drafter โมเดลเล็กมาก แยกจากโมเดลหลัก หน้าที่เดียวคือเดา token ถัดๆ ไป ไม่ต้องทีละ token ทีละคำ drafter เดาล่วงหน้าสองสามตัว เห็นไหมตัวอย่างนี้ drafter เสนอมาสี่ตัว คำตอบคือ seven โมเดลหลักเลยตรวจรอบเดียวว่าตอบรับ guess พวกนี้ไหม acceptance กับ acceptance rate สำคัญมาก เดี๋ยวพูดถึง เคสนี้เก็บไว้สามตัว นึกภาพผู้ช่วยเขียนดินสอล่วงหน้า บอสอ่านหน้าทั้งหน้าครั้งเดียวแล้วตัดสินว่าอะไรรอดเป็นหมึก อะไรที่โมเดลหลักไม่เห็นด้วยก็ทิ้งไป DFlash เปลี่ยนอะไรจากนี้ พิเศษยังไง drafter ในวิธีนี้มีปัญหาเดียวกับโมเดลหลัก drafter ก็เป็น language model เขียนทีละ token เหมือนกัน จะเสนอ block สี่ตัว ต้องรันสี่ pass ของตัวเองรอตัวก่อนหน้า แต่ละ pass ถูก โมเดลเล็ก weight น้อยกว่ามาก แต่เขาบอกว่า แก้ปัญหา serial ก้อนใหญ่ด้วยการแลกเป็น pass ใหญ่บวกปัญหา serial ก้อนเล็ก คำถามที่ DFlash ถามคือขั้นตรวจเช็กสี่ตำแหน่งใน pass เดียวได้ ทำไมขั้น draft จะผลิตสี่ตำแหน่งใน pass เดียวไม่ได้บ้าง คำตอบคือได้ ยื่นช่องว่างให้ทีละแถว เคสนี้เห็นสี่ช่องแทนประโยคให้ต่อ แล้วขอให้เติมพร้อมกันหมด pass เดียวออกมาทั้ง block ไม่มี loop ในเขียนทีละ token ไอเดียนี้เคยได้ยินคำว่า diffusion มาก่อน stable diffusion โมเดล generative AI ดังมาก ซีรีส์เดียวกัน ไอเดียเดียวกับ image diffusion ได้ภาพทั้งภาพทีเดียวแทนทีละ pixel เลยเรียก block diffusion นี่คือที่มาของ D ใน DFlash ตรงนี้ขั้นเดียว ผลแค่ข้อเสนอ นึกภาพคนแก้ครอสเวิร์ดที่เขียนคำตอบทุกช่องพร้อมกัน แทนทำแนวนอนให้จบก่อนค่อยทำแนวตั้ง ข้อควรระวังใหญ่ นี่คือกุญแจของคอนเซปต์ที่เหลือ แต่ละตำแหน่งเดาอิสระจากกัน ไม่มีอะไรบังคับให้สอดคล้องกัน ข้างใน drafter ที่ใช้คืออะไร คือชั้นของ transformer block ชั้นเดียว ผมมีคลิป transformer ถ้าอยากลึกถึงพื้นฐาน transformer block ทำสองอย่าง ทุกตำแหน่งมองทุกตำแหน่งอื่นเรียก attention แล้วแต่ละอันประมวลของตัวเองเรียก feed forward นี่คือหนึ่งในห้า layer ของ drafter อ่านจาก checkpoint ตรงๆ หนึ่ง layer มี attention query key value output กับ feed forward กับ layer norm สองตัว ผมมีคลิปพื้นฐาน transformer ดูซีรีส์ machine learning ได้ถ้าอยากลงลึก แต่นี่คือหนึ่ง layer สำคัญคือ block พวกนี้กว้างเท่าโมเดลใหญ่เป๊ะ drafter ไม่ใช่โมเดลแคบกว่า แต่ตื้นกว่า มี block แบบเดียวกันห้าอันแทน 52 อัน drafter พวกนี้มักฝึกมาพร้อมโมเดล หยิบ drafter ไหนแปะโมเดลไหนไม่ได้ เพราะต้อง match กันแบบนี้ อย่านึกว่าเป็น pocket edition ของโมเดลใหญ่ แต่เป็นเครื่องจักรเดียวกันแค่รื้อชั้นออกเกือบหมด นี่คือภาพอีกมุม drafter นี้ห้า layer block size 16 คือความกว้าง แต่ละ layer ผ่าน 16 ช่อง เติมทีเดียวใน pass เดียว ห้า layer คือความสูง แถวนี้วนกี่รอบก่อน commit จำไว้ใช้ทีหลัง ตำแหน่งได้ยินเพื่อนบ้านผ่าน attention ห้ารอบทำให้ตำแหน่ง 16 มีโอกาสน้อยมากที่จะรู้ว่าตำแหน่ง 15 ตกลงอะไร ท้าย block เลยอ่อนกว่าหัว block มาก กลับมาเรื่อง acceptance เพราะเป็นตัวแปรสำคัญ ทุกอย่างจากนี้วัดด้วยเลขเดียว token ที่ผลิตได้หารด้วยจำนวนครั้งที่โมเดลใหญ่ต้องรัน drafter จะให้สักห้าหก token เห็นไหมวิธีทำงาน ไม่มี drafter หนึ่ง pass ได้ token เดียว อย่าง DFlash เดาได้หลายตัว หนึ่ง pass ได้หลาย token acceptance สำคัญ acceptance length ด้วย อย่านับว่าเดากี่ตัว ให้นับว่าเหลือบนกระดาษกี่ตัวหลังบอสตรวจเสร็จ ทุกอย่างที่ DFlash 2 ทำเล็งเลขนี้ DFlash เดาแต่ละตำแหน่งอิสระเลยถูก และตรงนี้แหละที่ทิ้ง value ไว้สองจุด นี่คือที่ DFlash 2 พยายามปรับปรุง จุดหนึ่ง คำที่ถูกอยู่ในลิสต์ไหม guess ผิด drafter งงหรือแค่ลังเล คำถามสอง ทำไมท้าย block แย่ลง guess แรกดี อันที่ 16 ไม่ดี มีอะไรหมดตรงนี้ คำถามแรก ประเด็นคือคำที่ถูกมักอยู่ในลิสต์ guess อยู่แล้ว ย้อนนิด แต่ละตำแหน่งไม่ได้ผลิตคำเดียว ไม่ได้มี guess เดียว จริงๆ ผลิต ranked list แล้ว DFlash เอาอันบนสุดของแต่ละลิสต์ เมื่อตัวบนสุดผิด คำตอบที่ถูกอยู่ลึกแค่ไหน เพราะน่าจะมีคำตอบถูกใน ranked list ใช่ไหม นักวิจัยพบว่าตำแหน่งแรก ตัวบนสุดถูก 85.4 เปอร์เซ็นต์ แต่ token ที่ถูกอยู่ใน top 16 ถึง 99.5 เปอร์เซ็นต์ เกือบตลอดใน top 16 นี่คือชาร์ตของ DFlash ห้า layer วัดบน GSM8K พวกนี้คือตำแหน่งต่างๆ ตำแหน่งแรกอย่างที่บอก ตัวบน 85 ส่วน top 16 ได้ 99 ยิ่งลงไปเลขยิ่งลด เพราะอย่างที่อธิบาย ยิ่งท้าย block performance ยิ่งตก แต่ acceptance ใน top 16 ยังสูงกว่ามาก สำคัญเพราะไม่ได้ทำนายอะไรใหม่ คำตอบอยู่แล้ว แค่ในลิสต์ analogy ตรงนี้คือ autocomplete มือถือ พิมพ์ไป ข้อเสนอแรกอาจผิด แต่ดูลงไป อันดับห้าอันดับหก คำตอบที่ถูกอยู่ตรงนั้น ไม่มีประโยชน์ยกเลิกหมดแล้วทำใหม่เมื่อคำตอบอยู่ลึกลงไปนิดเดียว มันเลยใช้ referee ตัวจิ๋วเลือก path ที่ถูก สมมติตัวเลือกอิสระพังเฉพาะจุด แต่ละอันเข้าท่าแต่เข้ากันไม่ได้ ตัวอย่างตรงนี้ ตำแหน่งหนึ่งว่า the ตำแหน่งสองก็ว่า the ติดอ่างตายตอนตรวจเพราะมี the the ไม่ได้ DFlash 2 เลยเก็บ 16 candidate ต่อตำแหน่ง ให้คะแนนคู่เพื่อนบ้าน แล้วเดิน path ดีสุด เลยต่อ the กับ answer is 62 ได้ เห็นไหม acceptance สูงขึ้นเมื่อเลือก path แบบนี้ เทคนิค speculative decoding อีกตัวที่ฮิต dspark วิธีนั้นทำนายซ้ำตามลำดับ แต่ DFlash 2 มองว่าเลือกถูกกว่าทำนาย DSpark ซึ่งเป็นคู่แข่ง สร้าง vocabulary เต็มของแต่ละตำแหน่งตามลำดับ เลือกจาก candidate ที่มีอยู่ชนะไป ใช้พารามิเตอร์น้อยกว่า 40 เท่า คำถามสอง ทำไมท้าย block แย่ลง คำตอบตรงๆ คือ selection ฉลาดแค่ไหนก็ช่วยไม่ได้ candidate เองแย่ลง inco เรียก suffix decay มองว่าเป็นปัญหา capacity ห้า layer อาจเล็กไปที่จะอุ้ม block 16 ตำแหน่ง เขาเสนอเพิ่ม depth ควรช่วยท้ายสุดมากสุด แล้วก็จริง นึกภาพคำที่ 16 คือ guess ต่อจาก guess ต่อจาก guess ต่อจาก guess ยิ่งไกลยิ่งมัว พูดถึง depth คือ layer เห็นไหมเพิ่ม layer ตำแหน่งลึก acceptance ดีขึ้น สาม layer ได้ 65 เปอร์เซ็นต์ สิบห้า layer ได้ 78.7 เปอร์เซ็นต์ แลกด้วยพารามิเตอร์สามเท่าบวกเวลา 15.2 เปอร์เซ็นต์ depth เองทื่อมาก เพิ่มสิบ layer เพิ่ม capacity ทุกที่รวมตำแหน่งหนึ่งที่ไม่มีอะไรให้เก็บ ปัญหาหลักคือตำแหน่ง 16 หรือ 7 ท้ายๆ ลงไป คำตอบคือให้ทุกคำแอบดูคำก่อนหน้า ถ้า attention บีบงานใน block ออก ก็ให้งานนั้นมีเครื่องจักรของตัวเอง งานเล็ก block สี่ถึง 16 token ไม่เยอะ สำคัญคือเพื่อนบ้าน กุญแจตรงนี้ convolution ดูตำแหน่งปัจจุบันกับถอยหลังหนึ่งก้าว เห็นผลในตัวเลข ห้า layer ตำแหน่งเจ็ดได้ 72.9 เปอร์เซ็นต์ แต่ห้า layer บวก convolution ได้ 77.6 เปอร์เซ็นต์ ด้วยพารามิเตอร์เพิ่มแค่ 3 เปอร์เซ็นต์กับเวลาเพิ่มนิดเดียว kernel เดียวที่เอื้อมกลับหนึ่งตำแหน่งกู้คืนสิ่งที่สิบ layer เพิ่มให้ได้เกือบหมด ปรากฏว่า suffix decay เป็นปัญหา local นี่เอง นั่นคือ DFlash 2 ทั้งหมดคือส่วนต่างใช่ไหม ต่อจาก DFlash แต่เพิ่มของใหม่สองอย่าง หนึ่งคือ path selector เก็บ 16 candidate ต่อตำแหน่งแล้วเดิน path สอดคล้องสุด กับ two-tap convolution ใหม่ให้แต่ละตำแหน่งแอบดูย้อนหนึ่งก้าว ท้ายเลยไม่ decay ต้นทุนในแง่ checkpoint ที่กำลังจะรัน แต่ละรุ่นต่างนิดหน่อย convolution 110.9 ล้านพารามิเตอร์ เพราะสอง module ต่อ layer ห่อ attention กับ feed forward selector 105.1 ล้าน รวมเพิ่มราว 216 ล้านพารามิเตอร์ 400 MB บนดิสก์สำหรับโมเดลนี้ เพิ่มเวลาต่อรอบราว 1.3 เปอร์เซ็นต์ drafter ตัวเดิมแค่เพิ่ม key ใหม่สี่ตัว นี่คือชาร์ตเทียบ DFlash กับ DFlash 2 เห็น selector top K เดิมไม่มี 16 selector rank 256 convolution kernel size สอง group size 16 นั่นคือแจกแจง จบคำอธิบาย หวังว่าเข้าใจ ผมลดรูปบางส่วน แต่ภาพรวมน่าจะชัดว่า DFlash กับ DFlash 2 คืออะไร ออกจากสไลด์ มาทดลองจริงบน DGX Spark โมเดลที่ใช้คือ Muse Glimmer 30B assistant เพราะทำได้ตรงไปตรงมาใช้โมเดลเดียวทั้งแบบไม่มี drafter แบบ DFlash และ DFlash 2 DFlash 2 เพิ่งออกสัปดาห์ก่อน โมเดลที่ adapt แล้วยังน้อย จำกัดแค่นี้ น่าจะเทียบ apple-to-apple ได้พอควรใช้รุ่นโอเพนซอร์สล่าสุดของ Meta อย่าง Muse Glimmer นี่คือที่ Inco เจอเอง เขารันบน H200 แรงกว่า DGX Spark ผมเยอะ เขาเจอแบบไม่มี drafter acceptance length Q1 ได้หนึ่งอยู่แล้ว DFlash ได้ 5.43 กับ DFlash 2 ได้ 6.54 นำไปสู่ token ต่อวินาทีมากกว่าและ speedup สูงกว่า เดี๋ยวลองดู นี่คือแผนเต็ม ประกอบกับเอเจนต์ เห็นสามรันที่จะทำ โมเดลเดียว Muse Glimmer 30B รัน baseline ไม่มี drafter เลย แล้ว DFlash แล้ว DFlash 2 ทำใน Hermes Agent อยู่บน DGX Spark นี่คือ profile ที่ทดลองส่วนใหญ่ ตอนนี้ให้มันรีวิวไฟล์ spec การทดลอง session ใหม่ แล้วเริ่มจริง ขั้นแรก baseline ไม่มี speculative decoding เลย รู้ว่าข้อความบนจอเยอะ แต่นี่คือวิธีรันผ่าน safety pre-flight สร้าง environment แยก pin model revision ให้ใช้ revision เดียวกันทุกรัน เทสต์ ล็อก server setting แล้วเริ่มรัน ผมจะทำ setup ต้นๆ แล้วรันแรกไม่มี drafter เก็บ log สร้าง environment เสร็จ pre-flight ผ่าน ตอนนี้โหลด weight ใช้เวลาหน่อย แล้วรันเทสต์แรก หลักๆ ดูความเร็ว แต่ดู acceptance length, acceptance rate กับ quality test ด้วย ทดลองเสร็จ รันครบทุกอัน รันข้ามคืนเลยบรรยายทุกขั้นไม่ได้ แต่มีผลแล้ว ใส่สไลด์ให้สวย มาดูว่าเจออะไร นี่คือผลรันบน Muse Glimmer 30B เห็น C1 พวก C คือ concurrency stream พร้อมกันกี่สาย C1 คือหนึ่ง C6 คือหก session หกสายพร้อมกันนึกแบบนั้น C1 แบบไม่มี drafter ได้ 4.3 token ต่อวินาที ช้ามาก ใส่ DFlash 1 เด้งเป็น 12.29 แล้ว DFlash 2 ดีขึ้นอีก 15.12 ส่วน C6 รันพร้อมกันหกสายก็ดีขึ้น ไม่แรงเท่าเคสเดี่ยว แต่ต่างชัด เร็วขึ้น 3.5 เท่าด้วย DFlash 2 เทียบไม่มี drafter เลย DFlash 2 เทียบ DFlash 1 ที่ C1 เร็วขึ้น 23 เปอร์เซ็นต์ แล้ว 29.3 เปอร์เซ็นต์ที่ C4 aggregate สำคัญสุดคือเลขพวกนี้ accepted length กับ acceptance rate เห็น C1 กับ DFlash 1 acceptance length 3.251 token ส่วน DFlash 2 ได้ 4.112 acceptance rate 15 เด้งเป็น 20.83 ดีขึ้นชัดทุกตัว เห็น total correct draft token ในรันนี้เพิ่ม จำนวน proposed draft token ลดลง verification count ก็ต่ำลง นี่คือ verification pass ใช่ไหม pass น้อยลง แต่เร็วขึ้น acceptance rate กับ acceptance length สูงขึ้น กลไกตรงกับผล DFlash 2 ใช้ target verification pass น้อยกว่าเพื่อปล่อย output เท่าเดิม 1,224 serial กับ 3,72 concurrent output token นั่นคือคำอธิบายตรงสุดของ throughput ที่วัดได้ trade-off เล็กๆ ใช้ startup นานกว่า เห็นตรงนี้ peak compute residency มากกว่าเดิมหน่อย ไม่มากกว่า DFlash มาก แต่มากกว่าแบบไม่มี drafter ชัด รันได้ไม่มีปัญหา แต่จำไว้ถ้ารันโมเดลชิด memory wall นี่คือ takeaway จากการเทสต์ Hibana ตรงนี้ DFlash 2 คือผู้ชนะใช้จริงสำหรับ target นี้ speedup ชัด กรณีนี้ acceptance อธิบายความเร็วจริงอย่างที่รู้ version two DFlash 2 ผลิต output ต่อ target verification มากกว่า 26 ถึง 36 เปอร์เซ็นต์ ใช้ verification pass น้อยลงในงบ token เท่าเดิม นั่นคือที่มาของความเร็ว คำตัดสินใช้จริง ใช้ DFlash 2 สำหรับงาน Muse Glimmer ที่สน latency บน Spark พิสูจน์แล้วบน DGX Spark ผมเอง จบคลิปนี้ หวังว่าได้รู้ว่า DFlash คืออะไร speculative decoding โดยรวม เทคนิคมีแบบไหน อย่างที่บอก local AI ตอนนี้น่าตื่นเต้น คนเก่งคนขยันเยอะมาก ทำงานให้ชุมชนโอเพนซอร์ส หาเทคนิคพวกนี้ ทดลองกัน ห้องแล็บใหญ่อย่าง Inco AI ปล่อย DFlash 2 มา ชุมชน local AI เอาไปลองหาวิธีใช้ดีสุด น่าตื่นเต้นมาก หวังว่าได้เทคนิคไป คอมเมนต์บอกหน่อยว่าคิดไง จะเอาไปใช้ท่าไหน ลองหรือยัง นี่ผมรันทดลองครั้งแรก ประทับใจผล จบคลิปนี้ ขอบคุณที่รับชมครับ

04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
DFlash / DFlash 2DFlash
Inco AI (inco.ai)Inco AI
speculative decodingspeculative decoding
MTP (multi-token prediction)MTP
DSpark (rival)DSpark
decoding (ordinary)decoding
tokentoken
forward passforward pass
weight (60 GB)weight
memory (waiting on)memory
drafterdrafter
acceptance / rate / lengthacceptance
Q1 (acceptance length = 1)Q1
block diffusion (D)block diffusion
diffusion / stable diffusiondiffusion
crossword solvercrossword solver
pencil / ink (boss)pencil / ink
serial problemserial problem
transformer blocktransformer block
checkpointcheckpoint
attentionattention
feed forwardfeed forward
query key value outputquery key value
layer normlayer norm
shallower (5 vs 52 layers)shallower
pocket editionpocket edition
block size 16block size
width / height / slot / commitwidth / height
neighborneighbor
suffix decaysuffix decay
capacity issuecapacity
depth (layers)depth
ranked list / top pick / top 16ranked list
GSM8KGSM8K
phone autocompleteautocomplete
referee (tiny)referee
candidate (16/position)candidate
neighboring pair (scoring)neighboring pair
best path (walk)best path
the the (stutter)the the
vocabulary (rebuild)vocabulary
40x fewer parameters40x
two-tap convolutionconvolution
kernel size 2 / group size 16kernel size
selector top K 16 / rank 256selector
tap / peak (peek)peak
216M params (110.9+105.1M)parameters
400 MB on disk400 MB
1.3% time per cycle1.3%
DGX SparkDGX Spark
H200H200
Muse Glimmer 30B (Meta)Muse Glimmer
apples-to-applesapples-to-apples
no drafter (baseline)baseline
C1 / C4 / C6 (concurrency)concurrency
token per second / speedupspeedup
serial / concurrent outputserial
verification pass / countverification
proposed vs correct draft tokensdraft token
throughputthroughput
startup (longer)startup
peak compute residencyresidency
memory wallmemory wall
latency sensitive / servinglatency
safety pre-flightpre-flight
isolated environmentisolated
model revision (pin)revision
server setting (lock)server setting
log / weight downloadlog
overnight runovernight
Hibana testHibana
practical winner / verdictverdict
26–36% more per verification26–36%
local magician / communitycommunity
OpenAI / AnthropicOpenAI
data center / GPUdata center
Agent Wikis / Pro $9.99Agent Wikis
HyperframesHyperframes
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:04,781
ตอนนี้คือยุคทองของ local AI มากกว่าที่เคย

2
00:00:04,781 --> 00:00:08,745
คุณรันโมเดลทรงพลังที่ใกล้ frontier

3
00:00:08,745 --> 00:00:13,759
ของห้องแล็บปิดได้ที่บ้าน บนเครื่องตัวเอง บน

4
00:00:13,759 --> 00:00:18,073
GPU หรืออย่างผมบน DGX Spark DGX Spark
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (304 segments)
1
00:00:00,000 --> 00:00:04,781
ตอนนี้คือยุคทองของ local AI มากกว่าที่เคย

2
00:00:04,781 --> 00:00:08,745
คุณรันโมเดลทรงพลังที่ใกล้ frontier

3
00:00:08,745 --> 00:00:13,759
ของห้องแล็บปิดได้ที่บ้าน บนเครื่องตัวเอง บน

4
00:00:13,759 --> 00:00:18,073
GPU หรืออย่างผมบน DGX Spark DGX Spark

5
00:00:18,073 --> 00:00:23,203
ออกมาสักพักแล้ว แต่ข้อร้องเรียนแรกๆ ของโมเดล

6
00:00:23,203 --> 00:00:28,100
local คือช้ามาก ก็จริง เทียบกับของที่รันใน

7
00:00:28,100 --> 00:00:33,347
data center โมเดลบนเครื่องเราช้ากว่าในหลายเคส

8
00:00:33,347 --> 00:00:37,078
แต่ไม่เสมอไป ขอบคุณนวัตกรรมใหม่ๆ

9
00:00:37,078 --> 00:00:42,442
ช่องนี้จะคุยเทคนิคพวกนี้เยอะ เทคนิคที่พ่อมดสาย

10
00:00:42,442 --> 00:00:46,873
local ใช้เร่งและเพิ่มคุณภาพโมเดล local

11
00:00:46,873 --> 00:00:52,936
น่าตื่นเต้นตรงงานพวกนี้ทำระดับบุคคลในชุมชนโอเพนซอร์ส

12
00:00:52,936 --> 00:00:57,833
ไม่ต้องทำงาน OpenAI หรือ Anthropic ก็ทำได้

13
00:00:57,833 --> 00:01:02,147
ทำเองได้ด้วยฮาร์ดแวร์ไม่กี่พันดอลลาร์

14
00:01:02,147 --> 00:01:06,461
วันนี้จะแนะนำเทคนิคหนึ่งชื่อ DFlash 2

15
00:01:06,461 --> 00:01:11,708
ตอนแรกจะคุยแค่ DFlash แต่เขาออก DFlash 2 พอดี

16
00:01:11,708 --> 00:01:16,606
เขียนบล็อกโดย Inco AI สัปดาห์ก่อน เขาปล่อย

17
00:01:16,606 --> 00:01:21,386
DFlash เดือนมกราคม ตอนนี้ฮิตมากในฐานะวิธี

18
00:01:21,386 --> 00:01:26,167
speculative decoding speculative decoding

19
00:01:26,167 --> 00:01:31,180
น่าสนใจเพราะเร่งโมเดล local ง่ายสุด ไม่ต้อง

20
00:01:31,180 --> 00:01:36,078
retrain อะไร มักเป็นอย่างแรกที่คนหยิบเมื่อ

21
00:01:36,078 --> 00:01:40,975
optimize รุ่นใหม่ นี่คือ inco.ai เห็น GGlu

22
00:01:40,975 --> 00:01:46,338
ประกาศว่า DFlash 2 มาแล้ว คลิปนี้ผมจะแจกแจงว่า

23
00:01:46,338 --> 00:01:51,469
DFlash กับ DFlash 2 คืออะไร ตอนท้ายจะทดลองบน

24
00:01:51,469 --> 00:01:56,249
DGX Spark รันสามโมเดล ตัวหนึ่งโมเดลเปล่าๆ

25
00:01:56,249 --> 00:02:00,797
ตัวหนึ่งใส่ DFlash ตัวหนึ่งใช้ DFlash 2

26
00:02:00,797 --> 00:02:06,044
ดูส่วนต่าง performance และสำคัญสุดคือความเร็ว

27
00:02:06,044 --> 00:02:10,824
มาเริ่มกัน ถ้าอยากยกระดับเอเจนต์ของตัวเอง

28
00:02:10,824 --> 00:02:15,605
ลองดูโปรเจกต์ Agent Wikis ของผม ที่นั่นมี

29
00:02:15,605 --> 00:02:17,237
knowledge base

30
00:02:17,237 --> 00:02:22,717
ที่ผมใช้ทุกวันทั้งค้นคว้าทำคลิปและสร้างโปรเจกต์

31
00:02:22,717 --> 00:02:27,031
หัวข้อมี Hermes agent กับ hyperframes

32
00:02:27,031 --> 00:02:31,579
กับเครื่องมือ local AI และอีกเพียบ wiki

33
00:02:31,579 --> 00:02:36,826
มาตรฐานเปิดให้ใช้ฟรีทั้งหมด แต่ถ้าสมัคร Agent

34
00:02:36,826 --> 00:02:42,073
Wikis Pro จะได้ Excel wiki ด้วย รวมถึง custom

35
00:02:42,073 --> 00:02:47,320
skill ที่ผมพัฒนาร่วมกับเอเจนต์มาตลอดหลายเดือน

36
00:02:47,320 --> 00:02:51,051
Pro เดือนละ 9.99 ดอลลาร์เท่านั้น

37
00:02:51,051 --> 00:02:54,782
สมัครตอนนี้ล็อกเรทราคานี้ตลอดชีพ

38
00:02:54,782 --> 00:03:02,594
ตอนนี้ผมกำลังทำโปรไฟล์เอเจนต์เฉพาะทางกับเทมเพลตเวิร์กโฟลว์อัตโนมัติ

39
00:03:02,594 --> 00:03:06,092
พอของพวกนี้ออก ราคา Pro จะขึ้น

40
00:03:06,092 --> 00:03:10,756
เลยแนะนำให้สมัครวันนี้ที่ agentwikis.com

41
00:03:10,756 --> 00:03:13,788
ขอบคุณทุกคนที่สนับสนุนครับ

42
00:03:13,788 --> 00:03:18,918
กลับเข้าวิดีโอกันต่อ ทบทวนเร็วๆ ว่า decoding

43
00:03:18,918 --> 00:03:23,699
คืออะไร เพราะศัพท์นี้สำคัญ โมเดลเขียนทีละ

44
00:03:23,699 --> 00:03:27,663
token แปะต่อท้าย แล้วทำนายตัวถัดไป

45
00:03:27,663 --> 00:03:32,793
การทำนายแต่ละครั้งเรียก forward pass forward

46
00:03:32,793 --> 00:03:38,157
pass หนึ่งครั้งอ่าน weight ทุกตัวในโมเดลออกจาก

47
00:03:38,157 --> 00:03:41,771
memory ทั้งหมดเพื่อ token เดียว

48
00:03:41,771 --> 00:03:46,086
นึกภาพออกว่าช้าแค่ไหนถ้าไม่มีท่าพิเศษ

49
00:03:46,086 --> 00:03:52,848
เหมือนอ่านสารานุกรมทั้งเล่มตั้งแต่ปกถึงปกเพื่อเขียนคำเดียว

50
00:03:52,848 --> 00:03:58,095
แล้วทำใหม่เพื่อคำถัดไป นี่คือ decoding ธรรมดา

51
00:03:58,095 --> 00:04:02,992
สี่ token ต้องสี่ pass pass วิ่งผ่านทุกอัน

52
00:04:02,992 --> 00:04:06,607
อันแรกไม่เท่าไร แต่จะตอบ answer

53
00:04:06,607 --> 00:04:11,621
แล้วทำนายว่ามันคืออะไร อย่าง pass สี่ตรง 42

54
00:04:11,621 --> 00:04:16,868
ต้องย้อนอ่านทั้งหมดทุก pass อ่าน weight 60 GB

55
00:04:16,868 --> 00:04:21,765
ใหม่หมดในตัวอย่างนี้ GPU แทบไม่ได้ compute

56
00:04:21,765 --> 00:04:26,312
แค่รอ memory นี่คือที่มาของ speculative

57
00:04:26,312 --> 00:04:30,860
decoding วิธีเดาล่วงหน้าแล้วตรวจทีเดียว

58
00:04:30,860 --> 00:04:35,524
มีชื่อเรียกหลายแบบ เทคนิคย่อยหลายตัว MTP

59
00:04:35,524 --> 00:04:38,905
ฮิตมาก multi-token prediction

60
00:04:38,905 --> 00:04:44,152
แต่นี่คือหมวดใหญ่ ได้ยิน speculative decoding

61
00:04:44,152 --> 00:04:48,466
หมายถึงพวกไหนก็ได้ แต่ละ forward pass

62
00:04:48,466 --> 00:04:52,430
ตรวจหลายตำแหน่งพร้อมกันได้อยู่แล้ว

63
00:04:52,430 --> 00:04:56,511
ก็หาอะไรมาให้ตรวจสิ มันใช้โมเดลถูกๆ

64
00:04:56,511 --> 00:05:04,790
ชื่อ drafter โมเดลเล็กมาก แยกจากโมเดลหลัก หน้าที่เดียวคือเดา token ถัดๆ

65
00:05:04,790 --> 00:05:08,871
ไป ไม่ต้องทีละ token ทีละคำ drafter

66
00:05:08,871 --> 00:05:13,418
เดาล่วงหน้าสองสามตัว เห็นไหมตัวอย่างนี้

67
00:05:13,418 --> 00:05:17,499
drafter เสนอมาสี่ตัว คำตอบคือ seven

68
00:05:17,499 --> 00:05:22,047
โมเดลหลักเลยตรวจรอบเดียวว่าตอบรับ guess

69
00:05:22,047 --> 00:05:26,711
พวกนี้ไหม acceptance กับ acceptance rate

70
00:05:26,711 --> 00:05:31,491
สำคัญมาก เดี๋ยวพูดถึง เคสนี้เก็บไว้สามตัว

71
00:05:31,491 --> 00:05:35,106
นึกภาพผู้ช่วยเขียนดินสอล่วงหน้า

72
00:05:35,106 --> 00:05:41,752
บอสอ่านหน้าทั้งหน้าครั้งเดียวแล้วตัดสินว่าอะไรรอดเป็นหมึก

73
00:05:41,752 --> 00:05:46,649
อะไรที่โมเดลหลักไม่เห็นด้วยก็ทิ้งไป DFlash

74
00:05:46,649 --> 00:05:50,847
เปลี่ยนอะไรจากนี้ พิเศษยังไง drafter

75
00:05:50,847 --> 00:05:55,627
ในวิธีนี้มีปัญหาเดียวกับโมเดลหลัก drafter

76
00:05:55,627 --> 00:05:59,941
ก็เป็น language model เขียนทีละ token

77
00:05:59,941 --> 00:06:05,188
เหมือนกัน จะเสนอ block สี่ตัว ต้องรันสี่ pass

78
00:06:05,188 --> 00:06:09,502
ของตัวเองรอตัวก่อนหน้า แต่ละ pass ถูก

79
00:06:09,502 --> 00:06:14,283
โมเดลเล็ก weight น้อยกว่ามาก แต่เขาบอกว่า

80
00:06:14,283 --> 00:06:19,297
แก้ปัญหา serial ก้อนใหญ่ด้วยการแลกเป็น pass

81
00:06:19,297 --> 00:06:24,427
ใหญ่บวกปัญหา serial ก้อนเล็ก คำถามที่ DFlash

82
00:06:24,427 --> 00:06:29,557
ถามคือขั้นตรวจเช็กสี่ตำแหน่งใน pass เดียวได้

83
00:06:29,557 --> 00:06:33,988
ทำไมขั้น draft จะผลิตสี่ตำแหน่งใน pass

84
00:06:33,988 --> 00:06:37,136
เดียวไม่ได้บ้าง คำตอบคือได้

85
00:06:37,136 --> 00:06:39,702
ยื่นช่องว่างให้ทีละแถว

86
00:06:39,702 --> 00:06:43,433
เคสนี้เห็นสี่ช่องแทนประโยคให้ต่อ

87
00:06:43,433 --> 00:06:48,563
แล้วขอให้เติมพร้อมกันหมด pass เดียวออกมาทั้ง

88
00:06:48,563 --> 00:06:52,527
block ไม่มี loop ในเขียนทีละ token

89
00:06:52,527 --> 00:06:57,191
ไอเดียนี้เคยได้ยินคำว่า diffusion มาก่อน

90
00:06:57,191 --> 00:07:02,205
stable diffusion โมเดล generative AI ดังมาก

91
00:07:02,205 --> 00:07:07,452
ซีรีส์เดียวกัน ไอเดียเดียวกับ image diffusion

92
00:07:07,452 --> 00:07:12,349
ได้ภาพทั้งภาพทีเดียวแทนทีละ pixel เลยเรียก

93
00:07:12,349 --> 00:07:17,246
block diffusion นี่คือที่มาของ D ใน DFlash

94
00:07:17,246 --> 00:07:20,511
ตรงนี้ขั้นเดียว ผลแค่ข้อเสนอ

95
00:07:20,511 --> 00:07:26,225
นึกภาพคนแก้ครอสเวิร์ดที่เขียนคำตอบทุกช่องพร้อมกัน

96
00:07:26,225 --> 00:07:30,072
แทนทำแนวนอนให้จบก่อนค่อยทำแนวตั้ง

97
00:07:30,072 --> 00:07:35,436
ข้อควรระวังใหญ่ นี่คือกุญแจของคอนเซปต์ที่เหลือ

98
00:07:35,436 --> 00:07:38,467
แต่ละตำแหน่งเดาอิสระจากกัน

99
00:07:38,467 --> 00:07:43,598
ไม่มีอะไรบังคับให้สอดคล้องกัน ข้างใน drafter

100
00:07:43,598 --> 00:07:48,495
ที่ใช้คืออะไร คือชั้นของ transformer block

101
00:07:48,495 --> 00:07:51,993
ชั้นเดียว ผมมีคลิป transformer

102
00:07:51,993 --> 00:07:56,424
ถ้าอยากลึกถึงพื้นฐาน transformer block

103
00:07:56,424 --> 00:08:01,437
ทำสองอย่าง ทุกตำแหน่งมองทุกตำแหน่งอื่นเรียก

104
00:08:01,437 --> 00:08:06,335
attention แล้วแต่ละอันประมวลของตัวเองเรียก

105
00:08:06,335 --> 00:08:10,882
feed forward นี่คือหนึ่งในห้า layer ของ

106
00:08:10,882 --> 00:08:16,246
drafter อ่านจาก checkpoint ตรงๆ หนึ่ง layer มี

107
00:08:16,246 --> 00:08:21,026
attention query key value output กับ feed

108
00:08:21,026 --> 00:08:26,273
forward กับ layer norm สองตัว ผมมีคลิปพื้นฐาน

109
00:08:26,273 --> 00:08:30,587
transformer ดูซีรีส์ machine learning

110
00:08:30,587 --> 00:08:35,834
ได้ถ้าอยากลงลึก แต่นี่คือหนึ่ง layer สำคัญคือ

111
00:08:35,834 --> 00:08:40,731
block พวกนี้กว้างเท่าโมเดลใหญ่เป๊ะ drafter

112
00:08:40,731 --> 00:08:45,279
ไม่ใช่โมเดลแคบกว่า แต่ตื้นกว่า มี block

113
00:08:45,279 --> 00:08:49,360
แบบเดียวกันห้าอันแทน 52 อัน drafter

114
00:08:49,360 --> 00:08:53,674
พวกนี้มักฝึกมาพร้อมโมเดล หยิบ drafter

115
00:08:53,674 --> 00:08:59,037
ไหนแปะโมเดลไหนไม่ได้ เพราะต้อง match กันแบบนี้

116
00:08:59,037 --> 00:09:03,935
อย่านึกว่าเป็น pocket edition ของโมเดลใหญ่

117
00:09:03,935 --> 00:09:09,531
แต่เป็นเครื่องจักรเดียวกันแค่รื้อชั้นออกเกือบหมด

118
00:09:09,531 --> 00:09:14,429
นี่คือภาพอีกมุม drafter นี้ห้า layer block

119
00:09:14,429 --> 00:09:19,675
size 16 คือความกว้าง แต่ละ layer ผ่าน 16 ช่อง

120
00:09:19,675 --> 00:09:24,922
เติมทีเดียวใน pass เดียว ห้า layer คือความสูง

121
00:09:24,922 --> 00:09:29,586
แถวนี้วนกี่รอบก่อน commit จำไว้ใช้ทีหลัง

122
00:09:29,586 --> 00:09:33,901
ตำแหน่งได้ยินเพื่อนบ้านผ่าน attention

123
00:09:33,901 --> 00:09:36,349
ห้ารอบทำให้ตำแหน่ง 16

124
00:09:36,349 --> 00:09:41,479
มีโอกาสน้อยมากที่จะรู้ว่าตำแหน่ง 15 ตกลงอะไร

125
00:09:41,479 --> 00:09:45,560
ท้าย block เลยอ่อนกว่าหัว block มาก

126
00:09:45,560 --> 00:09:50,691
กลับมาเรื่อง acceptance เพราะเป็นตัวแปรสำคัญ

127
00:09:50,691 --> 00:09:54,772
ทุกอย่างจากนี้วัดด้วยเลขเดียว token

128
00:09:54,772 --> 00:10:00,135
ที่ผลิตได้หารด้วยจำนวนครั้งที่โมเดลใหญ่ต้องรัน

129
00:10:00,135 --> 00:10:05,266
drafter จะให้สักห้าหก token เห็นไหมวิธีทำงาน

130
00:10:05,266 --> 00:10:10,629
ไม่มี drafter หนึ่ง pass ได้ token เดียว อย่าง

131
00:10:10,629 --> 00:10:15,876
DFlash เดาได้หลายตัว หนึ่ง pass ได้หลาย token

132
00:10:15,876 --> 00:10:20,424
acceptance สำคัญ acceptance length ด้วย

133
00:10:20,424 --> 00:10:22,639
อย่านับว่าเดากี่ตัว

134
00:10:22,639 --> 00:10:27,769
ให้นับว่าเหลือบนกระดาษกี่ตัวหลังบอสตรวจเสร็จ

135
00:10:27,769 --> 00:10:32,433
ทุกอย่างที่ DFlash 2 ทำเล็งเลขนี้ DFlash

136
00:10:32,433 --> 00:10:35,465
เดาแต่ละตำแหน่งอิสระเลยถูก

137
00:10:35,465 --> 00:10:40,828
และตรงนี้แหละที่ทิ้ง value ไว้สองจุด นี่คือที่

138
00:10:40,828 --> 00:10:44,560
DFlash 2 พยายามปรับปรุง จุดหนึ่ง

139
00:10:44,560 --> 00:10:49,224
คำที่ถูกอยู่ในลิสต์ไหม guess ผิด drafter

140
00:10:49,224 --> 00:10:54,354
งงหรือแค่ลังเล คำถามสอง ทำไมท้าย block แย่ลง

141
00:10:54,354 --> 00:10:59,368
guess แรกดี อันที่ 16 ไม่ดี มีอะไรหมดตรงนี้

142
00:10:59,368 --> 00:11:04,148
คำถามแรก ประเด็นคือคำที่ถูกมักอยู่ในลิสต์

143
00:11:04,148 --> 00:11:06,713
guess อยู่แล้ว ย้อนนิด

144
00:11:06,713 --> 00:11:11,844
แต่ละตำแหน่งไม่ได้ผลิตคำเดียว ไม่ได้มี guess

145
00:11:11,844 --> 00:11:16,508
เดียว จริงๆ ผลิต ranked list แล้ว DFlash

146
00:11:16,508 --> 00:11:21,288
เอาอันบนสุดของแต่ละลิสต์ เมื่อตัวบนสุดผิด

147
00:11:21,288 --> 00:11:24,087
คำตอบที่ถูกอยู่ลึกแค่ไหน

148
00:11:24,087 --> 00:11:28,867
เพราะน่าจะมีคำตอบถูกใน ranked list ใช่ไหม

149
00:11:28,867 --> 00:11:33,531
นักวิจัยพบว่าตำแหน่งแรก ตัวบนสุดถูก 85.4

150
00:11:33,531 --> 00:11:38,778
เปอร์เซ็นต์ แต่ token ที่ถูกอยู่ใน top 16 ถึง

151
00:11:38,778 --> 00:11:42,859
99.5 เปอร์เซ็นต์ เกือบตลอดใน top 16

152
00:11:42,859 --> 00:11:47,873
นี่คือชาร์ตของ DFlash ห้า layer วัดบน GSM8K

153
00:11:47,873 --> 00:11:52,887
พวกนี้คือตำแหน่งต่างๆ ตำแหน่งแรกอย่างที่บอก

154
00:11:52,887 --> 00:11:58,134
ตัวบน 85 ส่วน top 16 ได้ 99 ยิ่งลงไปเลขยิ่งลด

155
00:11:58,134 --> 00:12:03,497
เพราะอย่างที่อธิบาย ยิ่งท้าย block performance

156
00:12:03,497 --> 00:12:08,744
ยิ่งตก แต่ acceptance ใน top 16 ยังสูงกว่ามาก

157
00:12:08,744 --> 00:12:13,758
สำคัญเพราะไม่ได้ทำนายอะไรใหม่ คำตอบอยู่แล้ว

158
00:12:13,758 --> 00:12:18,538
แค่ในลิสต์ analogy ตรงนี้คือ autocomplete

159
00:12:18,538 --> 00:12:23,319
มือถือ พิมพ์ไป ข้อเสนอแรกอาจผิด แต่ดูลงไป

160
00:12:23,319 --> 00:12:27,983
อันดับห้าอันดับหก คำตอบที่ถูกอยู่ตรงนั้น

161
00:12:27,983 --> 00:12:35,095
ไม่มีประโยชน์ยกเลิกหมดแล้วทำใหม่เมื่อคำตอบอยู่ลึกลงไปนิดเดียว

162
00:12:35,095 --> 00:12:39,993
มันเลยใช้ referee ตัวจิ๋วเลือก path ที่ถูก

163
00:12:39,993 --> 00:12:43,374
สมมติตัวเลือกอิสระพังเฉพาะจุด

164
00:12:43,374 --> 00:12:48,738
แต่ละอันเข้าท่าแต่เข้ากันไม่ได้ ตัวอย่างตรงนี้

165
00:12:48,738 --> 00:12:53,285
ตำแหน่งหนึ่งว่า the ตำแหน่งสองก็ว่า the

166
00:12:53,285 --> 00:12:58,648
ติดอ่างตายตอนตรวจเพราะมี the the ไม่ได้ DFlash

167
00:12:58,648 --> 00:13:02,496
2 เลยเก็บ 16 candidate ต่อตำแหน่ง

168
00:13:02,496 --> 00:13:07,277
ให้คะแนนคู่เพื่อนบ้าน แล้วเดิน path ดีสุด

169
00:13:07,277 --> 00:13:11,824
เลยต่อ the กับ answer is 62 ได้ เห็นไหม

170
00:13:11,824 --> 00:13:16,488
acceptance สูงขึ้นเมื่อเลือก path แบบนี้

171
00:13:16,488 --> 00:13:21,152
เทคนิค speculative decoding อีกตัวที่ฮิต

172
00:13:21,152 --> 00:13:26,282
dspark วิธีนั้นทำนายซ้ำตามลำดับ แต่ DFlash 2

173
00:13:26,282 --> 00:13:31,646
มองว่าเลือกถูกกว่าทำนาย DSpark ซึ่งเป็นคู่แข่ง

174
00:13:31,646 --> 00:13:36,776
สร้าง vocabulary เต็มของแต่ละตำแหน่งตามลำดับ

175
00:13:36,776 --> 00:13:40,624
เลือกจาก candidate ที่มีอยู่ชนะไป

176
00:13:40,624 --> 00:13:45,172
ใช้พารามิเตอร์น้อยกว่า 40 เท่า คำถามสอง

177
00:13:45,172 --> 00:13:50,302
ทำไมท้าย block แย่ลง คำตอบตรงๆ คือ selection

178
00:13:50,302 --> 00:13:55,665
ฉลาดแค่ไหนก็ช่วยไม่ได้ candidate เองแย่ลง inco

179
00:13:55,665 --> 00:14:00,679
เรียก suffix decay มองว่าเป็นปัญหา capacity

180
00:14:00,679 --> 00:14:05,926
ห้า layer อาจเล็กไปที่จะอุ้ม block 16 ตำแหน่ง

181
00:14:05,926 --> 00:14:10,474
เขาเสนอเพิ่ม depth ควรช่วยท้ายสุดมากสุด

182
00:14:10,474 --> 00:14:15,371
แล้วก็จริง นึกภาพคำที่ 16 คือ guess ต่อจาก

183
00:14:15,371 --> 00:14:20,734
guess ต่อจาก guess ต่อจาก guess ยิ่งไกลยิ่งมัว

184
00:14:20,734 --> 00:14:25,515
พูดถึง depth คือ layer เห็นไหมเพิ่ม layer

185
00:14:25,515 --> 00:14:30,762
ตำแหน่งลึก acceptance ดีขึ้น สาม layer ได้ 65

186
00:14:30,762 --> 00:14:36,009
เปอร์เซ็นต์ สิบห้า layer ได้ 78.7 เปอร์เซ็นต์

187
00:14:36,009 --> 00:14:40,323
แลกด้วยพารามิเตอร์สามเท่าบวกเวลา 15.2

188
00:14:40,323 --> 00:14:45,337
เปอร์เซ็นต์ depth เองทื่อมาก เพิ่มสิบ layer

189
00:14:45,337 --> 00:14:46,969
เพิ่ม capacity

190
00:14:46,969 --> 00:14:51,633
ทุกที่รวมตำแหน่งหนึ่งที่ไม่มีอะไรให้เก็บ

191
00:14:51,633 --> 00:14:56,297
ปัญหาหลักคือตำแหน่ง 16 หรือ 7 ท้ายๆ ลงไป

192
00:14:56,297 --> 00:15:01,544
คำตอบคือให้ทุกคำแอบดูคำก่อนหน้า ถ้า attention

193
00:15:01,544 --> 00:15:03,643
บีบงานใน block ออก

194
00:15:03,643 --> 00:15:08,540
ก็ให้งานนั้นมีเครื่องจักรของตัวเอง งานเล็ก

195
00:15:08,540 --> 00:15:11,921
block สี่ถึง 16 token ไม่เยอะ

196
00:15:11,921 --> 00:15:16,818
สำคัญคือเพื่อนบ้าน กุญแจตรงนี้ convolution

197
00:15:16,818 --> 00:15:21,016
ดูตำแหน่งปัจจุบันกับถอยหลังหนึ่งก้าว

198
00:15:21,016 --> 00:15:26,146
เห็นผลในตัวเลข ห้า layer ตำแหน่งเจ็ดได้ 72.9

199
00:15:26,146 --> 00:15:31,277
เปอร์เซ็นต์ แต่ห้า layer บวก convolution ได้

200
00:15:31,277 --> 00:15:36,174
77.6 เปอร์เซ็นต์ ด้วยพารามิเตอร์เพิ่มแค่ 3

201
00:15:36,174 --> 00:15:40,605
เปอร์เซ็นต์กับเวลาเพิ่มนิดเดียว kernel

202
00:15:40,605 --> 00:15:45,968
เดียวที่เอื้อมกลับหนึ่งตำแหน่งกู้คืนสิ่งที่สิบ

203
00:15:45,968 --> 00:15:50,749
layer เพิ่มให้ได้เกือบหมด ปรากฏว่า suffix

204
00:15:50,749 --> 00:15:55,996
decay เป็นปัญหา local นี่เอง นั่นคือ DFlash 2

205
00:15:55,996 --> 00:16:00,426
ทั้งหมดคือส่วนต่างใช่ไหม ต่อจาก DFlash

206
00:16:00,426 --> 00:16:05,790
แต่เพิ่มของใหม่สองอย่าง หนึ่งคือ path selector

207
00:16:05,790 --> 00:16:10,571
เก็บ 16 candidate ต่อตำแหน่งแล้วเดิน path

208
00:16:10,571 --> 00:16:14,651
สอดคล้องสุด กับ two-tap convolution

209
00:16:14,651 --> 00:16:18,966
ใหม่ให้แต่ละตำแหน่งแอบดูย้อนหนึ่งก้าว

210
00:16:18,966 --> 00:16:23,513
ท้ายเลยไม่ decay ต้นทุนในแง่ checkpoint

211
00:16:23,513 --> 00:16:27,594
ที่กำลังจะรัน แต่ละรุ่นต่างนิดหน่อย

212
00:16:27,594 --> 00:16:32,491
convolution 110.9 ล้านพารามิเตอร์ เพราะสอง

213
00:16:32,491 --> 00:16:37,039
module ต่อ layer ห่อ attention กับ feed

214
00:16:37,039 --> 00:16:42,052
forward selector 105.1 ล้าน รวมเพิ่มราว 216

215
00:16:42,052 --> 00:16:47,183
ล้านพารามิเตอร์ 400 MB บนดิสก์สำหรับโมเดลนี้

216
00:16:47,183 --> 00:16:52,080
เพิ่มเวลาต่อรอบราว 1.3 เปอร์เซ็นต์ drafter

217
00:16:52,080 --> 00:16:55,578
ตัวเดิมแค่เพิ่ม key ใหม่สี่ตัว

218
00:16:55,578 --> 00:17:00,358
นี่คือชาร์ตเทียบ DFlash กับ DFlash 2 เห็น

219
00:17:00,358 --> 00:17:05,605
selector top K เดิมไม่มี 16 selector rank 256

220
00:17:05,605 --> 00:17:10,386
convolution kernel size สอง group size 16

221
00:17:10,386 --> 00:17:14,817
นั่นคือแจกแจง จบคำอธิบาย หวังว่าเข้าใจ

222
00:17:14,817 --> 00:17:20,180
ผมลดรูปบางส่วน แต่ภาพรวมน่าจะชัดว่า DFlash กับ

223
00:17:20,180 --> 00:17:25,544
DFlash 2 คืออะไร ออกจากสไลด์ มาทดลองจริงบน DGX

224
00:17:25,544 --> 00:17:29,858
Spark โมเดลที่ใช้คือ Muse Glimmer 30B

225
00:17:29,858 --> 00:17:30,958
assistant

226
00:17:30,958 --> 00:17:36,205
เพราะทำได้ตรงไปตรงมาใช้โมเดลเดียวทั้งแบบไม่มี

227
00:17:36,205 --> 00:17:40,869
drafter แบบ DFlash และ DFlash 2 DFlash 2

228
00:17:40,869 --> 00:17:46,232
เพิ่งออกสัปดาห์ก่อน โมเดลที่ adapt แล้วยังน้อย

229
00:17:46,232 --> 00:17:50,546
จำกัดแค่นี้ น่าจะเทียบ apple-to-apple

230
00:17:50,546 --> 00:17:55,793
ได้พอควรใช้รุ่นโอเพนซอร์สล่าสุดของ Meta อย่าง

231
00:17:55,793 --> 00:18:00,807
Muse Glimmer นี่คือที่ Inco เจอเอง เขารันบน

232
00:18:00,807 --> 00:18:05,938
H200 แรงกว่า DGX Spark ผมเยอะ เขาเจอแบบไม่มี

233
00:18:05,938 --> 00:18:11,185
drafter acceptance length Q1 ได้หนึ่งอยู่แล้ว

234
00:18:11,185 --> 00:18:16,431
DFlash ได้ 5.43 กับ DFlash 2 ได้ 6.54 นำไปสู่

235
00:18:16,431 --> 00:18:21,212
token ต่อวินาทีมากกว่าและ speedup สูงกว่า

236
00:18:21,212 --> 00:18:26,109
เดี๋ยวลองดู นี่คือแผนเต็ม ประกอบกับเอเจนต์

237
00:18:26,109 --> 00:18:31,356
เห็นสามรันที่จะทำ โมเดลเดียว Muse Glimmer 30B

238
00:18:31,356 --> 00:18:36,253
รัน baseline ไม่มี drafter เลย แล้ว DFlash

239
00:18:36,253 --> 00:18:41,150
แล้ว DFlash 2 ทำใน Hermes Agent อยู่บน DGX

240
00:18:41,150 --> 00:18:45,465
Spark นี่คือ profile ที่ทดลองส่วนใหญ่

241
00:18:45,465 --> 00:18:50,478
ตอนนี้ให้มันรีวิวไฟล์ spec การทดลอง session

242
00:18:50,478 --> 00:18:55,259
ใหม่ แล้วเริ่มจริง ขั้นแรก baseline ไม่มี

243
00:18:55,259 --> 00:19:00,623
speculative decoding เลย รู้ว่าข้อความบนจอเยอะ

244
00:19:00,623 --> 00:19:05,753
แต่นี่คือวิธีรันผ่าน safety pre-flight สร้าง

245
00:19:05,753 --> 00:19:10,533
environment แยก pin model revision ให้ใช้

246
00:19:10,533 --> 00:19:15,314
revision เดียวกันทุกรัน เทสต์ ล็อก server

247
00:19:15,314 --> 00:19:19,745
setting แล้วเริ่มรัน ผมจะทำ setup ต้นๆ

248
00:19:19,745 --> 00:19:24,176
แล้วรันแรกไม่มี drafter เก็บ log สร้าง

249
00:19:24,176 --> 00:19:29,306
environment เสร็จ pre-flight ผ่าน ตอนนี้โหลด

250
00:19:29,306 --> 00:19:34,086
weight ใช้เวลาหน่อย แล้วรันเทสต์แรก หลักๆ

251
00:19:34,086 --> 00:19:39,450
ดูความเร็ว แต่ดู acceptance length, acceptance

252
00:19:39,450 --> 00:19:43,764
rate กับ quality test ด้วย ทดลองเสร็จ

253
00:19:43,764 --> 00:19:49,011
รันครบทุกอัน รันข้ามคืนเลยบรรยายทุกขั้นไม่ได้

254
00:19:49,011 --> 00:19:53,792
แต่มีผลแล้ว ใส่สไลด์ให้สวย มาดูว่าเจออะไร

255
00:19:53,792 --> 00:19:58,922
นี่คือผลรันบน Muse Glimmer 30B เห็น C1 พวก C

256
00:19:58,922 --> 00:20:03,586
คือ concurrency stream พร้อมกันกี่สาย C1

257
00:20:03,586 --> 00:20:06,501
คือหนึ่ง C6 คือหก session

258
00:20:06,501 --> 00:20:11,515
หกสายพร้อมกันนึกแบบนั้น C1 แบบไม่มี drafter

259
00:20:11,515 --> 00:20:16,529
ได้ 4.3 token ต่อวินาที ช้ามาก ใส่ DFlash 1

260
00:20:16,529 --> 00:20:21,659
เด้งเป็น 12.29 แล้ว DFlash 2 ดีขึ้นอีก 15.12

261
00:20:21,659 --> 00:20:25,390
ส่วน C6 รันพร้อมกันหกสายก็ดีขึ้น

262
00:20:25,390 --> 00:20:30,404
ไม่แรงเท่าเคสเดี่ยว แต่ต่างชัด เร็วขึ้น 3.5

263
00:20:30,404 --> 00:20:35,068
เท่าด้วย DFlash 2 เทียบไม่มี drafter เลย

264
00:20:35,068 --> 00:20:39,965
DFlash 2 เทียบ DFlash 1 ที่ C1 เร็วขึ้น 23

265
00:20:39,965 --> 00:20:44,512
เปอร์เซ็นต์ แล้ว 29.3 เปอร์เซ็นต์ที่ C4

266
00:20:44,512 --> 00:20:49,876
aggregate สำคัญสุดคือเลขพวกนี้ accepted length

267
00:20:49,876 --> 00:20:54,540
กับ acceptance rate เห็น C1 กับ DFlash 1

268
00:20:54,540 --> 00:20:59,554
acceptance length 3.251 token ส่วน DFlash 2

269
00:20:59,554 --> 00:21:04,567
ได้ 4.112 acceptance rate 15 เด้งเป็น 20.83

270
00:21:04,567 --> 00:21:09,931
ดีขึ้นชัดทุกตัว เห็น total correct draft token

271
00:21:09,931 --> 00:21:15,178
ในรันนี้เพิ่ม จำนวน proposed draft token ลดลง

272
00:21:15,178 --> 00:21:20,541
verification count ก็ต่ำลง นี่คือ verification

273
00:21:20,541 --> 00:21:25,905
pass ใช่ไหม pass น้อยลง แต่เร็วขึ้น acceptance

274
00:21:25,905 --> 00:21:29,869
rate กับ acceptance length สูงขึ้น

275
00:21:29,869 --> 00:21:35,116
กลไกตรงกับผล DFlash 2 ใช้ target verification

276
00:21:35,116 --> 00:21:40,363
pass น้อยกว่าเพื่อปล่อย output เท่าเดิม 1,224

277
00:21:40,363 --> 00:21:44,911
serial กับ 3,72 concurrent output token

278
00:21:44,911 --> 00:21:50,158
นั่นคือคำอธิบายตรงสุดของ throughput ที่วัดได้

279
00:21:50,158 --> 00:21:55,521
trade-off เล็กๆ ใช้ startup นานกว่า เห็นตรงนี้

280
00:21:55,521 --> 00:22:00,068
peak compute residency มากกว่าเดิมหน่อย

281
00:22:00,068 --> 00:22:04,732
ไม่มากกว่า DFlash มาก แต่มากกว่าแบบไม่มี

282
00:22:04,732 --> 00:22:07,997
drafter ชัด รันได้ไม่มีปัญหา

283
00:22:07,997 --> 00:22:12,778
แต่จำไว้ถ้ารันโมเดลชิด memory wall นี่คือ

284
00:22:12,778 --> 00:22:17,792
takeaway จากการเทสต์ Hibana ตรงนี้ DFlash 2

285
00:22:17,792 --> 00:22:23,038
คือผู้ชนะใช้จริงสำหรับ target นี้ speedup ชัด

286
00:22:23,038 --> 00:22:25,137
กรณีนี้ acceptance

287
00:22:25,137 --> 00:22:29,918
อธิบายความเร็วจริงอย่างที่รู้ version two

288
00:22:29,918 --> 00:22:35,048
DFlash 2 ผลิต output ต่อ target verification

289
00:22:35,048 --> 00:22:40,412
มากกว่า 26 ถึง 36 เปอร์เซ็นต์ ใช้ verification

290
00:22:40,412 --> 00:22:43,910
pass น้อยลงในงบ token เท่าเดิม

291
00:22:43,910 --> 00:22:48,923
นั่นคือที่มาของความเร็ว คำตัดสินใช้จริง ใช้

292
00:22:48,923 --> 00:22:54,170
DFlash 2 สำหรับงาน Muse Glimmer ที่สน latency

293
00:22:54,170 --> 00:22:58,601
บน Spark พิสูจน์แล้วบน DGX Spark ผมเอง

294
00:22:58,601 --> 00:23:03,382
จบคลิปนี้ หวังว่าได้รู้ว่า DFlash คืออะไร

295
00:23:03,382 --> 00:23:08,279
speculative decoding โดยรวม เทคนิคมีแบบไหน

296
00:23:08,279 --> 00:23:12,710
อย่างที่บอก local AI ตอนนี้น่าตื่นเต้น

297
00:23:12,710 --> 00:23:17,723
คนเก่งคนขยันเยอะมาก ทำงานให้ชุมชนโอเพนซอร์ส

298
00:23:17,723 --> 00:23:23,087
หาเทคนิคพวกนี้ ทดลองกัน ห้องแล็บใหญ่อย่าง Inco

299
00:23:23,087 --> 00:23:27,168
AI ปล่อย DFlash 2 มา ชุมชน local AI

300
00:23:27,168 --> 00:23:31,482
เอาไปลองหาวิธีใช้ดีสุด น่าตื่นเต้นมาก

301
00:23:31,482 --> 00:23:36,496
หวังว่าได้เทคนิคไป คอมเมนต์บอกหน่อยว่าคิดไง

302
00:23:36,496 --> 00:23:39,644
จะเอาไปใช้ท่าไหน ลองหรือยัง

303
00:23:39,644 --> 00:23:44,541
นี่ผมรันทดลองครั้งแรก ประทับใจผล จบคลิปนี้

304
00:23:44,541 --> 00:23:46,640
ขอบคุณที่รับชมครับ