자세히 보기

Sharon Machlis
Contributing Writer

‘노트북으로도 뚝딱’··· 로컬 시스템용 LLM 도구 5종 따라잡기

대규모 언어 모델(LLM)을 기업 로컬 시스템에 배치하기란 놀라울 정도로 쉽다. 물론 적절한 도구들이 있다는 전제 아래서다. 여기 메타의 새 코드 라마와 같은 LLM을 데스크톱에 설치하고 활용하는 방법에 대해 살펴본다.

챗GPT클로드.ai(Claude.ai), 파인드(phind)와 같은 챗봇들은 매우 유용할 수 있지만 질문이나 민감한 데이터를 외부 애플리케이션에서 처리하기 애매한 경우가 있다. 특히 기업이 챗봇과 수행한 상호작용이 향후 모델 학습에 사용되는 플랫폼에서는 더욱 그렇다. 

한 가지 해결책은 대규모 언어 모델(LLM)을 다운로드해 자체 시스템에서 실행하는 것이다. 외부 조직이 기업의 데이터에 접근할 가능성을 원천적으로 차단하는 것이다. 또한 코딩 작업을 위해 등장한 메타의 코드 라마 모델 제품군이나 텍스트 음성 변환 및 언어 번역을 목적으로 한 심리스M4T(SeamlessM4T)와 같은 새로운 모델을 사용해 볼 수 있는 지름길이기도 하다.

자체 LLM을 실행한다는 것이 복잡하게 들릴 수 있지만, 올바른 툴을 사용하면 의외로 쉽다. 그리고 대부분의 모델에서는 하드웨어 요구 사항도 그리 까다롭지 않다. 이 기사에 소개된 옵션은 인텔 i9 프로세서, 64GB 램, 엔비디아 지포스 12GB GPU(생각보다 활용 빈도가 낮다)가 장착된 델 PC와 M1 칩이 장착되어 있지만 램이 16GB에 불과한 맥에서 테스트했다.

먼저 기업이 원하는 작업에 적합하고 데스크톱 하드웨어에서 실행되는 모델을 찾으려면 약간의 조사가 필요할 수 있다. 그리고 챗GPT(특히 GPT-4) 또는 클로드.ai와 같은 기존의 도구처럼 익숙하지 않을 수 있다. 그러나 명령줄 툴 LLM의 제작자인 사이먼 윌리슨은 지난주 프레젠테이션에서 로컬 모델의 실행이 충분한 가치가 있다고 강조했다. 설명 틀린 답을 내놓을 때조차 그렇다고 그는 주장했다.

[일부] 노트북에서 실행되는 모델은 심각한 환각 현상을 보여주기도 한다. 하지만 이 점이 LLM을로컬 기기에서 실행할만한 아주 좋은 이유일 수 있다. 어떻게 작동하고 한계가 무엇인지를 이해하는 데 훨씬 더 빠른 방법이기 때문이다.

또한 오픈소스 모델은 계속 개선될 가능성이 높으며, 일부 업계 관계자들은 오픈소스 모델과 상업용 모델 사이의 격차가 좁혀질 것으로 예상하고 있다는 점도 주목할 필요가 있다.

GPT4All로 로컬 챗봇 실행하기
로컬에서 실행되고 다른 곳으로 데이터를 전송하지 않는 챗봇을 원하는 조직은 GPT4All을 살펴볼만하다. 설정이 매우 쉬운 다운로드용 데스크톱 클라이언트를 제공한다. 윈도우, 맥OS 및 우분투용 버전이 있다.

GPT4All 데스크톱 애플리케이션을 처음 열면, 로컬에서 (이 글을 쓰는 시점 기준) 실행할 수 있는 약 10개의 모델을 다운로드할 수 있는 옵션이 표시될 것이다. 그 중에는 메타 AI의 모델인 라마-2-7B 채팅이 있다. 또한 API 키가 있는 경우 오픈AI의 GPT-3.5 및 GPT-4(액세스 권한이 있는 경우)를 로컬이 아닌 용도로 설정할 수도 있다.

GPT4All 인터페이스의 모델 다운로드 부분은 처음에는 약간 혼란스러웠다. 여러 모델을 다운로드한 후에도 여전히 모든 모델을 다운로드하는 옵션이 표시되었다. 마치 다운로드가 되지 않는 것 같았다. 하지만 다운로드 경로를 확인하니 모델들이 모두 다운로드 되어 있었다.

GPT4All 내 모델 다운로드 인터페이스. 애플리케이션의 사용율을 열면, 다운로드한 모델이 자동으로 나타난다. 

모델을 설정하고 나면 챗봇 인터페이스 자체는 깔끔하고 사용하기 쉽다. 채팅을 클립보드에 복사하고 응답을 생성하는 등의 편리한 옵션이 있다.

GPT4All 챗 인터페이스는 깨끗하고 쉽다. 

또한 로컬에서 내 문서와 ‘채팅’할 수 있는 새로운 로컬독스 플러그인 베타가 있다. 설정 > 플러그인 탭에서 이 플러그인을 활성화하면 ‘로컬독스 플러그인 (베타) 설정’ 헤더와 특정 폴더 경로에 컬렉션을 만들 수 있는 옵션이 표시된다.

플러그인은 현재 개발 중이다. 공식 문서는 추가한 전문가 정보에 액세스할 수 있는 경우에도 LLM이 여전히 ‘환각’(무언가를 만들어내는 것)을 할 수 있다고 경고하고 있다. 그럼에도 불구하고 오픈소스 모델의 기능이 향상됨에 따라 개선될 가능성이 있는 흥미로운 특징이다.

챗봇 애플리케이션 외에도 GPT4All에는 파이썬, 노드 및 명령줄 인터페이스(CLI)에 대한 바인딩도 있다. 또한 오픈AI와 매우 유사한 구조의 HTTP API를 통해 로컬 LLM과 상호 작용할 수 있는 서버 모드도 있다. 이 모드의 목표는 코드 몇 줄만 변경하면 로컬 LLM을 오픈AI로 교체할 수 있도록 하는 것이다.

명령줄 상의 LLM들(LLMs on the command line)
사이먼 윌리슨의 LLM은 필자가 본 것 중 오픈소스 LLM을 로컬 컴퓨터에 다운로드하여 사용하는 쉬운 방법 중 하나다. 실행하려면 파이썬이 설치되어 있어야 하지만 파이썬 코드를 건드릴 필요는 없다. 맥에서 홈브류를 사용하는 경우 다음과 같이 설치하면 된다: 

brew install llm

윈도우 컴퓨터에서 사용하는 경우, 다음과 같이 선호하는 파이썬 라이브러리 설치 방법을 사용하라: 

pip install llm

LLM은 기본적으로 오픈AI 모델을 사용하지만 플러그인을 사용하여 다른 모델을 로컬로 실행할 수 있다. 예를 들어, gpt4all 플러그인을 설치하면 GPT4All의 추가 로컬 모델에 액세스할 수 있다. 또한 리마, MLC 프로젝트 및 MPT-30B용 플러그인과 추가 원격 모델도 있다.

명령줄에 llm install model-name을 사용하여 플러그인을 설치하라: 

llm install llm-gpt4all

다음과 같은 명령으로 사용 가능한 모든 원격 모델과 설치한 모델을 확인할 수 있으며, 각 모델에 대한 간략한 정보도 확인할 수 있다: llm models list.

LLM에서 사용할 수 있는 모델 목록을 나열하라고 요청한 화면

로컬 LLM에 쿼리를 발송하려면 다음 구문을 사용한다. 

llm -m the-model-name “Your query”

적합한 LLM 선택
모델은 어떻게 선택하는가? 챗GPT가 아닌 14개의 LLM은 인포월드에서 확인할 수 있지만, 어떤 모델을 다운로드할 수 있는지, LLM 플러그인과 호환되는지 확인해야 한다. GPT4All 홈페이지로 이동하여 모델 탐색기로 스크롤하여 GPT4All과 호환되는 모델을 찾을 수도 있다. falcon-q4_0 옵션은 상업적 사용이 가능한 라이선스를 가진 비교적 작은 모델로 높은 평가를 받고 있었기 때문에 나는 이 모델부터 시작했다. 
올라마 깃허브 레포의 README에는 유용한 모델 사양 목록과 함께 “3B 모델을 실행하려면 최소 8GB, 7B 모델을 실행하려면 16GB, 13B 모델을 실행하려면 32GB의 램이 있어야 한다”라는 권장사항이 담겨있다. 하지만 필자의 16GB 램 맥에서 7B 코드 라마의 성능은 놀라울 정도로 좋았다. bash/zsh 셸 명령은 물론 파이썬 및 자바스크립트와 같은 프로그래밍 언어에 대한 질문에 답할 수 있다.


올라마 터미널 윈도우 내 코드 라마의 실행 모습.

제품군 중 가장 작은 모델이었지만, 더 큰 모델들을 당황하게 하는 R 코딩 질문에 대한 답은 불완전하더라도 상당히 괜찮았다: “표시줄이 스틸블루인 ggplot2 그래프에 대한 R 코드를 작성하라.” 코드 두 줄에 괄호를 닫는 두 개의 추가 괄호가 있는 것을 제외하고는 코드가 정확했는데, 내 IDE에서 쉽게 발견할 수 있었다. 더 큰 코드 라마라면 더 좋은 결과가 있었을 것도 같다.

올라마에는 랭체인 통합 및 프라이빗GPT로 실행할 수 있는 기능과 같은 몇 가지 추가 기능이 있다. 이러한 기능은 깃허브 레포의 튜토리얼 페이지를 확인하지 않는 한 명확하지 않을 수도 있다.
-> 기고 | LLM과 함께 뜨는 중··· 개발자를 위한 ‘랭체인’ 안내서

맥을 사용하면서 코드 라마를 사용하고 싶다면 터미널 창에서 실행하여 질문이 있을 때마다 불러올 수 있다. 가정용 PC에서도 사용할 수 있는 올라마 윈도우 버전이 출시되기를 고대하고 있다.

나만의 문서로 채팅: h2oGPT
H2O.ai는 자동화된 머신러닝 분야를 탐구해온 기업이다. 따라서 이 회사가 채팅 LLM 분야로 진출한 것은 당연한 일이다. 일부 툴은 해당 분야에 대한 지식을 요구하곤 하지만, h2oGPT 채팅 데스크톱 애플리케이션의 테스트 버전을 설치하는 지침은 빠르고 간단했으며, 머신러닝 초보자도 할 수 있을 정도였다.

gpt.h2o.ai를 통해 웹에서 데모 버전에 액세스할 수 있다(물론 시스템에 로컬 LLM을 사용하는 것은 아니다). 이는 자신의 시스템에 다운로드하기 전에 인터페이스가 마음에 드는지 알아볼 수 있는 유용한 방법이다.

로컬 버전의 경우: 깃허브 리포지토리 복제하고 파이썬 가상 환경을 생성 및 활성화한 다음 README 파일에 있는 5줄의 코드를 실행한다. 해당 문서에 따르면, 그 결과 ‘제한된 문서 Q/A 기능’과 메타의 라마 모델 중 하나가 제공되지만 작동은 한다. 한 줄의 코드를 실행할 때 로컬에서 다운로드한 라마 모델 버전과 http://localhost:7860 에서 사용할 수 있는 애플리케이션을 갖게 될 것이다:

python generate.py –base_model=’llama’ –prompt_type=llama2


한 로컬 라마 모델이 VS 코드 문서화에 기반해 질문에 답하고 있다.

직접 파일을 추가하지 않고도 애플리케이션을 일반 챗봇으로 사용할 수 있다. 또는 일부 문서를 업로드하고 해당 파일에 대해 질문할 수 있다. 호환가능한 파일 형식에는 PDF, 엑셀, CSV, 워드, 텍스트, 마크다운 등이 있다. 테스트 애플리케이션은 16GB 맥에서 잘 작동했지만, 더 작은 모델의 결과는 GPT-4를 사용하는 유료 챗GPT에는 비할 바가 아니었다(항상 그렇듯이, 이는 애플리케이션이 아닌 모델의 기능이다). h2oGPT UI는 사용법을 잘 아는 사용자를 위한 다양한 구성 옵션이 있는 전문가 탭을 제공한다. 이를 통해 숙련된 사용자는 결과를 개선할 수 있는 옵션을 갖게 된다.


h2oGPT 내 엑스퍼트 탭 탐색하기

README에 설치 지침이 있다. 나의 윈도우 바이러스 백신 소프트웨어는 새 버전이면서 서명되지 않은 버전이라 불만족스러웠다. 하지만 H2O.ai의 다른 소프트웨어에 익숙하고 코드가 깃허브에서 이용가능하기 때문에 기꺼이 다운로드하여 설치했다. 그러나 사용해보니 적당한 크기의 모델을 실행하기에 충분한 GPU 성능이 없기 때문에 소스에서 설치하는 것이 가장 좋았을 텐데, 이 모델을 실행하는 것이 다른 대부분의 방법만큼 쉬운지 확신할 수는 없었다.

현재 H2O.ai에서 근무하고 있는 롭 멀라는 자신의 유튜브 채널에서 리눅스에 앱을 설치하는 방법에 대한 동영상

간편하지만 느린 데이터 채팅: 프라이빗GPT
프라이빗GPT 또한 자연어를 사용하여 자신의 문서를 쿼리하고 생성형 AI 응답을 받을 수 있도록 설계되었다. 이 애플리케이션의 문서에는 수십 가지 형식이 포함될 수 있다. 그리고 README에 따르면 데이터는 “100% 비공개이며, 어떤 데이터도 실행 환경을 벗어나지 않는다. 인터넷 연결 없이도 문서를 수집하고 질문할 수 있다!”고 보장한다. 

프라이빗GPT는 데이터 파일을 수집하고, 청크로 분할하고, ‘임베딩’(텍스트의 의미를 수치로 표현한 것)을 생성하고, 로컬 크로마 벡터 저장소에 임베딩을 저장하는 스크립트를 특징으로 한다. 사용자가 질문을 하면 앱이 관련 문서를 검색하고 해당 문서만 LLM으로 전송하여 답변을 생성한다.

파이썬과 파이썬 프로젝트 설정 방법에 익숙하다면 전체 프라이빗GPT 리포지토리를 복제하여 로컬에서 실행할 수 있다. 파이썬에 대한 지식이 부족하다면, 개발자 이반 마르티네즈가 컨퍼런스 워크숍을 위해 설정한 프로젝트의 간소화된 버전을 확인하는 것이 좋은데, 이 버전은 설정이 매우 쉽다.

해당 버전의 README 파일에는 파이썬 시스템 관리자 전문 지식이 필요하지 않은 자세한 지침이 포함되어 있다. 레포에는 펜포트 문서로 가득 찬 source_documents 폴더가 함께 제공되지만, 이를 삭제하고 직접 추가할 수 있다.

프라이빗GPT에는 터미널의 ‘자신의 문서와 채팅’ 앱에 당신이 가장 원하는 기능이 포함되어 있을 수 있지만, 문서에서는 프로덕션용이 아니라고 경고하고 있다. 실행해 보면 그 이유를 알 수 있다. 소형 모델 옵션조차도 내 가정용 PC에서 매우 느리게 실행되었다. 하지만 가정용 인터넷의 초창기도 고통스러울 정도로 느렸다는 점을 기억하라. 이런 유형의 개별 프로젝트는 속도가 빨라질 것으로 기대된다. 

로컬 LLM을 실행하는 더 많은 방법
다른 데스크톱 애플리케이션에서 처음부터 스크립트를 작성하는 것까지, 설정의 복잡함은 다르지만 로컬에서 LLM을 실행하는 방법은 이 5가지 외에도 다양하다.

프라이빗GPT의 스핀오프인 로컬GPT에는 더 많은 모델 옵션이 포함되어 있으며 자세한 지침과 17분 분량의 상세한 코드 연습을 포함한 사용방법 비디오가 3개 있다. 이 설치 및 설정이 ‘쉬운’지에 대한 의견은 다를 수 있지만, 유망해 보인다. 하지만 프라이빗GPT와 마찬가지로, 문서에서는 CPU에서만 실행하면 속도가 느려질 수 있다고 경고하고 있다.

직접 사용해 본 또 다른 데스크톱 앱인 LM 스튜디오는 채팅을 실행하는 데 사용하기 쉬운 인터페이스를 갖고 있지만, 모델을 선택하는 것은 사용자가 더 많이 직접 해야 한다. 어떤 모델을 다운로드하고 실행하고 싶은지 알고 있다면, 이 앱이 좋은 선택이 될 수 있다. 챗GPT를 처음 사용해보고 정밀도와 크기 사이의 균형을 맞추는 방법에 대한 지식이 부족하다면, 처음에는 모든 선택이 다소 부담스러울 수 있다. 허깅 페이스 허브는 LM 스튜디오 내에서 모델을 다운로드할 수 있는 주요 소스이며, 정말 많은 모델을 보유하고 있다.

첫 번째 시도에서 선택한 모델을 모두 다운로드한 다른 LLM 옵션과 달리 LM 스튜디오 내에서 모델 중 하나를 다운로드하는 데 문제가 있었다. 또 다른 모델은 제대로 실행되지 않았는데, 이는 내 맥의 하드웨어를 최대로 설정한 탓도 있지만, 모델 선택 시 권장되는 최소 비 GPU 램이 즉시 표시되지 않았다. 그렇지만 모델을 선택하고 다운로드하는 데 인내심을 가지고 기다릴 수 있다면, LM 스튜디오는 채팅을 실행하면 깔끔하고 멋진 인터페이스를 제공한다. 이 기사를 쓰는 현재, UI에는 자체 데이터에 대해 LLM을 실행할 수 있는 옵션이 내장되어 있지 않다.


LLM 스튜디오 인터페이스

하지만 문서에 명시된 대로 ‘오픈AI API를 대체하는 드롭인 방식으로’ 사용할 수 있는 서버가 내장되어 있으므로 해당 API를 통해 오픈AI 모델을 사용하도록 작성된 코드는 사용자가 선택한 로컬 모델에서 대신 실행될 것이다.

h2oGPT와 마찬가지로 LM 스튜디오도 윈도우에서 확인되지 않은 앱이라는 경고를 표시한다. 하지만 LM 스튜디오 코드는 깃허브에서 제공되지 않으며 오랜 역사를 가진 조직에서 제공한 것이 아니기 때문에 모든 사람이 편안하게 설치할 수 있는 것은 아니다.

h2oGPT와 같은 앱을 통해 사전 구축된 모델 다운로드 인터페이스를 사용하는 것 외에도, 많은 LLM이 포함된 인공지능 플랫폼이자 커뮤니티인 허깅페이스에서 일부 모델을 직접 다운로드하여 실행할 수도 있다. (모든 모델에 다운로드 옵션이 있는 것은 아니다.) 스타트리의 개발자 옹호자인 마크 니덤이 유튜브 동영상을 비롯하여 이를 수행하는 방법에 대해 잘 설명해 놓았다. 또한 그는 로컬 LLM을 사용한 정서 분석 등 관련 코드도 깃허브 레포에 올려 두고 있다.

허깅 페이스에는 로컬에서 사용 가능한 모델을 설치하고 실행하는 방법에 대한 자체 문서도 있다.

또 다른 인기 있는 옵션은 엔드투엔드 생성형 AI 애플리케이션을 제작하기 위한 프레임워크인 랭체인에서 로컬로 LLM을 다운로드하여 사용하는 것이다. 이를 위해서는 랭체인 생태계를 사용해 코드를 작성하는 데 익숙해져야 한다. 랭체인 기본 사항을 알고 있다면, 허깅 페이스 로컬 파이프라인타이탄 테이크오프(파이썬뿐만 아니라 도커도 필요), 로컬 모델로 랭체인을 실행하기 위한 오픈LLM에 대한 문서를 확인해보면 좋을 것이다. 오픈LLM은 또 다른 강력한 독립형 플랫폼으로, LLM 기반 애플리케이션을 프로덕션에 배포하기 위해 설계됐다. 

* Sharon Machlis는 파운드리의 에디토리얼 데이터 & 애널리틱스 디렉터다. 주요 저서로는 CRC 프레스를 통해 발간한 ‘Practical R for Mass Communication and Journalism’이 있다. dl-ciokorea@foundryco.com

Sharon Machlis

Sharon Machlis was a longtime writer and editor at Computerworld and later the Director of Editorial Data & Analytics at parent company Foundry. She is also the author of Practical R for Mass Communications and Journalism.

Sharon's Do more with R video tutorials won a Jesse H. Neal award for Best Instructional Content.

Recently retired, Sharon is still passionate about R and generative AI, and also blogs about the retirement life. You can find her on Bluesky at @smachlis.bsky.social, Mastodon at @smach@masto.machlis.com, and LinkedIn.

이 저자의 추가 콘텐츠