성장通

[글또 X Udemy] 랭체인 - LangChain 으로 LLM 기반 애플리케이션 개발하기 본문

리뷰

[글또 X Udemy] 랭체인 - LangChain 으로 LLM 기반 애플리케이션 개발하기

백악기작은펭귄 2024. 4. 26. 00:05

랭체인 - LangChain 으로 LLM 기반 애플리케이션 개발하기

 

나는 현재 카일(변성윤)님이 운영 중이신 개발자 글쓰기 커뮤니티인 '글또'에서 9기 멤버로 활동 중이다. 글또는 기술 블로그를 운영하는 데에 관심이 많은 개발자와 여러 IT 관련 직군들이 모여있는 커뮤니티로, 약 5개월간 2주에 한 번 이상 퀄리티 있는 글을 쓰고 이를 서로 공유하는 커뮤니티이다.

 

* 글또(개발자 글쓰기 모임) 소개

 

글또(개발자 글쓰기 모임) 소개 | 글또 Document

글또 소개

geultto.github.io

 

이번 기수에는 유명한 온라인 교육 플랫폼 Udemy에서 글또 멤버들에게 1개 내지는 2개의 강의를 후원해주었고, 나는 당시 LLM 기반 서비스를 만들어보고자 했었기에 '랭체인 - LangChain 으로 LLM 기반 애플리케이션 개발하기'라는 강의를 신청했었다.

 

이 글은 해당 강의를 듣고 적은 솔직한 후기이다.


강의 소개

강의 제목이 직관적이라서 무슨 강의인지는 대충 알고 있을 것이라 생각한다. 이 강의는 구글 클라우드에서 Customer engineer로 근무 중인 Eden Marco가 LLM을 위한 통합 개발 프레임워크인 'LangChain'을 이용해 LLM 기반 서비스를 개발하는 강의이다. 이 강의에서는 링크드인과 X(구 트위터)의 데이터를 바탕으로 해당 인물에 대한 아이스 브레이킹용 정보를 만들 수 있는 웹서비스, Medium을 분석하는 Analyzer와 PDF 챗봇 등을 만들어보며 랭체인을 활용해 볼 수 있다.

강의에서 만들게 되는 프로필 아이스 브레이커

 

사실상 이 강의는 초급자를 대상으로 하는 입문용 어플리케이션 강의이다. 따라서 깊이 있는 어떤 이론을 배우거나 고급 개발 테크닉을 기대하기는 어렵다. 하지만 랭체인의 핵심 기능들을 직접 사용해보면서 흥미로운 서비스를 개발해본다는 점에서 꽤나 매력적인 강의라고 생각된다. 

 

랭체인이란?

랭체인(LangChain)은 언어 모델 기반의 애플리케이션을 개발하는 추상화된 고급 프레임워크이다. 랭체인의 주요 요소는 모듈식 추상화 및 추상화 구현의 모음으로 구성된다. 랭체인을 사용해 다양한 LLM에 대해 입출력 및 동작을 통일시킴으로써 LLM을 바꿔서 적용하더라도 일관적인 동작을 하도록 할 수 있다. 랭체인에서는 프롬프트 템플릿(Prompt Template), 아웃풋 파서(Output Parser) 등 다양한 기능을 제공하고 있는데, 이러한 기능들을 활용해서 자체 데이터에 기반해 응답하는 개인 비서를 만들거나, 문서나 JSON과 같은 구조화된 데이터에 대한 Q&A를 요약, 분석, 생성하는 등 다양한 어플리케이션을 쉽게 개발할 수 있다.

 

랭체인의 작동 방식

랭체인은 크게 6개의 모듈로 구성된다.

 

1. 모델 I/O

2. 데이터 연결 

3. 체인

4. 에이전트

5. 메모리

6. 콜백



모델 I/O는 언어 모델의 인터페이스로, 프롬프트를 관리하고 모델을 호출하며 모델 출력에서 정보를 추출할 수 있도록 기능을 제공한다. 앞서 언급한 프롬프트 템플릿, 아웃풋 파서 등이 여기에 해당한다.

 

데이터 연결은 애플리케이션별 데이터와의 인터페이스를 제공하며 데이터를 로드, 변환, 저장 및 쿼리하기 위한 빌딩 블록을 제공한다.

 

체인의 경우, 호출 시퀀스를 구축하여 다른 구성요소와의 연결을 지원함으로써 복잡한 어플리케이션을 설계하고 구축할 수 있도록 돕는 역할을 한다.

 

하지만 이런 체인은 시퀀스를 직접 일일히 설정해서 구축해줘야 한다는 번거로움이 있는데, 이와 달리 에이전트는 상위 지시문이 주어지면 체인이 사용할 툴을 선택할 수 있도록 함으로써 언어 모델을 추론 엔진으로 사용해 어떤 작업을 어느 순서에 따라 수행할지를 결정하게 된다.

 

대화형 시스템은 과거의 메시지에 액세스하여서 이를 대화에 반영할 수 있어야 하는데, 랭체인에서는 이를 메모리라는 기능을 통해서 체인 실행 간 애플리케이션 상태를 유지할 수 있도록 지원한다.

마지막으로 체인의 중간 단계를 기록 및 스트리밍하는 콜백은 LLM 애플리케이션의 다양한 단계에 연결할 수 있게 해준다. 이를 통해 로깅, 모니터링, 스트리밍 등의 작업을 수행할 수 있다.

 

강의에서 얻어갈 수 있는 것

이 강의를 끝까지 듣게 된다면 랭체인의 큼직큼직한 기능들을 모두 사용해보며 몇 가지 재밌는 서비스들을 만들 수 있게 될 것이다. 그냥 따라하기만 해도 뭔가 친구들에게 자랑해볼만한 서비스를 만들 수 있고, 더 나아가 본인이 직접 기획한 LLM 서비스를 만들어볼 수도 있을 것이다. 그만큼 이 강의는 기본적이지만 동시에 충실한 내용을 제공하고 있다.

 

추가로, 랭체인의 경우 아직 불안정한 프레임워크이며 빠른 속도로 업데이트가 되고 있기 때문에 간혹 에러가 발생하는 경우가 있는데, 이 강의는 그에 맞춰 계속 업데이트가 된다고 하니 랭체인 기반 서비스를 만들어보고 싶다면 든든한 국밥처럼 하나 장만해두는 것도 좋아보인다.