요약
대규모 언어 모델(LLM)을 활용한 챗봇은 높은 잠재력을 가지고 있지만, 정보 부족과 환각 문제로 인해 제한된 답변 능력을 보이는 문제점이 존재합니다. RAG 모델과 같은 텍스트 생 성 작업을 수행하는 모델은 주어진 소스 데이터로부터 정보를 검색하고 해당 정보를 활용하 여 원하는 텍스트를 생성하는 과정을 통해 이러한 문제를 해결할 수 있습니다.
기술적 접근
1. 검색 가능한 청크 생성: 소스 데이터를 작은 단위인 청크로 분할하여 정보 검색의 기본 단위로 활용합니다. 이는 문장 또는 문단과 같은 텍스트 조각을 의미합니다.
2. 임베딩: 텍스트를 벡터 형태로 변환하는 과정을 통해, 텍스트 데이터를 수치화된 벡터로 전환합니다.
3. 벡터 데이터베이스 구축: 벡터 공간에서 각 청크의 위치를 나타내며, 검색 및 유사성 계 산을 효율적으로 수행할 수 있는 데이터베이스를 구축합니다.
4. 시멘틱 검색과 QA: 키워드 매칭이 아닌 문장의 의미에 초점을 둔 검색을 통해, 사용자 질의의 문맥을 이해하고 의미에 맞는 문서를 찾아내는 기술을 활용합니다.
5. LangChain 프레임워크: LLM 프롬프트의 실행과 외부 소스의 실행을 결합하여 다양한 작 업을 수행할 수 있도록 지원합니다.
RAG 기반 구현 절차
1. 소스 데이터 수집 및 추출: 정형 및 비정형 데이터를 수집하고 처리합니다.
2. 청크 단계: 소스 데이터를 작은 텍스트 조각으로 분할합니다.
3. 임베딩 단계: 청크 단위 텍스트 데이터를 벡터로 변환합니다.
4. 벡터 데이터베이스 구축 단계: 임베딩과 문서를 벡터 저장소에 저장하고, 문서를 인덱싱 합니다.
5. 질문과 검색 결과 통합 단계: 사용자의 질문에 대한 검색을 수행하고, 관련 정보를 통합 합니다.
6. 답변 생성 단계: LLM을 사용하여 검색된 문서를 바탕으로 답변을 생성합니다.
중요 고려 사항 보안 이슈: 내부 지식을 서비스할 때 Local LLM의 사용이 중요하며, 보안 문제를 해결하기 위해 여러 개의 Local LLM을 구성하는 것이 효과적입니다
출처 : LLM 애플리케이션 아키텍처를 활용한 생성형 AI 서비스 구현: RAG모델과 LangChain 프레임워크 기반(정천수 저자)
'개발자 > 프롬프트 엔지니어링' 카테고리의 다른 글
프롬프트 엔지니어링(5) - 좋은 프롬프트 만들기 (0) | 2024.02.19 |
---|---|
프롬프트 엔지니어링(4) - 프롬프트 디자인(구성요소와 예시를 기준으로) (0) | 2024.02.05 |
프롬프트 엔지니어링(3) - 검색엔진의 진화 Vector Search (0) | 2024.02.01 |
프롬프트 엔지니어링(2) - 개요 (0) | 2024.02.01 |
프롬프트 엔지니어링의 기초 (1) Rule-Base AI , Machine Learning (0) | 2024.01.31 |