AI/EXPLORER
ToolsCategoriesSitesLLMsCompareAI QuizAlternativesPremium
—AI Tools
—Sites & Blogs
—LLMs & Models
—Categories
AI Explorer

Find and compare the best artificial intelligence tools for your projects.

Made within France

Explore

  • ›All tools
  • ›Sites & Blogs
  • ›LLMs & Models
  • ›Compare
  • ›Chatbots
  • ›AI Images
  • ›Code & Dev

Company

  • ›Premium
  • ›About
  • ›Contact
  • ›Blog

Legal

  • ›Legal notice
  • ›Privacy
  • ›Terms

© 2026 AI Explorer·All rights reserved.

HomeLLMsbge m3

bge m3

by Xenova

Open source · 18k downloads · 46 likes

2.1
(46 reviews)EmbeddingAPI & Local
About

The BGE-M3 model is an advanced multilingual embedding solution designed to generate accurate and high-performance vector representations from text. It excels in tasks such as information retrieval, semantic classification, and document similarity comparison, thanks to its ability to understand and encode complex linguistic nuances. Its main strength lies in its versatility, supporting multiple languages and offering flexibility tailored to a variety of use cases, from text data analysis to enhancing recommendation systems. What sets it apart is its optimization for web environments, particularly through ONNX weights compatible with Transformers.js, ensuring seamless and high-performance integration in JavaScript applications. Ideal for developers seeking to deploy lightweight yet effective AI solutions without compromising result quality.

Documentation

https://huggingface.co/BAAI/bge-m3 with ONNX weights to be compatible with Transformers.js.

Usage (Transformers.js)

If you haven't already, you can install the Transformers.js JavaScript library from NPM using:

Bash
npm i @huggingface/transformers

You can then use the model to compute embeddings, as follows:

Js
import { pipeline } from '@huggingface/transformers';

// Create a feature-extraction pipeline
const extractor = await pipeline('feature-extraction', 'Xenova/bge-m3');

// Compute sentence embeddings
const texts = ["What is BGE M3?", "Defination of BM25"]
const embeddings = await extractor(texts, { pooling: 'cls', normalize: true });
console.log(embeddings);
// Tensor {
//   dims: [ 2, 1024 ],
//   type: 'float32',
//   data: Float32Array(2048) [ -0.0340719036757946, -0.04478546231985092, ... ],
//   size: 2048
// }

console.log(embeddings.tolist()); // Convert embeddings to a JavaScript list
// [
//   [ -0.0340719036757946, -0.04478546231985092, -0.004497686866670847, ... ],
//   [ -0.015383965335786343, -0.041989751160144806, -0.025820579379796982, ... ]
// ]

You can also use the model for retrieval. For example:

Js
import { pipeline, cos_sim } from '@huggingface/transformers';

// Create a feature-extraction pipeline
const extractor = await pipeline('feature-extraction', 'Xenova/bge-m3');

// Define query to use for retrieval
const query = 'What is BGE M3?';

// List of documents you want to embed
const texts = [
  'BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.',
  'BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document',
];

// Compute sentence embeddings
const embeddings = await extractor(texts, { pooling: 'cls', normalize: true });

// Compute query embeddings
const query_embeddings = await extractor(query, { pooling: 'cls', normalize: true });

// Sort by cosine similarity score
const scores = embeddings.tolist().map(
  (embedding, i) => ({
    id: i,
    score: cos_sim(query_embeddings.data, embedding),
    text: texts[i],
  })
).sort((a, b) => b.score - a.score);
console.log(scores);
// [
//   { id: 0, score: 0.62532672968664, text: 'BGE M3 is an embedding model supporting dense retrieval, lexical matching and multi-vector interaction.' },
//   { id: 1, score: 0.33111060648806, text: 'BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document' },
// ]

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).

Capabilities & Tags
transformers.jsonnxxlm-robertafeature-extraction
Links & Resources
Specifications
CategoryEmbedding
AccessAPI & Local
LicenseOpen Source
PricingOpen Source
Rating
2.1

Try bge m3

Access the model directly