loading...

기업 맞춤형 AI 구축을 위한 로컬 LLM 따라잡기

이 글은 IDG의 아티클을 전재하여 제공합니다.
[원문보기] : https://www.itworld.co.kr/techlibrary/338713#csidxc3eee41de96015a967f2c55fdaf84e1

챗GPT가 전 세계의 상상력을 사로잡고 생성형 AI가 가장 널리 논의되는 기술로 부상하면서 대규모 언어 모델(LLM)에 대한 대중의 관심도 커졌다. 챗GPT는 퍼블릭 LLM을 본격적으로 무대로 끌어올렸다고 해도 과언이 아니다. 생성형 AI는 몇 가지 프롬프트만으로 콘텐츠나 코드를 만들 수 있다는 가능성으로 많은 기대를 모으고 있다. 개인과 소기업은 생성형 AI와 LLM이 약속하는 혁신에 대비하고 이점을 얻을 방법을 생각하고 있지만, 대기업은 조금 더 구체적인 결정을 내려야 하는 상황에 있다. 챗GPT 같은 퍼블릭 LLM을 활용할 것인가, 아니면 자체 로컬 LLM을 구축할 것인가 하는 선택의 갈림길에 선 것이다.

챗GPT는 공개적으로 사용 가능한 방대한 온라인 데이터로 학습된 퍼블릭 LLM을 기반으로 한다. 퍼블릭 LLM은 다양한 곳에서 가져온 많은 양의 데이터를 활용해 사용자가 입력하는 거의 모든 쿼리나 콘텐츠 제작 작업에 대부분 정확하고 종종 인상적인 결과를 제공한다. 또한 머신러닝 프로세스를 통해 지속적으로 개선되고 있다. 그럼에도 불구하고 인터넷에서 소스 데이터를 가져온다는 것은 퍼블릭 LLM의 결과가 때때로 사실과 크게 다르거나 위험할 수도 있다는 것을 의미한다. AI가 사실이 아닌 것을 말하는 환각을 일으킬 가능성이 대표적인 예이다. 특히 대기업은 퍼블릭 LLM이 직원을 잘못된 길로 인도해 심각한 경영상의 문제나 법적 처벌을 초래할 수 있다는 점을 인식해야 한다. 대조적인 선택지는 기업이 자체적으로 보유하는 로컬 LLM을 생성하고 프라이빗 데이터로 학습하는 것이다. 이렇게 생성된 AI 애플리케이션은 적용 범위는 좁지만, 기업의 특정 전문 분야에 대한 지식의 깊이와 정확성이 높다.

퍼블릭 LLM이 제기하는 도전 과제

많은 기업에서 고유 데이터는 귀중한 자산이다. 따라서 기업은 직원이 이런 고유 데이터를 챗GPT 등의 퍼블릭 LLM에 입력해 민감한 데이터가 유출될 위험을 가장 우려하고 있다. 이런 우려는 현실에 근거한 것으로, 실제로 많은 해커가 챗GPT 로그인 자격 증명을 가로채는 것에 몰두하고 있다. 계정을 해킹하면 쿼리에 사용된 영업 비밀이나 개인 고객 데이터를 포함해 생성형 AI와 대화한 전체 기록을 얻을 수 있다. 해킹이 발생하지 않더라도 퍼블릭 LLM에 제기된 질문은 반복 학습에 활용되므로, 향후 질문하는 모든 사람에게 데이터가 노출될 수 있다. AI 서비스를 제공하는 구글이나 아마존, 애플을 비롯한 많은 기업이 직원의 챗GPT 액세스를 제한하고 엄격한 거버넌스 규칙을 수립하고 있다. 규제 당국은 물론 고객의 분노를 피하기 위한 노력이다. 전략적으로 퍼블릭 LLM은 기업에 또 다른 도전과제를 안겨준다. 어떻게 하면 다른 기업과 동일한 툴을 이용해 고유하고 가치 있는 IP를 구축할 것인가? 매우 어렵다. 점점 더 많은 기업이 로컬 LLM과 엔터프라이즈급 솔루션으로 전환하는 또 다른 이유이다.

로컬 LLM의 부상

로컬 LLM은 기업이 자체 데이터를 활용해 자사의 핵심 비즈니스 사용례와 고객 경험에 맞춤화할 수 있다. 이를 위한 엔터프라이즈급 툴 시장도 빠르게 성장하고 있다. 예를 들어, 제퍼디 우승 당시부터 AI의 대명사로 대중의 상상력을 자극했던 IBM의 왓슨은 이제 로컬 LLM 개발 플랫폼인 Watsonx로 진화했다. 엔터프라이즈 솔루션은 일반 공유 지식과 기업 고객별 특정 지식 사이의 경계를 설정해야 하며, 그 구분을 어디에 두느냐가 중요하다. 즉, 이들 엔터프라이즈 솔루션과 함께 매우 강력한 기능이 시장에 출시될 것이다. 퍼블릭 LLM을 도입해 관리할 것인지, 아니면 자체적으로 로컬 LLM을 구축할 것인지의 질문은 시간이 지날수록 더욱 중요해질 것이다. 로컬 LLM을 구축할 준비가 되어 있고 자체 핵심 데이터에 맞게 특별히 조정된 AI 엔진을 활용하는 기업은 미래에도 계속 사용할 수 있는 AI의 기반을 마련하게 될 것이다.

로컬 LLM 개발을 고려할 때 주의할 점 5가지

기업 책임자는 조직과 주주에게 최선의 결과를 가져올 미래 전략에 생성형 AI를 추가해야 한다는 압박에 직면해 있다. 가트너에 따르면 기업 책임자의 38%는 생성형 AI 투자의 가장 큰 목적이 고객 경험과 유지라고 답했다. 이는 생성형 AI가 기업 비즈니스의 미래에 필수적임을 보여준다. 그러나 보기에는 매력적이더라도 AI 전략을 수립하기에 앞서 LLM이 기업에 적합한 선택인지를 먼저 고려해야 한다.

현재 다양한 업체가 만든 기성 LLM이 시중에 나와 있고 쉽게 바로 사용할 수도 있지만, 효과적으로 쓰려면 몇 가지 과제를 극복해야 한다. 예를 들어, 고객 경험에 산업별 맥락이 결여되어 지나치게 일반화되거나, 임베딩 모델의 아웃소싱 비용이 늘어나고, 데이터가 외부에 공유되어 개인정보가 위협받는 등의 문제가 있다. 내부에서 개발한 AI 모델을 학습시키면 이런 우려를 직접 해소하는 동시에 모델을 다른 프로젝트에 활용하기 위한 팀 내부의 창의성과 혁신도 촉진할 수 있다. 도메인별 AI가 필요하다고 판단했다면, 자체 내부 모델을 만들기 위한 여정에 착수하기 전에 다음 5가지를 자문해 봐야 한다.

Q1 비즈니스 문제가 무엇이고 AI가 그 문제를 어떻게 해결할 수 있는가?
기반 모델과 LLM의 세계를 살펴보기 전에 한 걸음 물러서서 해결하고자 하는 문제를 명확히 해야 한다. 문제를 파악했다면 어떤 자연어 작업이 필요한지를 판단하는 것이 중요하다. 자연어 작업에는 요약, 명명된 개체 인식, 의미적 텍스트 유사성, 질문 답변 등이 있다. 다운스트림 작업과 도메인 인식은 사과와 배만큼이나 서로 다른데, 그 차이를 아는 것이 중요하다. GPT, 라마(Llama), 팜(PaLM) 같은 LLM 모델은 높은 인기와는 별개로 퓨샷(few-shot) 프롬프팅 또는 부가적인 미세조정을 통한 다운스트림 작업(예를 들어, 질문 답변, 요약)에만 적합하다. 기본 모델은 넓은 맥락에서 작동은 가능하지만, 대다수 애플리케이션이 실제 유용성에 필요한 산업 또는 비즈니스별 도메인 전문 지식이 부족하다. 다운스트림 작업에서 좋은 결과를 달성한다고 해서 특정 산업의 도메인 인식도 잘될 것으로 생각하면 안 된다.

Q2 이미 출시된 산업별 AI 툴이 있는가?
AI 전략의 연구 단계에서 기존 툴을 면밀히 평가하는 것이 중요하다. 산업용 툴이라고 해도 여전히 특정 비즈니스의 세세한 부분이 누락될 수 있기 때문이다. 사용 가능한 툴을 심사할 때는 AI 모델이 사용자의 프롬프트를 정확히 포착하고 관련성이 높은 응답을 생성하기 위해 선택한 언어의 단어뿐만 아니라 전체 맥락을 이해할 수 있는지를 집중적으로 살펴야 한다.

“필자의 팀은 연구와 테스트를 통해 서드파티 위험을 구체적으로 다루는 강력한 사이버 보안 LLM은 없다는 사실을 발견했다. 그래서 2년 전 사이버 보안 분야의 미세조정을 위해 BERT 기반 모델을 선택했다. 우리 팀은 AI 모델을 구축하면서 사이버 보안 도메인의 다양한 텍스트를 분석한 결과가 일관적으로 특정 범위 안에 들어가는 것을 확인했다. 우리가 채택한 기본 모델은 동일한 도메인 내 출처에 유사성을 발견하고 이 텍스트를 동질적인 것으로 인식했다. 우리는 모델에 사이버 보안 업계의 컨텍스트와 세밀한 맥락을 추가하려 노력했고 이는 도메인 인식 부족 문제를 해결하는 데 도움이 됐다.”

컨텍스트도 필수적이다. 지금도 여전히 생성형 AI는 특정 사안에서 환각을 일으킬 수 있으므로 100% 신뢰하면 안 된다. 미국 바이든-해리스 행정부가 안전하고 신뢰할 수 있는 AI에 대한 행정명령을 발표한 한 이유이기도 하다. 정부기관은 서비스형 AI 툴을 사용하기 전에 서비스가 안전하고 신뢰할 수 있는지 확인해야 하는데, 보통은 명확히 드러나지 않으며 예시 출력 집합만 보고는 분간할 수 없다. 또한 행정명령은 민간 분야의 기업에는 적용되지 않지만 비슷한 정책을 도입해야 하는 경우 그 내용을 고려해야 한다. 내부 모델에 따르는 학습과 미세조정 프로세스에는 철저한 테스트와 약점 파악, 모델 분석이 포함되고 시간도 상당히 걸리지만 장기적으로 보면 충분한 가치가 있다.

Q3 데이터가 준비되었는가?
기업의 데이터는 자체 LLM 학습에 앞서 평가해야 할 가장 중요한 자산이다. 장기간 고품질의 데이터를 축적해 왔다면 LLM 시대에 가장 운이 좋은 기업이다. 학습, 테스트, 재학습, 베타 테스트를 포함한 거의 모든 단계에 데이터가 필요하기 때문이다. 고품질 데이터는 LLM 학습 성공의 열쇠다. 따라서 고품질 데이터의 진정한 의미를 생각하는 것이 중요하다. 작업과 도메인에 따라 답은 다르지만, 일반적으로는 큐레이션의 필요성이 최소화되고 재학습도 비교적 덜 필요한 데이터다. LLM 학습을 위한 여정을 시작한 기업은 흔히 여러 면에서 데이터가 준비되지 않았음을 발견하게 된다. 데이터에 노이즈가 너무 많은 경우도 있고, 전문가를 잘못 선택했거나 전문가에게 충분한 시간이 주어지지 않은 탓에 쓸모없는 레이블이 지정된 경우도 있다. 또는 반복 데이터가 숨어 있어 학습 프로세스에 가치를 거의 제공하지 않고 도메인이나 작업을 제대로 대표하지 않아 결과적으로 AI 모델에 과적합이 발생하기도 한다. 데이터 체계화는 가장 많은 시간이 걸리는 단계다. 따라서 데이터가 프로젝트의 병목 지점이 될 수 있음을 예상해야 한다. 진짜 AI에 적합한 데이터가 준비되기까지 몇 년이 걸릴 수도 있다.

Q4 AI 모델을 학습시킬 전문가를 충분히 보유했는가?
전문가는 데이터를 생성하고 데이터 품질을 결정할 때 중요한 역할을 한다. 학습 프로세스에 사용할 신뢰할 수 있는 데이터를 생성하려면 여전히 사람이 필요하기 때문이다. 합성 생성되는 데이터 집합도 존재하지만 이런 데이터 집합은 전문가의 평가와 검증을 거치지 않는 한 쓸모가 없다. 내부 전문가든 아웃소싱을 통한 외부 전문가든, 전문가를 선택할 때는 모델을 미세조정을 하는 데 필요한 심층적인 산업 지식을 갖춘 사람을 선택해야 한다. 더 구체적으로, 데이터에 레이블을 지정하고 데이터에 대한 피드백을 제공하고 데이터를 테스트하고 피드백에 따라 재학습을 수행할 전문가가 필요하다. 학습된 AI 모델을 통해 정확하고 신뢰할 수 있는 결과를 얻기 위해 중요한 항목이다.

Q5 시간적 제약이 있는가?
내부 AI 모델 학습은 많은 비용이 드는 긴 과정이다. 이와 관련된 비즈니스 문제, 즉시 사용 가능한 데이터의 품질, 전문가와 AI 엔지니어의 수는 모두 프로젝트의 기간과 품질에 영향을 미친다. 이 프로세스는 시행착오에 의존하므로 솔루션을 사용할 준비가 되기까지 본질적으로 시간이 오래 걸릴 수밖에 없다. 데이터에서 비롯되는 문제 외에, 학습 알고리즘의 초매개변수를 설정할 때 발생할 수 있는 학습률이나 에포크 및 레이어 수 같은 다른 문제도 있다. 테스트 단계에서 드러나는 과적합 및 심각한 망각 문제를 해결하기 위해 AI 전문가의 리엔지니어링이 필요할 수 있으며, 이 경우 프로젝트에 소요되는 시간은 더 길어진다. 심사숙고해서 프로세스를 만들었다면 부하를 줄일 수 있지만, 새로운 LLM 솔루션이 등장하면서 기존 솔루션이 구식이 될 위험은 상존한다. 결국 관건은 도메인의 특수성과 틈새성에 있다. AI 기술의 빠른 발전 속도를 고려해 타이밍과 품질 사이에서 균형점을 찾아야 한다. 많은 혁신적인 솔루션이 그렇듯 모든 시나리오에 통하는 하나의 접근 방법은 없다. AI 여정을 시작할 때 가장 첫 단계는 비즈니스에 적합한 모델 측면에서 접근해 가능한 선택지를 살펴보는 것이다. 기업 책임자는 LLM을 처음부터 학습시키는 것을 부담스럽게 느낄 수 있지만, 가용 데이터가 있고 일반적 LLM으로 해결할 수 없는 도메인 고유의 비즈니스 문제가 있다면 로컬 LLM은 장기적으로 투자할 가치가 있는 방법이다.

노트북으로 로컬 LLM 따라잡기

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

챗GPT, 클로드.ai, 파인드(phind) 같은 챗봇은 매우 유용하지만, 질문이나 민감한 데이터를 외부 애플리케이션에서 처리하기 애매한 경우가 있다. 특히 기업이 챗봇과 수행한 상호작용이 향후 모델 학습에 사용되는 플랫폼에서는 더욱 그렇다. 한 가지 해결책은 대규모 언어 모델을 다운로드해서 기업의 자체 시스템에서 실행하는 것이다. 외부에서 기업의 데이터에 접근할 가능성을 원천적으로 차단할 수 있다. 또한 코딩 작업에 적합한 메타의 코드 라마 모델 제품군이나 텍스트 음성 변환 및 언어 번역이 목적인 심리스M4T(SeamlessM4T) 등 새로운 모델을 사용해 볼 수 있는 지름길이기도 하다.

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

모델은 어떻게 선택하는가? 챗GPT가 아닌 많은 LLM 중 어떤 모델을 다운로드 할 수 있는지, 각 플러그인이 호환되는지를 확인해야 한다. GPT4All 홈페이지로 이동해 모델 탐색기로 스크롤하고 GPT4All과 호환되는 모델을 찾을 수도 있다. falcon-q4_0 옵션은 상업적 사용이 가능한 라이선스를 가진 비교적 작은 모델로 높은 평가를 받고 있었기 때문에 필자는 이 모델을 실행해 보았다.

GPT4All로 로컬 챗봇 실행하기

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

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

GPT4All 내 모델 다운로드 인터페이스 캡쳐 화면 GPT4All 내 모델 다운로드 인터페이스
GPT4All 챗 인터페이스 캡쳐 화면 GPT4All 챗 인터페이스

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

모델을 설정하고 나면 챗봇 인터페이스 자체는 깔끔하고 사용하기 쉽다. 채팅을 클립보드에 복사하고 응답을 생성하는 등의 편리한 옵션이 있다. 또한 로컬에서 내 문서와 채팅할 수 있는 새로운 로컬독스 플러그인 베타가 있다. 설정 > 플러그인 탭에서 이 플러그인을 활성화하면 ‘로컬독스 플러그인 (베타) 설정’ 헤더와 특정 폴더 경로에 콜렉션을 만들 수 있는 옵션이 표시된다. 플러그인은 현재 개발 중이다. 공식 문서는 추가한 전문가 정보에 액세스할 수 있는 경우에도 LLM이 여전히 환각을 겪을 수 있다고 경고했다. 그럼에도 불구하고 오픈소스 모델의 기능이 향상됨에 따라 개선될 가능성은 있다. 챗봇 애플리케이션 외에도 GPT4All에는 파이썬, 노드 및 명령줄 인터페이스(CLI)에 대한 바인딩도 있다. 또한 오픈AI와 매우 유사한 구조의 HTTP API를 통해 로컬 LLM과 상호 작용할 수 있는 서버 모드도 있다. 이 모드의 목표는 코드 몇 줄만 변경하면 로컬 LLM을 오픈AI로 교체할 수 있도록 하는 것이다.

명령줄에서 LLM 다루기

사이먼 윌리슨의 LLM은 오픈소스 LLM을 로컬 컴퓨터에 다운로드는 쉬운 방법으로 꼽힌다. 실행하려면 파이썬이 설치되어 있어야 하지만 파이썬 코드를 건드릴 필요는 없다. 맥에서 홈브류를 사용하는 경우 다음과 같이 설치하면 된다:

brew install llm
윈도우 컴퓨터에서는 다음과 같이 선호하는 파이썬 라이브러리 설치 방법을 적용해라.

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

llm install llm-gpt4all

LLM에서 사용할 수 있는 모델 목록 명령어 모음 화면 LLM에서 사용할 수 있는 모델 목록
테스트 대체 텍스트1

이 명령으로 사용 가능한 모든 원격 모델과 설치한 모델을 확인할 수 있으며, 각 모델에 대한 간략한 정보도 확인할 수 있다. 로컬 LLM에 쿼리를 발송하려면 다음 구문을 사용한다.

llm -m the-model-name "Your query"
그런 다음 모델을 다운로드하라는 별도의 명령을 내리지 않고 챗GPT와 유사한 질문을 해봤다.

llm -m ggml-model-gpt4all-falcon-q4_0 "Tell me a joke about computer programming"
LLM 사용자 경험이 매우 우아해지는 모습이다. 로컬 시스템에 GPT4All 모델이 없는 경우 쿼리를 실행하기 전에 LLM 툴이 자동으로 다운로드한다. 모델이 다운로드 되는 동안 터미널에 진행률 표시줄이 나타난다.

LLM이 자동으로 쿼리에서 사용한 모델 진행중인 화면 캡쳐 LLM이 자동으로 쿼리에서 사용한 모델
테스트 대체 텍스트1

결과가 실망스럽다면 모델 성능이나 부적절한 사용자 프롬프트 때문이지 LLM 툴 때문이 아니다. LLM 내에서 모델에 별칭을 설정해 더 짧은 이름으로 모델을 참조할 수도 있다.

llm aliases set falcon ggml-mo del-gpt4all-falcon-q4_0
사용 가능한 모든 별칭을 보려면 lm aliases를 입력해라. 메타의 라마 모델용 LLM 플러그인은 GPT4All보다 설정이 조금 더 필요하다. 자세한 내용은 LLM 플러그인의 깃허브 리포지토리를 참조한다. 범용 llama-2-7b-chat은 M1 프로 칩과 16GB RAM만 장착한 업무용 맥에서도 그럭저럭 실행될 수 있었다는 것에 주목할 필요가 있다. GPU가 없는 더 소형 컴퓨터에 최적화된 GPT4All 모델에 비해 다소 느리게 실행되었으며, 더 강력한 가정용 PC에서는 더 나은 성능을 보였다.

LLM에는 이전 채팅에서 계속할 수 있는 argument 플래그와 파이썬 스크립트 내에서 사용할 수 있는 기능 등 다른 기능도 있다. 관련 문서를 검색할 때 사용하는 텍스트 의미를 숫자로 표현하는 텍스트 임베딩 생성 도구도 추가되었다. 자세한 내용은 LLM 웹사이트에서 확인할 수 있다. 참고로 인기 있는 파이썬 장고 프레임워크의 공동 제작자인 윌리슨은 LLM 생태계에 더 많은 플러그인을 기여해달라고 커뮤니티에 요청하고 있다.

IDG logo

▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

Brian Sathianathan
Brian Sathianathan

Iterate.ai의 Co-founder 겸 Chief Digital Officer

공유하기