랭체인 기초
랭체인이란
- LLM을 사용하는 어플리케이션 개발을 위한 오픈소스 프레임워크
- LLM 추상화를 통해 LLM어플리케이션 개발을 간소화해줌
- 컴퓨터를 쓴다고 작동 원리를 꼭 알아야 하는게 아니듯 언어 모델에 대한 이해가 떨어져도 언어 모델을 써서 개발을 하게 해줌
랭체인 기본 프레임워크
- 개발
- 랭체인의 오픈소스 빌딩 블록, 컴포넌트, 서드파티 통합 등을 사용하여 어플리케이션 제작
- langchain : 체인, 에이전트, 및 검색 전략
- langchain-core : 기본 추상화 및 랭체인 표현 언어
- langchain-community : 서드파티 통합(langchain-openai 등)
- 테스트
- LangSmith를 사용하여 체인을 검사, 모니터링 및 평가
- 배포
- LangGraph Cloud를 사용하여 LangGraph 애플리케이션을 API와 Assistant로 전환
- LangGraph : 그래프의 에지와 노드로 단계를 모델링. LLM으로 stateful 멀티 액터 애플리케이션을 구축(에이전트 여러개를 하나의 서비스로로)
- LangServe : 체인을 REST API 형태로 배포
랭체인 주요 기능
- 다양한 데이터 소스와의 통합
- 랭체인을 사용하면 다양한 데이터 소스와 LLM의 통합을 쉽게 할 수 있다.
- 다양한 파일(PDF, csv, txt 등등)에서 데이터를 불러와 벡터스토어로 사용 가능
- 외부 API 연동 또한 지원
- 예시
from langchain_community.utilites import RequestWrapper requests_wrapper = RequestsWrapper() response = requests_wrapper.get("https://api.just.example.empty.com/data")
- 랭체인을 사용하면 다양한 데이터 소스와 LLM의 통합을 쉽게 할 수 있다.
- 유연한 프롬프팅 및 컨텍스트 관리
- 랭체인은 프롬프팅, 컨텍스트 관리 도구 제공한다(ChatPromptTemplate).
- LLM이 사용자 질문에 대해 더욱 정확하고 맞춤형 응답을 생성하게 해준다.
- few-shot 러닝 방식을 사용하여 모델이 언제 어떻게 어떤 대답을 생성해야할 지 지정 가능
- ReAct, CoT 등의 방식을 이용하여 더욱 정교한 추론이 가능하게 할 수 있다.
- 파인튜닝 및 커스터마이징
- 랭체인을 사용하면 파인튜닝도 가능하다.
- LangSmithRunChatLoader로 채팅 세션을 불러와 convert_messages_for_finetuning로 학습용으로 전환한 후 파인튜닝 시키는 것이 가능하다.
- 참고링크
- 또한 같은 원리로 특정 산업군 혹은 분야에 대한 데이터로 파인튜닝 하는 것이 가능하다.
- 다양한 모델을 쉽게 교체하거나 조정 가능.
- 애플리케이션 요구에 맞게 수정이 가능하다.
- 랭체인을 사용하면 파인튜닝도 가능하다.
- 데이터 반응형 애플리케이션 구축.
- 랭체인으로 실시간 데이터 반영 애플리케이션 구축이 가능하다.
- websocket, kafka, rest api 연동 등을 활용해서 데이터를 불러와 이벤트 트리거를 활용해 특정 이벤트 발생 시 데이터 처리. 그 후 랭체인의 CallbackHandler로 실시간 로그 기록 및 데이터 스트리밍 처리를 통해 데이터 반응형 애플리케이션 구축이 가능하다.