챗GPT가 쏘아올린 인공지능(AI) 열풍이 여전히 뜨겁다. 보다 정확히 말하면 챗GPT가 쏘아올린 대형 언어 모델(Large language model, LLM) 열풍이라고도 할 수 있겠다. 내로라하는 빅테크들이 너도나도 생성형 AI를 이야기하며 앞다퉈 시장에 뛰어들고 있다. 그리고 그 중심에는 LLM이 있다.
혜성처럼 등장한 챗GPT 이후 다양한 LLM이 개발되고 공개됐다. 구글이나 오픈AI 등 업계 대표 기업들이 폐쇄적인 생태계를 구축하며 독자적인 모델 성능 개선에 열을 올리는 가운데, 오픈소스 진영에서도 유사한 LLM들이 하나둘씩 선보여지고 있다. 특히 메타가 자체 LLM ‘라마 2(Llama 2)’를 오픈소스로 공개한 기점을 시작으로 LLM을 내놓는 기업들이 크게 늘어났다.
이렇듯 최근의 트렌드는 오픈소스로 공개된 LLM을 기반으로 자체 LLM을 구축하는 것이다. 자체 데이터를 활용해 다양한 오픈소스 LLM을 용도에 맞게 최적화한다. 이로써 초거대 AI를 개발할 여력이 없는 기업들도 비즈니스에 특화된 LLM을 만들고 가질 수 있게 되었다. LLM이 더욱 널리 또 다양하게 활용될 수 있다는 건 다시 말해 최신 소프트웨어 스택의 한 요소로 빠르게 부상하고 있다는 말과 같다. 이러한 배경에서 랭체인(LangChain)이 주목받기 시작한 건, 어쩌면 너무나 당연한 일이었는지도 모른다
랭체인(LangChain)이란?
LLM을 원동력으로 하는 애플리케이션을 구축하기 위해서는 당연하게도 단순 언어 모델 개발 이상의 작업이 요구된다. 특히 언어 모델을 활용한 서비스 개발 시 가장 까다로운 부분은 언어 모델과 여러 기능 간의 연결이다. 랭체인(LangChain)은 이러한 통합을 간소화하도록 설계된 일종의 SDK(Software Development Kit)이자 다양한 언어 모델을 기반으로 하는 애플리케이션 개발을 위한 프레임워크다.
랭체인의 가장 핵심적인 역할은 그 이름에서 알 수 있듯이 언어 모델(Language model)과 외부 도구를 마치 사슬(Chain)처럼 엮어 결합시켜 주는 데에 있다. 이러한 랭체인은 흔히 앵무새와 체인 이미지의 조합으로도 표현된다. 여기서 앵무새는 언어의 의미를 진정으로 이해하지 못한 채 단지 방대한 데이터를 학습한 후 확률적으로 나오는 단어를 조합하여 앵무새처럼 따라 하는 ‘확률적 앵무새(Stochastic Parrot)’, 즉 언어 모델을 가리킨다. 다시 말해 ‘언어 모델과 연결’의 조합을 직관적으로 드러내는 표현이라고 할 수 있겠다.
랭체인은 챗GPT와 거의 유사한 시기에 등장했다. 지난 2022년 말, 미국 개발자 해리슨 체이스(Harrison Chase)에 의해 시작된 랭체인 오픈소스 프로젝트는 챗GPT가 촉발한 LLM의 폭발적인 인기에 힘입어 약 1년 만에 빠르게 성장했고, 오늘날 LLM 기반 애플리케이션 개발을 도와주는 대표적인 도구로 떠오르게 되었다.
랭체인에는 여러 모듈(Module)들이 존재한다. 랭체인의 핵심이라고 할 수 있는 언어 모델과의 인터페이스를 지원하는 모델 I/O(Model I/O), 한 모듈의 출력을 다른 모듈의 입력으로 연결하여 여러 구성 요소를 결합할 수 있도록 도와주는 체인(Chain), 특히나 대화형 애플리케이션에는 빼놓을 수 없는, 일정 기간 동안의 과거 메시지를 저장하고 접속할 수 있도록 지원하는 메모리(Memory) 등이 그 예다.
사용자는 이렇듯 사전 설정된 모듈을 적절히 혼합하여 구성 요소(Component)로 만들고, 각 구성 요소 간의 파이프라인을 설정해 일관된 단일 애플리케이션을 구축할 수 있게 된다. 여러 가지의 모듈이 모여 하나의 구성 요소를 만들고, 또 이렇게 모인 구성 요소를 체인으로 엮으면서, 마치 차곡차곡 블록을 쌓고 합쳐가듯 최종 애플리케이션을 완성하게 되는 방식이다.
랭체인 문서에 따르면 LLM과 Chat Model 클래스는 각각 다른 형태의 입력과 출력을 다루는 언어 모델을 나타낸다. 이 두 모델은 각기 다른 특성과 용도를 가지고 있어, 사용자의 요구사항에 맞게 선택하여 사용할 수 있다. 일반적으로 LLM은 주로 단일 요청에 대한 복잡한 출력을 생성하는 데 적합한 반면, Chat Model은 사용자와의 상호작용을 통한 연속적인 대화 관리에 더 적합하다.
LLM
- 기능: LLM 클래스는 텍스트 문자열을 입력으로 받아 처리한 후, 텍스트 문자열을 반환한다. 이 모델은 광범위한 언어 이해 및 텍스트 생성 작업에 사용된다. 예를 들어, 문서 요약, 콘텐츠 생성, 질문에 대한 답변 생성 등 복잡한 자연어 처리 작업을 수행할 수 있다.
- 예시: 사용자가 특정 주제에 대한 설명을 요청할 때, LLM은 주어진 텍스트 입력을 바탕으로 상세한 설명을 생성하여 반환할 수 있다.
Chat Model
- 기능: Chat Model 클래스는 메시지의 리스트를 입력으로 받고, 하나의 메시지를 반환한다. 이 모델은 대화형 상황에 최적화되어 있으며, 사용자와의 연속적인 대화를 처리하는 데 사용된다. Chat Model은 대화의 맥락을 유지하면서 적절한 응답을 생성하는 데 중점을 둔다.
- 예시: 사용자가 챗봇과 대화하는 상황에서, 사용자의 질문과 이전 대화 내용을 고려하여 적절한 답변을 생성한다.
'인공지능 > 인공지능' 카테고리의 다른 글
검색 증강 생성(RAG)이란? (3) | 2024.10.15 |
---|---|
Deep Learning Framework 종류 (0) | 2021.05.17 |
CNN(Convolutional Neural Network) 알고리즘 (0) | 2021.05.17 |
Backbone(백본)에 대해 (0) | 2021.05.17 |
Object Detection on COCO test-dev(COCO test-dev Benchmark Object Detection) (0) | 2020.09.15 |