로컬에서 AI 챗봇과 언어모델 실행을 위한 가이드

로컬에서 AI 챗봇과 언어 모델을 실행하는 방법: 완벽한 가이드

최근 몇 년간 인공지능 서비스의 구독 모델은 끝없이 확장되어 왔습니다. 그러나 많은 사용자들이 매달 비용을 지불하고도 제한된 시간에만 서비스를 이용할 수 있는 현실에 대해 불만을 표하고 있습니다. 이에 대한 대안으로, 개인의 PC에서 직접 AI 챗봇이나 언어 모델을 실행할 수 있는 방법에 대해 알아보는 것이 필요합니다. 이 블로그 포스트에서는 여러분이 로컬에서 AI 챗봇과 언어 모델을 실행할 수 있는 다양한 사용자 인터페이스를 소개하고 각각의 특징을 자세히 설명하겠습니다.

1. 사용자 인터페이스 선택하기

로컬에서 AI 모델을 실행하기 위한 첫 번째 단계는 적합한 사용자 인터페이스(UI)를 선택하는 것입니다. 다음은 몇 가지 주요 옵션입니다:

  • Uaba: 텍스트 생성 웹 UI로, 기본 입력 출력, 대화형 채팅, 텍스트 완성 노트북 등 세 가지 모드를 제공합니다. 가장 일반적으로 사용되는 UI 중 하나로, 대부분의 기본적인 기능을 제공합니다.

  • Silly Tarvin: AI 챗봇 사용의 프론트엔드 경험에 초점을 맞춘 인터페이스로, 채팅, 롤플레잉, 시각적 소설 같은 프레젠테이션을 지원합니다. 매력적인 프론트엔드를 제공하지만, 실행을 위해서는 Uaba와 같은 백엔드가 필요합니다.

  • LM Studio: 직관적인 실행 파일을 제공하며, Hugging Face 모델 브라우저와 같은 유용한 기능을 포함하고 있습니다. Gradio 스타일의 인터페이스를 선호하지 않는 경우에 좋은 대안입니다.

  • Axel AO: 커맨드 라인 인터페이스로, AI 모델의 미세 조정을 지원하는 최고의 도구 중 하나입니다. 깊은 미세 조정을 계획하고 있다면 이 선택지를 고려해 볼 수 있습니다.

이러한 각 인터페이스는 사용자의 필요와 기술 수준에 따라 다르게 활용될 수 있습니다. 가장 적합한 도구를 선택하여 최적의 사용 경험을 구축하세요.

2. 모델 설치 및 구성

선택한 인터페이스에 따라 다음과 같은 단계로 모델을 설치하고 구성할 수 있습니다:

  1. 모델 다운로드: Hugging Face에서 제공하는 무료 및 오픈 소스 모델을 브라우징하고 원하는 모델을 선택하여 다운로드합니다. Uaba와 같은 도구를 사용하여 모델의 URL 슬러그를 복사하여 붙여넣기만 하면 됩니다.

  2. 모델 실행: 다운로드한 모델을 로컬 시스템에 설치한 후, 선택한 UI를 통해 모델을 실행합니다. 각 UI에는 모델을 실행하기 위한 자체적인 지침이 있으니, 해당 도구의 설명서를 참고하세요.

  3. 미세 조정: 모델을 사용자의 특정 필요에 맞게 조정할 수 있습니다. Axel AO와 같은 도구를 사용하면 모델의 파라미터를 세밀하게 조정하여 성능을 최적화할 수 있습니다.

3. 로컬 실행의 이점

로컬에서 AI 모델을 실행하는 것은 다음과 같은 몇 가지 중요한 이점이 있습니다:

  • 비용 절감: 매달 고정된 비용을 지불하지 않고도 필요할 때마다 AI 모델을 자유롭게 사용할 수 있습니다.

  • 개인 정보 보호: 데이터를 서버로 전송하지 않고 로컬에서 모든 처리를 완료함으로써 사용자의 개인 정보를 보호할 수 있습니다.

  • 사용자 정의와 유연성: 사용자의 특정 요구에 맞게 모델을 조정하고 최적화할 수 있습니다.

AI 서비스에 대한 구독 없이도 효과적으로 AI 모델을 사용할 수 있는 방법을 제공함으로써, 로컬 실행은 기술 애호가들에게 매력적인 선택지가 될 수 있습니다. 사용자 인터페이스의 올바른 선택과 적절한 설정을 통해, 로컬에서 AI 모델을 성공적으로 운영하고 효율적으로 활용할 수 있습니다. 

4. 로컬 AI 모델 실행과 관련된 다양한 리소스와 도구

들을 제공합니다. 이들은 로컬에서 AI 모델을 사용, 조정, 최적화하는 데 필요한 기술적 지원을 제공하는 데 초점을 맞추고 있습니다. 아래는 각 링크에 대한 설명과 그것들이 글에서 어떤 의미를 가지는지 정리한 내용입니다.

TensorRT LLM 코드 다운로드

  • Code: NVIDIA의 TensorRT LLM 관련 코드 저장소로, 사용자가 NVIDIA의 TensorRT를 이용하여 LLM(Language Learning Models)을 최적화하고 실행할 수 있게 합니다.
  • Getting Started BlogDev Blog: 이 블로그들은 TensorRT를 사용하여 LLM을 최적화하는 방법에 대한 시작 가이드와 개발자 지침을 제공합니다. 이러한 최적화를 통해 GPU에서 AI 모델의 추론 성능을 향상시킬 수 있습니다.

“Chat with RTX” 코드 다운로드

  • Download: NVIDIA에서 제공하는 Chat with RTX 소프트웨어를 다운로드할 수 있는 링크입니다. 이 소프트웨어를 통해 사용자는 로컬 문서와 데이터에 AI 모델을 연동하여 질문에 답할 수 있습니다.
  • Blog: Chat with RTX에 대한 설명과 그 사용 방법을 담은 공식 블로그 포스트 링크입니다. 이는 개인 정보 보호에 중점을 둔 로컬 AI 사용의 예를 보여줍니다.

다양한 설치 환경 관련한 지식 저장 Links:

  • Oobabooga: 텍스트 생성 웹 UI 코드 저장소로, 텍스트 기반의 대화 인터페이스를 제공합니다.
  • SillyTavern: AI 챗봇 사용을 위한 프론트엔드 개발에 초점을 맞춘 프로젝트의 코드 저장소입니다.
  • LM Studio: 직관적인 사용자 인터페이스를 제공하는 AI 모델 실행 환경의 공식 웹사이트입니다.
  • Axolotl, Llama Factory, HuggingFace: 다양한 AI 모델과 프레임워크를 제공하는 저장소 및 플랫폼으로, 사용자가 모델을 다운로드하고 로컬에서 실행할 수 있게 합니다.
  • AWQ: AWQ는 AI 모델의 크기를 줄이는 양자화 방법 중 하나입니다. 이는 모델을 더 적은 메모리로 실행할 수 있게 하여, 자원이 제한된 환경에서도 효율적으로 모델을 사용할 수 있게 합니다.
  • ExLlamav2: 이 프로젝트는 모델의 양자화 수준을 혼합하여 평균 비트율을 조정하는 기술을 사용합니다. 이는 특히 Nvidia GPU에서 빠른 최적화를 가능하게 하며, 모델 성능을 유지하면서도 처리 속도를 높입니다.
  • GGUF: GGUF는 파일 형식으로, CPU에서 실행되는 다양한 양자화 스키마를 지원하는 모델을 저장합니다. 이는 모델의 이식성과 접근성을 높입니다.
  • GPTQ: GPTQ는 양자화 알고리즘을 구현하는 프로젝트로, 모델의 크기를 줄이는 동시에 출력에서의 오류를 최소화하려고 합니다. 이는 모델의 정확도를 유지하면서도 효율성을 증가시키는 방법입니다.
  • LlamaCpp: Llama C++는 로컬 환경에서 AI 모델을 실행하기 위한 C++ 라이브러리입니다. 특히 GGUF 포맷의 모델을 CPU와 시스템 RAM으로 오프로딩하는 기능을 지원하여, VRAM 제한이 있는 환경에서도 큰 모델을 실행할 수 있게 합니다.
  • vllm: vllm 프로젝트는 다양한 최적화 및 양자화 기술을 통합하여, 로컬 머신에서 대용량 언어 모델을 더 효율적으로 실행할 수 있도록 설계되었습니다.
  • LlamaIndex: LlamaIndex는 로컬 데이터베이스를 AI 모델에 연동할 수 있는 도구로, 사용자가 로컬 파일이나 데이터에 대한 질문을 AI 모델에 던질 수 있게 합니다.
  • Continue.dev: 이 웹사이트는 로컬에서 AI 모델을 사용하여 개발 작업을 지원하는 서비스를 제공합니다. GitHub Co-pilot와 유사한 기능을 로컬 모델을 통해 실행하며 비용을 절감할 수 있습니다.

이러한 도구와 리소스는 사용자가 로컬에서 AI 모델을 효과적으로 실행하고, 특정 요구에 맞게 모델을 조정하며, AI 기술의 전반적인 접근성과 유연성을 향상시킬 수 있도록 설계되었습니다. 각 링크는 특정 기능 또는 최적화 전략을 제공하여, 다양한 환경에서 AI 모델의 이용 가능성을 확장합니다.

5. LLM 추천 모델 :

  1. Nous-Hermes-llama-2-7b: 이 모델은 자연어 이해와 생성 작업에 적합하며, 2.7 billion parameters를 가지고 있어 복잡한 언어 처리 작업을 효과적으로 수행할 수 있습니다.

  2. Openchat-3.5-0106: 이 챗봇 모델은 대화형 AI로 설계되어 사용자와의 자연스러운 대화가 가능합니다. 이 모델은 주로 고객 서비스 또는 엔터테인먼트 목적으로 사용될 수 있습니다.

  3. SOLAR-10.7B-Instruct-v1.0: 이 인스트럭션 기반 모델은 명령에 기반한 작업을 수행하도록 훈련되어 있으며, 10.7 billion parameters를 갖추고 있어 복잡한 지시 사항을 이해하고 실행할 수 있습니다.

  4. Google Gemma: Google에서 개발한 이 모델은 다양한 언어 작업에 사용될 수 있는 범용 모델로, 특히 언어 번역과 요약 작업에 강점을 보입니다.

  5. Mixtral-8x7B-Instruct-v0.1: 이 모델은 여러 작업을 동시에 처리할 수 있는 다목적 AI 모델로, 특히 여러 언어와 주제에 걸쳐 효과적인 성능을 발휘합니다.

  6. Deepseek-coder-33b-instruct: 이 모델은 주로 프로그래밍 코드 생성과 관련된 작업에 최적화되어 있으며, 개발자들이 코드를 더 효율적으로 작성할 수 있도록 돕습니다.

  7. Madlad-400: 400 billion parameters를 가진 이 모델은 매우 대규모의 언어 모델로, 광범위한 언어 이해 및 생성 작업에 적합합니다.

  8. Colbertv2.0: 정보 검색에 특화된 모델로, 특정 질문에 대한 정확한 답변을 찾는 데 유용하게 사용될 수 있습니다.

이 모델들은 각각의 특성에 따라 다양한 AI 응용 분야에서 사용될 수 있으며, 연구자나 개발자들이 특정 요구에 맞는 최적의 모델을 선택할 수 있도록 도와줍니다. 

6. 하드웨어 사양

sLLM을 구축하는데 있어서 보통 13B 이상의 모델의 학습을 위해서는 A6000을 추천하는데, A6000의 경우 다나와 최저가로 700만원 정도 합니다. 그래서 결국 Inference 를 하기 위해서는 4090 또는 3090, 또는 cloud solution을 추천하고 있죠.

 

Multi-GPU에 관해서는, NVLink라는 하이퍼스피드 인터넷을 활용하는 방법도 많이 사용한다고 하고, 4090에 대해서는 NVLink를 지원하지 않기 때문에 PCIe를 사용해야 합니다.

 

 

그리고 8Bit 연산을 할건지, 16Bit연산을 할 건지에 따라서도 GPU가 달라집니다. 8bit와 16Bit 연산에 있어서는, Model의 Quantization도 중요한 역할을 합니다. LLAMA가 아직 완벽한 최적화가 되어있지는 않은 것으로 보입니다.

 

 

딥러닝 LLM에서 training 및 finetuning, inferencing에서 가장 중요한 것은 VRAM이니 만큼, VRAM이 몇이냐, 또 Multi GPU가 가능하냐가 중요한 부분으로 보여집니다. 1 tokens=0.75 words이며 8K tokens은 4.5GB VRAM이 필요합니다. 그래서 대충 잡아도 컴퓨터 사양이 SSD 2T, 32G RAM에 4090 2대 정도는 가동이 되어야 sLLM을 돌릴 정도라고 추정합니다. VRAM이 8~12GB 인 RTX 3060 Ti로는 서버 가동이 불가능하죠.

 

 

GPU서버를 구축하는데 있어서 타워형 데스크탑 컴퓨터를 마련할 것인지, 아니면 서버형으로 마련해서 사람들과 같이 GPU 할당을 하는 서버 즉 SLURM을 할 것인지도 결정해야 할 문제입니다.

<이하 광고>

© 2023 나의 웹 페이지

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다