보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
랭체인(LangChain), 그것이 알고 싶다
2023.11.01
12,961
01. 서론
챗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)이 주목받기 시작한 건, 어쩌면 너무나 당연한 일이었는지도 모른다.
02. 랭체인(LangChain)이란?
LLM을 원동력으로 하는 애플리케이션을 구축하기 위해서는 당연하게도 단순 언어 모델 개발 이상의 작업이 요구된다. 특히 언어 모델을 활용한 서비스 개발 시 가장 까다로운 부분은 언어 모델과 여러 기능 간의 연결이다. 랭체인(LangChain)은 이러한 통합을 간소화하도록 설계된 일종의 SDK(Software Development Kit)이자 다양한 언어 모델을 기반으로 하는 애플리케이션 개발을 위한 프레임워크다.
랭체인의 가장 핵심적인 역할은 그 이름에서 알 수 있듯이 언어 모델(Language model)과 외부 도구를 마치 사슬(Chain)처럼 엮어 결합시켜 주는 데에 있다. 이러한 랭체인은 흔히 앵무새와 체인 이미지의 조합으로도 표현된다. 여기서 앵무새는 언어의 의미를 진정으로 이해하지 못한 채 단지 방대한 데이터를 학습한 후 확률적으로 나오는 단어를 조합하여 앵무새처럼 따라 하는 ‘확률적 앵무새(Stochastic Parrot)’, 즉 언어 모델을 가리킨다. 다시 말해 ‘언어 모델과 연결’의 조합을 직관적으로 드러내는 표현이라고 할 수 있겠다.
03. LLM에 날개 달아주는 랭체인
랭체인은 챗GPT와 거의 유사한 시기에 등장했다. 지난 2022년 말, 미국 개발자 해리슨 체이스(Harrison Chase)에 의해 시작된 랭체인 오픈소스 프로젝트는 챗GPT가 촉발한 LLM의 폭발적인 인기에 힘입어 약 1년 만에 빠르게 성장했고, 오늘날 LLM 기반 애플리케이션 개발을 도와주는 대표적인 도구로 떠오르게 되었다.
랭체인에는 여러 모듈(Module)들이 존재한다. 랭체인의 핵심이라고 할 수 있는 언어 모델과의 인터페이스를 지원하는 모델 I/O(Model I/O), 한 모듈의 출력을 다른 모듈의 입력으로 연결하여 여러 구성 요소를 결합할 수 있도록 도와주는 체인(Chain), 특히나 대화형 애플리케이션에는 빼놓을 수 없는, 일정 기간 동안의 과거 메시지를 저장하고 접속할 수 있도록 지원하는 메모리(Memory) 등이 그 예다.
사용자는 이렇듯 사전 설정된 모듈을 적절히 혼합하여 구성 요소(Component)로 만들고, 각 구성 요소 간의 파이프라인을 설정해 일관된 단일 애플리케이션을 구축할 수 있게 된다. 여러 가지의 모듈이 모여 하나의 구성 요소를 만들고, 또 이렇게 모인 구성 요소를 체인으로 엮으면서, 마치 차곡차곡 블록을 쌓고 합쳐가듯 최종 애플리케이션을 완성하게 되는 방식이다.
04. 결론
쉽게 말해 랭체인은 ‘LLM 밀키트’와도 같다고 볼 수 있다. 먹고 싶은 음식이 있지만 재료를 구하기 어렵거나, 레시피가 복잡하거나, 요리할 시간이 충분하지 않을 때 현대인들은 밀키트의 힘을 빌린다. 랭체인도 마찬가지다. 만들고 싶은 애플리케이션이 있지만 각 구성요소를 갖추기 어렵거나, 개발 방법이 복잡하거나, 개발할 시간이 넉넉하지 못할 때 랭체인을 활용하면 비교적 빠르고 간편하게 애플리케이션을 개발할 수 있다. 물론 미리 만들어진 키트를 활용한다고 해도 적재적소에 재료를 추가하고 뺄 수 있는 건 요리사 아니 개발자의 몫이라 할 수 있겠지만 말이다.