macOS 27에 탑재된 로컬 LLM을 Node와 Python에서 쉽게 사용하는 방법
macOS 27 ships a free local LLM on Apple Silicon Macs. I made it easy to use from Node and Python
핵심 요약
macOS 27의 내장 로컬 LLM을 Node와 Python 환경에서 간편하게 활용할 수 있는 라이브러리 'apple-llm'을 소개함.
- 로컬 LLM 활용 — 별도 설치나 API 키 없이 macOS 내장 모델을 코드에서 바로 사용함.
- 라이브러리 기능 — Node와 Python 환경에서 구조화된 데이터 추출 및 요약 작업 지원.
- 성능 한계 — 소형 모델 특성상 코딩이나 긴 문맥 추론에는 적합하지 않음.
- 클라우드 모드 — 복잡한 질문은 Apple의 대형 서버 모델을 선택적으로 활용 가능.
macOS 26 이상이 설치된 Apple Silicon Mac에는 작은 LLM이 기본으로 내장돼 있다. 다운로드도 필요 없고, API 키도 필요 없으며, 데이터가 Mac 밖으로 나갈 일도 없다.
이걸 만든 이유
코드에서 API 문서를 자동으로 써주는 툴을 만들고 있었는데, 사용자가 Ollama를 따로 설치하거나 API 키를 붙여넣게 하고 싶지 않았다. 어차피 Apple 모델이 Mac에 다 들어있길래 그냥 그걸 갖다 썼다.
근데 제대로 작동하게 만드는 게 생각보다 빡셌다. temperature를 0으로 설정해도 계속 똑같은 말을 반복하고, 2초면 끝날 호출이 20초씩 걸리더라. 프로세스를 하나 계속 띄워두기 전까지는 1.5초면 될 게 17초씩 걸렸다. 그래서 이 모든 삽질을 해결한 라이브러리를 만들었다. 그게 바로 apple-llm이다.
어디에 쓰면 좋은가
- 지저분한 텍스트에서 구조화된 데이터 뽑아낼 때. 예를 들면 이메일을 티켓으로 바꾸거나 영수증을 지출 내역으로 정리할 때 좋다. JSON은 무조건 네 스키마에 딱 맞춰서 나온다.
- 태깅, 요약, 문장 다시 쓰기
- 어디로든 보내기 찝찝한 개인 정보 다룰 때
- 다른 Mac 사용자랑 툴을 공유할 때. 상대방이 모델을 따로 다운받거나 키를 발급받을 필요가 없어서 개꿀이다.
어디에 쓰면 별로인가
코딩이나 복잡한 추론. 애초에 작은 모델이라 한계가 있다.
더 어려운 질문을 위해 Apple의 더 큰 서버 모델을 쓰는 클라우드 모드도 옵션으로 있다. 이건 로컬이 아니다. 네 프롬프트가 Apple 서버로 전송되고, 사용량 제한도 있다.
Node: npm install apple-llm
Python: pip install apple-llm
.buffering-track-fill { stroke-dasharray: 100; stroke-dashoffset: 50; }


