Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:FlagOpen FlagEmbedding FlagAutoModel From Finetuned

From Leeroopedia


Field Value
type API Doc
source Repo: FlagOpen/FlagEmbedding https://github.com/FlagOpen/FlagEmbedding
domains NLP, Information_Retrieval

Overview

Concrete tool for loading BGE embedding models provided by the FlagEmbedding library.

Description

FlagAutoModel is a factory class that automatically selects the appropriate embedder implementation. It uses AUTO_EMBEDDER_MAPPING to detect model type from the model name, or accepts an explicit model_class parameter. Returns an instance of an AbsEmbedder subclass.

The mapping resolves to one of four concrete embedder classes:

  • BaseEmbedder -- for encoder-only models
  • M3Embedder -- for multilingual M3 models (dense + sparse + ColBERT)
  • BaseLLMEmbedder -- for decoder-only LLM-based embedders
  • ICLLLMEmbedder -- for in-context learning LLM embedders

Usage

Import when loading any BGE embedding model for inference, evaluation, or validation of fine-tuned models.

Code Reference

Source Location: Repository FlagOpen/FlagEmbedding, File: FlagEmbedding/inference/auto_embedder.py, Lines: L23-111

Signature:

@classmethod
def from_finetuned(
    cls,
    model_name_or_path: str,
    model_class: Optional[Union[str, EmbedderModelClass]] = None,
    normalize_embeddings: bool = True,
    use_fp16: bool = True,
    query_instruction_for_retrieval: Optional[str] = None,
    devices: Optional[Union[str, List[str]]] = None,
    pooling_method: Optional[str] = None,
    trust_remote_code: Optional[bool] = None,
    query_instruction_format: Optional[str] = None,
    **kwargs,
) -> AbsEmbedder:

Import:

from FlagEmbedding import FlagAutoModel

I/O Contract

Inputs:

Parameter Type Required Description
model_name_or_path str Yes HuggingFace model name or local path
model_class Optional[str] No One of: encoder-only-base, encoder-only-m3, decoder-only-base, decoder-only-icl
normalize_embeddings bool No Normalize output vectors (default True)
use_fp16 bool No Half-precision inference (default True)
query_instruction_for_retrieval Optional[str] No Instruction prefix for queries
devices Optional[Union[str, List[str]]] No GPU devices for multi-GPU inference
pooling_method Optional[str] No cls, mean, or last_token
trust_remote_code Optional[bool] No Trust remote code from HuggingFace Hub
query_instruction_format Optional[str] No Template for query instruction formatting

Outputs:

Name Type Description
return AbsEmbedder Instance of BaseEmbedder, M3Embedder, BaseLLMEmbedder, or ICLLLMEmbedder

Usage Examples

Example 1: Basic loading of an encoder-only model

from FlagEmbedding import FlagAutoModel

model = FlagAutoModel.from_finetuned('BAAI/bge-base-en-v1.5')

Example 2: Explicit model_class specification

from FlagEmbedding import FlagAutoModel

model = FlagAutoModel.from_finetuned(
    'BAAI/bge-m3',
    model_class='encoder-only-m3'
)

Example 3: Multi-GPU loading

from FlagEmbedding import FlagAutoModel

model = FlagAutoModel.from_finetuned(
    'BAAI/bge-base-en-v1.5',
    devices=['cuda:0', 'cuda:1']
)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment