두 개의 로컬 AI를 동시에 실행하기 전에: 단일 메모리 측정과 동시 실행 측정을 분리한 이야기
요약
본 글은 로컬 AI 모델(Qwen2.5, Qwen3.5-2B)을 통합한 앱의 메모리 사용량을 분석합니다. 단독 실행, 동시 실행, 순차 실행 시 측정된 메모리 값을 비교하며, 단순히 값들을 합산하는 것이 아님을 강조합니다. 시스템 자원 관점에서 각 실행 방식의 특성과 한계를 명확히 구분해야 함을 설명하는 기술 경험담입니다.
핵심 포인트
- 동시 실행(7.09 GiB)과 순차 실행(5.82 GiB) 시 메모리 실측값을 비교했습니다.
- 단일 모델 값을 단순히 합산하여 동시 사용량을 추정할 수 없습니다.
- 측정된 Working Set 값은 PC 전체 RAM의 최소 요구 사양으로 간주해서는 안 됩니다.
- 순차 실행이 항상 유리한 것은 아니며, 사용자 대기 시간 등 동작까지 고려해야 합니다.
이 글은 Windows용 수동 매뉴얼 작성 앱에 화면을 읽는 Vision 기능을 추가했을 때의 경험담입니다.
모델 단독으로는 작동하는 것을 확인할 수 있었습니다. 하지만 그것만으로는 앱에 통합되었을 때의 메모리 사용량을 알 수 없습니다. 당시에는 텍스트 교정(文章補正)과 Vision에서 각각 다른 모델을 사용하는 구성을 검증했기 때문입니다.
이번 글에서는 2026년 9월의 검증 기록을 바탕으로, 단독 실행, 동시 실행, 순차 실행을 나누어 확인했던 과정을 정리합니다. 새로 측정된 결과는 아닙니다. 또한, 텍스트 교정과 Vision을 하나의 모델로 통합한 현재 구성과는 다른, 당시 두 모델 PoC(Proof of Concept)에 대한 이야기입니다.
당시의 구성은 텍스트 교정에 Qwen2.5와 ONNX Runtime GenAI를 사용했고, Vision에는 Qwen3.5-2B를 사용했습니다.
텍스트 교정과 Vision을 개별적으로 실행한 기록과 실제로 동시 실행했을 때의 기록은 다음과 같습니다.
| 측정 구성 | 보고된 메모리 실측값 |
|---|---|
| 텍스트 교정 단독 | 1.38 GiB |
| ... | |
| 여기서 피하고 싶었던 것은, Vision 단독 값을 그대로 두 모델이 작동하는 구성의 필요량으로 소개하는 것이었습니다. |
반대로, 단순히 단일 값들을 합산하여 계산만 한 것도 아닙니다. 동시 실행 시 측정된 7.09 GiB는 당시 보고된 실측 총합입니다. 단독 값의 측정 타이밍과, 동시 실행 중에 피크를 맞는 타이밍은 같지 않을 수 있습니다. 따라서 단일 값의 합산과 실제 동시 실행 관측은 분리하여 다루어야 합니다.
다음으로, 텍스트 교정과 Vision을 순서대로 작동시키는 구성을 측정했습니다.
검증 기록에서는 다음 순서를 따랐습니다.
- 텍스트 교정 완료.
- 메모리 회수 확인.
- Vision 시작.
순차 실행 시 보고된 피크는 5.82 GiB였습니다.
| 실행 방법 | 보고된 피크/실측 총합 |
|---|---|
| 동시 실행 | 7.09 GiB |
| 텍스트 교정 종료 및 메모리 회수 확인 후 Vision 시작 | 5.82 GiB |
이번 기록에서는 두 처리를 겹치지 않는 구성의 값이 더 낮은 수치를 보였습니다. 하지만 이 비교만으로 '순차 실행이 언제나 유리하다'라고 단정할 수는 없습니다. 사용자가 기다리는 시간이나, 연속적으로 처리했을 때의 동작까지 고려하여 판단해야 합니다.
당시 보고에는 순차 실행에 걸린 소요 시간도 있지만, 여기서는 속도 비교표로 만들지 않았습니다. 동시 실행 측면과 대응하는 시간, 반복 횟수, 편차까지 모두 갖춰서 보여줄 수 없기 때문입니다.
또한, 이번에 참조한 기록만으로는 메모리 회수를 확인한 구체적인 구현이나 측정 간격까지 설명할 수는 없습니다. 특정 해제 처리를 호출하면 같은 결과가 나올 것이라는 구현 절차로 삼지 않기로 했습니다.
또 하나 주의해야 할 점은, 관측된 메모리 값을 그대로 PC에 탑재된 RAM의 최소 조건으로 삼지 않는 것입니다.
당시 기록에도 Working Set의 실측값을 탑재 RAM의 최소 요구 사양이라고 단정하지 않는다는 주의사항을 남기고 있습니다.
Windows의 Working Set은 프로세스의 가상 주소 공간 중, 그 시점에 물리 메모리에 존재하는 페이지를 의미합니다. 예약된 메모리 양이나 PC 전체 탑재 용량과는 별개의 지표입니다. Microsoft Learn: Working Set
더불어, 이번 기록에서는 집계한 프로세스의 범위나 공유 페이지의 처리, 측정 간격을 충분히 추적할 수 있는 형태로 보여드리지 못했습니다. 7.09 GiB를 OS나 다른 앱까지 포함하는 PC 전체 사용량이라고 바꿔 말하는 것도 피해야 합니다.
'검증 시 이 값이 관측되었다'와 '이 용량의 PC라면 충분히 사용할 수 있다'는 별도로 확인해야 할 사항이었습니다.
비슷한 비교를 하려면, 결과 숫자와 함께 다음 항목을 남겨두면 나중에 판단하기 쉽습니다.
- 어떤 모델과 런타임을 조합했는지
- 어떤 처리를 겹치고, 어떤 처리를 순차적으로 실행했는지
- 측정된 지표와 대상 프로세스의 범위
- 측정 간격과 피크를 잡는 방식
- 최초 실행인지, 반복 실행인지
- 시작부터 종료까지 어느 범위의 시간을 측정했는지
- PC에 탑재된 RAM과 동시에 작동하던 다른 앱들
이는 이번에 모두 확보할 수 있었던 항목 목록이 아닙니다. 기록 부족을 감안하여, 다음에 비교를 진행할 때 확인해야 할 항목입니다.
모델 단독의 메모리 사용량은 구성을 생각하는 출발점이 됩니다. 다만, 앱에서 여러 처리를 작동시킨다면, 동시에 작동시키는 것과 순서대로 작동시키는 것을 포함하여 확인해야 합니다.
이번 검증에서는 모델을 고르는 방법뿐만 아니라, 처리들을 겹칠지 여부까지도 메모리를 고려할 때 나누어 측정해야 할 조건이 되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기