스터디/ML, DL

[LLM] LangChain이란?

sollllllll 2025. 1. 27. 17:50

 

 

LLM에 대해 공부하다 보면 LangChain이라는 단어를 자주 접하게 된다. 

LangChain이 과연 무엇일까? 이번 포스팅에서 한 번 다뤄보려고 한다. 

 

 


 

 

0. LLM

우선 LLMLarge Language Model의 약자로, 대규모 언어 모델이라는 뜻이다. 

널리 사용되는 OpenAI의 GPT(ChatGPT), Meta의 LLaMA, Google의 Gemini 등이 있다. 

텍스트로 지시를 하면 해당하는 내용을 텍스트로 생성하여 반환한다. 

예시. ChatGPT에게 노래를 추천해달라고 해 보자.

 

이렇게 적절한 결과를 반환하기 위해서 모델은 상당한 양의 데이터를 보유해야 한다. 

이것이 모델에 "대규모(Large)"라는 단어가 붙는 이유이다. 

 

 

 

 

1. LangChain?

LLM에 대한 내용은 이쯤에서 넘어가고, 그렇다면 LangChain은 도대체 뭘까? 

 

 

LangChain은 이러한 LLM 모델을 이용한 애플리케이션의 제작을 도와주는 프레임워크이다. 

LLM은 방대한 데이터를 보유한 만큼 다양한 분야에 다양하게 활용할 수 있지만 애플리케이션에 통합하기 위해서는 여러 제약이 있는데, LangChain이 바로 이런 어려움을 단순하게 바꿔주는 것이다.

 

LangChain은 다양한 LLM을 지원하며, 한 가지 애플리케이션 제작에 여러 가지 LLM을 활용할 수도 있다.

지원하는 모델에는 위에 언급한 OpenAI의 GPT 시리즈, Google의 Gemini, Meta의 LLaMa을 포함해 IBM, AWS, Cohere의 언어 모델 뿐 아니라 Huggingface의 트랜스포머 기반 언어 모델들까지 다양한 LLM을 지원한다.

(단, 필요한 경우 API 키를 입력해야 함)

 

 

또한 외부 데이터 소스(데이터베이스, 파일시스템 등)와도 통합할 수 있어서 복잡한 애플리케이션을 만들 수 있다.

 

 

 

 

2. 프레임워크

LangChain은 간소화된 LLM 애플리케이션 라이프사이클을 제공한다.

이는 다음의 오픈소스 라이브러리들로 구성할 수 있다.

LangChain 공식 홈페이지 제공. (이미지를 클릭하면 홈페이지로 이동)

 

위 라이브러리들을 사용해 애플리케이션을 제작하고 배포한다.

 

(1) 개발(Development): LangChain의 오픈 소스 컴포넌트, 빌딩 블록, 서드파티 통합 등을 사용해 애플리케이션을 빌드.

(2) 생산화(Productionization): LangSmith를 사용해 애플리케이션을 테스트, 모니터링하고 평가.

     * LangSmith는 LLM 애플리케이션을 디버깅, 테스트, 평가, 모니터링 할 수 있는 개발자 플랫폼.

(3) 배포(Deployment): LangGraph 플랫폼을 사용해 애플리케이션을 프로덕션에 바로 사용할 수 있는 API와 Assistant로 전환.

 

 

 

 

3. LangChain의 기능

LangChain의 다양한 기능을 통해 유연하고 확장성이 높은 애플리케이션을 효율적으로 제작할 수 있다.

 

(1) 언어 모델 연결: 위 섹션에서 언급한대로 다양한 LLM을 연결해 사용할 수 있다.

(2) 체인(Chain): 여러 LLM을 순차적으로 연결해 복잡한 과정의 애플리케이션을 제작할 수 있다.

(3) 메모리(Memory): 프롬프팅과 컨텍스트 관리 도구를 제공하여 대화형 애플리케이션을 만들 때 상태를 기억하고 이전 정보를 활용할 수 있다.

(4) API 통합: 외부 API와의 연동이 가능해 더 복잡한 애플리케이션을 구축할 수 있다.

(5) 문서 검색 및 활용: 문서를 검색하고 해당 정보를 바탕으로 텍스트를 생성하는 등의 작업이 가능하다.

(6) 커스터마이징(Customizing): 특정 작업에 특화된 언어 모델 구축을 위한 파인튜닝 기능을 제공한다.

 

 

 

 

4. LangChain의 장점과 단점

우선 장점으로는 유연성, 확장성, 효율성을 꼽을 수 있다.

다양한 언어 모델과 시스템을 연결할 수 있고(유연성), 필요에 따라 다양한 제공 기능들을 추가할 수 있다(확장성).

또한 반복적인 작업을 쉽게 처리하도록 도와준다(효율성).

 

단점 또한 존재한다.
아주 복잡한 애플리케이션 제작에는 연산에 따른 성능 저하가 발생할 수 있고(대규모 데이터 소스 처리, 실시간 응답 등)

매우 다양한 기능이 제공되기 때문에 처음 사용할 때는 다소 복잡하고 어렵게 느껴질 수 있다.

또한 특수 상황의 제공되지 않는 기능이 있을 수 있고 다른 프레임워크를 사용하는 것이 더 적합한 경우도 있을 수 있다.

 

 

하지만 LLM을 활용해 애플리케이션을 만들고자 한다면 이 프레임워크는 분명 큰 도움이 될 것이다.

 

 


 

 

 

이번 포스팅에서는 이렇게 LangChain이 무엇인지에 대해 알아보았다.

다음에는 LangChain을 사용하는 기본적인 방법에 대해 포스팅하고, 가능하다면 애플리케이션 제작까지 해 보고 싶다.