최근에 Meta에서 오픈소스로 풀은 Llama3가 나오면서
집에서도 LLM을 편히 사용할 수 있을꺼같아 시도해보았다.
1. 구성
프론트엔드는 OpenWebUi
백엔드는 Ollama 라는 것을 사용하면된다.
Ollama는 Docker처럼 모델들을 다운로드하고 실행시킬 수 있게 하는 프로그램이고
OpenWebUi는 그것을 ChatGPT처럼 웹에서 사용 할 수있게하는 껍데기 같은 역할이다.
유저의 입력 → OpenWebUi → Ollama
쉽게말하자면 Ollama만 설치해도 바로 사용 할 수 있지만
터미널을 켜서 집 컴퓨터에 접속하여 검은창으로 사용하기 불편하다.
집에 서버용 컴퓨터(Ubuntu)와
GPU용 메인 컴퓨터(Window)가 따로 있기에
프론트 엔드와 백엔드를 서로 다른 컴퓨터로 구성하게 되었다.
2. Ollama 설치
해당 페이지에 들어가 해당 기종에 맞게 설치한다.
추천하는건 Docker로 설치하는 것이지만 필자는 GPU 설정이 귀찮기에 그냥 설치한다.
해당 방법은 여기에 잘 설명되어있다.
Tip. exe 파일에 명령어 인자를 추가하면 설치 위치를 지정할 수 있다.
.\OllamaSetup.exe /DIR=D:\원하는위치
ollama run llama3
명령어를 실행하면 Llama3가 다운로드 되기 시작한다.
Default Parameter는 8b이며 4.7GB이다.
만약 70B를 받고싶다면 llama3:70b라고 하면된다.
일반적으로 용량은
본인 GPU VRAM크기보다 작은 것을 다운받아야
원활하게 작동한다.
다운로드 가능한 모델 목록에서 원하는 모델들을 다운로드 받을 수 있다.
이제 윈도우에서 해당 Ollama를 외부 서버에서 접근하려면 환경변수 설정이 필요하다.
(만약 로컬로 돌린다면 상관이 없다.)
[Windows 설정] - [시스템] - [정보] - [고급 시스템 설정] - [고급] - [환경 변수] - [새로만들기]
로 위 3가지 를 설정해주면 된다.
OLLAMA_HOST, OLLAMA_ORIGINS 는 외부에서 접근 가능하게 하는것
OLLAMA_MODELS 는 모델을 저장할 위치를 지정하는 것이다.
3. OpenWebUi 설치
OpenWebUI는 편히 Docker로 설치하였다.
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
해당 명령어를 실행 후
http://localhost:3000로 접속하여 계정을 만든 후 들어가면된다.
계정은 로컬에 저장되는 것이므로 마음대로 해도된다.
4. Ollama와 OpenWebUi 연결
그 후 좌측 하단 본인 이름을 누른 후 Settings를 누르면 여러가지 설정을 할 수 있다.
Settings를 눌러보자.
그 후 [Connections]에 서버 URL을 작성하면된다.
해당 URL을 작성 후 우측에 새로고침 모양을 누르면
Server Connection Verified가 떠야한다.
만약 Ollama설치를 로컬로 했다면
http://localhost:11434로 설정하면된다.
5. 사용하기
자 그럼 원하는 모델을 선택하서 사용해보자.
매번 설정하기 귀찮다면
모델을 누른 후에 Set as default를 누르면
접속시 마다 같은 모델이 자동으로 선택된다.
그후 ChatGPT처럼 작성하면 잘 작동된다.
6. (선택) GGUF 파일 넣어보기
필자의 그래픽카드는 3090Ti 24GB를 사용하고있는데
4GB의 모델말고 좀더 큰 용량으로 성능 테스트하고 싶어졌다.
Ollama에는 적당한게 보이지 않자 허깅페이스에서 적당한 파일을 찾았다.
https://huggingface.co/MaziyarPanahi/Meta-Llama-3-70B-Instruct-GGUF/tree/main
여기서 Meta-Llma-3-70B-Instruct.IQ2_XS.gguf 파일을 받았다.
해당 파일을 Ollama에 등록하고싶으면
해당 위치로 가서 Modelfile이라는 파일을 생성하고 아래의 내용을 작성한다.
FROM ./Meta-Llama-3-70B-Instruct.IQ2_XS.gguf
그후 해당 디렉토리에서
ollama create Meta-Llama-3-70B-Instruct.IQ2_XS -f Modelfile
을 하면 GGUF파일이 등록된다.
7. 후기
https://ai.meta.com/blog/meta-llama-3/
의외로 한국어를 잘 못한다.
학습 데이터에 5%만 영어가 아닌 30개의 언어를 사용했다보니
한국어로 영어만큼의 성능을 기대하긴 힘든거같다.
또한 의외로 검열을 적게한거같아
SQL Injection같은 공격 기법들을 잘 설명해줘서 유용하다.
'⭐개발 > ⭐홈서버' 카테고리의 다른 글
SSL/TLS 인증서 적용하기 (Cloudflare or Let's Encrypt with NPM) (0) | 2024.05.05 |
---|