- รองรับ WebGPU (เร็วกว่า WASM ได้สูงสุด 100 เท่า)
- ฟอร์แมตการควอนไทซ์แบบใหม่ dtypes
- รองรับสถาปัตยกรรม 120 แบบ
- โปรเจกต์ตัวอย่างและเทมเพลตใหม่ 25 รายการ
- โมเดลที่แปลงไว้ล่วงหน้ามากกว่า 1200 โมเดล
- รองรับ Node.js (ESM + CJS), Deno และ Bun
รองรับ WebGPU
- WebGPU คือมาตรฐานเว็บใหม่สำหรับกราฟิกและการประมวลผลแบบเร่งความเร็ว
- ช่วยให้นักพัฒนาสามารถใช้ GPU ของระบบได้โดยตรงจากเบราว์เซอร์เพื่อทำการคำนวณประสิทธิภาพสูง
- เป็นผู้สืบทอดของ WebGL ทำให้โต้ตอบกับ GPU สมัยใหม่ได้โดยตรงมากขึ้นและเพิ่มประสิทธิภาพอย่างมาก
- นอกจากนี้ยังรองรับการคำนวณบน GPU แบบทั่วไป จึงเหมาะกับงานแมชชีนเลิร์นนิง
- ณ เดือนตุลาคม 2024 อัตราการรองรับ WebGPU ทั่วโลกอยู่ที่ประมาณ 70%
- ในบางเบราว์เซอร์ อาจต้องใช้ feature flag เพื่อเปิดใช้งาน WebGPU
- การใช้ WebGPU ใน Transformers.js v3
- ด้วยความร่วมมือกับ ONNX Runtime Web สามารถเปิดใช้การเร่งความเร็วด้วย WebGPU ได้เพียงตั้งค่า
device: 'webgpu' ตอนโหลดโมเดล
- สามารถใช้ WebGPU กับงานคำนวณ text embedding, การรู้จำเสียงพูด, การจัดประเภทภาพ เป็นต้น
ฟอร์แมตการควอนไทซ์ใหม่ (dtypes)
- ก่อนหน้า Transformers.js v3 สามารถเลือกโมเดลแบบ quantized (q8) หรือ full-precision (fp32) ได้ผ่านตัวเลือก
quantized
- ตอนนี้สามารถเลือกได้จากรายการที่มากขึ้นมากผ่านพารามิเตอร์
dtype
- รายการการควอนไทซ์ที่ใช้ได้จะแตกต่างกันไปตามโมเดล แต่โดยทั่วไปจะมี full-precision ("fp32"), half-precision ("fp16"), 8-bit ("q8", "int8", "uint8"), 4-bit ("q4", "bnb4", "q4f16") เป็นต้น
- dtypes รายโมดูล
- โมเดล encoder-decoder บางตัว เช่น Whisper หรือ Florence-2 มีความไวมากเป็นพิเศษต่อการตั้งค่าการควอนไทซ์ โดยเฉพาะฝั่ง encoder
- ด้วยเหตุนี้จึงเพิ่มความสามารถในการเลือก dtypes รายโมดูล โดยให้แมปชื่อโมดูลไปยัง dtype ได้
สถาปัตยกรรมที่รองรับ 120 แบบ
- รีลีสนี้ทำให้จำนวนสถาปัตยกรรมที่รองรับทั้งหมดเพิ่มเป็น 120 แบบ ครอบคลุมรูปแบบอินพุตและงานที่หลากหลาย
- สถาปัตยกรรมใหม่ที่น่าสนใจ ได้แก่ Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote, RT-DETR เป็นต้น
โปรเจกต์ตัวอย่างและเทมเพลต 25 รายการ
- ส่วนหนึ่งของรีลีสนี้มีการเปิดตัวโปรเจกต์ตัวอย่างและเทมเพลตใหม่ 25 รายการ โดยเน้นการสาธิตการรองรับ WebGPU
- รวมเดโมอย่าง Phi-3.5 WebGPU, Whisper WebGPU เป็นต้น
โมเดลที่แปลงไว้ล่วงหน้ามากกว่า 1200 โมเดล
- ณ เวลาที่รีลีส ชุมชนได้แปลงโมเดลมากกว่า 1200 โมเดลให้เข้ากันได้กับ Transformers.js แล้ว
- หากต้องการแปลงโมเดลของตนเองหรือโมเดลที่ fine-tune แล้ว สามารถใช้สคริปต์สำหรับการแปลงที่มีให้ได้
- หลังอัปโหลดไฟล์ที่สร้างขึ้นไปยัง Hugging Face Hub แล้ว สามารถเพิ่มแท็ก
transformers.js เพื่อให้ผู้อื่นค้นหาและนำไปใช้ได้ง่าย
รองรับ Node.js (ESM + CJS), Deno และ Bun
- ตอนนี้ Transformers.js v3 รองรับ JavaScript runtime ฝั่งเซิร์ฟเวอร์ยอดนิยม 3 ตัว
- Node.js: JavaScript runtime ที่ได้รับความนิยมอย่างกว้างขวาง สร้างบน V8 ของ Chrome และรองรับไลบรารีกับเฟรมเวิร์กจำนวนมาก
- Deno: runtime สมัยใหม่สำหรับ JavaScript และ TypeScript ที่เน้นความปลอดภัยเป็นค่าเริ่มต้น ใช้ ES modules และยังมีการรองรับ WebGPU แบบทดลอง
- Bun: JavaScript runtime ที่รวดเร็วและปรับแต่งเพื่อประสิทธิภาพ พร้อม bundler, transpiler และ package manager ในตัว
บ้านใหม่บน NPM และ GitHub
- ตอนนี้ Transformers.js จะเผยแพร่บน NPM ภายใต้องค์กรทางการของ Hugging Face ในชื่อ @huggingface/transformers (แทน @xenova/transformers ที่ใช้ใน v1 และ v2)
- ย้ายรีโพซิทอรีไปยังองค์กรทางการของ Hugging Face บน GitHub (https://github.com/huggingface/transformers.js) แล้ว และที่นี่จะเป็นบ้านใหม่ต่อไป
1 ความคิดเห็น
Transformers.js - รันทรานส์ฟอร์เมอร์บนเบราว์เซอร์
Transformers.js ที่สามารถรันได้โดยตรงบนเบราว์เซอร์