Alibaba

Alibaba / Qwen3-Embedding-8B

80억 개의 매개변수를 갖춘 텍스트 임베딩 모델로, 32k 컨텍스트 길이를 지원하며 100개 이상의 언어를 지원합니다.

Qwen3-Embedding-8B 소개

Qwen3-Embedding-8B 모델은 Qwen3 Embedding 시리즈에 속한 Alibaba의 80억 매개변수 텍스트 임베딩 모델입니다. dense Qwen3 아키텍처를 기반으로 구축되었으며, 32k 컨텍스트 길이를 지원하고 100개 이상의 인간 언어 및 프로그래밍 언어 전반에서 강력한 다국어 기능을 제공하여 텍스트 검색, 코드 검색, 교차 언어 시나리오에서 효과적인 성능을 구현합니다.

Qwen3-Embedding-8B는 텍스트 임베딩 애플리케이션에서 최첨단 성능을 제공하며, 현재 MTEB 다국어 리더보드(2025년 6월 5일)에서 70.58점으로 1위를 차지하고 있습니다. 또한 모든 차원에 걸친 벡터 정의와 사용자 정의 지침을 통해 유연성을 제공하여 개발자가 특정 작업, 언어 또는 애플리케이션 요구사항에 맞게 모델을 조정할 수 있습니다.

Qwen3-Embedding-8B로 임베딩을 생성하는 방법

벡터 임베딩을 생성하는 주요 방법은 두 가지입니다:

  • PyMilvus: Qwen3-Embedding-8B 모델과 원활하게 통합되는 Milvus용 Python SDK입니다.
  • PAI-EAS: Qwen3-Embedding-8B와 같은 사용자 지정 모델을 배포하기 위한 관리형 서비스입니다(고급 사용자 지정용).

벡터 임베딩이 생성되면 Zilliz Cloud(Milvus 기반의 완전 관리형 벡터 데이터베이스 서비스)에 저장하고 의미적 유사도 검색에 사용할 수 있습니다. 다음은 네 가지 핵심 단계입니다:

PyMilvus를 통해 임베딩을 생성하고 의미적 검색을 위해 Zilliz Cloud에 삽입하기

from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
from pymilvus import MilvusClient

# Load the Qwen3-Embedding-8B model
ef = SentenceTransformerEmbeddingFunction(
    "Qwen/Qwen3-Embedding-8B", trust_remote_code=True
)

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]

# Generate embeddings for documents
docs_embeddings = ef(docs)

queries = ["When was artificial intelligence founded", "Where was Alan Turing born?"]

# Generate embeddings for queries
query_embeddings = ef(queries)

# Connect to Zilliz Cloud with Public Endpoint and API Key
client = MilvusClient(uri=ZILLIZ_PUBLIC_ENDPOINT, token=ZILLIZ_API_KEY)

COLLECTION = "qwen3_embedding_8b_documents"

# Drop collection if it exists
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)

# Create collection with auto-detected dimension
client.create_collection(collection_name=COLLECTION, dimension=ef.dim, auto_id=True)

# Insert documents with embeddings
for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})

# Search for similar documents
results = client.search(
    collection_name=COLLECTION,
    data=query_embeddings,
    # consistency_level="Strong",  # Strong consistency ensures accurate results but may increase latency
    output_fields=["text"],
    limit=2,
)

# Print search results
for i, query in enumerate(queries):
    print(f"\nQuery: {query}")
    for result in results[i]:
        print(f"  - {result['entity']['text']} (distance: {result['distance']:.4f})")

자세한 내용은 PyMilvus Embedding Model 문서를 참조하세요.