최근 화두로 떠오르고 있는 랭체인은 정확히 어떤 개념이며, 많은 사람이 주목하고 있는 이유는 무엇일까요? 랭체인의 장단점과 현재 위치 그리고 미래 모습까지 단계별로 차근차근 이야기해 봅니다. 📌랭체인이란? ‘LLM(Large language model : 거대 언어 모델)’의 뜨거운 관심과 더불어 ‘랭체인(LangChain)’도 심심치 않게 들리는 요즘입니다. 랭체인은 언어 모델(Language Model)을 이용해 애플리케이션을 개발하는 프레임워크(Framework)이며, 프레임워크는 애플리케이션을 쉽게 개발할 수 있도록 도와주는 도구입니다. 간단히 예를 들어볼까요? LLM을 이용해 애플리케이션을 만들기 위해 우선 LLM API를 이용해야 합니다. 이것 역시 랭체인에서 지원하는데요. 아래 예시 코드가 LLM API를 호출하는 대표적인 예시입니다. from langchain.chat_models import ChatOpenAI llm = ChatOpenAI(model_name='gpt-4') 코드를 보니 간단하죠? 특히 OpenAI의 LLM API를 호출하는 부분을 보면 랭체인에서 제공하는 ChatOpenAI 라이브러리를 가져온 후, 사용할 LLM 모델명을 지정해 주는 것으로 간단히 코드를 구현할 수 있습니다. 이것이 가능한 이유는 랭체인이라는 프레임워크 덕분이죠. 📌LLM 서비스를 만드는 데 랭체인이 필요한 이유 본론으로 들어가기에 앞서 LLM의 한계에 대해 알아보겠습니다. LLM은 크게 다음과 같은 한계를 가지고 있습니다. ① 할루시네이션(hallucination : AI 모델이 정확하지 않거나 사실이 아닌 정보를 생성하는 것) 혹은 답변의 정확성 ② 스냅샷(Snapshot : 특정 시점에 모델 학습을 종료하고 서비스로 배포하는 것) 시점을 기준으로, 그 이후 받아들이는 정보에 대한 답변이 어려움 ③ 개인 혹은 기업의 내부 정부를 학습하지 않은 경우 원활한 답변이 어려움 이 중 ③번의 이유로 기업에서는 LLM API만을 이용해 서비스를 만들지 않고, RAG(Retrieval-Augmented Generation)라는 아키텍처를 선호합니다. 정확히는 선호한다기보다 최선의 선택을 하는 것이라고 이해하면 좋습니다. RAG란 LLM API를 이용할 때 개인/기업의 데이터도 함께 활용하기 위한 아키텍처입니다. 따라서 아래 그림과 같이 사용자 질의에 응하는 검색이 핵심 역할을 합니다. 사용자 질의와 그 질의와 관련한 정보가 함께 LLM에 넘어가기 때문입니다. 그래서 LLM의 답변이 부정확하다면 검색 결과(관련 정보)의 정확성을 먼저 확인해야 합니다. RAG에 대한 데이터 흐름을 정리하면 다음과 같습니다. ① 사용자 질의에 대한 답변을 내부 정보에서 검색한다. 바로 이 부분이 RAG의 R(Retrieval)에 해당한다. ② 검색 결과, 즉 관련 정보와 사용자 질의가 LLM 모델에 넘어간다. ③ LLM 모델은 수집된 정보를 이용해 정돈된 언어를 만들어 사용자 질문에 답변한다. LLM의 역할이 크지 않아 보이지만, 마지막 단계인 ③에서 모델 성능이 좋을수록 답변이 정확해집니다. 사용자는 기업 데이터만 질의하지 않고, 일반 정보를 얻을 때도 LLM을 이용하기 때문입니다. 다시 본론으로 돌아와, 우리는 LLM API를 이용하기 위해 RAG를 사용해야 한다는 사실을 알아봤습니다. 그런데 단순히 LLM API로 서비스할 때보다 구성이 복잡해졌습니다. 개인/기업 데이터를 활용해 서비스를 만들어야 하므로 필요한 도구가 많아진 것인데요. 이 모든 도구는 랭체인에서 제공하고 있으며, 크게 다섯가지 카테고리로 구분해 볼 수 있습니다. ① 모델 I/O : 모델의 입출력(Input/Output) 처리 ② 메모리 : 대화 내용을 저장하고 처리 ③ 체인 : 여러 구성 요소를 하나의 파이프라인으로 구성해 주는 역할 ④ 데이터 연결 : 개인/기업의 데이터를 가져와 저장하고 검색하는 역할 ⑤ 에이전트/툴 : 외부 툴을 이용 조금 더 자세히 알아볼까요? 일단 서비스를 개발하려면 LLM API를 가져와야 하겠죠? 이것을 담당하는 것이 ‘모델 I/O’입니다. 이것은 프롬프트(예 : 항공 챗봇으로 사용자들의 항공편 검색과 예약에 대한 답변을 도와줘.)와 출력 형태(예 : JSON 형태 등)를 지정할 수도 있습니다. 또 하나 중요한 부분이 개인/기업 데이터를 가져오는 것입니다. 이때는 ‘데이터 연결’을 이용하면 됩니다. 그러면 문서를 가져와 임베딩 처리 후 벡터를 저장소에 저장합니다. 이후 사용자 질문에 기반해 검색할 때도 ‘데이터 연결’을 이용하면 됩니다. 더불어 개발의 편리성을 고려해 여러 구성 요소를 조합하며 하나의 파이프라인을 구성해야 하는 경우가 종종 있습니다. 이때는 랭체인의 ‘체인’을 사용하면 됩니다. 예를 들어, 프롬프트와 모델을 연결할 때, 체인을 이용할 수 있습니다. 마지막으로, 에이전트/툴은 외부 데이터와 연동하고 싶을 때 사용합니다. 위키피디아에서 데이터를 가져와 활용하는 경우가 이에 해당합니다. 이 정도의 기능을 제공하는 랭체인이라면 LLM 서비스를 빠르게 만들 수 있겠죠? 📌꼭 랭체인이어야 할까 랭체인을 이용하지 않고도 LLM 서비스를 만들 수 있습니다. 특히 클라우드 제조사에서 제공하는 다양한 툴을 이용하면 빠르고 간편하게 서비스를 만들 수 있는 장점이 있습니다. 하지만 LLM과 랭체인이 각광받고 있는 이유가 있겠죠? 랭체인의 장점은 다음과 같습니다. ① 쉽고 빠르게 서비스 결과물 도출 ② 무료 버전 반면, 랭체인의 단점도 있습니다. ① 빠르게 변하는 기술로 인해 버그가 자주 발생 ② 기술 변화 시점에서 사용자에게 알림을 주지 않아 사전 준비 시간 부족 저 역시 도서 <랭체인으로 LLM 기반의 AI 서비스 개발하기>를 준비하며 두 번의 대대적인 코드 수정을 했으며, 출판 이후에도 전반적인 코드 수정을 두 번이나 더 진행했습니다. 한 달에 두 번 정도의 코드 수정을 해야 하는 상황이라면 랭체인을 기업용 서비스에 활용할 수 있을까요? 뿐만 아니라 OpenAI API도 변경이 잦습니다. 지속적으로 모델을 업그레이드하다 보니 새로 출시되는 모델이 있는가 하면, 기존 모델은 더 이상 서비스하지 않겠다고 선언한 모델도 많습니다. 하지만 이러한 불편함에도 사람들은 여전히 랭체인에 관심을 갖고 실제로 랭체인을 이용해 LLM 서비스를 개발하고 있습니다. 물론 어떤 것을 선택할지는 개인/기업의 몫입니다. 랭체인 개발에 익숙하면서 빠른 변화에 유연하게 대처할 수 있다면 랭체인은 LLM 서비스를 개발하기 위한 좋은 툴이 될 것입니다. 📌시장에서 랭체인의 현재 위치 빠른 변화에 발빠르게 대처하기 힘든 기업에서는 랭체인 도입이 부담스러울 수 있습니다. 그래서 주로 안정적으로 LLM 서비스를 할 수 있는 솔루션을 택하는 경우가 많습니다. 여기서의 솔루션은 RAG 아키텍처를 직접 구현하는 것이 아닌, 이미 패키지 형태로 만들어진 제품을 의미합니다. 스타트업을 포함해 대기업 SI까지 LLM 서비스를 빠르게 배포할 수 있는 솔루션을 개발해 놓은 상태입니다. 솔루션을 이용하면 랭체인으로 일일이 개발하지 않고, 솔루션 형태로 납품 받을 수 있으므로 편리하게 서비스를 구축할 수 있습니다. 솔루션 업체가 개발한 이 패키지의 핵심도 검색입니다. 개인/기업 데이터를 활용하는 RAG 아키텍처에서 데이터를 얼마나 정확하게 찾는지가 핵심이 될 테니, 검색이 핵심일 수밖에 없습니다. 그래서 현재 시장에서 솔루션을 갖고 있는 기업들의 핵심 기술은 대부분 검색 기술입니다. 빠르게 답변을 보여주는 것도 또 하나의 핵심 기술이라고 할 수 있습니다. 하지만 작은 규모의 기업이라면 솔루션을 도입하는 것이 부담스러울 수 있습니다. 서비스하려는 데이터가 핵심 업무가 아니라면 랭체인으로 LLM 서비스를 개발하는 것도 좋습니다. 우선 서비스를 개발한 후, 사용자들에게 사용해 보게 한 다음 반응이 좋다면 솔루션을 도입하거나 안정적인 인프라/플랫폼을 도입하면 될 테니까요. 따라서 랭체인을 선택하는 기준은 LLM 서비스가 무엇인지, 이 서비스가 얼마나 중요한지에 따라 달라집니다. 만약 매우 중요한 서비스인데 한 달에 두 번 정도 서비스 장애가 발생한다면 곤란할 테니까요. 글ㅣ서지영 Data & AI Specialist 더 자세히 읽기 https://www.wanted.co.kr/events/article_240416?label=article

콘텐츠를 더 읽고 싶다면?
원티드에 가입해 주세요.
로그인 후 모든 글을 볼 수 있습니다.
댓글 2