Static, type-safe wrappers for machine learning pipelines with lazy loading.
This TypeScript library provides a simple and efficient way to interact with machine learning models, inspired by @xenova/transformers pipelines.
Benefits:
- Static Typing: Benefit from strong typing for enhanced code maintainability and error detection.
- Lazy Loading: Optimize performance by loading models only when needed.
- Simplified Interface: Enjoy an easy-to-use API for common machine learning tasks.
npm install @rokikon/pipelinesThis library provides static classes for each pipeline task.
Example:
import { TextClassificationPipeline } from '@rokikon/pipelines';
async function main() {
const results = await TextClassificationPipeline.run("This is a test sentence.");
console.log(results);
}
main();Customize pipeline behavior with different options:
import { TextGenerationPipeline } from '@rokikon/pipelines';
async function main() {
const results = await TextGenerationPipeline.run("This is a test sentence", {
model: "onnx-community/Llama-3.2-1B-Instruct-q4f16",
options: {
dtype: "q4f16",
device: "webgpu",
},
});
console.log(results);
}
main();Warm up the model:
You can use the warmup method to pre-load a model and avoid latency on the first run. This is especially useful for large models that take time to initialize.
Don't forget to run same model later.
await TextGenerationPipeline.warmup({
model: "onnx-community/Llama-3.2-1B-Instruct-q4f16",
options: {
dtype: "q4f16",
device: "webgpu",
max_new_tokens: 2048,
},
});AudioClassificationPipeline- Classify audio into predefined categories.AutomaticSpeechRecognitionPipeline- Transcribe spoken language into text (alternative toSpeechRecognitionPipeline).ZeroShotAudioClassificationPipeline- Classify audio into arbitrary categories without prior training.
DepthEstimationPipeline- Predict the depth of an image.ImageCaptioningPipeline- Generate descriptive captions for images.ImageFeatureExtractionPipeline- Extract meaningful features from images.ImageSegmentationPipeline- Partition an image into multiple segments.ImageToImagePipeline- Transform images from one style to another.ImageToTextPipeline- Generate textual descriptions from images (similar to Image Captioning but may have different underlying implementations).ObjectDetectionPipeline- Locate and identify objects within an image.ZeroShotImageClassificationPipeline- Classify images into arbitrary categories without prior training.ZeroShotObjectDetectionPipeline- Detect objects in an image without specific training for those objects.
DocumentQuestionAnsweringPipeline- Extract answers to questions from a given document.FeatureExtractionPipeline- Extract meaningful features from text.FillMaskPipeline- Predict missing words in a text.QuestionAnsweringPipeline- Answer questions based on a given context.SummarizationPipeline- Condense lengthy text into concise summaries.TextClassificationPipeline- Classify text into predefined categories.TextGenerationPipeline- Generate new text, such as creative writing or code.TextToAudioPipeline- Convert text into spoken audio.TextToTextGenerationPipeline- Transform or generate new text from given text, including tasks like translation and paraphrasing.TokenClassificationPipeline- Classify individual tokens (words or sub-words) in a text, useful for tasks like Named Entity Recognition (NER).TranslationPipeline- Translate text from one language to another.ZeroShotClassifierPipeline- Classify text into arbitrary categories without any prior training.
Contributions are welcome! Feel free to open issues and pull requests. https://github.com/rokikon/pipelines-ts
This project is licensed under the MIT License.