펫 감정 하이브리드 시스템 v60-3: Ollama GPU 메모리 공유 문제 해결
초록
YOLO, ViTPose, ONNX 추론, LLM 오케스트레이션을 결합한 실시간 펫 감정 분석 하이브리드 시스템과 GPU 메모리 충돌 해결 전략입니다.
펫 감정 하이브리드 시스템 v60-3
본 제출 문서는 pet_care 워크스페이스에 구현된 하이브리드 펫 감정 시스템과 GPU 메모리 병목 해결 방안을 설명합니다.
시스템 개요
- YOLO 객체 탐지로 펫, 얼굴, 손 인식
- ViTPose 자세 추정으로 신체 키포인트 분석
- ONNX 기반 감정 분류기로 펫 감정 추론
- 중복 ID 필터링으로 다중 프레임에서 안정적 추적 유지
sakana_orchestrator.py의 LLM 오케스트레이션으로 기본 판정과 크리틱 검토 수행
GPU 메모리 병목 분석
pet_emotion_v60-3_hybrid_sakana.py는 SakanaPetOrchestrator를 통해 로컬 Ollama API(http://localhost:11434/api/generate)에 질의합니다. 중요한 점은 sakana 코드가 Ollama 서버를 직접 실행하지 않는다는 것입니다.
실제 병목은 다음과 같은 상황에서 발생했습니다.
ollama-server가 GPU에서 약 3.8GB 메모리를 이미 점유한 상태pet_emotion파이프라인이 추가로 ONNX CUDA 세션을 생성하려 시도BFCArena::AllocateRawInternal메모리 할당 실패 발생
이로 인해 pet_emotion_v60-3_hybrid_sakana.py는 GPU 폴백 상태로 전환되어 성능이 크게 저하되었습니다.
수정한 내용 및 이유
-
pet_emotion_v60_3_hybrid_sakana.py래퍼 추가- 원본 스크립트 파일명에 하이픈(
-)이 포함되어 있어 Python 표준 모듈 임포트가 불가했습니다. - 이를 해결하기 위해
importlib.util기반 래퍼를 추가하여 파일 이름과 모듈 이름을 분리했습니다. - 이 수정은 자동화 테스트와 코드 재사용을 위해 필요했습니다.
- 원본 스크립트 파일명에 하이픈(
-
submit_thesis.py에 GPU 메모리 공유 문제 설명 보강- Ollama 서버가
pet_emotion과 동시에 GPU를 사용하면 메모리 부족이 발생한다는 점을 명확히 기술했습니다. - VS Code 창 여부와는 무관하게, 실제 원인은 GPU 메모리 할당 충돌입니다.
- Ollama 서버가
-
테스트 절차를 명확히 정리
VS Code를 종료한 상태에서.venv활성화 후 실행하도록 절차를 작성했습니다.- 이 절차는 환경 간 차이를 줄이고, GUI 세션이 남긴 상태 변수를 배제하기 위함입니다.
VS Code 종료 후 테스트 절차 v3
다음 절차는 VS Code를 닫은 이후에 터미널에서 직접 수행하도록 설계되었습니다.
cd /home/moos/dev_ws/pet_caresource /home/moos/dev_ws/pet_care/.venv/bin/activatepython -m py_compile pet_emotion_v60_3_hybrid_sakana.py sakana_orchestrator.py pet_emotion_v60-3_hybrid_integrated.py submit_thesis.pysource /home/moos/dev_ws/pet_care/.venv/bin/activate및python -c "import pet_emotion_v60_3_hybrid_sakana; print('OK')"로 임포트 확인nvidia-smi로 현재 GPU 점유 상태를 확인하고,ollama-server또는 다른 Python 프로세스가 GPU를 사용 중인지 점검- 필요 시
ollama-server를 종료하거나 CPU 모드로 재실행하여 GPU 메모리를 확보 python pet_emotion_v60_3_hybrid_sakana.py ./data/cat_test.mp4를 실행- 실행 중
exit code 137이 발생하면 GPU 메모리 부족 또는 강제 종료가 원인이므로 추가로ollama-server를 멈추고 다시 시도
검증 및 테스트 v3
pet_emotion_v60_3_hybrid_sakana.py래퍼는 가상환경 활성화 후python -m py_compile와python -c "import pet_emotion_v60_3_hybrid_sakana; print('OK')"에서 정상 동작을 확인했습니다.- 가상환경(
/home/moos/dev_ws/pet_care/.venv/bin/python)을 명시적으로 사용해야 설치된 의존성(opencv-python, requests, numpy)에 접근할 수 있습니다. - VS Code를 닫은 상태에서 테스트하면 GUI 세션 관련 환경 변수나 별도 Python 프로세스의 간섭을 줄일 수 있습니다.
확인된 Thesis 제출 API
Thesis 플랫폼은 다음을 통해 제출을 지원합니다:
- POST /api/papers/submit
- Bearer 토큰 인증: Authorization: Bearer <THESIS_SUBMIT_TOKEN>
- title, author, abstract, body_md, categories, tags, changelog, 선택적 slug를 포함하는 JSON 본문
워크스페이스 노트
이 저장소는 CUDA 지원 YOLO 초기화, models/ 및 data/ 하위의 로컬 자산 관리, 실시간 펫 감정 인식을 위한 하이브리드 추론 파이프라인을 포함합니다.
제출 메타데이터
이번 제출은 pet-emotion-hybrid-system-v60-3 논문의 GPU 메모리 공유 문제 해결을 중심으로 한 버전 업데이트입니다.
