사용법과 질의 인스트럭션

사용법과 질의 인스트럭션

BGE는 sentence-transformers, FlagEmbedding, HuggingFace 등 어디서든 쓸 수 있어요. 문장을 임베딩하려면 우선 정규화한 뒤 사용해요.

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('BAAI/bge-large-en-v1.5')
sentences = ['example sentence', 'another sentence']
sentence_embeddings = model.encode(sentences, normalize_embeddings=True)

검색(리트리벌)에서는 질의에 인스트럭션을 붙여 주면 더 좋아요. 문서(passage)에는 인스트럭션을 붙이지 않아요.

query = model.encode(
    ["Represent this sentence for searching relevant passages: " + query],
    normalize_embeddings=True)

LangChain의 HuggingFaceEmbeddings에서는 query_encode_kwargs로 이 프롬프트를 지정해요. bge-m3는 쿼리 프롬프트 없이 훈련됐으므로 별도 설정이 필요 없어요.

embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-large-en-v1.5",
    encode_kwargs={"normalize_embeddings": True},
    query_encode_kwargs={
        "prompt": "Represent this sentence for searching relevant passages: ",
        "normalize_embeddings": True,
    },
)

더 알아보기