macOS 27에는 Apple의 온디바이스 Foundation Model을 위한 명령줄 도구인 fm이 탑재되어 있습니다. 저는 이 도구를 사용하여 세션 기록, 로그 파일, 장문 문서 등 방대한 양의 텍스트에서 Claude Code 토큰 사용량을 줄이는 데 활용하고 있습니다. 로컬 모델이 요약본을 작성하면, Claude는 원본 텍스트 대신 그 요약본을 읽습니다. 모든 과정은 Mac에서 실행되므로 데이터가 외부로 전송되지 않습니다.
제가 이 기능을 구현하기 위해 사용한 프롬프트와 과정을 소개합니다. 저는 먼저 fm을 테스트하는 데 시간을 할애했으며, 해당 프롬프트에는 제가 측정한 내용이 포함되어 있어 이 기능(skill)이 작은 모델의 강점과 한계를 모두 알 수 있도록 했습니다.
설정 방법:
- macOS 27이 필요합니다.
- 터미널에서
sudo fm license를 실행하여 Apple의 이용 약관에 동의해야 합니다 (이 과정을 거치지 않으면 다른 모든 fm 명령어는 종료됩니다).
- 그 후,
fm available을 입력하면
결과적으로 얻게 되는 것: 이 스킬은 많은 양의 텍스트(대략 20k+ Claude 토큰)가 있고 요약만으로 충분한 경우에만 작동합니다. 그보다 작은 내용은 Claude가 단순히 읽기만 합니다. 정확한 값이 필요하거나, 여러 문서를 걸쳐 판단을 하거나, 결정을 내려야 하는 일에는 fm을 사용하지 않습니다. 이 모델은 충실한 요약(faithful summaries)에는 능하지만, 판단(judgment)에는 약합니다. 제가 서브 프로젝트의 상태 목록을 요청했을 때, 하나의 작업물을 여섯 개로 분할하고 미완료된 작업을 완료된 것으로 표시했습니다. 이는 모델이 사용 가능한지 확인하고 (사용 불가능하면 Claude로 폴백), 입력물을 약 6,500 토큰 청크로 분할하는데 컨텍스트 창(context window)이 7,100에서 8,600 사이 어딘가에서 초과되었기 때문이며, 출력이 반복 가능하도록 --greedy를 사용하고, 각 요약이 어디서 왔는지 추적하여 Claude가 원본으로 돌아갈 수 있게 합니다. 요약은 사실(facts)이 아니라 단서(leads)로 취급됩니다. 대규모 실행 전에 fm과 Claude 두 가지 방식으로 작은 샘플을 요약해보고 비교 결과를 보여줍니다. 실패한 호출은 조용히 건너뛰는 대신 보고됩니다. 제 Mac에서 2,500 토큰 청크는 약 12초가 걸렸습니다. 병렬로 두 번의 호출을 진행하는 데는 15초가 걸려, 병렬 실행이 약간 도움이 되기는 하지만 크게 그렇지 않습니다. 직접 시도해보시고 어떻게 작동하는지 알려주시면 좋겠습니다. submitted by /u/TigerKR [link] [comments]