14 điểm bởi xguru 2024-10-26 | 1 bình luận | Chia sẻ qua WhatsApp
  • Hỗ trợ WebGPU (nhanh hơn WASM tới 100 lần)
  • Các định dạng lượng tử hóa mới dtypes
  • Hỗ trợ 120 kiến trúc
  • 25 dự án ví dụ và template mới
  • Hơn 1200 mô hình đã được chuyển đổi sẵn
  • Tương thích với Node.js (ESM + CJS), Deno và Bun

Hỗ trợ WebGPU

  • WebGPU là tiêu chuẩn web mới dành cho đồ họa tăng tốc và tính toán
  • Cho phép nhà phát triển sử dụng trực tiếp GPU của hệ thống trong trình duyệt để thực hiện các phép tính hiệu năng cao
  • Là thế hệ kế thừa của WebGL, cho phép tương tác trực tiếp hơn với GPU hiện đại nên hiệu năng được cải thiện đáng kể
  • Đồng thời hỗ trợ tính toán GPU đa dụng nên rất phù hợp cho machine learning
  • Tính đến tháng 10 năm 2024, tỷ lệ hỗ trợ WebGPU trên toàn thế giới vào khoảng 70%
  • Tùy trình duyệt, có thể cần dùng cờ tính năng để kích hoạt WebGPU
  • Cách dùng WebGPU trong Transformers.js v3
    • Nhờ hợp tác với ONNX Runtime Web, chỉ cần đặt device: 'webgpu' khi tải mô hình là có thể bật tăng tốc WebGPU
    • Có thể dùng WebGPU cho tính toán text embedding, nhận dạng giọng nói, phân loại hình ảnh, v.v.

Các định dạng lượng tử hóa mới (dtypes)

  • Trước Transformers.js v3, với tùy chọn quantized chỉ có thể chọn biến thể mô hình quantized (q8) hoặc full-precision (fp32)
  • Giờ đây có thể chọn từ danh sách phong phú hơn nhiều thông qua tham số dtype
  • Danh sách lượng tử hóa khả dụng khác nhau tùy mô hình, nhưng nhìn chung gồm full-precision ("fp32"), half-precision ("fp16"), 8-bit ("q8", "int8", "uint8"), 4-bit ("q4", "bnb4", "q4f16") v.v.
  • dtypes theo từng mô-đun
    • Một số mô hình encoder-decoder như Whisper hay Florence-2 đặc biệt nhạy với thiết lập lượng tử hóa, nhất là ở encoder
    • Vì vậy đã bổ sung tính năng cho phép chọn dtypes theo từng mô-đun bằng cách cung cấp ánh xạ từ tên mô-đun sang dtype

120 kiến trúc được hỗ trợ

  • Trong bản phát hành này, tổng số kiến trúc được hỗ trợ đã tăng lên 120, bao phủ nhiều dạng đầu vào và tác vụ khác nhau
  • Một số kiến trúc mới đáng chú ý: Phi-3, Gemma & Gemma 2, LLaVa, Moondream, Florence-2, MusicGen, Sapiens, Depth Pro, PyAnnote, RT-DETR, v.v.

25 dự án ví dụ và template

  • Là một phần của bản phát hành này, 25 dự án ví dụ và template mới đã được ra mắt, tập trung trình diễn hỗ trợ WebGPU
  • Bao gồm các demo như Phi-3.5 WebGPU, Whisper WebGPU, v.v.

Hơn 1200 mô hình đã được chuyển đổi sẵn

  • Tính tại thời điểm phát hành, cộng đồng đã chuyển đổi hơn 1200 mô hình để tương thích với Transformers.js
  • Nếu muốn chuyển đổi mô hình riêng hoặc bản fine-tune của mình, có thể dùng script chuyển đổi được cung cấp
  • Sau khi tải các tệp được tạo lên Hugging Face Hub và thêm thẻ transformers.js, người khác có thể dễ dàng tìm thấy và sử dụng

Tương thích với Node.js (ESM + CJS), Deno và Bun

  • Transformers.js v3 hiện tương thích với ba runtime JavaScript phía máy chủ phổ biến nhất
  • Node.js: runtime JavaScript phổ biến được xây dựng trên V8 của Chrome, hỗ trợ hệ sinh thái thư viện và framework rộng lớn
  • Deno: runtime hiện đại cho JavaScript và TypeScript với bảo mật tốt theo mặc định, dùng ES module và cũng cung cấp hỗ trợ WebGPU thử nghiệm
  • Bun: runtime JavaScript nhanh, tối ưu cho hiệu năng, cung cấp sẵn bundler, transpiler và package manager

Ngôi nhà mới trên NPM và GitHub

  • Transformers.js giờ sẽ được phát hành dưới tên @huggingface/transformers trong tổ chức Hugging Face chính thức trên NPM (thay cho @xenova/transformers đã dùng ở v1 và v2)
  • Kho mã nguồn cũng đã được chuyển sang tổ chức Hugging Face chính thức trên GitHub (https://github.com/huggingface/transformers.js), và đây sẽ là ngôi nhà mới