• Transformers.js เป็นไลบรารีแมชชีนเลิร์นนิงล้ำสมัยสำหรับเว็บที่สามารถรัน 🤗 Transformers ได้โดยตรงในเบราว์เซอร์โดยไม่ต้องมีเซิร์ฟเวอร์
  • ออกแบบให้มีความเทียบเท่าด้านฟังก์ชันกับไลบรารี transformers ของ Python จึงสามารถรันโมเดลที่ผ่านการพรีเทรนชุดเดียวกันได้ด้วย API ที่คล้ายกัน
  • รองรับงานทั่วไปหลากหลายรูปแบบ เช่น การประมวลผลภาษาธรรมชาติ คอมพิวเตอร์วิทัศน์ เสียง และมัลติโหมด
  • ใช้ ONNX Runtime เพื่อรันโมเดลในเบราว์เซอร์ และสามารถใช้ 🤗 Optimum เพื่อแปลงโมเดลพรีเทรนจาก PyTorch, TensorFlow หรือ JAX ไปเป็น ONNX ได้อย่างง่ายดาย

ฟีเจอร์หลัก

  • รองรับ pipeline API แบบเดียวกับไลบรารี Python ทำให้ย้ายจากโค้ดเดิมได้ง่าย
  • รองรับงานและสถาปัตยกรรมที่หลากหลาย (พร้อมสถานะการรองรับและลิงก์เอกสาร/โมเดล)
    • การประมวลผลภาษาธรรมชาติ: Fill-Mask, Question Answering, Sentence Similarity, Summarization, Text Classification, Text Generation, Text-to-text Generation, Token Classification, Translation, Zero-Shot Classification, Feature Extraction เป็นต้น
    • วิชัน: Depth Estimation, Image Classification, Image Segmentation, Image-to-Image, Object Detection, Image Feature Extraction เป็นต้น
    • เสียง: Audio Classification, Automatic Speech Recognition, Text-to-Speech
    • มัลติโหมด: Document Question Answering, Image-to-Text, Zero-Shot Audio/Image Classification, Zero-Shot Object Detection เป็นต้น
  • ใช้โมเดลพรีเทรนที่โฮสต์ไว้และไบนารี WASM ที่คอมไพล์ล่วงหน้าเป็นค่าเริ่มต้น และสามารถปรับแต่งเองได้

วิธีติดตั้งและการใช้งาน

  • ติดตั้งผ่าน NPM ได้: npm i @xenova/transformers
  • ใช้งานกับ vanilla JS ได้โดยไม่ต้องใช้บันเดลเลอร์ ผ่าน CDN หรือการโฮสต์แบบสแตติก
  • มีแอปพลิเคชัน/เทมเพลตตัวอย่างหลากหลาย: Whisper Web, Doodle Dash, Code Playground, Semantic Image Search, Vanilla JavaScript, React, Text to speech, Browser extension, Electron, Next.js, Node.js เป็นต้น
  • สามารถปรับแต่งเส้นทางโมเดล การโหลดโมเดลระยะไกล ตำแหน่งไฟล์ WASM และอื่น ๆ ได้ผ่านการตั้งค่าสภาพแวดล้อม
  • สามารถใช้สคริปต์แปลงที่มีให้เพื่อแปลงโมเดล PyTorch, TensorFlow, JAX ไปเป็น ONNX ได้

โมเดลที่รองรับ

  • รองรับโมเดลหลากหลาย เช่น ALBERT, Audio Spectrogram Transformer, BART, BEiT, BERT, Blenderbot, BLOOM, CamemBERT, Chinese-CLIP, CLAP, CLIP, CLIPSeg, CodeGen, ConvBERT, ConvNeXT, DeBERTa, DeiT, Depth Anything, DETR, DINOv2, DistilBERT, DiT, Donut, DPT, EfficientNet, ELECTRA, ESM, Falcon, FLAN-T5, GLPN, GPT Neo, GPT NeoX, GPT-2, GPT-J, GPTBigCode, HerBERT, Hubert, LongT5, LLaMA, MPNet, MPT, MT5, NLLB, Nougat, OPT เป็นต้น

ความเห็นของ GN⁺

  • Transformers.js เป็นไลบรารีที่มีประโยชน์ซึ่งช่วยให้สามารถรันโมเดล Transformer สมัยใหม่หลากหลายแบบในเบราว์เซอร์ได้โดยไม่ต้องมีเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งรองรับงานในหลายด้าน เช่น การประมวลผลภาษาธรรมชาติ คอมพิวเตอร์วิทัศน์ และเสียง จึงนำไปใช้งานได้กว้าง
  • มี API ที่คล้ายกับไลบรารี Python ทำให้ย้ายจากโค้ดเดิมได้ง่าย และรองรับโมเดลพรีเทรนจำนวนมาก จึงสามารถนำไปใช้ได้ทันทีโดยไม่ต้องฝึกเพิ่ม
  • มีแอปพลิเคชันตัวอย่างและเทมเพลตให้ จึงนำไปประยุกต์ใช้ได้ง่ายในหลายกรณี และยังมีความสามารถในการปรับแต่งที่ทำให้มีความยืดหยุ่นสูง
  • อย่างไรก็ตาม การทำงานบนเบราว์เซอร์ย่อมมีข้อจำกัดด้านทรัพยากร และการต้องเพิ่ม/รองรับโมเดลใหม่ ๆ อย่างต่อเนื่องก็อาจเป็นภาระในแง่การพัฒนาและบำรุงรักษา
  • เฟรมเวิร์ก ML บนเบราว์เซอร์ที่คล้ายกันได้แก่ TensorFlow.js, ONNX.js, WebDNN เป็นต้น โดยเฉพาะ TensorFlow.js รองรับทั้งเบราว์เซอร์และ Node.js และมีความสามารถเพิ่มเติม เช่น transfer learning และการแสดงผลภาพ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น