feat: 임베딩 모델 변경 — nomic-embed-text → bge-m3 (1024차원, 다국어)

- config.yaml: embedding model → bge-m3
- document.py: Vector(768) → Vector(1024)
- embed_worker.py: 모델 버전 업데이트
- migration 011: 벡터 컬럼 재생성 (기존 임베딩 초기화)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-06 12:49:45 +09:00
parent 204c5ca99f
commit bf8efd1cd3
4 changed files with 12 additions and 5 deletions

View File

@@ -43,7 +43,7 @@ class Document(Base):
ai_confidence: Mapped[float | None] = mapped_column()
# 3계층: 벡터 임베딩
embedding = mapped_column(Vector(768), nullable=True)
embedding = mapped_column(Vector(1024), nullable=True)
embed_model_version: Mapped[str | None] = mapped_column(String(50))
embedded_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))

View File

@@ -1,4 +1,4 @@
"""벡터 임베딩 워커 — GPU 서버 nomic-embed-text 호출"""
"""벡터 임베딩 워커 — GPU 서버 bge-m3 호출"""
from datetime import datetime, timezone
@@ -10,9 +10,9 @@ from models.document import Document
logger = setup_logger("embed_worker")
# 임베딩용 텍스트 최대 길이 (nomic-embed-text: 8192 토큰)
# 임베딩용 텍스트 최대 길이 (bge-m3: 8192 토큰)
MAX_EMBED_TEXT = 6000
EMBED_MODEL_VERSION = "nomic-embed-text-v1.5"
EMBED_MODEL_VERSION = "bge-m3"
async def process(document_id: int, session: AsyncSession) -> None:

View File

@@ -26,7 +26,7 @@ ai:
embedding:
endpoint: "http://ollama:11434/api/embeddings"
model: "nomic-embed-text"
model: "bge-m3"
vision:
endpoint: "http://ollama:11434/api/generate"

View File

@@ -0,0 +1,7 @@
-- 벡터 차원 변경: 768 → 1024 (nomic-embed-text → bge-m3)
-- 기존 임베딩 데이터 초기화 (재생성 필요)
ALTER TABLE documents DROP COLUMN IF EXISTS embedding;
ALTER TABLE documents ADD COLUMN embedding vector(1024);
-- 기존 임베딩 메타 초기화
UPDATE documents SET embedded_at = NULL, embed_model_version = NULL;