DSPy를 사용하기 위해서는 먼저 환경을 구성해야 한다.
기본적으로 miniconda 설치 -> 가상환경 생성 -> jupyter notebook은 설치했다고 가정한다.
사실 지금까지 dspy 2.5를 사용하고 있었는데 dspy가 2.6으로 업데이트 되면서 더 이상 LlamaCpp를 지원하지 않는다!
ㅜㅜ LiteLLM 방식으로 불러온다고 하는데 가장 간단한 방법이 뭐가 있을까 하다가 찾아본 것이 바로 Ollama이다.
모델은 LG AI의 EXAONE 3.5를 사용하겠다. (수학, 과학 잘하면서도 한국어, 영어 잘한다. 그리고 내가 물리교사라서 그런지 몰라도 물리 물어보면 gemma보다는 나름 대답 잘한다.)
그리고 ollama를 설치한 김에, open-webui도 함께 설치해 보겠다.
1. Ollama 설치하기
Ollama
Get up and running with large language models.
ollama.com
여기 들어가서 윈도우 버전으로 다운 받자. 그런데 C드라이브에 자동 설치된다는 문제점이 있다. 본인은 E 드라이브에서 언어모델을 구동한다. 즉, 다른 드라이브에 설치해야 한다. 검색을 해보니 방법이 있었다.
(Windows), C와 다른 드라이브에 설치하는 방법???? · 문제 #2546 · 올라마/올라마
(windows), HOW TO INSTALL IT on DIFFERENT drives than C???? · Issue #2546 · ollama/ollama
Hello I tried installing it by cliking on the window installer It started by inserting some ddl files in C ok, but then even the models are inserted there: I dont have much space left I would like ...
github.com
이 중에서 아래 댓글이 도움이 되었다. (역시 인공지능은 중국인가...;;;)
E드라이브에 잘 설치된다..!!!
하지만 문제는 모델은 C드라이브에 설치된다. 이것도 아래와 같이 참고했다.
다운로드/실행 디렉토리를 변경하는 방법이 있습니까? · 이슈 #680 · 올라마/올라마
Is there a way to change the download/run directory? · Issue #680 · ollama/ollama
On Linux, I want to download/run it from a directory with more space than /usr/share/
github.com
이를 참고하여 아래와 같이 환경 변수를 생성하고 Ollama를 껏다 켜니 모델 인식이 잘 되었다.
이제 실행을 해 보자.
ollama run <model>:<tag> "text"
2. Ollama python 설치하기
Ollama를 파이썬으로 사용해 보자. 본인은 miniconda로 가상환경을 설정하였다.
아래와 같이 설치한다.
pip install ollama
주피터 노트북을 열고 아래와 같이 모델을 임포트한다.
import ollama
exaone_model = 'exaone3.5:2.4b-instruct-q4_K_M'
ollama.pull(exaone_model)
ProgressResponse(status='success', completed=None, total=None, digest=None)
간단하게 모델과 대화해 보자
response = ollama.chat(model=exaone_model, messages=[
{
'role': 'user',
'content': '하늘은 무슨 색깔인가요?',
},
])
print(response['message']['content'])
하늘의 색깔은 시간, 날씨, 계절 등 여러 요인에 따라 달라질 수 있습니다!
일반적으로 맑고 청명한 날에는 **하늘이 주로 푸른색**을 띠지만, **햇살에 따라 노란색이나 붉은색**도 보일 수 있습니다. 구름의 양과 종류에 따라 **흰색, 회색, 심지어 푸른색과 회색의 혼합** 등 다양한 색상으로 보일 수 있습니다. 어떤 색깔의 하늘이 보이든 자연의 아름다움을 느끼는 것이 중요합니다!
마찬가지로 주피터 노트북 코드셀에서 cmd에서 사용하는 커맨드를 사용할 수 있다.
!ollama
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
stop Stop a running model
pull Pull a model from a registry
push Push a model to a registry
list List models
ps List running models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
3. DSPy 설치하기
DSPy를 설치하고 Ollama REST API를 이용하여 DSPy 객체를 간단히 만들어보자. 구체적인 설명은 다음 포스트에서 하겠다. 먼저 라이브러리를 설치하자.
pip install -U dspy
DSPy의 LLM 객체는 LiteLLM를 이용한다고 한다. LiteLLM의 providers 양식에 맞추기 위해 아래와 같은 코드를 작성하였다.
Ollama_chat / <모델명>과 REST API의 로컬 주소를 넘겨주면 된다.
import dspy
llm = dspy.LM('ollama_chat/exaone3.5:2.4b-instruct-q4_K_M',
api_base='http://localhost:11434', api_key='',
model_type="chat", temperature=0.7, max_tokens=500)
dspy.settings.configure(lm=llm)
작동이 잘 되는지만 확인해 보자.
session = dspy.Predict('question -> answer') # we'll see an example with Literal[] later
response = session(question="하늘은 무슨 색깔인가요?")
print(response.answer)
하늘은 대체로 파란색입니다. 이는 대기 중의 질소와 산소 분자들이 빛을 산란시키는 방식 때문입니다.
출력되면 성공이다. 다음 시간부터 왜 DSPy를 사용하는지 차근차근 알아보도록 하자.
4. (번외) open-web ui 설치하기
ollama를 설치하였다면 open-webui도 사용 가능하다.
GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
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
github.com
방법은 굉장히 간단한데 ollama가 켜진 상태(serve)에서 가상환경에서 open-webui를 설치하고 open-webui serve를 입력한 후, localhost:8080으로 들어가면 된다.
로컬호스트로 들어가면 아래와 같이 화면이 나오는데 첫 로그인을 하면 관리자계정이 된다. (개인정보는 어느곳에서도 전송 안됨) 로그인을 하면 아래와 같은 챗방이 뜬다. 잘 된다.