발열, 배터리, 그리고 응답 속도
성능 한계 도전
발열, 배터리, 그리고 응답 속도
지난 8편에서는 'AI SuperVision'을 통해 챗봇의 환각(Hallucination)을 잡아내고 답변의 품질을 높이는 과정을 공유했습니다. 모델이 똑똑해지고 정확해지는 것은 기쁜 일이지만, 실제 스마트폰(Galaxy S25 FE 등) 환경에서 이를 구동할 때 우리는 매우 물리적이고 현실적인 벽에 부딪히게 됩니다. 바로 발열(Thermal), 배터리 소모, 그리고 응답 속도(Latency)의 한계입니다.
클라우드 데이터센터의 무한한 자원과 달리, 한 손에 들어오는 모바일 기기는 전력과 냉각 능력이 극도로 제한되어 있습니다. 이번 9편에서는 TecAce 팀이 진정한 온디바이스 AI 구현을 위해 이 물리적 제약들과 어떻게 타협하고 최적화했는지 생생한 성능 벤치마크 과정과 인사이트를 공유합니다.
1. 모바일 AI의 3대 체감 성능 지표: TTFT, TPS, IPW
사용자가 챗봇을 사용할 때 "빠르다" 또는 "자연스럽다"고 느끼게 하려면 다음의 핵심 성능 지표들을 충족해야 합니다.
TTFT (Time To First Token, 초기 응답 속도): 사용자가 질문을 입력한 후, AI가 프롬프트를 처리하고 첫 번째 단어(토큰)를 화면에 띄우기까지 걸리는 시간입니다. 일반적인 클라우드 기반 챗봇이나 모바일 환경에서는 사용자가 지루함을 느끼지 않도록 500ms(0.5초) 이하의 TTFT를 달성하는 것이 이상적입니다.
TPS (Tokens Per Second, 초당 토큰 생성 속도): 첫 단어가 나온 이후, 후속 단어들이 생성되는 속도입니다. 인간의 평균 읽기 속도에 맞춰 글자가 끊김 없이 스트리밍되려면 최소 20 TPS (토큰당 50ms)의 속도가 보장되어야 합니다.
IPW (Inferences Per Watt, 와트당 추론 효율): 모바일 기기의 생명인 배터리와 직결되는 지표입니다. 전력 소비(Watt) 단위당 얼마나 많은 추론을 수행할 수 있는지를 나타내며, 이 효율이 높을수록 챗봇을 오래 사용해도 배터리가 덜 닳게 됩니다.
2. 뜨거운 스마트폰: 발열(Thermal Throttling)과 배터리의 딜레마
초기 테스트에서 가장 큰 난관은 '발열로 인한 성능 저하(Thermal Throttling)'였습니다.
거대 언어 모델(LLM)이 답변을 생성하는 동안에는 디바이스의 연산 장치(CPU, GPU, NPU)가 100%에 가깝게 가동됩니다. 특히 CPU나 일반 GPU만으로 연산을 처리할 경우 순간적으로 15W 이상의 전력을 소모하며 기기 온도가 급상승합니다. 스마트폰은 일정 온도(보통 85°C 부근의 내부 임계점)에 도달하면 하드웨어 손상을 막기 위해 강제로 클럭 속도를 낮추는데, 이 순간 TPS가 급격히 떨어지며 챗봇이 말을 더듬는 현상이 발생했습니다.
또한, 추론 시간이 길어질수록 배터리가 눈에 띄게 줄어드는 문제도 발견되었습니다. 즉, "챗봇이 똑똑하게 대답하려고 길게 생각하고 길게 말할수록, 기기는 뜨거워지고 배터리는 녹아내리는" 딜레마에 빠진 것입니다.
3. 현실적 타협점 찾기: TecAce의 성능 최적화 전략
이러한 물리적 한계를 극복하기 위해 TecAce 팀은 하드웨어 가속기 활용과 추론 파라미터 제어를 결합한 최적화 전략을 실행했습니다.
NPU 적극 활용을 통한 전력 다이어트 전력 소모가 큰 CPU/GPU 대신, 행렬 곱셈 연산에 특화된 NPU(신경망 처리 장치)로 추론 부하를 오프로딩(Offloading)했습니다. 테스트 결과, NPU를 활용한 최적화 모델 구동 시 전력 소모가 2~5W 수준으로 급감하여 발열을 효과적으로 억제할 수 있었고, 긴 컨텍스트를 처리할 때도 비교적 일관된 TPS를 유지할 수 있었습니다.
하이퍼파라미터(Hyperparameter) 제어를 통한 연산량 제한 이전 [2편] Chatbot Test Matrix에서 확인했듯, 성능에 가장 절대적인 영향을 미치는 것은 모델이 생성하는 토큰의 길이입니다.
max_tokens의 엄격한 제한: 토큰을 1개 더 생성할 때마다 지연 시간과 전력 소모가 선형적으로 증가합니다. 우리는 프롬프트 엔지니어링을 통해 챗봇이 "불필요한 배경 설명 없이 핵심만 3문장 이내로 간결하게" 대답하도록 유도하여 max_tokens 도달 전 추론을 빠르게 종료(Early exit)시켰습니다.
top_k 및 top_p 튜닝: 후보 단어를 고르는 범위를 적절히 좁혀(예: top_k 값을 줄임) 소프트맥스(Softmax) 연산에 들어가는 컴퓨팅 부하를 10~20%가량 경감시켰습니다. 추론이 끝나는 즉시 프로세서를 대기 상태(Quiescent state)로 전환하여 배터리를 방어했습니다.
RAG 컨텍스트 길이 최적화 (Chunking) 로컬 RAG 사용 시 입력되는 문서(Context)의 길이가 길면, 초기 프롬프트 처리 연산량이 급증하여 TTFT(초기 응답 속도)가 느려집니다. 우리는 벡터 검색 과정에서 입력 문서의 청크(Chunk) 크기를 최적화하여 꼭 필요한 핵심 정보만 모델에 주입함으로써, 병목 현상을 줄이고 첫 단어 출력 속도를 끌어올렸습니다.
다음 편 예고 (최종회)
기기에 적합한 모델을 고르고(SLM), 최적화와 양자화를 거쳐 앱에 얹은 뒤(STT/TTS, RAG), 깐깐한 AI 심판관(SuperVision)의 검증을 통과하고, 마침내 발열과 배터리 문제라는 현실적인 벽까지 넘어섰습니다.
대장정의 마지막인 [10편] 온디바이스 AI의 미래와 TecAce의 로드맵 (Conclusion)에서는 이번 프로젝트를 통해 얻은 값진 교훈(Lessons Learned)을 돌아보고, 단순한 챗봇을 넘어 스스로 사고하고 기기를 제어하는 'Agentic AI(자율 행동 AI)'로 진화하기 위한 TecAce의 다음 비전을 공유하겠습니다.