Ollama를 이용하여 local에서 LLM 실행시켜보기

#Ollama #LLM #open-webui

ChatGPT에 이어 여러 LLM 모델들이 잔뜩 나타나고 있다. 하지만 오히려 여러 기업들이나 학교에서는 개인 정보 및 기업 비밀 유출 방지 등의 목적으로 이런 AI들의 사용을 금지하고 있다. 물론 이런 상황에서 사용하라는 것은 아니지만, 인터넷 연결이 없거나 상대적으로 보안이 중요한 상황에 LLM을 개인 컴퓨터에서 돌리는 방법에 대하여 알아보자.

원래는 훨씬 긴 글을 쓰려고 했지만, 본인이 최근에 너무 바빠서 아쉽게도 이정도에서 마무리하겠다.... :(

Ollama, 이건 도대체 뭔데??!!

Ollama는 컴퓨터의 CLI상에서 LLM 모델들을 돌리게 해준다. 여기서 특이한 점은 이것이 인터넷 연결 없이도 가능하다는 점이다. 오늘 이 튜토리얼을 따라하면 결론적으로 이런 화면을 보게 될 것이다.

시작해보자. Step 1 : Ollama 설​치

Ollama
Get up and running with large language models.

이걸 자신의 OS에 맞는 걸 설치해준다.

💡
필자는 Mac이여서 다른 기기의 성공은 장담은 못한다는 사실을 알고있기를 부탁한다.

Ollama 설치가 완료되었다면 터미널을 열고 다음과 같은 커맨드를 입력해본다.

ollama run llama3.2
💡
취향에 따라 다른 모델을 설치하여도 상관없다. 자신의 컴퓨터의 컴퓨팅 성능을 고려하여 파라미터 개수를 조절하고, 원하는 모델을 설치하자.

Llama3.2와 비슷한 정도의 용량을 가진 모델의 다른 예로는 Deepseek-r1:7b나 mistral이 있다.

다운로드가 완료된 뒤에는 >>>와 함께 프롬프트를 입력할 수 있는 창이 생긴다. 여기에 질문을 해보면 가장 기본적인 목표는 성공한 것이다.

설치되어 있는 모델들을 확인하려면 다음 커맨드를 입력해보자.

ollama list

또 필요 없는 모델은

ollama rm <MODEL_NAME>

으로 간단하게 처리 가능하다.

Step 2 : 포장

일단 가장 기본적인 local LLM을 만드는데는 성공했다. 하지만 이런 경우 귀찮을 수도 있다.

가령,

>>> Factorize x^2 + 2x + 1
<think>
1. **Identify the Form:**
   
   The given expression is:
   \[
   x^2 + 2x + 1
   \]
   This matches the form of a perfect square, specifically 
\( (a + b)^2 = a^2 + 2ab + b^2 \).

2. **Determine \( a \) and \( b \):**
   
   - The first term is \( x^2 \), so \( a = x \).
   - The last term is 1, which can be written as \( 1^2 
\). Therefore, \( b = 1 \).

3. **Apply the Perfect Square Formula:**
   
   Substituting \( a \) and \( b \) into the perfect 
square formula:
   \[
   (a + b)^2 = x^2 + 2x(1) + 1^2
   \]
   Simplifying:
   \[
   (x + 1)^2
   \]

4. **Final Factored Form:**
   
   Therefore, the factored form of \( x^2 + 2x + 1 \) is:
   \[
   \boxed{(x + 1)^2}
   \]

이처럼 Markdown으로 작성된 여러가지 글씨가 그대로 보이는 것을 확인할 수 있다.

(참고로 Llama3.2 모델은 이 문제가 없다. 애초에 CLI에서 돌리도록 설계된 듯하다.)

이를 해결하기 위해 ChatGPT스러운 UI를 구축해보자.

GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
User-friendly AI Interface (Supports Ollama, OpenAI API, ...) - open-webui/open-webui

이곳에서는 이 라이브러리를 사용할 것이다.

우선 컴퓨터에 Docker를 깔아주자. Docker가 설치되었다는 가정하에 설명을 이어나가겠다.

우리가 하고자 하는것은 Docker 내부에 컨테이너를 만들고, 그 내부에서 Open-webUI를 실행시켜 보기좋은 웹사이트를 하나 띄우는 것이다.

다음과 같은 커맨드를 실행하자

 docker run -d --name open-webui \
        -p 3000:8080 \
        -v open-webui:/app/backend/data \
        --restart always \
        ghcr.io/open-webui/open-webui:main

실행시 WebUI가 설치되고 실행된다. 이제 localhost:3000에 방문하여 설명에 따라 실행시 예쁜 UI가 뜨는 것을 확인할 수 있다.

이제 인터넷이나 보안 걱정 없이 AI를 쓸 수 있게 되었다! 🎉

출처

https://youtu.be/medh_c3X97Y?feature=shared

https://guide-to-devops.github.io/blog/ollama%EC%99%80-Open-WebUI-%EB%A1%9C%EC%BB%AC-%EB%B0%B0%ED%8F%AC