최근 AI 기술의 발전과 함께 자연어 처리(NLP)와 머신러닝 모델을 활용한 다양한 응용 프로그램이 등장하고 있습니다. 이러한 응용 프로그램의 개발 과정에서 단일 언어 모델의 활용을 넘어 다양한 데이터 소스와 워크플로우를 결합하여 고도화된 기능을 제공하는 기술이 주목받고 있습니다. 그 중심에 있는 기술 중 하나가 바로 LangChain입니다. LangChain은 언어 모델(Language Model)을 활용한 애플리케이션 개발을 단순화하고 가속화하기 위해 설계된 프레임워크로 다양한 데이터 소스(문서, 데이터베이스, API 등)를 통합하여 사용자가 원하는 정보를 보다 효율적으로 얻을 수 있도록 지원합니다.
<출처 : LangChain Blog>
LangChain 특징
LangChain은 기존의 언어 모델 사용 방식에서 한 걸음 더 나아가 실제 애플리케이션 개발 과정에서 다음과 같은 장점을 제공합니다. LangChain을 사용한 이점으로는 생산성 향상과 확장성에 있습니다. 복잡한 언어 모델 기반 애플리케이션을 빠르게 설계, 구현 및 배포할 수 있도록 개발자를 도울 수 있으며 다양한 데이터 소스와의 통합을 지원해 복잡한 사용자 요구 사항에 대응할 수 있습니다. 또한, 오픈소스 프로젝트로, 다양한 개발자가 참여하여 지속적으로 개선되고 있습니다. 이는 사용자 커뮤니티와 기술 지원의 확장을 가능하게 하여 오픈소스 생태계를 구축하고 있습니다. 이로인해 아래 그림과 같은 검색 증강 생성(Retrieval Augmented Generation, RAG) 기법을 용이하게 할 수 있습니다.
<RAG 작동방식>
RAG 기법은 단순히 LLM을 통하여 질문을 했을 때 보다 높은 신뢰도를 제공할 수 있습니다. 예를 들어, GPT에게 기업 업무 프로세스를 알려달라고 할 때, 통상적인 기업의 업무 프로세스를 소개하거나 할루시네이션으로 거짓된 프로세스를 답변할 수도 있습니다. 하지만, RAG를 통해 우리 기업의 특정 업무 프로세스나 가이드라인을 Vector DB에 저장시킨다면 데이터베이스에 저장시킨 데이터 소스의 출처가 정확하므로 답변의 신뢰도를 올릴 수 있습니다.
그러면 RAG 기법에서 LangChain의 역할은 무엇일까요?
LangChain은 RAG 작동방식에서 4가지를 유연하게 대체할 수 있습니다. 데이터소스의 경우 PDF파일 외에도 CSV파일, txt파일, Word파일 등의 데이터를 검색하여 LLM에게 제공할 수 있게 합니다. 임베딩은 PDF나 CSV파일과 같은 데이터소스를 벡터로 변환을 합니다. 임베딩을 할 경우 아래 그림과 같이 유사한 단어들이 비슷한 영역에 있는 모습을 확인할 수 있습니다.
<Word Embedding>
벡터 데이터베이스는 임베딩을 통한 벡터값을 저장할 수 있는 DB로 벡터값을 빠르게 검색할 수 있습니다. 여기서 LangChain은 벡터 데이터베이스를 사용자가 원하는 것으로 자유롭게 바꿔서 사용할 수 있게 해주며 LLM 사용 시 GPT와 라마2 등 다양한 LLM을 취사에 맞게 사용할 수 있도록 제공합니다.
LangChain 활용
LangChain을 활용하면 아래와 같은 RAG기법을 사용하여 기업이나 조직에 특화된 답변을 얻을 수 있게 챗봇을 만들 수도 있습니다.
<LangChain 활용 챗봇>
마무리
LangChain은 단순히 언어 모델을 활용하는 데 그치지 않고, 실제 문제를 해결하기 위한 맞춤형 애플리케이션을 설계할 수 있는 강력한 프레임워크를 제공합니다. 지속적인 기술 발전과 오픈소스 커뮤니티의 참여를 바탕으로 LangChain은 앞으로도 더욱 다양한 산업과 애플리케이션에서 활용될 잠재력을 가지고 있으며, 이를 통해 더 나은 사용자 경험과 생산성을 제공할 것으로 기대됩니다.