넷츠프레소(NetsPresso)는 신경망(Neural Nets)과 에스프레소(Espresso)의 합성어입니다. 원두를 강하게 압착해 진한 에스프레소를 추출하듯, 거대한 인공지능 모델을 압축해 작은 기기 위에 성능을 응축해 낸다는 의미를 담고 있습니다.
지금까지의 넷츠프레소는 '잘 만든 반자동 에스프레소 머신'과 같았습니다. 파편화된 도구를 일일이 세팅해야 하는 핸드드립의 번거로움은 없앴지만, 완벽한 한 잔을 내리려면 여전히 전문가의 손길이 필요했습니다. 원두 분쇄도나 탬핑 압력, 추출 시간이 커피 맛을 결정하듯, 모델 최적화 역시 수많은 변수를 얼마나 세밀하게 조합하느냐에 따라 최종 성능이 판가름 났기 때문입니다.
하지만 새롭게 도입된 '에이전트(Agent)' 기능은 넷츠프레소를 완전한 전자동 머신으로 탈바꿈시켰습니다.
이제 사용자는 모델과 타깃 디바이스, 그리고 원하는 성능을 말하면 됩니다. 기기가 스스로 원두의 상태를 읽고 최적의 추출법을 찾아내듯, 넷츠프레소가 가장 이상적인 최적화 레시피를 제안합니다. "조금 더 가볍게"라고 요청하면 그 조건에 맞춰 즉시 레시피를 수정해 다시 모델을 추출해 냅니다.
지금까지의 넷츠프레소를 반자동 머신이라 부른 이유는 CLI(Command Line Interface) 기반의 도구였고, 설정값을 정하는 일이 온전히 사람의 몫이었기 때문입니다. 설정 파일을 열고 어떤 양자화 알고리즘을 쓸지, 어떤 비트 조합으로 갈지를 직접 적어 넣고 돌려보는 방식이었죠. 다분히 의도된 선택이었습니다. 기존 개발 환경에 바로 붙이고, 스크립트로 묶어 자동화하며, Git과 같은 버전 관리에 올리는 것이 엔지니어에게는 가장 강력하고 익숙한 방식이니까요.
그러나 이제 개발자가 일하는 패러다임이 바뀌었습니다. 한 줄씩 코드를 직접 타이핑하는 일보다, AI 에이전트에게 목적을 설명하고 나온 결과를 검토·판단하는 일의 비중이 훨씬 커졌습니다. 모델 최적화 파이프라인이라고 해서 다를 이유가 없습니다.
더 이상 YAML 파일을 열어 구조를 뜯어고치지 않아도 됩니다. 그저 일상적인 언어로 원하는 바를 툭 던지기만 하면 됩니다.
Llama 3.2 1B를 라즈베리파이 5에서 돌리고 싶어. 초당 10토큰 이상, 모델은 0.5GB 이하로 맞춰 줘.
에이전트는 이 요구를 구조화된 최적화 목표로 해석합니다. 모델과 타깃 디바이스가 무엇인지 파악하고, 어떤 런타임과 백엔드를 조합해야 하는지, 처리량·모델 크기·품질 중 어떤 지표를 어느 선까지 맞춰야 하는지 스스로 가려냅니다. 정보가 부족하면 사용자에게 되묻기도 하죠.
결과를 확인한 뒤 "정확도는 지키면서, 크기를 조금 더 줄여줘"라고 피드백하면, 에이전트는 즉시 그 요구에 맞는 새로운 레시피를 찾아 모델을 다시 뽑아냅니다.
아무리 사용성이 좋아져도, 결과가 따라주지 않으면 의미가 없습니다. 쉬워진 사용성 뒤에서 성능을 책임지는 것이 바로 HPO(Hyper-Parameter Optimization) 모듈입니다.
모델을 최적화한다는 건 결국 방대한 선택지 속에서 최적의 조합을 찾는 과정입니다. 양자화 하나만 놓고 봐도 그렇습니다. 어떤 알고리즘을 적용할지, 가중치(weight)와 활성값(activation)의 비트 수를 어떻게 할당할지, 이 조합을 모델의 각 레이어마다 어떻게 다르게 설정할지 결정해야 합니다.
변수가 더해질수록 탐색 공간은 순식간에 사람이 다 훑기 힘든 규모로 커집니다. 그래서 지금까지는 숙련된 엔지니어의 경험이 이 탐색을 이끌었습니다. 좋은 조합을 알아보는 안목이 곧 결과물의 성능이었죠.
.webp)
HPO는 전문가가 경험과 지표를 근거로 좁혀 가던 그 탐색을, 알고리즘으로 옮겨 놓은 것입니다. 에이전트가 자연어에서 뽑아낸 목표를 HPO가 건네받으면, HPO는 그 기준을 달성할 수 있는 조합을 찾아 나섭니다.
이때 무작정 모든 경우의 수를 대입해 보는 것은 아닙니다. 앞선 시도의 결과를 근거로 다음에 살펴볼 유망한 지점을 가늠해 범위를 좁혀 가며, 제한된 시도 횟수 안에서 타깃 성능에 빠르게 도달합니다. 사용자의 입력을 받아 전체 과정을 조율하는 것이 에이전트라면, 그 이면에서 최적의 레시피를 실질적으로 찾아내는 것이 바로 이 HPO 알고리즘입니다.
"범용 AI 에이전트를 사용하면 되지 않나?"라고 반문할 수 있습니다. 물론 최근의 AI 에이전트는 고도화된 성능으로 복잡한 목표도 스스로 계획을 세우고 도구를 활용해 달성합니다. 하지만 AI 모델 최적화라는 특수한 영역에서는 여전히 한계가 있습니다. 실행 과정에서 지원되지 않는 하드웨어 조합을 시도하거나, 모델 연산이 누락되는 '조용한 실패(silent failure)'를 성공으로 오인한 채 다음 단계로 넘어갈 수 있습니다. 높은 자율성의 맹점이 드러나는 지점입니다.
넷츠프레소는 에이전트의 문제 해결 과정이 사전에 검증된 동작과 유효성 정책의 테두리 안에서만 작동하도록 제약합니다. 범용 에이전트 특유의 유연함에 가드레일을 결합해, 기업 실무 환경에서 가장 중요한 재현성을 확보하는 것입니다.
실제 검증 결과를 확인할 차례입니다. 실험 대상은 컴퓨터 비전(CV) 분류 모델입니다. 넷츠프레소 HPO 모듈이 탐색한 결과를, 전문가가 직접 최적화한 기존 벤치마크와 비교했습니다. 최적화 도구와 평가 조건은 모두 동일하게 통제했으며, 유일한 차이는 '설정값을 사람이 직접 잡았는가, HPO가 자동으로 탐색했는가'뿐입니다. 탐색 횟수는 모델당 40회로 제한했습니다.
비교군으로 삼은 5개 모델 중 4개에서, HPO는 전문가가 직접 최적화한 결과와 같은 수준의 정확도(accuracy)를 재현했습니다. mobilenet_v3_large에서는 오히려 1.67%p 더 높았고, resnet18과 googlenet은 0.2%p 이내로 동등했습니다. resnet50은 소수점 아래까지 같은 값이었고, 나머지 한 모델(squeezenet1_0)은 정확도를 1.41%p 내주는 대신 속도가 더 빨라졌습니다.
%20(1).webp)
이 수치가 시사하는 바는 명확합니다. 전문가가 오랜 경험과 시행착오 끝에 도달하던 최적점을, 알고리즘 기반의 자동 탐색이 빠르고 안정적으로 재현해 냈다는 사실입니다. 특히 최적화 전담 인력을 두기 어렵거나, 새로운 모델이 등장할 때마다 발 빠르게 대응해야 하는 실무 팀일수록 이 결과가 갖는 의미는 더욱 큽니다.
넷츠프레소는 이제 목표만 말하면 되는 도구가 됐습니다. 분쇄도와 탬핑, 추출 시간을 일일이 맞추던 반자동 머신에서, 버튼 하나로 전문가의 한 잔을 내리는 전자동 머신으로 옮겨온 셈입니다. 이 변화가 실제로 무엇을 남기는지 세 가지로 짚어봅니다.
최적화가 얼마나 쉬워졌는지, 반복 실험에 쏟던 시간이 얼마나 줄어드는지 데모를 통해 직접 확인해 보세요.

※ 이 글의 벤치마크 수치는 특정 모델·하드웨어·설정 조합에서의 결과이며, 실제 성능은 환경에 따라 달라질 수 있습니다.