회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
IT 지식이 무엇보다 중요해진 요즘, 여러분은 어떻게 공부하고 있나요? 가장 먼저 눈길이 가는 건 다양한 IT 강의 영상일 겁니다. 강의를 제공하는 교육 기업들과 함께, 요즘IT에서 ‘IT 강의 시리즈’를 준비했습니다. 엄선한 교육 영상을 텍스트로 읽고 필요한 정보를 빠르게 가져가세요.
이번 강의는 ‘랭체인으로 LLM 기반 애플리케이션 설계하기’입니다. 구글 클라우드의 고객 엔지니어이자 이스라엘 라이히만 대학에서 컴퓨터 과학을 가르치는 에덴 마르코(Eden Marco) 님이 강의를 맡았습니다. 랭체인의 기본 개념부터 LLM 애플리케이션 개발에 도움을 주는 도구 정보까지, 텍스트 환경에 적합한 내용들만 간추려 소개합니다. 영어로 진행한 강의의 번역본을 기초로 글을 구성했습니다. 전체 영상은 유데미에서 확인할 수 있습니다.
안녕하세요, 에덴 마르코입니다. 오늘은 LLM 애플리케이션을 개발할 때 유용한 툴을 소개하려고 합니다.
질 좋은 프롬프트를 모아둔 랭체인 허브(LangChain Hub), 텍스트 분할 작업을 도와줄 텍스트 스플리터 플레이그라운드(Text Splitter Playground)는 LLM 애플리케이션 개발 시간을 크게 단축해 줄 아주 유용한 툴입니다. 마지막으로는 랭체인과 비슷한 역할의 프레임워크, 라마 인덱스도 가볍게 살펴볼게요. 그럼 시작하겠습니다.
가장 먼저, 아주 유용한 사이트를 알려 드릴게요. 랭체인 허브(LangChain Hub)라는 곳입니다. 단일 지점에서 프롬프트, 체인, 에이전트 등을 공유할 수 있는데요, 이런 프롬프트들이 모여 있는 리포지토리죠.
우리가 LLM으로 좋은 결과를 얻으려면 프롬프트가 고품질이어야 합니다. 고품질 프롬프트를 얻으려면, 프롬프트 엔지니어링 기술이 많이 필요하고요. 그래도 잘만 쓰면 LLM에서 더 많은 것을 얻도록 해줍니다.
여기 랭체인 허브에서는 사람들이 자주 쓰는 프롬프트 컬렉션을 볼 수 있습니다. 모두가 접근할 수 있으며, 누구나 다운로드할 수 있죠.
간단하게 구글에 랭체인 허브(langchain hub)를 검색해 접근할 수 있습니다. 참고로 이는 랭스미스(LangSmith)의 일부예요.
화면 오른쪽을 보면 우리가 살펴볼 프롬프트 리포지토리가 용도(Use Cases)별로 정렬되어 있습니다. 에이전트용인지, 자율 에이전트용인지, 분류 작업용인지, 코드 작성용인지, 엔티티 추출용인지, 자체 검사용인지, 이런 용도에 따라서요. 타입(Type)과 언어(Language)로도 필터를 걸 수 있습니다.
문서 QA(QA over document) 섹션으로 들어가 검색 증강 생성(RAG) 프롬프트를 살펴볼게요. 프롬프트들을 실제로 다운로드하는 방법도 볼 수 있죠. hub.pull 메서드를 사용하고 URL을 넣기만 하면 되네요.
페이지 오른쪽에서는 흥미롭게도 이 프롬프트의 변경에 대한 모든 커밋을 볼 수 있어요. 원할 경우에는 또 다른 커밋을 볼 수도 있죠.
또, 프롬프트를 인기 순이나 다운로드 순으로 정렬할 수도 있고, 다운로드 수, 좋아요 수, 댓글 수를 볼 수도 있어요. 이 프롬프트의 변경 여부를 보고 있는 사람의 수도 나옵니다.
상세 페이지를 하나만 더 볼까요? 아래는 에이전트 챗봇 관련 프롬프트입니다. 여기 프롬프트 템플릿을 플레이그라운드(Playground)에서 열고 변수를 넣으면, 해당 프롬프트가 어떻게 작동하는지, 무슨 결과를 얻을 수 있는지 볼 수 있어요.
새로운 프롬프트를 실험할 때 아주 직관적으로 쉽게 사용할 수 있는 툴이에요. 아시다시피 프롬프트 엔지니어링은 애플리케이션을 만들 때 아주 큰 부분을 차지하거든요. 다양한 벤더, 온도나 길이, 페널티 등 여러 변수에 대해 이 프롬프트가 어떻게 행동하는지를 볼 수 있습니다.
여러 애플리케이션에는 LLM을 외부 데이터 소스에 연결하는 작업이 포함됩니다. 미디엄 아티클이나 랭체인 공식 문서 등을 넣을 수 있겠죠. 또, 이를 바탕으로 검색 증강 생성 메서드를 사용하고 QA를 할 수도 있습니다.
하지만 이를 위한 전제 조건은 “데이터를 쉽게 이해할 수 있는 형식으로 수집해야 한다”는 것입니다. 이때는 먼저 데이터를 분할하거나 큰 파일을 더 작은 청크로 분할하는 작업이 필요합니다. 벡터 스토어에 있는 데이터를 그대로 끌어올 수는 없거든요. 청크는 작게 만들어야 툴킷 제한을 초과하지 않습니다. 토큰을 많이 확보하려면 너무 커서는 안 되죠.
이 작업은 사소해 보일 수 있고, 어쩌면 미묘해서 그냥 지나치는 경우가 많은데요. 각 청크 단위가 말이 되도록 텍스트를 분할해야 LLM도 제대로 이해할 수 있습니다. 이를테면 청크 단위를 대강 설정해 문장이 중간에 끊겨 전달된다면, LLM이 내용을 어색하게 이해할 수 있겠죠. 청크를 작게 쪼개더라도 이해는 할 수 있도록 만들어야 한다는 뜻입니다.
그래서 저 역시 데이터 분할 방법, 청크 오버랩 설정 방법에 대해 많은 질문을 받습니다. 청크 크기와 분할 방법에 관해서도요. 솔직히 말하면, 정답은 없습니다. 그저 사례에 맞게 각각 달리 다뤄야 해요.
하지만 다행히도 랭체인에서 이처럼 중요한 텍스트 분할 작업을 시각화해 주는 툴을 제작했습니다. 텍스트 스플리터 플레이그라운드라는 툴이죠.
구글에 랭체인 텍스트 분할 플레이그라운드(langchain text splitting playground)를 검색하면 상위 결과에 나올 겁니다. 깃헙 리포지토리와 스트리밍 애플리케이션이 나옵니다. 오픈 소스인 만큼 깃헙 에서는 코드를 확인할 수 있습니다. 우리가 볼 것은 애플리케이션입니다. 랭체인에서 호스팅한 이 링크를 클릭해 볼까요?
사용은 아주 직관적입니다. 첫 부분에서는 변수를 이리저리 바꿔볼 수 있죠. 청크 사이즈, 청크 오버랩을 바꿀 수 있습니다. 청크 사이즈를 계산해 보거나 텍스트 스플리터를 선택할 수도 있어요.
변수를 바꿀 때마다 모두 코드에 그대로 반영되어 나타날 겁니다. 이 코드를 작업 영역에 복사해서 붙여 넣고 실행하는 겁니다.
예시로 랭체인 블로그의 텍스트 데이터를 어떻게 청크할 수 있는지 볼게요. 모든 청크를 시각화해 보면서 말이 되는지 안 되는지 확인할 수 있죠.
이렇게 우리 애플리케이션의 청크 전략을 최적화할 수 있습니다. 실제로 어떻게 보이는지 확인하면서요. 청크 오버랩을 확인하기에도 좋은 방법이에요. 두 개의 청크 사이에 오버랩 사이즈에 따라 무엇이 오버랩되는지 볼 수 있죠. 저는 이 툴이 아주 유용하고 훌륭하다고 생각합니다.
마지막으로 랭체인과 라마 인덱스를 비교해 무엇이 더 나을지 보려고 합니다.
우선 두 프레임워크는 매우 유사합니다. LLM 애플리케이션을 개발하고 싶을 때, 랭체인과 라마 인덱스 둘 다 좋은 선택지가 될 것입니다. 모두 LLM 애플리케이션을 구축하는 데 필요한 유틸리티와 도구를 제공하죠.
인기가 많은 건 랭체인입니다. 더 많은 개발자가 랭체인을 택하죠. 라마 인덱스도 쓰긴 하지만 랭체인만큼은 아닙니다.
한편 라마 인덱스는 데이터와 검색 증강, 외부 데이터 LLM 애플리케이션 통합에 더 초점을 맞추고 있습니다. 데이터 지향적이라고 할 수 있죠.
다만 랭체인도 앞서 언급한 기능을 모두 제공합니다. 최근 랭체인의 검색 증강 지원이 훨씬 개선되며, 표현 언어의 추상화를 도입했는데요. 검색 증강 시스템을 구축할 때 많은 유연성을 제공할 것입니다.
LLM 애플리케이션은 보통 두 가지로 나뉩니다.
우선 검색 증강 생성(RAG) 애플리케이션에서는 데이터와 대화를 나누고, 외부 데이터에 연결합니다.
한편 에이전트 애플리케이션에서는 LLM의 추론 능력을 활용하여 사용할 도구를 알맞게 선택하고 호출해서 비결정론적 작업을 실행하죠.
라마 인덱스는 ReAct 알고리즘에 적합한 구현을 비롯해 에이전트 개발 역시 지원하지만, 에이전트 오퍼링은 대부분 검색을 중심으로 이뤄집니다.
랭체인은 에이전트에 맞춰 프레임워크를 많이 바꿨습니다. 이제 랭체인 표현 언어로 아주 유연하게 에이전트를 어떻게 운영할지, 어떤 도구를 선택할지 결정할 수 있죠. 해당 분야 관련 연구와 활동은 랭체인에서 훨씬 활발한 편입니다. 최신 LLM 에이전트 개발 관련 연구를 더 잘 파악하고 있는 듯합니다.
요약하자면, 두 프레임워크는 매우 유사하지만 저라면 LLM 애플리케이션 개발에는 랭체인을 선택하겠습니다.
만약 내가 만들 애플리케이션이 데이터에 초점이 맞춰져 있으며, 검색 증강과 외부 데이터 소스 활용이 많다 해도요. 랭체인이 이런 요구 사항도 해결할 수 있기 때문입니다. 에이전트 애플리케이션을 구축하려면 당연히 더 좋을 테고요. 생성형 AI 에이전트를 구축하기 위한 강력한 생태계를 갖추고 있으니까요.
지금까지 LLM 기반 애플리케이션을 개발할 때 알아 두면 좋을 법한 세 가지 툴을 소개했습니다. 개발 시에 도움을 얻을 수 있는 랭체인 허브, 텍스트 스플리터 플레이그라운드와 함께 주요 프레임워크인 라마 인덱스와 랭체인의 비교까지 해보았습니다.
랭체인에 관한 이론 중심 강의는 여기까지입니다. 최근 유행하는 LLM 기반 애플리케이션 개발에 가장 강력한 프레임워크, 랭체인을 시작할 때 작게나마 도움이 되었기를 바랍니다.
원본 영상 바로가기 https://bit.ly/udemy_langchain4
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.