Transformers.js v4 เปิดตัวแล้ว! ยกระดับ AI บนเว็บให้เร็ว แรง และยืดหยุ่นกว่าเดิม
Hugging Face ประกาศเปิดตัว Transformers.js v4 เวอร์ชันใหม่ล่าสุด ที่มาพร้อมการปรับปรุงครั้งใหญ่เพื่อยกระดับประสบการณ์การใช้งาน AI บนเว็บให้ดียิ่งขึ้น ทั้งในด้านประสิทธิภาพ ความยืดหยุ่น และการรองรับโมเดลที่หลากหลาย การอัปเดตครั้งนี้ไม่เพียงแต่ทำให้การพัฒนาแอปพลิเคชัน AI บนเบราว์เซอร์และสภาพแวดล้อม JavaScript อื่นๆ ง่ายขึ้น แต่ยังเปิดประตูสู่ความเป็นไปได้ใหม่ๆ ในการนำ AI ไปใช้จริง
ปรับปรุงประสิทธิภาพด้วย WebGPU Runtime ใหม่ 🚀
หัวใจสำคัญของการอัปเดต v4 คือการนำ WebGPU Runtime ที่เขียนขึ้นใหม่ทั้งหมดด้วยภาษา C++ มาใช้งาน ซึ่งพัฒนาขึ้นโดยความร่วมมือกับทีม ONNX Runtime การเปลี่ยนแปลงนี้ส่งผลให้:
- ความเร็วที่เหนือกว่า: WebGPU Runtime ใหม่รองรับ Operator ที่หลากหลายและมีประสิทธิภาพมากขึ้น ช่วยให้โมเดลทำงานได้เร็วขึ้นอย่างเห็นได้ชัด โดยเฉพาะอย่างยิ่งการนำ Operator เฉพาะทางอย่าง
com.microsoft.GroupQueryAttention,com.microsoft.MatMulNBits, หรือcom.microsoft.QMoEมาใช้ ทำให้โมเดลประเภท BERT-based embedding เร็วขึ้นถึง 4 เท่าเมื่อเทียบกับเวอร์ชันก่อนหน้า - ความแม่นยำและความครอบคลุม: รองรับ Operator ได้ดีขึ้น ส่งผลให้การคำนวณมีความแม่นยำและครอบคลุมโมเดลได้มากขึ้น
- ใช้งานได้หลากหลายสภาพแวดล้อม: โค้ด Transformers.js เดียวกันสามารถทำงานได้ทั้งบนเบราว์เซอร์, Server-side Runtimes (เช่น Node.js, Bun, Deno) และแอปพลิเคชันเดสก์ท็อป โดยยังคงได้รับประโยชน์จาก WebGPU Acceleration
โครงสร้าง Repository ที่เป็นระเบียบยิ่งขึ้น 🏗️
เพื่อรองรับการพัฒนาในระยะยาว Transformers.js v4 ได้ปรับโครงสร้าง Repository ให้เป็น Monorepo โดยใช้ pnpm workspaces ทำให้สามารถจัดการกับ Sub-packages ต่างๆ ได้อย่างมีประสิทธิภาพมากขึ้น การเปลี่ยนแปลงนี้ช่วยให้:
- แพ็กเกจที่เล็กลง: สามารถสร้างและเผยแพร่แพ็กเกจย่อยที่มีขนาดเล็กลง โดยยังคงพึ่งพา @huggingface/transformers core ได้โดยไม่ต้องดูแล Repository แยกหลายที่
- แยกส่วนการทำงาน: โค้ดโมเดลถูกแยกออกจากไฟล์
models.jsเดิมที่ยาวกว่า 8,000 บรรทัด ออกเป็นโมดูลย่อยที่ชัดเจน ทำให้โค้ดอ่านง่ายขึ้น และเพิ่มโมเดลใหม่ๆ ได้สะดวก - ตัวอย่างโครงการแยกต่างหาก: โครงการตัวอย่างถูกย้ายไปยัง Repository เฉพาะ เพื่อให้ Repository หลักมีโค้ดคอร์ไลบรารีที่สะอาดตา และผู้ใช้สามารถค้นหาหรือร่วมพัฒนาตัวอย่างได้ง่ายขึ้น
ฟีเจอร์ใหม่และ API ที่ทรงพลัง 🛠️
Transformers.js v4 มาพร้อมกับฟีเจอร์ใหม่ๆ ที่ช่วยให้การพัฒนาแอปพลิเคชัน AI ที่พร้อมใช้งานจริงเป็นไปได้ง่ายขึ้น:
- ModelRegistry API: ออกแบบมาเพื่อ Workflow การผลิต ช่วยให้ตรวจสอบ Assets ของ Pipeline ได้อย่างชัดเจนก่อนโหลด เช่น รายการไฟล์ที่จำเป็น (
getpipelinefiles), ตรวจสอบสถานะ Cache (ispipelinecached), หรือล้าง Cache (clearpipelinecache) นอกจากนี้progresscallbackยังรองรับprogresstotalทำให้แสดงผลความคืบหน้าการโหลดได้สมบูรณ์ยิ่งขึ้น - Environment Settings: เพิ่มการควบคุมการโหลดโมเดล เช่น
env.useWasmCacheสำหรับการใช้งานแบบ Offline และenv.fetchสำหรับการกำหนดค่า Fetch Implementation ที่กำหนดเอง - การควบคุม Log ที่ดีขึ้น: ซ่อนคำเตือน WebGPU ONNX Runtime เป็นค่าเริ่มต้น และสามารถกำหนดระดับ Verbosity ได้อย่างชัดเจน ช่วยให้ Console Output มีเฉพาะข้อมูลที่สำคัญ
- Standalone Tokenizers.js Library: แยก Logic การ Tokenization ออกมาเป็นไลบรารี
@huggingface/tokenizersโดยเฉพาะ มีขนาดเล็ก (8.8kB gzipped) และไม่มี Dependencies ทำให้ใช้งานได้ง่ายและมีประสิทธิภาพ
รองรับโมเดลใหม่ๆ และสถาปัตยกรรมที่ซับซ้อน 🚀
ด้วยกลยุทธ์การ Export โมเดลใหม่และการสนับสนุน Custom Operators จาก ONNX Runtime ทำให้ Transformers.js v4 สามารถเพิ่มโมเดลยอดนิยมจำนวนมากเข้ามา เช่น GPT-OSS, Chatterbox, GraniteMoeHybrid, LFM2-MoE, HunYuanDenseV1, Apertus, Olmo3, FalconH1, และ Youtu-LLM โมเดลเหล่านี้รองรับสถาปัตยกรรมขั้นสูง เช่น Mamba, Multi-head Latent Attention (MLA), และ Mixture of Experts (MoE) ซึ่งทั้งหมดนี้สามารถทำงานได้บน WebGPU ทำให้ผู้ใช้สามารถรันโมเดลเหล่านี้ได้โดยตรงบนเบราว์เซอร์หรือสภาพแวดล้อม JavaScript อื่นๆ ด้วย Hardware Acceleration
ปรับปรุง Build System และขนาด Bundle 💨
การเปลี่ยนจาก Webpack มาเป็น esbuild ส่งผลให้:
- Build Time เร็วขึ้น 10 เท่า: จาก 2 วินาที เหลือเพียง 200 มิลลิวินาที ทำให้การพัฒนาทำซ้ำได้เร็วขึ้นมาก
- ขนาด Bundle ลดลง 10%: โดยเฉลี่ย ทำให้ดาวน์โหลดเร็วขึ้น และแอปพลิเคชันเริ่มต้นทำงานได้ไวขึ้น โดยเฉพาะ
transformers.web.jsที่มีขนาดเล็กลงถึง 53%
การปรับปรุงอื่นๆ ที่น่าสนใจ ✨
- รองรับโมเดลขนาดใหญ่: สามารถรันโมเดลที่มีพารามิเตอร์มากกว่า 8 พันล้านตัวได้สำเร็จ เช่น GPT-OSS 20B (q4f16) ที่ความเร็วประมาณ 60 tokens ต่อวินาที บน M4 Pro Max
- Type System ที่ดีขึ้น: รองรับ Dynamic Pipeline Types ที่ปรับเปลี่ยนตาม Input เพื่อประสบการณ์นักพัฒนาที่ดีขึ้น
- ปรับปรุง Prettier Configuration: ทำให้โค้ดมีรูปแบบที่สอดคล้องกันทั่วทั้ง Repository
Transformers.js v4 ถือเป็นการก้าวกระโดดครั้งสำคัญ ที่ทำให้การนำ AI ไปใช้บนเว็บง่ายขึ้น เร็วขึ้น และเข้าถึงได้มากขึ้น ใครที่กำลังพัฒนาแอปพลิเคชัน AI บนเว็บ ไม่ควรพลาดเวอร์ชันนี้!
คำถามที่พบบ่อย
Transformers.js v4 ใช้ WebGPU ได้บนทุกเบราว์เซอร์หรือไม่?
WebGPU รองรับบนเบราว์เซอร์รุ่นใหม่ๆ ส่วนใหญ่ แต่ประสิทธิภาพและความเข้ากันได้อาจแตกต่างกันไป ควรตรวจสอบเอกสารของเบราว์เซอร์ที่คุณใช้งาน
โมเดลที่เพิ่มเข้ามาใหม่ใน v4 มีอะไรบ้าง?
มีโมเดลยอดนิยมมากมาย เช่น GPT-OSS, Chatterbox, GraniteMoeHybrid, LFM2-MoE, HunYuanDenseV1, Apertus, Olmo3, FalconH1, และ Youtu-LLM
สามารถรันโมเดลบน Node.js ได้โดยตรงหรือไม่?
ได้ครับ ด้วย WebGPU Runtime ใหม่ ทำให้สามารถรันโมเดลที่เร่งความเร็วด้วย WebGPU ได้โดยตรงบน Node.js, Bun, และ Deno
Tokenizers.js Library มีประโยชน์อย่างไร?
เป็นไลบรารีแยกต่างหากสำหรับ Logic การ Tokenization โดยเฉพาะ มีขนาดเล็ก ไม่มี Dependencies และทำงานได้ดีทั้งบนเบราว์เซอร์และ Server-side
การปรับปรุงเรื่องขนาด Bundle มีผลอย่างไร?
ขนาด Bundle ที่เล็กลงหมายถึงผู้ใช้ดาวน์โหลดไฟล์น้อยลง แอปพลิเคชันโหลดเร็วขึ้น และใช้ทรัพยากรน้อยลง
#TransformersJS #WebGPU #AI #JavaScript #HuggingFace
ขอบคุณ แหล่งข้อมูล
https://huggingface.co/blog/transformersjs-v4