본문 바로가기

study

러닝 랭체인(랭체인과 랭그래프로 구현하는 RAG, 에이전트, 인지 아키텍처)

반응형

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

이 책은 랭체인에 대해서 알려주고, 이해할수 있는 내용으로 구성합니다.

AI시대에서 다양한 새로운 기술적인 키워드들이 새롭게 나오고 있습니다.

LLM, 랭체인, RAG, 에이전트 등등 새로운 용어들이 나오고 있는데, 실제 나에게 도움이 될것인지 어떻게 활용해야 할지

그 내용을 잘 살펴보고 이해하고 접근헤야 합니다.

 

 

우선 랭체인에 대해서 검색을 해보면 아래와 같은 내용이 나옵니다.

 

그렇습니다. 우리는 지금 다양한 에이전트의 개념을 이해하고, 

랭체인은 오픈소스라는 것을 알고 있어야 합니다.

 

> 실습 예제 : https://github.com/TeeDDub/learning-langchain

 

GitHub - TeeDDub/learning-langchain

Contribute to TeeDDub/learning-langchain development by creating an account on GitHub.

github.com

 

> https://github.com/langchain-ai

 

LangChain

LangChain has 232 repositories available. Follow their code on GitHub.

github.com

 

랭체인에 대해서

· LLM과 프롬프트 구성 요소와 툴을 제공하는 오픈소스 라이브러리로, 모든 요소를 신뢰성 있게 결합해 더 큰 애플리케이션을 만들수 있도록 지원합니다. ML 배경 지식이 없는 소프트웨어 엔지니어도 랭체인을 사용해 AI챗봇 부터 책임감 있게 추론하고 행동하는 AI에이전트까지 지 다양한 애플리케이션을 구축할수 있습니다.

랭체인이 없이도 LLM애플리케이션을 구축할수 있지만, 랭체인을 이용하면 사전 구현한 공통 패턴, 상호 교환 가능한 구성 요소를 사용할수 있습니다. 

랭체인에 대한 기본 LLM 사용법이 설명되어 있습니다.

이 책은 모든 코드 예시는 아래 구성 요소로 활용됩니다.

 - LLM/채팅모델 : 오픈AI

 - 임베딩 : 오픈AI

 - 벡터 저장소 : PGVector

예제 코드는 python, javascript를 활용한 코드 예시를 제공합니다.

 

국내에서 랭체인에 대한 정보를 공유하고 한글화에 많은 도움을 주시는 테디노트 님의 내용을 잘 살펴보시는 것도 도움이 많이 됩니다.

https://github.com/teddylee777/langchain-kr

 

GitHub - teddylee777/langchain-kr: LangChain 공식 Document, Cookbook, 그 밖의 실용 예제를 바탕으로 작성한 한

LangChain 공식 Document, Cookbook, 그 밖의 실용 예제를 바탕으로 작성한 한국어 튜토리얼입니다. 본 튜토리얼을 통해 LangChain을 더 쉽고 효과적으로 사용하는 방법을 배울 수 있습니다. - teddylee777/langch

github.com

 

· 실습 환경은 아래와 같이 pip를 통한 파이션 환경, npm을 통한 js환경을 구성 지원 합니다.

 

· 공통적으로 사용하기 위한 인터페이스

 - Runnable인터페이스

  invoke, batch, stream을 이용해서 재시도, 폴백, 스키마, 런타임을 구성할수 있습니다.

 

RAG를 사용하기

랭체인을 사용하면서, RAG사용은 반드시 필요한 개념이고, 사용해야 하는 부분입니다.

 

문서에서 텍스트를 추출하고, 의미있는 청크로 분할한 후, 이를 임베딩으로 변환해 벡터 저장소에 저장하는 전체 과정을 랭체인의 다양한 도구로 구현합니다.

- 비공개 데이터, 현재 정보에 대해서 정보가 반영되는것이 필요합니다.

 

> RAG 1단계 : 데이터 인덱싱

 임베딩에 대한 개념을 살펴봅니다. 문서/텍스트 변환

 벡터저장소에 임베딩 저장을 위해서 PostgreSQL의 PGVector를 이용합니다.

 docker를 이용해서 환경구성을 진행합니다.

 

> RAG 2단계 : 데이터 기반 대화

 검색과 생성과정을 통해서 사용자 질의를 임베딩하고, 벡터 저장소에서 관련 문서를 찾아 프롬프트에 컨텍스트로 제공하는 방법을 설명합니다. 더 정확한 답변을 위한 쿼리 변환, 다양한 데이터 소스를 활용하기 위한 쿼리 라우팅, 자연어를 구조화된 쿼리로 전환하는 방법을 통해서 실제 운영 환경에서 사용할수 있는 실습을 진행합니다.

 

- RAG 기본 동작방식은 아래와 같습니다.

검색 및 생성이 실제 답변을 구성하기 위해서 필요합니다.

이 단계를 통해서 RAG를 구성합니다.

 

 

LangGraph를 활용한 메모리 기능

그래프를 기반으로 아키텍처로 대화 흐름을 관리하고 상태를 추적하는 방법을 소개합니다.

채팅기록의 효율적인 관리를 위한 테크닉을 실용적인 코드예시와 함께 설명합니다.

 

- 답변에 대해서 RAG를 구성한 부분에 대해서 메모리 처리하는 구성도 입니다.

 

> pip install langgragh를 통해서 설치를 합니다.

 

StateGraph를 생성해서, 상태 그래프를 구체화 합니다

추가적으로 메모리 기능을 추가해서 그래프에 랭그래프 전용 스토리지 어댑터인 체크포인트를 첨부해서 재컴파일을 수행합니다.

 

· 에이전트 아키텍처에 대해서

LLM 애플리케이션의 가장 강력한 형태는 에이전트 아키텍처 입니다.

다양한 아키텍처 패턴을 랭그래프로 구현하는 방법이 있습니다. 세가지 인지 아키텍처를 살펴보고, 코드로 구현해봅니다.

단순한 LLM호출 부터 정해진 순서대로 여러 LLM을 호출하는 체인, 그리고 LLM이 다음단계를 결정하는 라우터까지 자율성이 점점적으로 

높아지는 아키텍처를 이용해서 목적에 맞는 애플리케이션을 설계합니다.

1) LLM호출 아키텍처

2) 체인  아키텍처 : 사전에 정해진 순서에 따라 여러 차례의 LLM 호출을 활용해 확장합니다.

 - 플로우 엔지니어링이라고 불리기도 합니다.

3) 라우터 아키텍처

 - 체인 아키텍처는 정한 정적인 단계를 실행하는 반면, 라우터 아키텍처는 LLM이 미리 정의된 몇몇 단계 중 하나를 선택한다.

 

· 에이전트 LLM 애플리케이션에서는 2가지 이상의 행동 중에 선택을 해야 합니다

 - 계획-> 실행 반복의 과정을 수행합니다.

 - 책에서는 랭그래프 에이전트 구축에 DuckDuckGo를 이용합니다.

   > pip install duckduckgo-search

 

AI 애플리케이션 배포

· 배포 환경

 - 벡터 저장소 : 슈퍼베이스

 - 모니터링 및 디버깅 : 랭스미스

 

README.md파일 구성을 통해서 종속성을 구성합니다.

 

· 부록으로 구성된 엔트로픽을 이용해서 MCP서버의 구축과 활용 방안에 대해서 있는 부분은

원서에는 없는 부분으로 매우 좋았습니다. 2024년 11월에 MCP연동 프로토콜이 오픈소스로 제공되어서

https://www.anthropic.com/news/model-context-protocol

 

Introducing the Model Context Protocol

The Model Context Protocol (MCP) is an open standard for connecting AI assistants to the systems where data lives, including content repositories, business tools, and development environments. Its aim is to help frontier models produce better, more relevan

www.anthropic.com

현재 많이 활성화 되어 있는 부분을 소개하고 실습할수 있어서 좋았습니다.

 

 

 

 

 

반응형

'study' 카테고리의 다른 글

혼공알코 6주차  (0) 2024.07.06
혼공알코 5주차  (0) 2024.07.06
혼공알코 4주차  (0) 2024.07.06
혼공알코 3주차  (0) 2024.07.06
혼공알코 2주차  (0) 2024.07.06