Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!

License

NotificationsYou must be signed in to change notification settings

sukakcoding/transformers.js

 
 

Repository files navigation


transformers.js javascript library logo

NPMDownloadsLicenseDocumentation

State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!

Transformers.js is designed to be functionally equivalent to Hugging Face'stransformers python library, meaning you can run the same pretrained models using a very similar API. These models support common tasks in different modalities, such as:

  • 📝Natural Language Processing: text classification, named entity recognition, question answering, language modeling, summarization, translation, multiple choice, and text generation.
  • 🖼️Computer Vision: image classification, object detection, and segmentation.
  • 🗣️Audio: automatic speech recognition and audio classification.
  • 🐙Multimodal: zero-shot image classification.

Transformers.js usesONNX Runtime to run models in the browser. The best part about it, is that you can easilyconvert your pretrained PyTorch, TensorFlow, or JAX models to ONNX using🤗 Optimum.

For more information, check out the fulldocumentation.

Quick tour

It's super simple to translate from existing code! Just like the python library, we support thepipeline API. Pipelines group together a pretrained model with preprocessing of inputs and postprocessing of outputs, making it the easiest way to run models with the library.

Python (original)Javascript (ours)
fromtransformersimportpipeline# Allocate a pipeline for sentiment-analysispipe=pipeline('sentiment-analysis')out=pipe('I love transformers!')# [{'label': 'POSITIVE', 'score': 0.999806941}]
import{pipeline}from'@xenova/transformers';// Allocate a pipeline for sentiment-analysisletpipe=awaitpipeline('sentiment-analysis');letout=awaitpipe('I love transformers!');// [{'label': 'POSITIVE', 'score': 0.999817686}]

You can also use a different model by specifying the model id or path as the second argument to thepipeline function. For example:

// Use a different model for sentiment-analysisletpipe=awaitpipeline('sentiment-analysis','nlptown/bert-base-multilingual-uncased-sentiment');

Installation

To install viaNPM, run:

npm i @xenova/transformers

Alternatively, you can use it in vanilla JS, without any bundler, by using a CDN or static hosting. For example, usingES Modules, you can import the library with:

<scripttype="module">import{pipeline}from'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.5.0';</script>

Examples

Want to jump straight in? Get started with one of our sample applications/templates:

NameDescriptionSource code
Whisper WebSpeech recognition w/ Whisperlink
Doodle DashReal-time sketch-recognition game (seeblog)link
Code PlaygroundIn-browser code completion websitelink
Semantic Image SearchSearch for images with text (Next.js + Supabase)link
ReactMultilingual translation websitelink
Browser extensionText classification extensionlink
ElectronText classification applicationlink
Next.js (client-side)Sentiment analysis (in-browser inference)link
Next.js (server-side)Sentiment analysis (Node.js inference)link
Node.jsSentiment analysis APIlink

Custom usage

By default, Transformers.js useshosted pretrained models andprecompiled WASM binaries, which should work out-of-the-box. You can customize this as follows:

Settings

import{env}from'@xenova/transformers';// Specify a custom location for models (defaults to '/models/').env.localModelPath='/path/to/models/';// Disable the loading of remote models from the Hugging Face Hub:env.allowRemoteModels=false;// Set location of .wasm files. Defaults to use a CDN.env.backends.onnx.wasm.wasmPaths='/path/to/files/';

For a full list of available settings, check out theAPI Reference.

Convert your models to ONNX

We recommend using ourconversion script to convert your PyTorch, TensorFlow, or JAX models to ONNX in a single command. Behind the scenes, it uses🤗 Optimum to perform conversion and quantization of your model.

python -m scripts.convert --quantize --model_id<model_name_or_path>

For example, convert and quantizebert-base-uncased using:

python -m scripts.convert --quantize --model_id bert-base-uncased

This will save the following files to./models/:

bert-base-uncased/├── config.json├── tokenizer.json├── tokenizer_config.json└── onnx/    ├── model.onnx    └── model_quantized.onnx

Supported tasks/models

Here is the list of all tasks and architectures currently supported by Transformers.js.If you don't see your task/model listed here or it is not yet supported, feel freeto open up a feature requesthere.

To find compatible models on the Hub, select the "transformers.js" library tag in the filter menu (or visitthis link).You can refine your search by selecting the task you're interested in (e.g.,text-classification).

Tasks

Natual Language Processing

TaskIDDescriptionSupported?
ConversationalconversationalGenerating conversational text that is relevant, coherent and knowledgable given a prompt.
Fill-Maskfill-maskMasking some of the words in a sentence and predicting which words should replace those masks.
Question Answeringquestion-answeringRetrieve the answer to a question from a given text.
Sentence Similaritysentence-similarityDetermining how similar two texts are.
SummarizationsummarizationProducing a shorter version of a document while preserving its important information.
Table Question Answeringtable-question-answeringAnswering a question about information from a given table.
Text Classificationtext-classification orsentiment-analysisAssigning a label or class to a given text.
Text Generationtext-generationProducing new text by predicting the next word in a sequence.
Text-to-text Generationtext2text-generationConverting one text sequence into another text sequence.
Token Classificationtoken-classification ornerAssigning a label to each token in a text.
TranslationtranslationConverting text from one language to another.
Zero-Shot Classificationzero-shot-classificationClassifying text into classes that are unseen during training.

Vision

TaskIDDescriptionSupported?
Depth Estimationdepth-estimationPredicting the depth of objects present in an image.
Image Classificationimage-classificationAssigning a label or class to an entire image.
Image Segmentationimage-segmentationDivides an image into segments where each pixel is mapped to an object. This task has multiple variants such as instance segmentation, panoptic segmentation and semantic segmentation.
Image-to-Imageimage-to-imageTransforming a source image to match the characteristics of a target image or a target image domain.
Mask Generationmask-generationGenerate masks for the objects in an image.
Object Detectionobject-detectionIdentify objects of certain defined classes within an image.
Video Classificationn/aAssigning a label or class to an entire video.
Unconditional Image Generationn/aGenerating images with no condition in any context (like a prompt text or another image).

Audio

TaskIDDescriptionSupported?
Audio Classificationaudio-classificationAssigning a label or class to a given audio.
Audio-to-Audion/aGenerating audio from an input audio source.
Automatic Speech Recognitionautomatic-speech-recognitionTranscribing a given audio into text.
Text-to-Speechn/aGenerating natural-sounding speech given text input.

Tabular

TaskIDDescriptionSupported?
Tabular Classificationn/aClassifying a target category (a group) based on set of attributes.
Tabular Regressionn/aPredicting a numerical value given a set of attributes.

Multimodal

TaskIDDescriptionSupported?
Document Question Answeringdocument-question-answeringAnswering questions on document images.
Feature Extractionfeature-extractionTransforming raw data into numerical features that can be processed while preserving the information in the original dataset.
Image-to-Textimage-to-textOutput text from a given image.
Text-to-Imagetext-to-imageGenerates images from input text.
Visual Question Answeringvisual-question-answeringAnswering open-ended questions based on an image.
Zero-Shot Image Classificationzero-shot-image-classificationClassifying images into classes that are unseen during training.

Reinforcement Learning

TaskIDDescriptionSupported?
Reinforcement Learningn/aLearning from actions by interacting with an environment through trial and error and receiving rewards (negative or positive) as feedback.

Models

  1. ALBERT (from Google Research and the Toyota Technological Institute at Chicago) released with the paperALBERT: A Lite BERT for Self-supervised Learning of Language Representations, by Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut.
  2. BART (from Facebook) released with the paperBART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension by Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov and Luke Zettlemoyer.
  3. BERT (from Google) released with the paperBERT: Pre-training of Deep Bidirectional Transformers for Language Understanding by Jacob Devlin, Ming-Wei Chang, Kenton Lee and Kristina Toutanova.
  4. CLIP (from OpenAI) released with the paperLearning Transferable Visual Models From Natural Language Supervision by Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever.
  5. CodeGen (from Salesforce) released with the paperA Conversational Paradigm for Program Synthesis by Erik Nijkamp, Bo Pang, Hiroaki Hayashi, Lifu Tu, Huan Wang, Yingbo Zhou, Silvio Savarese, Caiming Xiong.
  6. DETR (from Facebook) released with the paperEnd-to-End Object Detection with Transformers by Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko.
  7. DistilBERT (from HuggingFace), released together with the paperDistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter by Victor Sanh, Lysandre Debut and Thomas Wolf. The same method has been applied to compress GPT2 intoDistilGPT2, RoBERTa intoDistilRoBERTa, Multilingual BERT intoDistilmBERT and a German version of DistilBERT.
  8. FLAN-T5 (from Google AI) released in the repositorygoogle-research/t5x by Hyung Won Chung, Le Hou, Shayne Longpre, Barret Zoph, Yi Tay, William Fedus, Eric Li, Xuezhi Wang, Mostafa Dehghani, Siddhartha Brahma, Albert Webson, Shixiang Shane Gu, Zhuyun Dai, Mirac Suzgun, Xinyun Chen, Aakanksha Chowdhery, Sharan Narang, Gaurav Mishra, Adams Yu, Vincent Zhao, Yanping Huang, Andrew Dai, Hongkun Yu, Slav Petrov, Ed H. Chi, Jeff Dean, Jacob Devlin, Adam Roberts, Denny Zhou, Quoc V. Le, and Jason Wei
  9. GPT Neo (from EleutherAI) released in the repositoryEleutherAI/gpt-neo by Sid Black, Stella Biderman, Leo Gao, Phil Wang and Connor Leahy.
  10. GPT-2 (from OpenAI) released with the paperLanguage Models are Unsupervised Multitask Learners by Alec Radford*, Jeffrey Wu*, Rewon Child, David Luan, Dario Amodei** and Ilya Sutskever**.
  11. GPTBigCode (from BigCode) released with the paperSantaCoder: don't reach for the stars! by Loubna Ben Allal, Raymond Li, Denis Kocetkov, Chenghao Mou, Christopher Akiki, Carlos Munoz Ferrandis, Niklas Muennighoff, Mayank Mishra, Alex Gu, Manan Dey, Logesh Kumar Umapathi, Carolyn Jane Anderson, Yangtian Zi, Joel Lamy Poirier, Hailey Schoelkopf, Sergey Troshin, Dmitry Abulkhanov, Manuel Romero, Michael Lappert, Francesco De Toni, Bernardo García del Río, Qian Liu, Shamik Bose, Urvashi Bhattacharyya, Terry Yue Zhuo, Ian Yu, Paulo Villegas, Marco Zocca, Sourab Mangrulkar, David Lansky, Huu Nguyen, Danish Contractor, Luis Villa, Jia Li, Dzmitry Bahdanau, Yacine Jernite, Sean Hughes, Daniel Fried, Arjun Guha, Harm de Vries, Leandro von Werra.
  12. M2M100 (from Facebook) released with the paperBeyond English-Centric Multilingual Machine Translation by Angela Fan, Shruti Bhosale, Holger Schwenk, Zhiyi Ma, Ahmed El-Kishky, Siddharth Goyal, Mandeep Baines, Onur Celebi, Guillaume Wenzek, Vishrav Chaudhary, Naman Goyal, Tom Birch, Vitaliy Liptchinsky, Sergey Edunov, Edouard Grave, Michael Auli, Armand Joulin.
  13. MarianMT Machine translation models trained usingOPUS data by Jörg Tiedemann. TheMarian Framework is being developed by the Microsoft Translator Team.
  14. MobileBERT (from CMU/Google Brain) released with the paperMobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices by Zhiqing Sun, Hongkun Yu, Xiaodan Song, Renjie Liu, Yiming Yang, and Denny Zhou.
  15. MobileViT (from Apple) released with the paperMobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer by Sachin Mehta and Mohammad Rastegari.
  16. MPNet (from Microsoft Research) released with the paperMPNet: Masked and Permuted Pre-training for Language Understanding by Kaitao Song, Xu Tan, Tao Qin, Jianfeng Lu, Tie-Yan Liu.
  17. MT5 (from Google AI) released with the papermT5: A massively multilingual pre-trained text-to-text transformer by Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, Colin Raffel.
  18. NLLB (from Meta) released with the paperNo Language Left Behind: Scaling Human-Centered Machine Translation by the NLLB team.
  19. RoBERTa (from Facebook), released together with the paperRoBERTa: A Robustly Optimized BERT Pretraining Approach by Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov.
  20. SqueezeBERT (from Berkeley) released with the paperSqueezeBERT: What can computer vision teach NLP about efficient neural networks? by Forrest N. Iandola, Albert E. Shaw, Ravi Krishna, and Kurt W. Keutzer.
  21. T5 (from Google AI) released with the paperExploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer by Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu.
  22. T5v1.1 (from Google AI) released in the repositorygoogle-research/text-to-text-transfer-transformer by Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu.
  23. Vision Transformer (ViT) (from Google AI) released with the paperAn Image is Worth 16x16 Words: Transformers for Image Recognition at Scale by Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby.
  24. Whisper (from OpenAI) released with the paperRobust Speech Recognition via Large-Scale Weak Supervision by Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever.
  25. XLM-RoBERTa (from Facebook AI), released together with the paperUnsupervised Cross-lingual Representation Learning at Scale by Alexis Conneau*, Kartikay Khandelwal*, Naman Goyal, Vishrav Chaudhary, Guillaume Wenzek, Francisco Guzmán, Edouard Grave, Myle Ott, Luke Zettlemoyer and Veselin Stoyanov.

About

State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript95.2%
  • Python4.8%

[8]ページ先頭

©2009-2025 Movatter.jp