par Xenova
Open source · 1M downloads · 114 likes
Le modèle all-MiniLM-L6-v2 est une version optimisée du célèbre encodeur de phrases MiniLM, conçue pour générer des embeddings textuels de haute qualité tout en restant légère et efficace. Il transforme des phrases ou des paragraphes en vecteurs numériques denses, capturant leur sens sémantique pour des tâches comme la recherche d'informations, la classification ou la similarité textuelle. Ses principaux atouts résident dans sa rapidité d'exécution et sa compatibilité avec les environnements JavaScript via Transformers.js, ce qui le rend idéal pour des applications web ou mobiles. Ce modèle excelle particulièrement dans les scénarios nécessitant une intégration fluide et performante, comme les moteurs de recommandation ou les systèmes de recherche sémantique. Sa légèreté et sa précision en font un choix polyvalent pour des solutions IA accessibles et performantes.
https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 with ONNX weights to be compatible with Transformers.js.
If you haven't already, you can install the Transformers.js JavaScript library from NPM using:
npm i @huggingface/transformers
You can then use the model to compute embeddings like this:
import { pipeline } from '@huggingface/transformers';
// Create a feature-extraction pipeline
const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2');
// Compute sentence embeddings
const sentences = ['This is an example sentence', 'Each sentence is converted'];
const output = await extractor(sentences, { pooling: 'mean', normalize: true });
console.log(output);
// Tensor {
// dims: [ 2, 384 ],
// type: 'float32',
// data: Float32Array(768) [ 0.04592696577310562, 0.07328180968761444, ... ],
// size: 768
// }
You can convert this Tensor to a nested JavaScript array using .tolist():
console.log(output.tolist());
// [
// [ 0.04592696577310562, 0.07328180968761444, 0.05400655046105385, ... ],
// [ 0.08188057690858841, 0.10760223120450974, -0.013241755776107311, ... ]
// ]
Note: Having a separate repo for ONNX weights is intended to be a temporary solution until WebML gains more traction. If you would like to make your models web-ready, we recommend converting to ONNX using 🤗 Optimum and structuring your repo like this one (with ONNX weights located in a subfolder named onnx).