AI 피로감은 현실이다. 그리고 가장 사적인 작업을 수행하는 작은 오프라인 모델도 마찬가지다
요약
최신 모델과 벤치마크의 홍수 속에서 'AI 피로감'을 느낀 필자는, 민감한 개인 문서를 처리하는 실용적인 요구사항에 초점을 맞췄습니다. 그 결과, API나 클라우드 서버 없이 로컬 기기(CPU)에서 작동하며, 정형화된 코드가 데이터 추출을 담당하고 작은 모델이 설명 생성만 맡는 방식으로 신뢰성 높은 오프라인 도구를 구현했습니다.
핵심 포인트
- 민감한 개인 정보 처리는 반드시 온디바이스(On-device) 환경이 필수적이다.
- 작은 모델도 제한된 작업에서는 프론티어 모델보다 더 적합할 수 있다.
- 시스템 설계 시, 신뢰성이 중요한 데이터 추출은 코드로 처리하고 모델은 설명 생성에만 사용해야 한다.
요즘 제 피드는 일정한 리듬을 가지고 있습니다. 매일 아침: 새로운 모델, 새로운 에이전트 프레임워크, 오른쪽 위로 올라가는 막대가 있는 새로운 벤치마크 차트가 등장합니다. 점심때쯤에는 세 가지의 흥미로운 의견(hot takes)이 나옵니다. 저녁에는 그 벤치마크 자체가 틀렸다는 스레드가 올라옵니다. 그래서 이번 주 dev.to에서 'AI 피로감'이 가장 많이 반응한 주제 중 하나라는 것을 이해합니다. 저도 그렇게 느낍니다.
그래서 이 글은 새로운 모델에 대한 글이 아닙니다. 오히려 그 반대 경험, 즉 오프라인으로 실행될 수 있는 가장 작은 모델을 선택하고, 지루하지만 확실한 작업을 맡긴 뒤, 기술이 조용히 작동하는 곳을 발견했다는 내용입니다.
지루한 작업
저는 스위스의 행정 서류를 다룹니다. 채무 징수 사무소의 납부 명령서, 세금 결정문, 건강 보험 조정 내역 등이 그것들입니다. 이 문건들은 원어민조차 두 번 읽어야 할 만큼 격식 있는 어투로 쓰여 있습니다. 저는 이것들을 쉬운 이탈리아어로 설명해 주는 도구를 원했습니다.
당연한 방법은 API를 사용하는 것이었습니다. 하지만 당연하게 느껴지는 문제는 그 문서 자체였습니다. Zahlungsbefehl에는 귀하의 전체 이름, 주소, 채권자, 그리고 정확히 얼마를 빚졌는지 등이 포함되어 있습니다. 이것은 아무것도 모르는 서버에 업로드할 수 있는 종류의 자료가 아닙니다. 그래서 진정한 요구사항은 다음과 같았습니다: 반드시 제 기기에서 완전히 실행되어야 한다는 것입니다.
작동하는 가장 작은 것
이 전체 도구는 파이썬 3.10 표준 라이브러리만을 사용한 약 306줄로 구성되어 있습니다. pip install도, SDK도, API 키도, 계정도 필요 없습니다. 로컬호스트의 Ollama에 HTTP를 통해 연결하며, 여기서 gemma3:1b가 언어 작업을 수행합니다. 파라미터는 10억 개이고, CPU에서 작동합니다. GPU도 없고, 대기열도 없고, 토큰당 비용도 없습니다.
이것은 제가 놀란 부분입니다. 모든 흥미로운 것은 프론티어 모델(frontier model)을 필요로 한다는 글을 몇 달 동안 읽었음에도 불구하고 말이죠. 제한된 작업에 대해서는 작은 모델이 타협이 아닙니다. 그것이 올바른 크기입니다.
모델이 하는 일, 그리고 절대 건드리지 않는 것
분리(split)가 전체 설계의 핵심입니다.
코드는 정확해야 하는 모든 것을 처리합니다. 평범하고 검사 가능한 Python 코드가 문서를 분석하여 금액, 마감일, 참조 번호, 발신 사무실을 추출해냅니다. 이는 정해진 방식의 추출(deterministic extraction)이며, 일반 표현식(regular expression)과 날짜 파서가 수십 년 동안 신뢰성 있게 해왔던 종류입니다.
모델은 자신이 지어낼 수 있는 숫자를 결코 보지 못합니다. 모델은 추출된 필드와 편지 텍스트를 받고, 자신이 진정으로 잘하는 단 하나의 일, 즉 차분하고 평범한 이탈리아어로 이 편지가 무엇인지 그리고 발신자가 무엇을 요청하는지를 설명하는 일을 합니다. 출력에 나오는 마감일은 코드가 추출한 마감일입니다. 모델은 문장을 바꿔 쓸 수는 있지만, 날짜를 존재하지 않게 바꿀 수는 없습니다.
이 경계가 바로 출력을 실제로 사용하기에 충분히 신뢰할 수 있게 만듭니다.
제가 드릴 수 있는 단 하나의 수치
제 컴퓨터에서, CPU 환경으로 측정한 한 번의 실행 시간은: 지급 명령서(payment-order letter) 한 통을 처음부터 끝까지 설명하는 데 약 40초가 걸립니다. 이는 정확히 하나의 기기에서 측정된 값이며, 여러분의 하드웨어는 다를 것이고 저는 그렇게 가장하지 않겠습니다.
40초가 느린가요? 챗봇으로서는 그렇습니다. 하지만 제가 읽고 싶지 않아 일주일 동안 서랍에 넣어두었던 편지에는 아무것도 아닙니다. 올바른 질문은 결코 '빠른가'가 아니었습니다. 그것은 '이 작업에 충분히 빠른가'였으며, 그 답은 편안하게 '예'입니다.
이 경험을 통해 알게 된 피로감에 대하여
제가 생각하기에 피로감은 AI가 모든 곳에 존재하며, 모든 것을, 항상 해야 한다는 틀(framing)에서 오는 것입니다. 이러한 틀은 인상을 주는 데모와 지치게 만드는 제품들을 만들어냅니다.
저의 경험은 그 반대였습니다. 하나의 모델, 10억 개의 파라미터, 하나의 기기, 명확한 경계가 있는 단 하나의 작업. 계정도 없고, 업로드할 것도 없고, 구독할 것도 없습니다. 취소할 것도 없습니다. 이 도구는 지루하며, 지루함이야말로 채권 추심 사무실에서 온 편지가 마땅히 받아야 할 것입니다.
만약 이 논의에 지쳤다면, 제가 제안할 것이 있습니다. 당신의 작고 사적이며 약간 귀찮은 작업 하나를 고르세요. 가장 작은 로컬 모델을 그것에 적용해 보세요. 코드 속 숫자와 모델 속 단어는 그대로 유지하세요. 이것은 이 기술이 실제로 무엇을 위한 것인지 알아내는 매우 차분한 방법입니다.
설명된 도구는 실제적이고 개인적인 것입니다. 40초라는 수치는 단일 기계에서 측정된 단 하나의 수치이며, 그렇게 명시되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기