- Langchain은 chatgpt와 같은 llm 위에 ai 애플리케이션 구축을 위한 llm프레임워크
- LangChain의 API는 간단하고 직관적이며 이해하기 쉽다.
- RAG는 검색과 AI 기술을 결합하여 생성된 응답의 품질과 관련성을 향상시킨다.
- RAG는 질문 답변 시스템을 만들기 위해 chatGPT와 같은 검색 및 언어 모델을 통합하는 것이다.
우리가 데이터 소스를 기반으로 사용자 질문에 답할 수 있는 AI 시스템 프로세스를 4단계로 나누어 볼 수 있다.
1단계: load
우리가 가지고 있는 JSON이나 데이터를 로드. LangChain은 HTML, PDF, 코드 등 다양한 유형의 문서에 대해 100개 이상의 문서 로더를 제공한다.
2단계: split(분할)
문서를 로드한 후에는 문서를 더 작은 부분으로 분할하거나 청크해야 할 수도 있다. 이는 대용량 문서에 특히 유용함. LangChain은 또한 코드나 마크다운과 같은 특정 문서 유형에 최적화된 문서 분할을 위한 다양한 알고리즘을 제공한다.
3단계: store(저장)
분할 후 문서의 관련 부분은 벡터 DB에 저장된다. 벡터 스토어는 텍스트의 의미론적 의미를 포착하는 텍스트 임베딩을 효율적으로 저장하고 검색하는 데이터베이스. LangChain은 50개 이상의 벡터 저장소를 지원하므로 사용자는 자신의 필요에 가장 적합한 것을 선택할 수 있다. 이러한 벡터 저장소는 기본 기술, 확장성, 성능 및 기능 측면에서 다르다. 일부는 중소 규모 데이터 세트에 최적화되어 있고 다른 일부는 대규모 애플리케이션용으로 설계되었다. 벡터 저장소 선택은 데이터세트 크기, 원하는 검색 성능, 애플리케이션의 특정 요구 사항 등의 요소에 따라 달라진다.
4단계: 지식 검색
이 단계에서는 관련 문서 검색. 단순검색, 셀프 쿼리 등. 단순 검색은 사용자의 쿼리를 문서 임베딩 한 것과 일치시켜 관련결과를 찾는것. 검색 프로세스는 메타데이터 필터를 사용하여 더욱 구체화되어 검색 결과의 범위를 좁힐 수 있다. 사용 가능한 일부 알고리즘은 다음과 같다.
- 단순 검색: 사용자의 쿼리를 문서 임베딩과 일치시켜 관련 결과를 찾는다.
- 상위 문서: 더 넓은 컨텍스트를 유지하면서 문서의 특정 섹션을 검색한다.
- 셀프 쿼리(Self Query): 정확한 결과를 위해 사용자 쿼리에서 의미 체계와 메타데이터를 분리한다.
- 앙상블: 포괄적이고 향상된 결과를 위해 여러 리트리버의 결과를 결합한다.
5단계: 응답 생성
마지막 단계에는 ChatGPT와 같은 언어 모델을 사용하여 답변을 생성하는 작업이 포함된다. 4단계에서 관련 문서가 검색되면 언어 모델이 간결하고 유익한 답변을 생성하는 컨텍스트 역할을 한다. GPT-3.5-turbo와 같은 LLM은 검색된 문서를 답변으로 추출하는 데 사용된다. 모델은 검색된 문서와 사용자의 질문을 입력으로 받아들이고 컨텍스트와 질문에 대한 이해를 바탕으로 응답을 생성한다. 생성된 답변은 사용자의 쿼리에 대해 포괄적이고 유익한 응답을 제공하는 것을 목표로 한다.
'Prompt Engineering' 카테고리의 다른 글
자연어 처리 (NLP: Natural Language Processing) (31) | 2024.01.09 |
---|---|
Prompt Engineering (1) | 2023.12.28 |
LLaMA Paper review: pytorch in LLaMA (1) | 2023.12.26 |