ทำไมผู้ช่วย AI แบบเรียลไทม์ถึงสร้างได้ยาก
การสร้าง AI แบบเรียลไทม์นั้นเป็นเรื่องยาก ระบบส่วนใหญ่ใช้ชุดของส่วนประกอบที่แยกจากกัน ส่วนหนึ่งทำหน้าที่ตรวจจับเสียง อีกส่วนแปลงเสียงเป็นข้อความ ส่วนที่สามสร้างคำตอบ ส่วนที่สี่แปลงข้อความเป็นเสียง และส่วนที่ห้าแสดงผลอวตาร (avatar)
ทุกการส่งต่อข้อมูลระหว่างส่วนประกอบเหล่านี้ทำให้เกิดความล่าช้า ทุกรอยต่อทำให้เกิดข้อผิดพลาดด้านจังหวะเวลา สิ่งนี้ทำให้การโต้ตอบดูเหมือนหุ่นยนต์
Wan-Streamer v0.1 เปลี่ยนแนวทางนี้ แทนที่จะใช้บริการที่แยกจากกัน มันใช้ streaming Transformer เพียงตัวเดียว โดยจัดการทั้งเสียง วิดีโอ และข้อความให้เป็นลูป (loop) เดียวกัน
ผู้ช่วยมาตรฐานทำงานดังนี้: • ผู้ใช้พูด • ระบบแปลงเสียงเป็นข้อความ • โมเดลสร้างคำตอบเป็นข้อความ • ระบบแปลงข้อความเป็นเสียง • อวตารพยายามขยับปากให้ตรงกับเสียง
วิธีนี้มีความเปราะบาง หากขั้นตอนใดขั้นตอนหนึ่งช้า ระบบทั้งหมดจะต้องรอ หากผู้ใช้พูดแทรก ระบบมักจะไม่สังเกตเห็น
Wan-Streamer แก้ปัญหานี้ด้วยการจำลองภาษา เสียง และวิดีโอไปพร้อมกัน โดยใช้ block-causal attention ซึ่งช่วยให้โมเดลสามารถอัปเดตสถานะ (state) ได้อย่างต่อเนื่อง โดยไม่ต้องรอให้จบการสนทนาหนึ่งรอบก่อนที่จะเริ่มดำเนินการ
ระบบใช้การแบ่งส่วน thinker-performer: • ส่วน thinker จัดการเรื่องการรับรู้และการอัปเดตสถานะ • ส่วน performer จัดการเรื่องการสร้างข้อมูลในหน่วยถัดไป
การทำงานที่ซ้อนทับกันนี้ช่วยป้องกันไม่ให้ส่วนต่างๆ ในลูปขัดขวางกันเอง โมเดลสามารถทำ latency ฝั่งโมเดลได้ประมาณ 200 ms และ latency ของการโต้ตอบทั้งหมดจะอยู่ที่ประมาณ 550 ms
เมื่อเวลาในการตอบสนองต่ำกว่าหนึ่งวินาที การสนทนาจะให้ความรู้สึกเหมือนคุยสดๆ ซึ่งสำคัญสำหรับ: • อวตารสำหรับสนับสนุนลูกค้า • เอเจนต์ติวเตอร์ • เครื่องมือเทเลพรีเซนซ์ (Telepresence) • เดโมแบบโต้ตอบ
Wan-Streamer ยังอยู่ในเวอร์ชัน 0.1 คุณภาพวิดีโอยังต่ำ และโมเดลเดียวไม่สามารถแก้ปัญหาเรื่องความปลอดภัยหรือความน่าเชื่อถือได้ อย่างไรก็ตาม มันพิสูจน์ให้เห็นว่ารูปแบบของลูปการโต้ตอบนั้นมีความสำคัญ
หากคุณกำลังสร้าง AI แบบเรียลไทม์ ให้ลองถามคำถามเหล่านี้: • คุณสามารถรวมโมดูลที่แยกจากกันให้เป็นโครงสร้างหลัก (backbone) เดียวกันได้หรือไม่? • จุดไหนในกระบวนการ (pipeline) ของคุณที่ต้องรอ? • ส่วนใดบ้างที่สามารถทำงานซ้อนทับกันเพื่อลดความล่าช้าได้?
ในโลกของ AI แบบเรียลไทม์ วิธีที่ข้อมูลเคลื่อนที่คือตัวผลิตภัณฑ์
Optional learning community: https://t.me/GyaanSetuAi
