명장 홈🤖 AI명장유튜브 AI 강좌를 함께 정리하고 함께 배우는 명장 플랫폼명장 게시판 홈요청하기
본문 태그 링크 끄기

15분 만에 배우는 Ollama: LLM 모델을 내 컴퓨터에서 무료로 실행하기

Tech With Tim · 2025-01-13 · 유튜브 시청 1,287,861 · 게시판 조회 0 · 외국인

응용LLM·생성AI

유튜브 썸네일

난이도 응용#Ollama#로컬LLM#생성AI#Python#모델설정#ChatGPT

← 목록

저자: Tech With Tim (외국인) · 원제: Learn Ollama in 15 Minutes - Run LLM Models Locally for FREE

난이도 판정: 터미널에서 로컬 모델을 설치·전환하는 데 이어 Python의 HTTP 요청, JSON 페이로드와 스트리밍 응답을 다룬다. Ollama 패키지와 Modelfile을 이용해 애플리케이션에서 모델을 호출하고 사용자 지정 모델을 생성하는 개발 실습이 포함되어 응용 수준이다.

요약

⏱ 00:04Ollama는 LLM을 자기 컴퓨터에서 관리하고 실행하는 무료 오픈 소스 도구다. 외부 호스팅 서비스 대신 로컬에서 사용하므로 개인정보 보호와 보안에 이점이 있다. 모델 전체를 내려받아야 하므로 저장 공간과 RAM을 확인해야 한다. 영상의 Llama 3.1 예시는 231GB·매개변수 4,050억 개로, RAM 64GB 컴퓨터에서도 불러오기 어렵다. 작은 Llama 2나 Mistral로 시작하고, `ollama run 모델명`으로 다운로드·실행하며 `/bye`로 대화를 끝내고 `ollama list`로 설치 목록을 확인한다.

⏱ 08:27실행 중인 서버에는 Python 등에서 HTTP 요청을 보내 모델을 사용할 수 있다. 데스크톱 앱이 서버를 백그라운드에서 실행하며, 수동 실행은 `ollama serve`, 기본 포트는 11434다. `/api/chat`에 모델과 사용자 메시지를 JSON으로 POST하고 스트리밍 응답을 순차적으로 출력할 수 있다. Python의 `ollama` 패키지를 설치하면 클라이언트의 `generate`에 모델과 프롬프트를 전달하는 방식으로 호출을 단순화할 수 있다.

⏱ 11:41Modelfile은 `FROM`으로 기반 모델을 지정하고 온도와 시스템 메시지 등을 설정한다. Llama 3.2에 마리오 역할을 지시한 예제처럼, `ollama create mario -f ./Modelfile`로 만들고 `ollama run mario`로 실행한다. 생성한 모델은 코드에서도 이름으로 지정할 수 있으며, 삭제할 때는 `ollama rm mario`를 사용한다.

⏱ 00:001. Ollama 설치와 실행 확인

⏱ 00:00이 짧은 영상에서는 무료 오픈 소스 도구인 Ollama를 설치하고 실행하는 데 필요한 내용을 알려 드리겠습니다. Ollama는 대규모 언어 모델(LLM)을 로컬에서 관리하고 실행하게 해 줍니다. ChatGPT에 돈을 내거나 온라인 호스팅 서비스를 이용하는 대신, 자기 컴퓨터에서 이 모델들을 직접 실행할 수 있습니다. 그러면 개인정보 보호와 보안이라는 이점이 있고, 무엇보다 모델을 무료로 사용할 수 있습니다. 설치와 실행 방법에 이어 코드에서 사용하는 방법도 설명하겠습니다. Ollama가 HTTP 서버를 제공하므로 사실상 어떤 종류의 애플리케이션에서든 모델을 호출할 수 있습니다.

⏱ 00:36먼저 Ollama를 설치해야 합니다. 설명란에 링크를 넣어 둘 웹사이트인 ollama.com으로 가서 다운로드를 누르고 운영체제를 선택하세요. 저는 Windows를 사용합니다. Linux용 설치 명령과 Mac용 설치 프로그램도 있습니다. 다운로드가 끝나면 설치 파일을 두 번 클릭해서 설치하세요. 설치 후 실행하는 방법은 몇 가지가 있습니다. 우선 데스크톱 애플리케이션을 열 수 있습니다. Windows에서는 검색창에 Ollama를 입력하면 되고, Mac에서는 Spotlight 검색을 이용하면 됩니다. Linux에서도 애플리케이션을 찾아 실행하면 됩니다.

⏱ 01:12이렇게 실행해도 화면에 아무것도 나타나지 않습니다. Ollama 서비스를 구동하는 백엔드 서버만 시작하기 때문입니다. 다른 방법으로 명령 프롬프트나 터미널을 열 수도 있습니다. 지금 저는 Windows 명령 프롬프트를 열어 놓았습니다. 여기서 `ollama`를 입력하면 어떤 형태로든 출력이 나와야 합니다. 출력이 보인다면 Ollama가 올바르게 설치된 것입니다. 여기부터는 설치가 제대로 되었고 이 명령을 실행했을 때 출력도 확인했다고 가정하겠습니다. 이제 모델을 실행할 수 있습니다.

⏱ 01:402. 모델 선택과 컴퓨터 자원 확인

⏱ 01:40먼저 Ollama로 어떤 모델을 이용할 수 있는지 살펴보겠습니다. 사실상 원하는 거의 모든 오픈 소스 모델을 사용할 수 있습니다. 사용자 지정 설정을 작성해서 자신의 모델이나 Hugging Face 같은 곳에서 가져온 모델을 이용할 수도 있습니다. 아래에 링크할 Ollama GitHub 저장소에 가면 다운로드해 볼 만한 대표 모델들을 볼 수 있습니다. 다만 로컬에서 실행하므로 모델 전체를 다운로드해야 합니다. 컴퓨터에 충분한 저장 공간이 있어야 하고, 모델 크기에 따라 모델을 메모리에 올리고 실행할 만큼의 RAM도 필요합니다. 목록에는 용량이 43GB인 모델도 보입니다.

⏱ 02:14여기에는 모델마다 매개변수 수가 표시되어 있습니다. 예를 들어 Llama 3.1을 보면 용량이 231GB이고 매개변수는 4,050억 개입니다. 아래 주석에는 모델의 매개변수 규모별로 몇 GB의 RAM이 필요한지도 적혀 있습니다. 제 컴퓨터는 RAM이 64GB인데, 이 컴퓨터에서도 매개변수가 4,050억 개인 새 Llama 3.1 모델을 불러오기는 어렵습니다. 사용할 모델을 고를 때 이런 점을 고려하세요. 지금은 기본 Llama 2 모델을 선택하겠습니다. 오래된 모델이고 크기가 그렇게 크지 않아 제 컴퓨터에서 실행할 수 있다는 것을 알고 있으며, 여러분 대부분도 실행할 수 있을 것입니다.

⏱ 02:52잠시 후 이 모델을 가져오는 방법을 보여 드리겠습니다. 사용 가능한 모든 모델의 목록을 찾는다면 Ollama 라이브러리에 가 보세요. ollama.com/library에 들어가서 아래로 내려 보면 수백 개의 모델이 나옵니다. 정렬하거나 필터를 적용해서 원하는 모델을 찾을 수 있습니다. 동영상, 사진, 음성 등을 입력으로 받는 멀티모달 모델도 찾아볼 수 있습니다. 어떤 모델을 실행할지 결정했다면 실제 실행 방법은 아주 간단합니다. `ollama run` 뒤에 해당 모델의 식별자를 입력하기만 하면 됩니다.

⏱ 03:213. 모델 다운로드, 대화와 종료

⏱ 03:21저는 Llama 2를 실행하겠습니다. 이미 오래된 모델이라는 것은 알고 있지만, 크기가 작아서 예제로 사용하는 것입니다. `ollama run llama2`를 입력하면 됩니다. 이 모델이 아직 시스템에 설치되어 있지 않으면 다운로드하고 설치해 줍니다. 이미 설치되어 있다면 곧바로 모델에 말을 입력하고 시험할 수 있는 프롬프트가 열립니다. 지금은 모델을 불러온 다음 화살표 세 개가 표시됩니다. 여기에 내용을 입력하면 모델이 응답합니다. 제 컴퓨터에서 직접 실행하므로 통신 지연이 없어서 응답이 거의 즉시 나오는 것을 볼 수 있습니다.

⏱ 03:53다시 말해, 미리 설치하지 않은 모델이라면 먼저 모델을 가져오기 시작합니다. 그때는 다운로드와 설치가 끝날 때까지 기다린 다음 모델을 실행해서 사용하면 됩니다. 여러 방법을 시험해 보다가 대화를 빠져나가려면 `/bye`를 입력하면 된다는 것을 알게 되었습니다. 실제로 `/bye`를 입력하면 대화 화면이 종료됩니다. 그다음 `ollama list`를 입력해서 시스템에서 이용할 수 있는 모델들을 나열할 수 있습니다. 제 경우에는 최신 태그의 Llama 2가 표시됩니다. 다른 모델이 있었다면 그 모델들도 여기에 나왔을 것입니다.

⏱ 04:22여기까지가 Ollama로 모델을 실행하는 기본 방법입니다. 아직 보여 드릴 내용이 많이 남아 있으니, 후원사에 대한 짧은 안내가 끝난 다음에도 계속 시청해 주세요.

⏱ 04:304. 후원사 SEO Writing 안내

⏱ 04:30오늘 영상의 후원사는 여러 분야와 산업의 콘텐츠 제작 방식을 바꾸고 있는 도구인 SEO Writing입니다. 새 Brand Voice 기능으로 자신의 고유한 문체에 맞는 콘텐츠를 생성할 수 있습니다. 튜토리얼이나 리뷰, 산업 분석을 작성하든 클릭 한 번으로 완성된 블로그 게시물을 만들 수 있습니다. AI가 생성한 이미지와 관련 동영상도 자동으로 삽입되므로, 직접 작업할 때 드는 시간을 몇 시간씩 줄일 수 있습니다.

⏱ 04:54SEO Writing의 차별점은 출처 인용 기능이 내장된 심층 웹 조사입니다. 정확한 최신 정보가 필요하면 신뢰할 만한 출처에서 정보를 가져와 인용을 자동으로 추가합니다. 문장을 사람답게 다듬는 기능은 AI로 만든 콘텐츠를 돋보이게 해 주며, 외부 링크 기능은 관련 자료를 지능적으로 연결합니다. WordPress 사용자라면 자신의 사이트를 연결해 콘텐츠를 직접 자동 게시하는 기능도 사용할 수 있습니다. 따라서 다른 프로젝트에 집중하는 동안에도 일정에 맞춰 꾸준히 게시할 수 있습니다.

⏱ 05:25직접 사용해 보고 싶다면 제 할인 코드인 `TWT25`를 사용해 25% 할인을 받으세요. 설명란의 링크를 클릭해서 SEO Writing을 자신의 콘텐츠 전략에 어떻게 활용할 수 있을지 확인해 보세요.

⏱ 05:365. 여러 모델 전환과 HTTP 서버

⏱ 05:36이제 다시 실습을 이어서 여러 모델을 가져오면 어떻게 되는지 보여 드리겠습니다. 라이브러리로 돌아가 사용할 모델을 살펴볼 수 있고, 더 쉽게 찾으려면 GitHub 목록으로 돌아가도 됩니다. 이번에는 Mistral 모델도 사용해 보겠습니다. 목록에서 명령 전체를 복사하거나 Mistral이라는 이름만 복사한 뒤, 터미널로 돌아와 `ollama run mistral`을 실행하면 됩니다. 그러면 매니페스트와 모델을 가져옵니다. 다운로드가 끝나면 이 모델을 사용할 수 있습니다. 지금 다운로드가 완료되었으니 바로 모델과 대화할 수 있습니다.

⏱ 06:08원하면 여기서 빠져나온 뒤 두 모델을 번갈아 실행할 수도 있습니다. 다시 `ollama run` 뒤에 사용할 모델을 지정하면 됩니다. Llama 2로 돌아가려면 `llama2`를, Mistral로 돌아가려면 `mistral`을 지정합니다. 그러면 Mistral을 다시 사용할 수 있습니다. 이런 식으로 원하는 만큼 모델을 보유할 수 있고, `ollama list`로 목록을 볼 수 있습니다. 사용 가능한 모든 명령을 확인하려면 `ollama`만 입력하세요. 다양한 명령이 표시됩니다. 모델을 제거하거나 복사할 수도 있고, 잠시 후 보여 드릴 사용자 지정 설정도 할 수 있습니다.

⏱ 06:44터미널에서 쓰는 것도 좋지만, 애플리케이션의 코드에서 이 모델을 사용하는 방법도 궁금할 것입니다. 특히 이 채널을 보는 프로그래머라면 소프트웨어에 통합하려는 경우가 많을 테니까요. Ollama의 흥미로운 점은 localhost에 HTTP API를 노출한다는 것입니다. 지금까지 명령으로 했던 작업을 API로도 실행할 수 있습니다. curl, Postman 또는 Python 코드로 요청을 보내면 됩니다. HTTP 요청을 보낼 수 있는 코드라면 어떤 언어로 작성했든 사용할 수 있습니다.

⏱ 07:15기본적으로 Ollama를 실행하고 있다면 Windows에서 실행 중인 애플리케이션을 표시하는 트레이 영역에 작은 Ollama 로고가 보일 것입니다. 데스크톱 애플리케이션으로 실행 중이면 기본적으로 포트가 열려 있으므로 HTTP API에 접근할 수 있습니다. 만약 실행 중이 아니라면, 예를 들어 제가 지금처럼 애플리케이션을 종료했다면, 터미널에 `ollama serve`를 입력하세요. 그러면 해당 터미널에서 HTTP API가 실행됩니다. 출력에는 서버가 실행 중인 포트도 나옵니다. 보통 정해진 포트를 쓰며, 여기에서 확인한 정확한 포트는 11434입니다. 나중에 코드에서 사용할 수 있도록 복사해 두어도 됩니다.

⏱ 08:04이제 `ollama serve`로 서버를 실행했거나 Ollama HTTP API가 실행 중이면 호출할 수 있습니다. 다시 분명히 말씀드리면, 데스크톱 애플리케이션을 사용하고 있다면 이미 백그라운드에서 서버가 실행 중입니다. 수동으로 실행하고 싶은 경우에는 `ollama serve`를 사용하면 됩니다. 이 방식은 터미널에 출력이 나타나므로 HTTP 서버로 들어오는 모든 요청을 확인할 수도 있습니다.

⏱ 08:256. Python에서 API를 직접 호출하기

⏱ 08:25서버가 실행 중이므로 이제 화면에 보이는 Python 코드로 요청을 보낼 수 있습니다. 일부러 수동으로 요청하는 예제를 먼저 보여 드리는 것입니다. 잠시 후 더 쉬운 방법도 소개하겠지만, 원한다면 이런 방식으로 모든 과정을 직접 제어할 수 있다는 점을 보여 드리려는 목적입니다. 여기서는 Python의 `requests` 모듈과 `json` 모듈을 사용합니다. 자신의 컴퓨터에서 실행하려면 `requests`를 설치해야 합니다. `pip install requests` 또는 `pip3 install requests`를 입력하세요. 이 코드는 설명란이나 GitHub 저장소 링크를 통해 제공할 테니 확인해 보세요.

⏱ 08:57먼저 기본 URL을 정의합니다. 서버의 URL 뒤에 `/api/chat`을 붙인 주소입니다. 다른 엔드포인트도 많이 있으며 모델을 삭제하거나 추가하는 등의 작업도 제어할 수 있습니다. 이번에는 모델 하나와 대화하는 것이 목적입니다. 다음으로 페이로드를 정의하고 대화할 모델을 지정합니다. 여기서는 Mistral을 골랐습니다. 이어서 메시지들을 정의할 수 있습니다. 화면의 예제에는 역할을 `user`로 지정한 일반적인 사용자 메시지가 들어 있습니다.

⏱ 09:21그다음 `requests.post`로 해당 URL에 POST 요청을 보냅니다. 방금 정의한 페이로드를 JSON으로 전달하고 스트리밍 모드를 활성화합니다. 그러면 응답이 생성되는 대로 받아 올 수 있습니다. 전체 응답이 모두 만들어질 때까지 기다렸다가 표시하는 대신, 실시간으로 조각을 받아서 모델이 답을 작성하는 모습을 보여 줄 수 있는 것입니다. 화면의 나머지 코드는 이 스트리밍 데이터를 처리합니다. 응답에서 돌아오는 각 줄을 순회하면서 내용을 출력하는 방식입니다.

⏱ 09:53실행하면 어떤 일이 일어나는지 보겠습니다. `requests`는 이미 설치해 두었고, `python sample_request.py`로 실행하겠습니다. 잠시 기다리면 데이터를 스트리밍으로 받으면서 출력합니다. 실제로 데이터가 도착할 때마다 한 줄씩 표시되고 있습니다. 이렇게 “Python은 고수준 언어입니다…”라는 식으로 답변이 나옵니다. API 서버 화면으로 돌아가면 요청이 전송된 기록도 볼 수 있습니다. 이번 요청은 처리에 4.1초가 걸렸고, 그 결과 데이터를 돌려주었습니다. 이것이 API를 수동으로 사용하는 방법입니다.

⏱ 10:237. Ollama 패키지와 사용자 지정 준비

⏱ 10:23하지만 여러분 중에는 이 코드를 모두 직접 작성하고 싶지 않은 분도 많을 것입니다. 대신 이름 그대로 `ollama`라는 아주 간단한 Python 모듈을 사용할 수 있습니다. Python과 JavaScript에는 이런 처리를 대신해 주는 패키지가 있습니다. Python에서는 시스템에 `pip install ollama` 또는 `pip3 install ollama`를 실행해 모듈을 설치하세요. 그러면 Ollama 모듈을 사용할 수 있습니다. 클라이언트를 만들고 모델과 프롬프트를 정의한 다음, `client.generate`에 모델과 프롬프트를 지정해서 호출하고 응답을 받으면 됩니다.

⏱ 10:57이 코드도 간단히 실행해 보겠습니다. `python package.py`로 실행하고 잠시 기다리면 응답을 받을 수 있을 것입니다. 실제로 응답이 돌아왔고 답변도 표시됩니다. 여기까지가 HTTP API를 사용하는 방법입니다. 이제는 Ollama의 모델에 사용자 지정 설정을 적용하는 방법을 보여 드리겠습니다. Ollama로 가져올 수 있는 모델이라면 어떤 모델이든 적용할 수 있는 간단한 설정 예제입니다.

⏱ 11:24화면 오른쪽을 보면 제가 `Modelfile`이라는 파일을 만들어 두었습니다. 이 파일은 바탕화면의 한 디렉터리에 넣어 두었습니다. 여러분도 자신이 위치를 알고 있고 터미널에서 접근할 수 있는 곳에 파일을 두세요.

⏱ 11:378. Modelfile로 Mario 모델 만들기

⏱ 11:37Modelfile에는 Ollama 웹사이트에서 그대로 가져온 아주 간단한 문법을 사용했습니다. 먼저 `FROM`을 적고 기반으로 사용할 모델을 지정합니다. 여기서는 Llama 3.2를 사용하지만, Ollama에서 제공하는 모델이라면 원하는 것을 골라도 됩니다. 모델의 온도(temperature) 같은 값을 설정할 수도 있습니다. 반드시 설정해야 하는 것은 아니며, 그 밖에도 지정할 수 있는 매개변수가 있습니다. 이어서 시스템 메시지를 전달할 수 있습니다. 시스템 메시지는 모델이 무엇을 해야 하고 앞으로 들어올 메시지를 어떻게 처리해야 하는지 지시하는 내용입니다. 이 예제에는 “너는 슈퍼 마리오 브라더스의 마리오다. 오직 조수 마리오로서 답하라”라고 적혀 있습니다.

⏱ 12:11이렇게 Modelfile을 작성했습니다. 확장자가 없다는 점을 보세요. 파일 이름은 그저 `Modelfile`이고, `.txt` 같은 확장자는 붙지 않습니다. 터미널도 이 파일이 있는 디렉터리로 이동해 두었습니다. 이제 Ollama에서 이 파일을 바탕으로 Mario라는 설정을 가진 새 모델을 만들 수 있습니다. `ollama create`를 입력하고 이름을 지정하면 됩니다. 저는 `mario`라고 부르겠지만 원하는 이름을 사용해도 됩니다. 다음으로 파일을 뜻하는 `-f` 옵션과 Modelfile의 위치를 지정합니다. 여기서는 `./Modelfile`입니다. 즉 `ollama create mario -f ./Modelfile`로 생성합니다. 실행하니 성공했다는 메시지가 나옵니다. 기반 모델인 Llama 3.2는 이미 가져와 둔 상태입니다.

⏱ 12:55이제 이 사용자 지정 모델을 사용하려면 `ollama run` 뒤에 모델 이름인 `mario`를 입력하면 됩니다. `ollama run mario`로 실행한 뒤 “hello”라고 인사해 보면 “It's me, Mario!”라고 답합니다. 마리오가 대답하는 방식을 흉내 내는 것입니다. 이처럼 시스템 프롬프트를 주거나 매개변수에 다른 값을 설정하는 등 모델을 조정하고 싶다면 Modelfile을 사용하세요. 그 설정 파일을 바탕으로 Ollama에서 모델을 생성하면 됩니다.

⏱ 13:22이 모델을 다 썼고 제거하고 싶다고 해 보겠습니다. `ollama rm` 뒤에 모델 이름인 `mario`를 적어 `ollama rm mario`를 실행하면 삭제됩니다. 이제 `ollama list`를 입력하면 더 이상 목록에 보이지 않습니다. 또한 Mario 같은 모델은 코드에서도 사용할 수 있습니다. 모델을 생성한 뒤 Python 코드에서 모델 이름을 `mario`로 지정하면 됩니다. 오늘 보여 드리고 싶었던 내용은 여기까지입니다. 도움이 되었기를 바랍니다. 유익했다면 좋아요를 누르고 채널도 구독해 주세요. 다음 영상에서 뵙겠습니다. 안녕!

난이도 응용#Ollama#로컬LLM#생성AI#Python#모델설정#ChatGPT

← 목록으로
공유페이스북밴드

이 글에 대해 요청(숨김) 수정 요청