Views
No views yet
⚠️ Please visit the GitHub repository for information on how this model works, performance comparisons, and detailed usage examples across multiple programming languages.
1from bge_m3_embedder import create_cpu_embedder, create_cuda_embedder
2
3# Create CPU-optimized embedder
4embedder = create_cpu_embedder("bge_m3_tokenizer.onnx", "bge_m3_model.onnx")
5
6# Generate all three embedding types
7result = embedder.encode("Hello world!")
8
9print(f"Dense: {len(result['dense_vecs'])} dimensions")
10print(f"Sparse: {len(result['lexical_weights'])} tokens")
11print(f"ColBERT: {len(result['colbert_vecs'])} vectors")
12
13# Clean up resources
14embedder.close()
15
16# For CUDA acceleration
17cuda_embedder = create_cuda_embedder("bge_m3_tokenizer.onnx", "bge_m3_model.onnx", device_id=0)
18result = cuda_embedder.encode("Hello world!")
19cuda_embedder.close()
20
21# See full implementation: https://github.com/yuniko-software/bge-m3-onnx/tree/main/samples/python1using BgeM3.Onnx;
2
3// Create CPU-optimized embedder
4using var embedder = M3EmbedderFactory.CreateCpuOptimized("bge_m3_tokenizer.onnx", "bge_m3_model.onnx");
5
6// Generate all embedding types
7var result = embedder.GenerateEmbeddings("Hello world!");
8
9Console.WriteLine($"Dense: {result.DenseEmbedding.Length} dimensions");
10Console.WriteLine($"Sparse: {result.SparseWeights.Count} tokens");
11Console.WriteLine($"ColBERT: {result.ColBertVectors.Length} vectors");
12
13// For CUDA acceleration
14using var cudaEmbedder = M3EmbedderFactory.CreateCudaOptimized("bge_m3_tokenizer.onnx", "bge_m3_model.onnx", deviceId: 0);
15var cudaResult = cudaEmbedder.GenerateEmbeddings("Hello world!");
16
17// See full implementation: https://github.com/yuniko-software/bge-m3-onnx/tree/main/samples/dotnet1import com.yunikosoftware.bgem3onnx.*;
2
3// Create CPU-optimized embedder
4try (M3Embedder embedder = M3EmbedderFactory.createCpuOptimized("bge_m3_tokenizer.onnx", "bge_m3_model.onnx")) {
5 // Generate all embedding types
6 M3EmbeddingOutput result = embedder.generateEmbeddings("Hello world!");
7
8 System.out.println("Dense: " + result.getDenseEmbedding().length + " dimensions");
9 System.out.println("Sparse: " + result.getSparseWeights().size() + " tokens");
10 System.out.println("ColBERT: " + result.getColBertVectors().length + " vectors");
11}
12
13// For CUDA acceleration
14try (M3Embedder cudaEmbedder = M3EmbedderFactory.createCudaOptimized("bge_m3_tokenizer.onnx", "bge_m3_model.onnx", 0)) {
15 M3EmbeddingOutput result = cudaEmbedder.generateEmbeddings("Hello world!");
16 // Process CUDA results
17}
18
19// See full implementation: https://github.com/yuniko-software/bge-m3-onnx/tree/main/samples/java/bge-m3-onnxbge_m3_tokenizer.onnx - ONNX tokenizer for text preprocessingbge_m3_model.onnx - Main BGE-M3 embedding model graphbge_m3_model.onnx_data - Model weights in external data format