Skip to content

[Chore] 임베딩 서버 torch를 플랫폼별 조건부 고정으로 바꿔 CPU 저장소 장애 시 NVIDIA 패키지 재유입 방지 #452

Closed

Description

@kangcheolung

📌 Description

임베딩 서버의 torch 요구사항을 플랫폼별 조건부 고정으로 바꿔서, PyTorch CPU 저장소에 접속하지 못할 때 NVIDIA 독점 패키지가 조용히 되살아나는 경로를 막습니다. (#450 후속)

배경

요구사항 CPU 저장소 결과
torch==2.4.1 접속 불가 성공(종료코드 0), torch 2.4.1 + nvidia-* 12개
torch==2.4.1+cpu 접속 불가 실패 (No matching distribution)
torch==2.4.1+cpu 정상 성공, 2.4.1+cpu, nvidia-* 0개
  • 외부 접속이 제한된 서버·CI에서 이미지를 빌드하면 라이선스 문제가 조용히 되살아날 수 있습니다.

단순히 torch==2.4.1+cpu로 고정하면 안 되는 이유

  • PyTorch CPU 저장소에는 linux/arm64와 macOS용 +cpu 휠이 없습니다. (arm64용은 라벨 없는 2.4.1)
  • 재현: linux/arm64에서 torch==2.4.1+cpu → No matching distribution. 개발 PC(Apple Silicon)의 docker compose up --build가 실패합니다.

방침: x86 Linux에서만 +cpu를 강제하고 나머지는 기존 2.4.1을 유지합니다

torch==2.4.1+cpu ; sys_platform == "linux" and platform_machine == "x86_64"
torch==2.4.1 ; sys_platform != "linux" or platform_machine != "x86_64"
  • 마커에는 not을 쓸 수 없어서(pip InvalidMarker) 반대 조건을 or로 풀어 씁니다.
  • --extra-index-url 줄은 유지하고, 기존 주석을 "Linux x86_64에서 CPU 빌드를 강제한다"는 내용으로 맞춥니다.

✅ To-do

  • backend/embedding-server/requirements.txt의 torch==2.4.1을 위 두 줄로 변경하고 주석 수정
  • 설계 문서 docs/design/kangcheolung-#{이슈번호}-embedding-torch-platform-marker.md 작성 (배경·결정·재현·검증)

검증 (아래 4가지를 pip install --dry-run으로 확인하고 결과 기록)

  • linux/amd64 + CPU 저장소 정상 → torch 2.4.1+cpu, nvidia-* 0개
  • linux/amd64 + CPU 저장소 접속 불가 → 설치 실패
  • linux/arm64 + CPU 저장소 정상 → torch 2.4.1, nvidia-* 0개
  • linux/arm64 + CPU 저장소 접속 불가 → torch 2.4.1, nvidia-* 0개
  • 변경 후 amd64·arm64 이미지 빌드가 성공하고 pytest test_main.py가 통과

✅ 완료 기준

  • x86 Linux에서 CPU 저장소를 쓸 수 없으면 이미지 빌드가 실패한다.
  • x86 Linux 이미지의 pip list에 nvidia-*가 없고 torch가 2.4.1+cpu다.
  • arm64 Linux(Mac Docker) 이미지 빌드가 기존처럼 성공한다.
  • requirements-test.txt(-r requirements.txt)를 쓰는 로컬 테스트 환경에서도 설치가 성공한다.
  • 서버 코드와 API 계약은 변경하지 않는다.

📒 기타

이 이슈의 범위 밖

  • README 라이선스 표 보강과 전이 의존성을 포함한 구성요소 목록, MinIO 이미지 태그 고정, 모델 버전 기록 (별도 이슈)
  • docs/images/architecture.png의 Redis 로고 교체
  • MinIO·Grafana(AGPL-3.0)의 의무 범위는 OpenUP 멘토링(~10/26)에서 확인
  • Dockerfile에 빌드 후 nvidia-* 검사를 추가하는 안은 마커 방식으로 핵심 위험이 막히므로 이번에는 제외

참고

  • 병합만으로는 운영 x86 서버의 이미지가 바뀌지 않습니다. 재빌드·재배포 후 nvidia-* 0개, torch 2.4.1+cpu, /health/ready, 임베딩 값 비교를 확인해야 합니다.
  • 검증 도구 계정 배포는 10/12, 스캔 기한은 10/16입니다.

Activity

  1. added 2 commits that reference this issue on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions