최근에는 여러 회사에서 LLM 모델이 나오면서 마치 대LLM시대가 된것 같다.
실제로도 많이 사용하고 있는 ChatGPT, Copilot, Amazon CodeWhisperer 등 많은 AI 서비스들과 함께 LLM 모델들도 쏟아져 나오고 있다.
이러한 모델 중 오픈소스 모델들도 꽤 많아지고 성능 역시 좋아져서 개인 프로젝트에서 구현하기 어려웠던 기능들을 LLM의 도움을 받아 처리해볼까 한다. 예를 들면 데이터 크롤링 후 가공 또는 분류라던가 리뷰 데이터에 대한 분석 같은 자연어 처리가 꼭 필요했던 부분에서 사용해보려고 한다. Ollama를 통해 Local 환경에서 LLM 모델을 실행시켜보고 후기를 공유하는 글입니다.
Get up and running with large language models.
Ollama는 사용자의 로컬 머신에서 LLM 모델을 쉽게 실행할 수 있도록 도와주는 프레임워크입니다. 모델을 직접 다운로드 하고 관련 코드를 작성하고 실행하는 기존 방식과 다르게 Ollama를 설치하면 명령어를 통해 쉽게 모델을 로드하여 LLM 모델을 실행할 수 있고 Rest API까지 지원하여 이를 응용해 나만의 서비스를 만들수도 있습니다.
현재는 macOS, Linux, Windows 운영체제에서 지원하고 있습니다.
Ollama는 각 운영체제에 맞게 다양한 설치 방식을 지원합니다.
brew install ollama
이번엔 간단하게 테스트를 위해 홈페이지에서 .dmg 파일을 다운로드 받아 설치하였습니다.
Ollama Models 사이트에서 사용하고 싶은 LLM 모델을 찾은 후 다음 명령어를 통해 쉽게 모델을 다운로드하고 실행할 수 있습니다.
ollama pull {model}:{version}
저는 llama3 모델을 사용하기 위해 ollama pull llama3:8b
명령어를 사용했습니다.
그리고 ollama run llama3
명령어를 통해 실행합니다.
그럼 터미널에서 바로 질문을 입력하고 결과를 받아볼 수 있습니다.
Ollama를 통해 LLM을 실행시켜 보았습니다. 이번에는 Ollama에서 지원하는 rest api를 통해 Python에서 호출하여 기능 개발에 이용해보겠습니다.
Python 라이브러리를 지원하기 때문에 pip install Ollama
명령어를 통해 설치합니다.
from langchain_community.llms.ollama import Ollama
ollama = Ollama(
base_url='http://localhost:11434',
model='llama3:8b'
)
response = ollama.chat(model='llama3', messages=[
{
'role': 'user',
'content': 'Why is the sky blue?',
},
])
print(response['message']['content'])
비교적 멀게 느껴졌던 AI 관련 기술이 Ollama를 통해 쉽게 사용할 수 있게 도와주고 이를 통해 평소에는 구현하기 어려웠던 아이디어들을 많이 시도해볼 수 있을것 같다. 예를 들면 정부 정책 수집 등 정해진 형식이 없는 형태의 글들도 LLM 모델을 통해 원하는 Key:Value 형태의 Json으로 분류할 수 있고 이를 통해 자연어 처리가 필요한 많은 기능들을 보다 쉽게 구현할 수 있게 되었다. 물론 ChatGpt API 등을 사용하는 방법도 있겠지만 Ollama는 Local에서 구동되는만큼 비용적으로도 부담이 없어서 좋았다. 물론 성능은 gpt-4o를 따라갈수는 없었던 것 같다.
또 하나의 단점으로는 그래픽 메모리가 모델의 용량만큼 필요하다보니 llama3의 경우 8b 모델까지가 한계였다. 이부분은 aws 등 클라우드 서비스를 통해 해결 가능할 것 같지만 그럴 경우에는 gpt api가 조금 더 저렴할 것 같다.