14P by GN⁺ 20시간전 | ★ favorite | 댓글 1개
  • LLM API와 클라우드에 의존하지 않고, 온디바이스에서 실행되는 개인 음성 비서를 직접 만드는 방법
  • 이 비서는 자연어를 이해하고, 개인 함수 호출을 수행하며, 오직 로컬에서 작동하므로 완전한 프라이버시 보장이 가능함
  • 이를 위해 LLaMA 3.1 모델을 LoRA 방식으로 미세조정하고, Whisper를 활용해 음성을 텍스트로 변환한 뒤, 이를 명령어로 해석해 기기에서 직접 실행함
  • 프로젝트는 데이터셋 생성 → 파인튜닝 → 음성 인터페이스 연결 → 테스트 및 배포로 구성되며, 각각을 다루는 5부작 무료 미니 강좌로 제공됨
  • “온디바이스 실행 = 단순”이라는 오해를 경계하며, 로컬에서도 MLOps적 사고와 철저한 품질 관리가 필수임을 강조

왜 로컬 음성 비서를 지금 만들어야 할까?

  • ChatGPT와 대화는 유용하지만, 단순한 명령까지 클라우드에 보내야 할까?
  • 내 디바이스에 모델이 직접 설치되어 있다면 속도, 프라이버시, 제어권 모두 확보 가능
  • 특히 의료, 법률, 사내툴 등 민감한 환경에서 유용함

전체 아키텍처 개요

프로젝트 구성 요소

  1. 음성 인식 (Whisper) → 텍스트로 변환
  2. LLM (LLaMA 3.1) → 명령어 해석
  3. 함수 실행기lock_screen() 같은 실제 기능 실행

Part 1: 아키텍처와 MLOps 사고방식

로컬에서도 MLOps가 필요한 이유

  • 모델 드리프트, 프롬프트 변화, 데이터셋 신뢰성, 디버깅 로깅 부족 문제 존재
  • “로컬만으로 충분하다”는 생각은 위험하며, 체계적 접근이 필요함

온라인 개발 vs 오프라인 실행

  • 개발(파인튜닝, 데이터 생성)은 클라우드에서 진행, 실행은 로컬에서 동작
  • 이 과정을 명확하게 분리하고 체계적으로 관리하는 것이 MLOps의 핵심

데이터셋 생성 (Dataset Generation Flow)

  • 단순한 프롬프트 수집이 아닌, 정형화된 함수 호출 패턴과 대화형 요청 구조 설계
  • 다양한 표현, 의도, 실패 케이스를 포괄하는 고품질 데이터셋 생성

핵심 포인트

  • lock_screen() → “화면 잠가줘”와 같은 다양한 자연어 표현을 포함
  • 자동 검증 엔진을 통해 출력이 의도한 형태인지 확인

파인튜닝 (Instruction Tuning for Function Calling)

  • 정확한 명령 매핑을 위한 소형 모델(SFT 방식) 미세조정
  • Unsloth, W&B, GGUF 포맷 추출 등 실무 도구 활용

목표

  • LLaMA 3.1 8B를 로컬에서 동작 가능한 4bit 모델로 전환
  • Raspberry Pi까지 타겟 가능한 경량화 추구

모델 연결 및 실제 실행

  • Whisper로 음성 입력을 텍스트로 변환
  • Fine-tuned LLM이 명령어를 해석
  • 로컬 API 함수 실행기(lock_screen(), get_battery_status() 등)와 연결

결과

  • 실시간 음성 비서 동작 가능
  • 네트워크 불필요, 개인정보 유출 없음, 완전한 사용자 제어 가능

오프라인 단계에서의 리스크 관리

  • 다양한 디바이스, OS에서 테스트 필요
  • 로깅 시스템 구축 필수 (opt-in 형태로 수동 제출)
  • 정식 배포 전 스트레스 테스트 및 사용자 피드백으로 문제 조기 포착

향후 계획

  • 다음 강의에서는 함수 호출용 데이터셋 생성 실습을 진행
  • 자연어 명령 → API 호출 매핑을 학습하는 전용 데이터셋을 구조적으로 구축
  • 스크래핑 금지, 오직 프롬프트 기반 시뮬레이션 및 자동 검증 데이터만 사용

결론

  • 로컬 AI 시스템은 단순하지만 안정성과 품질은 더 높은 수준의 관리가 요구됨
  • 클라우드 로그, 핫픽스에 의존하지 않기 때문에 더 높은 신뢰성과 책임감 필요
  • 이를 위해 MLOps적인 사고방식과 구조적 설계를 처음부터 적용해야 함

“프라이버시 중심, 로컬 우선의 진짜 AI 비서를 만드는 시대가 왔다”
다음 편에서는 실제 명령어-함수 매핑용 데이터셋 생성 실습을 시작함.

Hacker News 의견
  • 이런 아이디어가 마음에 들어서 직접 만들어보고 싶음, 하지만 whisper의 작은 모델들을 로컬에서 사용해본 경험이 기대 이하였음, 이 정도 사용 사례에 충분할 만큼 좋은 결과를 얻은 분이 있는지 궁금함, 내 마이크가 안 좋았던 것 같기도 함
    • 마이크 상태를 꼭 다시 점검해볼 필요가 있음, 우리 회사에서는 Whisper를 사용해서 전체 회의를 실시간으로 녹취 및 번역하고 있는데 아주 뛰어난 성능을 보여줌
    • 어떤 모델을 쓰는지 궁금함, 나는 보통 large 모델을 GPU에서 사용함, 속도도 빠르고 정말 잘 동작함, 하지만 한 번에 한 언어만 인식 가능하다는 점을 유의해야 함, 지정하지 않으면 자동 감지로 진행됨, 작은 모델들은 그만큼 성능이 부족하고 주로 영어만 지원하는 경우가 많음, 나에게는 large가 최고의 성능을 제공하지만 실제로 쓸 만한 속도를 내려면 GPU 하드웨어가 꼭 필요함, faster-whisper나 insanely-fast-whisper와 함께 사용해도 마찬가지임
  • 그냥 설치해 쓸 수 있는 제품이나 앱 형태였다면 정말 좋겠음, UI로 쉽게 설정하고 학습시키고 싶음, 그래도 이 가이드 덕분에 내가 원하는 걸 만들 수 있을 것 같아서 정말 고마운 마음임
  • 정말 멋진 자료, 고맙다는 뜻을 전하고 싶음, 아직 다 따라해보진 않았는데, 이 모델이 아이폰에서 실제로 잘 돌아가는지 궁금함, 우리 집 9살 아이가 ollama로 Qwen 0.6B 모델은 잘 돌렸지만, 그 외의 모델은 너무 느려서 쓸 만한 사용자 경험이 아니었음
    • 아, 9살 된 전화기 얘기였군, 난 초등학생이 모델을 직접 배포하고 있다는 줄 알고 깜짝 놀랐음, 내가 그 나이 때는 아직 구구단도 배우는 중이었음
    • MLC 자료에 따르면 8B 규모의 모델까지도 iOS에서 구동 가능하다고 함, 하지만 1-3B 정도가 더 현실적으로 보임, 참고 자료 있음: https://llm.mlc.ai/docs/deploy/ios.html#bring-your-own-model
  • 왜 LLM이 쓴 글이어야 하지? 의문이 듦
    • 이런 요약 형태의 스타일, 그러니까 강한 포맷팅과 (!) 모든 단락이 불릿 리스트로 나오는 점 때문에 몹시 혼란스러움, 특히 긴 글에서는 화면이 산만하고 밋밋해 보여서 가독성이 떨어지는 느낌임
  • 최근에(내가 공지를 놓쳤는지도 모르겠음) Siri가 최소한 일부 명령에 대해 로컬로 작동하고 있음을 발견함, 예를 들어 애플워치를 에어플레인 모드로 두고 타이머나 알림을 요청해보면 됨
    • Siri는 적어도 iOS 15부터는 제한적인 오프라인 기능을 가지고 있었음, 하지만 대부분의 사용자는 이를 잘 알아채지 못했음, Siri 명령의 대부분이 네트워크 연결을 필요로 하기 때문임
  • 왜 Apple은 데이터를 분석해서 상위 약 1000개 정도의 사용 용도에 대해 하드코딩된 핸들러를 마련하지 않았는지 의문임
    • 사실 이 작업을 이미 하고 있기는 한데, 속도가 너무 느린 상황임, 밝기 및 전원 관련 기능을 추가하긴 하는데 오프라인에서 뭘 사용할 수 있는지 제대로 안내하지 않음, 사용자가 에어플레인 모드로 전환해서 이것저것 직접 시도해봐야만 확인 가능함, 사용자 경험이 너무 나쁨
  • 멋진 프로젝트와 좋은 정리임
  • Apple에서 Siri를 다른 비서로 대체하는 걸 허용하는지 의문임, 안드로이드에서 구글 이외의 비서들은 오랫동안 백그라운드 청취나 하드키, 제스처, 단축키 사용에 제한이 있었음, 구글 어시스턴트가 여전히 특혜를 유지하고 있는지 확실치 않지만 그렇다고 해도 별로 놀랍지 않을 것임
    • 문제의 일부 원인은 “hey siri” 웨이크 워드를 처리하는 별도의 코프로세서(AOP)에 있음, 모델도 펌웨어에 컴파일되어 있음, 기술적으로 불가능하지는 않지만, 단순히 구글 앱이 백그라운드에서 동작하도록 두는 것만으로는 불가능함, 왜냐하면 AP가 잠든 상태에서 제스처가 발생하기 때문임, 측면의 액션 버튼 등으로 비서 앱을 구동할 수는 있겠지만 만족스러운 경험은 아닐 것임(앱이 열려 있지 않을 수 있음 등), 자세한 내용은 아래 링크 참고: https://machinelearning.apple.com/research/hey-siri
    • 새로 추가된 액션 버튼을 이용하면 커스텀 단축키를 통해 대체 비서 앱을 띄우는 게 상당히 쉬움
    • Perplexity도 이 방식으로 동작함
  • 1년 반 동안 iPhone에서 chatGPT를 충실히 써왔음, Siri의 답답함이 심해서 점점 더 싫어짐, OpenAI가 Microsoft의 도움을 받아 iPhone과 경쟁할 GPT폰을 언제쯤 내놓을지 궁금함, 나는 지루한 iPhone에 질렸음, 잠금화면에서 바로 GPT가 모든 걸 대신해주는 GPT폰이 필요함, 어서 나오길 손꼽아 기다리는 중임, 아마 비밀리에 개발 중일 거란 기대감 있음