캠프 3주차에 ollama를 이용하여 로컬에서 LLM 모델을 활용하는 내용을 발표한 후, 한글로도 사용 가능한 모델이 나오기를 기다렸었습니다.
https://www.gpters.org/dev/post/create-private-rag-ollama-VaPQJ7ArxxfyrJw
그러다가 … 드디어 ollama에서 활용할 수 있는 한국어 fine tuning한 오픈소스 LLM이 나왔다고 해서 설치해 보기로 하였습니다. 야놀자에서 이런 일을 했네요.
일단 그 과정을 모두 동영상으로 담아주신 분이 계셔서 그 분의 동영상을 따라 해보기로 했습니다. 이런 동영상을 만들어주신 분께 감사드립니다.
🔥성능이 놀라워요🔥 무료로 한국어🇰🇷 파인튜닝 모델 받아서 나만의 로컬 LLM 호스팅 하기(#LangServe) + #RAG 까지!!
먼저 모델을 다운 받아야 하는데 동영상에서 알려주신 대로 터미널에서 명령문을 복붙해서 하려니 잘 안되더군요. 처음부터 만만치 않군요. 이분은 맥북을 사용하시고, 저는 데스크탑 윈도우라 환경이 달라서 그런가봐요.
huggingface-cli download \
heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF \
ggml-model-Q5_K_M.gguf \
--local-dir 본인의_컴퓨터_다운로드폴더_경로 \
--local-dir-use-symlinks False
그래서 직접 huggingface에 찾아 가서 모델을 찾아 다운로드를 했습니다. 모델 이름을 가지고 찾아봤지요. 모델 명이 EEVE-Korean-Instruct-10.8B-v1.0.
저는 그분과 똑같이 Q5 버전을 다운로드해서 폴더에 저장했습니다.
그리고 알려주신대로 같은 폴더 안에 Modelfile을 만들어서 똑같이 내용을 복붙했습니다.
그 파일을 이용해서 ollama에서 이 모델을 사용할 수 있도록 모델을 생성하는 명령을 터미널에서 내립니다. Ollama create...
몇 개의 warning이 뜨길래 가슴 졸이며 기다렸더니… 네 간신히 성공입니다!
Ollama에서 사용할 수 있는 모델 리스트에 EEVE… 모델이 새로 추가 되었습니다.
그럼 이제 이 모델을 사용하겠다고 명령을 주어야겠지요? ollama run...
헉, 에러가 뜹니다.
그래서 아까 떳던 warning 들도 다 제거하기 위해 챗지, 클로드에 물어보며 씨름을 한 끝에 다시 모델을 생성하였는데 이번엔 warning도 다 사라졌습니다.
깔끔하게 모델 생성에 성공!
그래서 모델을 돌리고 질문을 하니, 우와! 대답을 해줍니다.
이제 이 모델을 LangServe라는데 올려서 다른 사람들도 이 서비스를 사용할 수 있도록 한다네요. 그럼 그것도 따라해 봐야겠지요?
근데 이게 복잡하네요. 이 분의 github에 가보니 langserve-ollama 라고 되어 있는 폴더가 있는데, 그 안에 파일이 여러 개고 서브폴더도 있고 해서 클로드에 부탁해서 쉽게 로컬 폴더로 복사하는 방법을 알려달라고 했더니 git clone이라는게 있다네요. 따라 해야지요.
https://github.com/teddylee777/langserve_ollama
아… 근데 안되네요… 폴더를 찾을 수가 없다네요…
어떻게 할까… 포기해야 하나? 하다가 그냥 무식하게 해보기로 했습니다. 복붙…
진땀 흘리며… 파일을 똑같이 복붙해서 드디어 볼만하게 만들었습니다.
그리고 서버를 돌리기 위한 명령을 주었더니 … 또 에러가 뜨면서 … 😭 … 하나도 제대로 넘어가 주지 않네요.
그래서 또 에러를 클로드에 복붙…
그랬더니 패키지가 하나 빠진거라네 요. 그래서 설치해주고나니… 와우… 서버가 돌아갑니다.
그리고 가르쳐준대로 로컬호스트에서 시도해 보니… 역시 … 한 번에 되는 법이 없네요.
그래서 또 끙끙 대다가 혹시나 … 로컬호스트가 127.0.0.1? 그럼 127.0.0.1:8000 으로 해볼까?
오! 된다된다!!!
이건 streamlit으로 했다는데, 이름을 들어보긴 했지만, 이 코딩은 배우려고 해 본 적도 없는데 그냥 단순 복붙으로 이게 되네요?!
그럼 질문을 해 볼까요?
역시 에러가 뜨네요… 네트워크 에러…!!! 이게 무시무시한 에러라는 이야기는 많이 들었는데… 이걸 그대로 챗지하고 클로드에게 주어봤더니… 아… 저한테는 이해가 안되는 외계어 같은 이야기들만 늘어놓네요... 그 이야기는 생략하기로 하지요. 골치아프거든요.
그리고는… 가만히 들여다 보았더니… 여러 가지를 할 수 있다는데,
https://127.0.0.1:8000/xionic/playground 이게 위에 시도해 본 것이고 그 외에도 다른 여러 가지들을 해 볼 수 있다고 해서…
https://127.0.0.1:8000/chat/playground
https://127.0.0.1:8000/prompt/playground
https://127.0.0.1:8000/translate/playground
https://127.0.0.1:8000/llm/playground
혹시나 하고 하나하나 주소를 브라우저에 복붙해서 해 보았더니… 아…! 되는게 있고 안되는게 있네요.
chat/playground는 안되는데, network error Check your backend logs for errors … 라는 에러 메세지를 챗지, 클로드한테 물어봐도 대답이 신통치 않네요. 그런데…
translate/playground는 되구요
prompt/playground 도 되네요. 와우… 절반의 성공입니다.
이 분은 이어서 remote runnable과 RAG도 하셨는데, 저는 일단 이 정도에서 만족해야겠습니다. 이것도 제게는 버거운 작업이긴 했지만, 그래도 챗지, 클로드와 함께 로우코드로 진행할 수 있었다는 것에 만족입니다.
#10기로우코드 #ollama #한글LLM #야놀자 #로컬LLM