14 คะแนน โดย xguru 2024-10-26 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • รองรับ 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) แล้ว และที่นี่จะเป็นบ้านใหม่ต่อไป