C.W.K.
Stream
Lesson 03 of 05 · published

프로덕션 안 깨고 임베딩 versioning

~22 min · ops, migrations

Level 0Scout
0 XP0/41 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

시간 따라 바뀌는 세 가지

  1. 임베딩 모델 — 제공자가 v3 release, 업그레이드 원함
  2. 청킹 전략 — splitter 또는 청크 크기 변경
  3. 메타데이터 스키마 — tenant_id 또는 권한 레벨 추가

셋 다 재-ingest 필요. 질문은 maintenance window 없이 어떻게.

버전 suffix discipline

collection (또는 테이블) 이름에 버전 인코딩: docs-bge-m3-v3, chats-openai-large-2026q2. 앱이 config pointer 유지. 마이그레이션: 새 collection 평행 빌드, 검증, pointer 전환, 일주일 뒤 옛 거 drop. Rollback 이 한 config 변경.

Query-시점 fallback

마이그레이션 window 동안 옛 + 새 collection 둘 다 query, score floor 위 결과 더 많은 거 반환. 새 모델이 query 일부에서 더 나쁜 케이스를 full cutover 전에 잡음.

Code

Versioned collection helper·python
import os

DOCS_COLLECTION = os.environ.get('DOCS_COLLECTION', 'docs-bge-m3-v3')

def docs():
    return get_client().get_or_create_collection(DOCS_COLLECTION,
                                                 metadata={'hnsw:space': 'cosine'})
Cutover window 의 dual-read·python
OLD = get_client().get_collection('docs-bge-m3-v2')
NEW = get_client().get_collection('docs-bge-m3-v3')

def retrieve(question: str, k: int = 5, min_score: float = 0.3):
    new_results = query(NEW, question, k)
    above = [r for r in new_results if (1 - r['distance']) >= min_score]
    if len(above) >= k:
        return above
    # 새 collection 이 이 query 에 thin 이면 옛 collection 으로 fallback
    return query(OLD, question, k)

External links

Exercise

진짜 (또는 seeded) collection 을 평행 collection 패턴으로 한 임베딩 모델에서 다른 거로 마이그레이션. config pointer 되돌려서 rollback 연습. 양방향 시간 재 — 그 wall-clock 숫자가 진짜 마이그레이션 risk.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.