Skip to main content

4. 온디바이스와 로컬 LLM의 구조 이해하기

온디바이스와 로컬 LLM의 구조 이해하기

로컬 LLM은 생각보다 단순한 조합이다

처음 로컬 LLM을 접하면 머릿속이 금방 복잡해진다. 모델도 있고, Ollama도 있고, Open WebUI도 있고, 어떤 글에서는 GPU를 말하고 또 어떤 글에서는 API를 말한다. 그러다 보면 이런 질문이 자연스럽게 나온다.

"그래서 대체 누가 실제로 답을 만드는 거지?"

이 질문에 답하려면 로컬 LLM을 하나의 덩어리로 보지 말고, 역할이 나뉜 구조로 봐야 한다. 초보자에게 가장 이해하기 쉬운 방법은 세 층으로 나누는 것이다.

  • 모델

  • 런타임

  • 인터페이스

이 세 층만 분명히 구분하면, Ollama와 Open WebUI가 각각 무엇을 맡는지 헷갈리지 않게 된다. 쉽게 말해 모델은 "뇌", 런타임은 "뇌를 움직이는 몸", 인터페이스는 "사람과 대화하는 창구"다.

이 장에서는 이 세 층을 중심으로 온디바이스와 로컬 LLM 시스템이 어떻게 구성되는지 차근차근 살펴보겠다.

온디바이스와 로컬은 같은 말일까

두 단어는 비슷해 보이지만, 강조점이 조금 다르다.

로컬 LLM은 보통 외부 클라우드 API가 아니라 내 컴퓨터나 내 서버 같은 가까운 환경에서 모델을 실행하는 방식을 뜻한다. 핵심은 "외부 서비스에 보내지 않고 내 쪽에서 돌린다"는 점이다.

온디바이스 LLM은 그중에서도 특히 스마트폰, 노트북, PC처럼 사용자의 실제 기기 안에서 직접 돌아가는 경우를 가리키는 말이다. 핵심은 "내 장치 안에서 실행된다"는 점이다.

즉, 온디바이스는 로컬의 한 형태라고 이해해도 큰 무리는 없다. 다만 실무에서는 조금 넓게 쓰는 경우도 있다. 예를 들어 회사 내부 서버에서만 돌아가는 LLM은 로컬 또는 온프레미스라고 부르지만, 엄밀히 말하면 개인 기기 안에서 도는 온디바이스와는 구분하기도 한다.

이 책에서는 초보자 관점에서 너무 딱딱하게 구분하기보다, "외부 클라우드 대신 내 환경에서 실행하는 LLM"이라는 큰 틀로 이해하면 충분하다.

로컬 LLM 시스템을 3계층으로 보기

로컬 LLM을 집에 비유해 보자.

모델은 가구와 가전제품 같은 실제 내용물이다. 런타임은 전기, 배관, 문, 바닥처럼 집이 제대로 작동하게 만드는 기반이다. 인터페이스는 현관문, 스위치, 리모컨처럼 사람이 집과 상호작용하는 부분이다.

같은 방식으로 보면 로컬 LLM도 아래처럼 정리된다.

1층: 모델

모델은 실제로 언어를 예측하고 답을 만들어내는 핵심 파일이다. 우리가 흔히 "Llama 3", "Mistral", "Qwen", "Gemma" 같은 이름으로 부르는 대상이 여기에 해당한다.

이 모델 안에는 엄청나게 많은 숫자들이 들어 있다. 이 숫자들은 학습을 통해 조정된 값들이며, 어떤 단어 다음에 어떤 단어가 나올지 계산하는 데 쓰인다. 앞 장에서 배운 "다음 토큰을 예측하는 원리"가 바로 여기서 작동한다.

하지만 모델 파일만 있다고 해서 바로 대화가 되는 것은 아니다. 모델은 그냥 놓여 있는 엔진에 가깝다. 엔진만 바닥에 놓아두면 자동차가 달리지 않는 것과 같다.

2층: 런타임

런타임은 모델을 실제로 메모리에 올리고, CPU나 GPU를 사용해 계산하고, 사용자의 입력을 모델이 이해할 수 있는 형태로 바꾸고, 다시 결과를 꺼내주는 실행 환경이다.

쉽게 말하면 "모델을 실제로 돌리는 소프트웨어"다.

런타임은 이런 일을 맡는다.

  • 모델 파일 불러오기

  • 토큰화와 입력 처리

  • CPU 또는 GPU 연산 수행

  • 출력 토큰 생성

  • API 형태로 결과 제공

Ollama를 처음 배울 때 많은 사람이 Ollama를 모델이라고 착각한다. 하지만 Ollama는 모델 그 자체라기보다, 모델을 쉽게 내려받고 실행하고 관리하게 해주는 런타임 도구에 가깝다.

3층: 인터페이스

인터페이스는 사람이 LLM과 실제로 만나는 화면이나 입구다. 채팅창, 버튼, 입력창, 대화 기록 화면이 모두 여기에 속한다.

Open WebUI는 이 층을 이해하는 데 아주 좋은 예다. 브라우저에서 접속해 채팅하듯 사용할 수 있는 화면을 제공하고, 뒤에서는 Ollama 같은 런타임에 요청을 보내 결과를 받아온다.

즉, Open WebUI는 답을 계산하는 주체가 아니라, 사람이 더 편하게 LLM을 사용할 수 있도록 해 주는 웹 기반 인터페이스다.

가장 중요한 구분: 누가 답을 만들고 누가 보여주는가

초보자가 제일 많이 헷갈리는 부분이 바로 이것이다.

질문을 입력하면 화면에 답이 나오기 때문에, 브라우저 화면이 뭔가 대단한 계산을 하는 것처럼 느껴질 수 있다. 하지만 실제 역할은 다르다.

정리하면 다음과 같다.

  • 모델이 언어 지식을 담고 있다.

  • 런타임이 그 모델을 실제로 실행한다.

  • 인터페이스가 입력과 출력을 사람이 보기 좋게 다룬다.

따라서 Open WebUI가 답을 "생성"하는 것이 아니라, 보통은 Ollama 같은 런타임이 모델을 실행해 답을 만들고, Open WebUI는 그 답을 화면에 보여주는 역할을 맡는다.

이 한 문장만 정확히 기억해도 이후 실습이 훨씬 쉬워진다.

Ollama는 정확히 무엇을 할까

Ollama는 로컬에서 LLM을 다루기 쉽게 만들어 주는 실행 도구다. 초보자에게 인기 있는 이유는 복잡한 설정을 많이 숨겨 주기 때문이다.

예를 들어 예전에는 직접 모델 파일을 받고, 실행 엔진을 따로 설치하고, 옵션을 맞추고, API 서버까지 열어야 하는 경우가 많았다. Ollama는 이런 과정을 비교적 간단하게 만들어 준다.

Ollama가 하는 대표적인 일은 다음과 같다.

  • 모델 다운로드와 관리

  • 모델 실행

  • 로컬 API 제공

  • 여러 모델 전환 지원

여기서 중요한 점은, Ollama가 단순한 "모델 보관함"이 아니라는 것이다. 모델을 받아서 실제로 돌리고, 다른 프로그램이 접근할 수 있도록 로컬 API도 제공한다. 그래서 Open WebUI 같은 인터페이스가 Ollama에 연결해 대화할 수 있다.

초보자 눈높이에서 표현하면, Ollama는 로컬 LLM의 엔진룸 관리자라고 보면 된다.

Open WebUI는 정확히 무엇을 할까

Open WebUI는 웹 브라우저에서 LLM을 편하게 쓰도록 도와주는 대화 화면이다. 설치가 끝나면 마치 익숙한 챗봇 서비스처럼 질문을 입력하고 답을 읽을 수 있다.

Open WebUI가 맡는 일은 주로 사용자 경험 쪽이다. 예를 들면 다음과 같다.

  • 채팅 화면 제공

  • 대화 기록 관리

  • 여러 모델 선택 UI 제공

  • 시스템 프롬프트나 설정 입력 화면 제공

중요한 점은, Open WebUI 자체가 모델 계산의 핵심이 아니라는 것이다. 보통은 뒤에 있는 Ollama에 요청을 보내고, Ollama가 모델을 실행해서 결과를 돌려주면, Open WebUI가 그것을 보기 좋게 보여준다.

비유하자면 Open WebUI는 카페의 주문 창구와 비슷하다. 손님은 창구에서 주문하지만, 실제 음료를 만드는 곳은 뒤쪽 주방이다. 여기서 주방이 바로 런타임과 모델이다.

한 번에 이해하는 전체 흐름

이제 질문 하나가 어떻게 답이 되는지, 흐름을 천천히 따라가 보자.

사용자가 브라우저에서 Open WebUI를 열고 "오늘 회의 내용을 3줄로 요약해줘"라고 입력한다. 그러면 Open WebUI는 이 요청을 받아 뒤쪽의 Ollama에 전달한다. Ollama는 선택된 모델을 메모리에 올리거나 이미 올라와 있는 모델을 사용해 입력을 처리한다. 모델은 토큰 단위로 다음에 올 내용을 차례대로 예측한다. Ollama는 생성된 결과를 다시 Open WebUI에 돌려준다. 마지막으로 Open WebUI는 그 결과를 사람이 읽기 좋은 채팅 형식으로 화면에 표시한다.

짧게 압축하면 이렇다.

사람 → Open WebUI → Ollama → 모델 → Ollama → Open WebUI → 사람

이 흐름이 머릿속에 들어오면, 문제가 생겼을 때도 어디를 봐야 할지 감이 생긴다. 화면이 안 뜨면 인터페이스 문제일 수 있고, 요청이 실패하면 런타임 연결 문제일 수 있으며, 답변 품질이 이상하면 모델 선택이나 프롬프트 문제일 수 있다.

왜 굳이 이렇게 층을 나눠서 생각해야 할까

층을 나눠서 이해하면 좋은 점이 많다.

첫째, 문제를 찾기 쉬워진다. 답변이 느리다면 모델 크기 때문인지, GPU를 못 쓰는지, 인터페이스가 무거운지 구분할 수 있다.

둘째, 교체가 쉬워진다. 인터페이스는 그대로 두고 모델만 바꾸거나, 같은 모델을 다른 런타임에서 실행해 볼 수도 있다.

셋째, 학습 순서가 정리된다. 초보자는 모든 것을 한꺼번에 배우려다 지치기 쉽다. 하지만 "모델이 무엇인지", "런타임이 무엇인지", "인터페이스가 무엇인지" 순서로 배우면 부담이 훨씬 줄어든다.

예를 들어 나중에 Open WebUI 대신 다른 화면 도구를 쓰더라도, Ollama와 모델의 관계를 알고 있으면 금방 적응할 수 있다. 반대로 Ollama 대신 다른 실행 엔진을 쓰게 되어도, 인터페이스의 역할을 이해하고 있으면 전체 구조는 흔들리지 않는다.

로컬 LLM은 혼자 일하지 않는다

초보자는 종종 LLM을 하나의 마법 상자로 상상한다. 질문을 넣으면 답이 나오는 신기한 상자 말이다. 하지만 실제 시스템은 여러 부품이 협력하는 조립식 구조에 가깝다.

여기에는 모델, 런타임, 인터페이스 외에도 운영체제, 메모리, 저장 공간, CPU, GPU 같은 요소가 함께 관여한다. 이 부품들이 서로 맞물려야 비로소 "내 컴퓨터에서 돌아가는 AI"가 된다.

예를 들어 같은 모델이라도 어떤 컴퓨터에서는 빠르고, 어떤 컴퓨터에서는 느릴 수 있다. 이는 모델 자체의 똑똑함과 별개로, 그 모델을 받쳐 주는 하드웨어와 런타임 환경이 다르기 때문이다.

그래서 로컬 LLM은 단순히 "좋은 모델 하나 고르면 끝"이 아니다. 모델도 중요하지만, 그 모델을 얼마나 잘 실행할 수 있는지 역시 중요하다.

초보자가 자주 하는 오해

여기서 몇 가지 흔한 오해를 정리해 두자.

"Ollama가 곧 모델이다"

아니다. Ollama는 모델을 실행하고 관리하는 도구다. 모델은 Ollama가 다루는 대상이다.

"Open WebUI가 답을 만든다"

보통은 아니다. Open WebUI는 화면을 제공하고, 실제 생성은 뒤에서 런타임과 모델이 담당한다.

"모델 파일만 있으면 채팅 서비스가 된다"

그렇지 않다. 모델을 불러와 실행할 런타임이 필요하고, 사람이 편하게 쓸 인터페이스가 있으면 더 좋다.

"로컬이면 무조건 인터넷이 전혀 필요 없다"

실행 자체는 오프라인으로 가능할 수 있지만, 처음 모델을 내려받거나 도구를 설치할 때는 인터넷이 필요할 수 있다. 또한 업데이트나 패키지 설치에도 네트워크가 쓰일 수 있다.

작은 동네 식당으로 비유해 보기

개념이 아직 추상적으로 느껴진다면 식당 비유가 도움이 된다.

모델은 셰프의 실력과 레시피다. 실제로 어떤 맛을 낼 수 있는지는 여기서 결정된다.

런타임은 주방이다. 불을 켜고, 재료를 꺼내고, 조리 도구를 사용하고, 실제로 요리를 완성한다.

인터페이스는 홀과 메뉴판이다. 손님은 여기에서 주문하고 결과를 받는다.

이때 손님이 메뉴판에 "매운 파스타 하나요"라고 말한다고 해서 메뉴판이 요리를 하는 것은 아니다. 메뉴판은 주문을 전달할 뿐이다. 실제 요리는 주방에서 이루어진다.

Open WebUI와 Ollama의 관계도 비슷하다. Open WebUI는 메뉴판과 홀 직원에 가깝고, Ollama는 주방 시스템에 가깝다. 그리고 모델은 셰프의 실력 그 자체라고 볼 수 있다.

앞으로의 실습과 연결하기

이 장은 뒤에서 이어질 실습의 지도를 그리는 과정이다. 아직 손으로 설치를 하지는 않았지만, 어떤 부품이 어디에 놓이는지는 이미 본 셈이다.

앞으로 우리는 먼저 내 컴퓨터에서 LLM이 돌아가려면 어떤 자원이 필요한지 살펴볼 것이다. 메모리는 얼마나 필요한지, CPU만으로도 되는지, GPU가 있으면 뭐가 좋아지는지 같은 현실적인 조건을 알아볼 것이다.

그다음에는 왜 작은 모델도 꽤 쓸 만한지, 양자화와 경량화가 어떤 역할을 하는지 이해하게 된다. 그리고 나서야 비로소 Ollama를 설치하고, Open WebUI를 연결하고, 브라우저에서 실제로 대화하는 단계로 자연스럽게 넘어갈 수 있다.

즉, 지금 이 장은 실습 전에 필요한 지도 읽기라고 생각하면 된다. 지도를 보고 나면 길을 잃을 가능성이 훨씬 줄어든다.

이 장의 핵심 정리

로컬 LLM 시스템은 크게 세 층으로 이해하면 쉽다.

  • 모델은 실제 언어 생성 능력을 담고 있는 핵심이다.

  • 런타임은 그 모델을 내 컴퓨터에서 실행하는 엔진이다.

  • 인터페이스는 사람이 편하게 사용할 수 있게 해 주는 화면이다.

그리고 이 책에서 자주 만나게 될 두 도구의 역할은 이렇게 정리하면 된다.

  • Ollama는 모델을 내려받고 실행하고 관리하는 런타임 쪽 도구다.

  • Open WebUI는 브라우저에서 대화할 수 있게 해 주는 인터페이스 쪽 도구다.

이 두 가지를 헷갈리지 않으면, 로컬 LLM의 전체 그림은 이미 절반 이상 이해한 것이다. 이제 다음 장에서는 이 구조가 실제로 내 컴퓨터 위에서 돌아가려면 무엇이 필요한지, 더 현실적인 조건들을 살펴보자.

책 목록

내 기기에서 돌아가는 AI: 로컬 LLM의 원리부터 Ollama·Open WebUI 실전 구축까지

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기