본문 바로가기
NLP

Langchain

by devmin67 2024. 10. 11.

 

# Langchain이란?
보통 언어 모델이 해결할 수 있는 것은 단순한 지시만으로는 해결할 수 없는 문제를 해결하곤 합니다. 번역, 요약, 말투 변경, 작문 등이 여기에 해당합니다.

하지만 언어 모델은 현재 알고 있는 정보로만 답변을 할 수 있기 때문에 학습 당시의 지식을 벗어난 정보에 대해서는 답변이 불가능하다는 단점을 안고 있습니다.

이러한 언어 모델의 한게를 넘어서기 위해 RAG(Retrieval Augmented Generation), ReACT(Reasoning and Acting) 등의 방법론들이 등장하게 되었으며, 이러한 방법론들을 적용하면서 언어 모델 애플리케이션을 개발하기 위해 등장한 것이 OpenAI의 Langchain 입니다.

* Model I/O: 프롬프트 준비, 언어 모델 호출, 결과 수신
* Retrieval: 외부 지식을 LLM에 주입. ChatPDF, CSV 파일 기반 답변
* Memory: 과거의 대화를 장/단기로 기억. 이전 문맥을 고려한 답변.
* Chains: 여러 모듈을 통합하는 기능. 단독 사용 용도 X
* Agents: ReACT나 Function Calling 기법을 사용해 외부와 상호 작용.
* Callbacks: 다양한 이벤트 발생을 처리 가능. 단독 사용 용도 X

 

ChatOpenAI

: OpenAI사의 채팅 전용 LLM입니다. LLM 객체를 만들 때 다음의 옵션들을 적용할 수 있습니다.

 

temperature 조절하기(0~2)

- 낮으면 일관적인 답변을 수행

- 높으면 창의적인 답변을 수행(너무 높게 설정하면 이상할정도로 창의적인 답변을 한다.)

 

 

 

max_tokens조절하기

 

- 너무 낮게 설정하면 글이 충분히 생성되지 못하고 잘리게 된다.

 

 

프롬프트 템플릿

: *프롬프트 템플릿(Prompt Template)**은 대형 언어 모델에게 작업을 지시하거나 특정 정보를 요청하기 위해 사용하는 프롬프트의 구조를 사전에 정의한 것입니다. 이는 특히 LangChain 같은 프레임워크에서 사용될 때 동적 프롬프트 생성을 지원하는 중요한 도구입니다. 프롬프트 템플릿은 모델이 특정 입력에 대해 더 일관되고 효과적인 출력을 생성할 수 있도록 돕습니다.

 

 

 

LLMChain

- **LLMChain**은 **대형 언어 모델(LLM)**과 프롬프트를 연결하여, 특정 작업을 체인 형태로 수행할 수 있게 해주는 클래스입니다.

 

 

 

메모리

chatgpt와 대화할 때 채팅방을 만들어서 대화를 진행하게 됩니다. 그리고 채팅방 내에서 수행한 대화는 오랜 시간이 지나도 그 전 내용을 기억하면서 채팅이 이어지는 것 처럼 보입니다.

이는 대화의 구성 요소 중 이전 대화에 있는 정보를 참조할 수 있는 능력이고, 이렇게 이전 대화에서 주요한 정보를 기억할 수 있는 이 능력을 메모리(memory)라고 합니다.

Langchain은 시스템에 메모리를 추가하기 위한 다양한 유틸리티를 제공합니다.

'NLP' 카테고리의 다른 글

04. sequence-to-sequence  (0) 2024.10.10
03. Bag-of-words  (0) 2024.10.10
02. END-TO-END Deep learning Model(종단 간 학습 모델)  (0) 2024.10.10
01. Classical vs Deep Learning Model  (0) 2024.10.10