Ollama
Ollama는 로컬에서 AI 모델을 실행하고 관리할 수 있는 솔루션으로, 다양한 언어 모델과 호환되며, 특히 개인 및 기업이 로컬 환경에서 AI를 실행할 수 있게 돕는 도구이다.
Ollama는 명령줄 인터페이스를 통해 편리하게 언어 모델을 실행하고 관리할 수 있게 하며, 특히 Llama 3 시리즈와 같은 모델과 GPT 모델을 지원해 사용자가 직접 대화형 AI 모델을 로컬 환경에서 사용할 수 있게 한다.
Ollama의 주요 기능:
- 로컬 실행 지원: 로컬 환경에서 대형 언어 모델을 구동할 수 있어 데이터 프라이버시를 보호, 즉 외부 API 호출 X
- 모델 관리 및 업데이트: Ollama는 다양한 언어 모델의 버전을 손쉽게 관리.
- 커스텀 모델 배포: Ollama는 커스텀 모델 배포 및 관리 기능도 제공해, 특정 요구에 맞는 AI 모델을 구성할 수 있다.
- 주요 언어 모델 지원: Llama 2와 3 시리즈, GPT 모델 등 다양한 언어 모델을 지원한다.
Llama 3.1 8b
Llama 3.1 8b는 Meta에서 출시한 최신 언어 모델로, Llama 2의 후속 버전으로 개선된 성능이다.
여기서 “8b”는 모델의 파라미터 수가 80억 개임을 의미한다. 이 척도는 모델이 학습한 데이터의 복잡성과 처리 능력을 뜻한다.
Llama 3.1 주요 특징은 다음과 같다:
- 성능 향상: Llama 3.1 모델은 이전 모델에 비해 더 적은 자원으로 높은 성능을 제공한다, 특히 문맥 이해와 생성 능력에서 향상되었다.
- 최적화된 메모리 관리: 8b 모델은 메모리 사용량이 최적화되어 있어 로컬 및 클라우드 환경에서 더욱 효율적으로 실행할 수 있다.
Llama 3.1를 학습시키는데 무려 15조개 token(15 trillion)들이 사용되었다고 한다.
위의 자료는 Meta는 엔비디아 H100 GPU를 무려 1만 6천 개를 사용했다고 하는데 이제 Meta가 왜 H100 GPU를 미친 듯이 샀는지, 엔비디아 주가가 폭등했는지 추측이 갈 것 같다.
Llama 3.1 모델은 decoder-only transformer model transformer 구조를 채택했다. 개량된 transformer가 아닌 기존의 decoder-only transformer model transformer를 선택한 이유는 오픈 소스 생태계와의 호환성을 고려한 것으로 보인다.
이와 함께 405B 모델과 같은 대규모 LLM의 추론 속도를 높이기 위해, 모델을 16비트에서 8비트로 양자화(quantization) 하여 연산 효율성을 극대화했다.
또한, Llama 3.1에는 Llama Guard 3라는 강력한 필터링 시스템이 포함되어 있다. 이 필터에는 다국어 안전 모델과 Prompt Guard 기능이 탑재되어 있어, 모델이 생성하는 내용에 대한 윤리적 및 도덕적 문제를 해결한다.
이러한 기능은 ChatGPT나 Gemini와 같은 오픈 소스 LLM에서도 중요하지만, 온디바이스에서 작동하는 Llama 3.1과 같이 Closed 소스로 제공되는 LLM의 경우 서비스 중단이 어렵기 때문에 윤리적인 이슈에 대해 더욱 신경을 쓴 것으로 보인다.
Ubuntu에서 설치하기
필자는 ubuntu 22.04 환경에서 진행하였다.
사전에 docker - nvidia gpu 사용할수 있게 세팅해놓아야한다!!!!
도커를 통해 컨테이너를 생성한다
$ docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
llama3.1:8b 모델을 다운받고 컨테이너에 접속한다
$ docker exec -it ollama ollama run llama3.1:8b
작동하기
이후 nvidia-smi를 통해 gpu에 얼마나 사용하는지 보았다.
대략 ollama와 모델까지 6기가정도 올라가는것으로 파악된다. (gpu 더 좋은거 살걸.... 16gb짜리.)
지드래곤에 대해 물어보았다.
한국어도 나름 잘 대답하지만 영어로 물어보면 꽤나 정확하게 말해준다
앞으로 진행방향 & 프로젝트 적용 계획
도커 컨테이너를 통해 로컬에서도 언어모델이 돌아가는 것을 잘 확인하였다.
이를 바탕으로 앞으로 진행할 방향과 프로젝트 적용 계획을 세워 보았다.
- 웹사이트 구축과 챗봇 개발
백엔드 개발 역량을 키우기 위해 웹사이트 구축을 통해 챗봇형 사이트를 제작하고 싶다. 이를 통해 언어 모델을 실제 서비스에 적용하고, 사용자와의 상호작용을 개선하는 방향으로 확장할 수 있을 것이다. - 데이터센터의 비용 효율화 연구
면접과 AI 행사에서 언어 모델을 활용해 데이터센터의 비용을 최적화하는 방안을 접하고 흥미를 느꼈다. 과거 라즈베리파이와 쿠버네티스 클러스터를 활용하여 데이터센터 환경을 가상으로 구축해보고 이 경량화 모델을 찾아서 데이터센터 운영 비용 절감할 수 있을지 직접 고민해보고 싶다. - 자가 치유 및 코드 자동화 시스템 구축
궁극적으로는 자가 치유하며 스스로 코드를 개선하고 필요한 기능을 추가하며 검증하는 자동화 시스템을 연구하고 구축하고 싶다. 이를 통해 코드의 유지보수와 효율성을 높이는 것을 목표이다.
점점 더 컴퓨터 산업이 AI 모델을 통해 초개인화되어 가고 있다는 것을 실감하고 있다. 면접 스터디에서 영업·마케팅 분야에서도 언어 모델을 적극 활용하는 사례를 확인하면서 AI의 활용 가능성을 더욱 깊이 느끼고 있다.
앞으로 Vision AI도 그렇고 AI는 진짜 어렵다... 그럼에도 불구하고 도전하는게 너무 재미가 있다.
'Docker_도커' 카테고리의 다른 글
[Docker] Ubuntu에서 도커 완전 삭제 (0) | 2023.07.11 |
---|---|
[Docker] docker compose 와 docker-compose의 차이점 정리 (0) | 2023.07.03 |
[Docker/도커] 도커 엔진(Docker Engine)의 명령어(Commands) 및 실습 (0) | 2023.02.10 |
[Docker/도커] 도커 설치 및 간단한 실습 (0) | 2023.01.27 |
[Docker/도커] 도커란 무엇인가? (0) | 2023.01.25 |