https://xenova.github.io/transformers.js/ Transformers.js * Demo * Getting Started * Usage * Examples Viewing content Transformers.js Run Transformers in your browser! Get Started View Source Demo Don't believe us? Play around with some of these models: Task: [Translation w/ t5-small (95 MB) ] Languages: [English] to [French ] Parameters: Max length [50 ] No. beams [1 ] No. samples [5 ] Temp. [1 ] Top K [20 ] Sample [Yes] [The Shawshank Redemp] [ ] [ ] [ ] [ ] [The goal of life is ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] Context: [The Amazon rainfores] [ ] [ ] [ ] [ ] [ ] [ ] Question: [What proportion of t] [ ] [ ] [ ] [ ] Answer: [ ] [ ] [ ] [ ] [ ] [Hello, how are you? ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [The tower is 324 met] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [I enjoy walking with] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [def fib(n): ] def fib(n): Audio: [Example 1] [ ] Your browser does not support the audio element. [ ] [ ] [ ] [ ] [ ] [ ] Image: [Example 1] [ ] [football-m] [ ] [ ] [ ] [ ] [ ] [ ] Image: [Example 1] [ ] [tiger] Image: [Example 1] [ ] [football-m] Possible class names (comma-separated): [football, airport, a] Notes: * Clicking Generate for the first time will download the corresponding model from the HuggingFace Hub. All subsequent requests will use the cached model. * For more information about the different parameters, check out HuggingFace's guide to text generation. Generate Loading model files... (only run once) Getting Started Installation If you use npm, you can install it using: npm i @xenova/transformers Alternatively, you can use it in a Basic example It's super easy to translate from existing code! from transformers import pipeline # Allocate a pipeline for sentiment-analysis pipe = pipeline('sentiment-analysis') out = pipe('I love transformers!') # [{'label': 'POSITIVE', 'score': 0.999806941}] Python (original) import { pipeline } from "@xenova/transformers"; // Allocate a pipeline for sentiment-analysis let pipe = await pipeline('sentiment-analysis'); let out = await pipe('I love transformers!'); // [{'label': 'POSITIVE', 'score': 0.999817686}] JavaScript (ours) In the same way as the Python library, you can use a different model by providing its name as the second argument to the pipeline function. For example: // Use a different model for sentiment-analysis let pipe = await pipeline('sentiment-analysis', 'nlptown/bert-base-multilingual-uncased-sentiment'); Custom setup By default, Transformers.js uses hosted models precompiled WASM binaries, which should work out-of-the-box. You can override this behaviour as follows: import { env } from "@xenova/transformers"; // Use a different host for models. // - `remoteURL` defaults to use the HuggingFace Hub // - `localURL` defaults to '/models/onnx/quantized/' env.remoteURL = 'https://www.example.com/'; env.localURL = '/path/to/models/'; // Set whether to use remote or local models. Defaults to true. // - If true, use the path specified by `env.remoteURL`. // - If false, use the path specified by `env.localURL`. env.remoteModels = false; // Set parent path of .wasm files. Defaults to use a CDN. env.onnx.wasm.wasmPaths = '/path/to/files/'; Usage We currently support the following tasks and models, which can be used with the pipeline function. 1. sentiment-analysis (a.k.a. text-classification) Supported models: distilbert-base-uncased-finetuned-sst-2-english, nlptown/ bert-base-multilingual-uncased-sentiment, distilgpt2. For more information, check out the Text Classification docs . 2. question-answering Supported models: distilbert-base-cased-distilled-squad, distilbert-base-uncased-distilled-squad. For more information, check out the Question Answering docs . 3. fill-mask Supported models: xlm-roberta-base, albert-large-v2, albert-base-v2, distilroberta-base, roberta-base, bert-base-cased, bert-base-uncased, bert-base-multilingual-uncased, bert-base-multilingual-cased, distilbert-base-cased, distilbert-base-uncased. For more information, check out the Language Modelling docs . 4. summarization Supported models: t5-small, t5-base, t5-v1_1-small, t5-v1_1-base, sshleifer/distilbart-cnn-6-6, sshleifer/distilbart-cnn-12-6. For more information, check out the Summarization docs . 5. translation (translation_en_to_de, translation_en_to_fr, translation_en_to_ro) Supported models: t5-small, t5-base, t5-v1_1-small, t5-v1_1-base. For more information, check out the Translation docs . 6. text2text-generation Supported models: google/flan-t5-small, google/flan-t5-base, t5-small, t5-base, google/t5-v1_1-small, google/t5-v1_1-base, sshleifer/distilbart-cnn-6-6, sshleifer/distilbart-cnn-12-6. For more information, check out the Text Generation docs . 7. text-generation Supported models: gpt2, distilgpt2, Salesforce/codegen-350M-mono, Salesforce/codegen-350M-multi, Salesforce/codegen-350M-nl. For more information, check out the Text Generation docs . 8. automatic-speech-recognition Supported models: openai/whisper-tiny.en, openai/whisper-tiny, openai/whisper-small.en, openai/whisper-small, openai/ whisper-base.en, openai/whisper-base. For more information, check out the Automatic Speech Recognition docs . 9. image-to-text Supported models: nlpconnect/vit-gpt2-image-captioning. For more information, check out the Image-to-Text docs . 10. image-classification Supported models: google/vit-base-patch16-224. For more information, check out the Image Classification docs . 11. zero-shot-image-classification Supported models: openai/clip-vit-base-patch16, openai/ clip-vit-base-patch32. For more information, check out the Zero-Shot Image Classification . 12. embeddings Supported models: sentence-transformers/all-MiniLM-L6-v2, sentence-transformers/all-MiniLM-L12-v2, sentence-transformers/ all-distilroberta-v1, sentence-transformers/ paraphrase-albert-base-v2, sentence-transformers/ paraphrase-albert-small-v2. For more information, check out the Embeddings docs . The following model types are supported: 1. BERT Tasks: Masked language modelling (AutoModelForMaskedLM), question answering (AutoModelForQuestionAnswering), and sequence classification (AutoModelForSequenceClassification). For more information, check out the BERT docs. 2. ALBERT Tasks: Masked language modelling (AutoModelForMaskedLM). For more information, check out the ALBERT docs. 3. DistilBERT Tasks: Masked language modelling (AutoModelForMaskedLM), question answering (AutoModelForQuestionAnswering), and sequence classification (AutoModelForSequenceClassification). For more information, check out the DistilBERT docs. 4. T5 Tasks: Sequence-to-sequence for translation/summarization (AutoModelForSeq2SeqLM). For more information, check out the T5 docs. 5. T5v1.1 Tasks: Sequence-to-sequence (AutoModelForSeq2SeqLM). For more information, check out the T5v1.1 docs. 6. FLAN-T5 Tasks: Sequence-to-sequence for over 1000 tasks (AutoModelForSeq2SeqLM). For more information, check out the FLAN-T5 docs. 7. GPT2/DistilGPT2 Tasks: Text generation (AutoModelForCausalLM). For more information, check out the GPT2 docs or DistilGPT2 docs. 8. BART Tasks: Sequence-to-sequence for summarization (AutoModelForSeq2SeqLM). For more information, check out the BART docs. 9. CodeGen Tasks: Text generation (AutoModelForCausalLM). For more information, check out the CodeGen docs. 10. Whisper Tasks: Automatic speech recognition (AutoModelForSeq2SeqLM). For more information, check out the Whisper docs. 11. CLIP Tasks: Zero-shot Image classification (AutoModel). For more information, check out the CLIP docs. 12. Vision Transformer (ViT) Tasks: Image classification (AutoModelForImageClassification). For more information, check out the Vision Transformer docs. 13. VisionEncoderDecoderModel Tasks: Image to text (AutoModelForVision2Seq). For more information, check out the Vision Encoder Decoder Models docs. Don't see your model type or task supported? Raise an issue on GitHub, and if there's enough demand, we will add it! We use ONNX Runtime to run the models in the browser, so you must first convert your PyTorch model to ONNX (which can be done using our conversion script). Examples Coming soon... In the meantime, check out the source code for the demo here. Copyright (c) Xenova 2023