<목차>
1. Large Language Model
2. ChatGPT
3. Retrieve Augmented Generation?
4. RAG 아키텍처
5. RAG 프레임워크
6. Langchain
7. LlamaIndex
8. RAG의 최신 동향
1. Large Language Model
LLM?
: 대규모 텍스트 데이터 학습하여 자연어 이해, 생성 할 수 있는 인공지능 언어모델
텍스트 데이터 이해, 생성하여 다양한 자연어 처리(NLP) 작업 수행
최근 LLM -> 트랜스포머 아키텍처 이용
[LLM의 학습방법]
사전 학습 (Pre-training)
- 대규모 텍스트 코퍼스 사용하여 모델이 언어의 일반적인 패턴, 구조 학습 과정
- 모델이 언어의 기초적인 이해 습득하게 함
미세 조정 (Fine-tuning)
- 전 학습된 모델을 특정 작업에 맞게 추가 학습 과정
- 특정 작업(ex. 감정 분석, 번역 등)에서 모델의 성능 최적화
언어모델?
: 주어진 텍스트의 다음 단어 예측 모델
텍스트 데이터의 확률 분포 학습하여 다음 단어 정확하게 예측
[언어모델링 방법에 따른 종류]
1) 자가회귀 모델 (Autoregressive Model)
- 이전 단어들 기반으로 다음 단어 순차적 예측 모델
ex. GPT 시리즈 (GPT-1, GPT-2, GPT-3)
텍스트 생성, 번역, 대화형 AI 등
2) 마스크드 언어 모델 (Masked Language Model)
- 문장의 일부 단어 마스킹(masking)하고, 마스킹된 단어 예측 모델
ex. BERT (Bidirectional Encoder Representations from Transformers)
텍스트 분류, 질문 응답, 자연어 추론 등
##그렇다면, 이러한 언어 모델은 어떻게 평가할까?
1) 퍼플렉시티 (Perplexity)
- 모델이 주어진 텍스트 얼마나 잘 예측하는지 나타내는 지표
- 예측 확률의 역수의 기하평균
2) BLEU (Bilingual Evaluation Understudy)
- 생성된 텍스트와 참조 텍스트 간의 유사성 측정 지표
ex. 기계 번역, 텍스트 요약 등
2. ChatGPT
ChatGPT?
: OpenAI에서 개발한 대규모 언어 모델 GPT 시리즈 기반으로 한 대화형 인공지능
자연스러운 대화 통해 사용자의 질문에 답변, 다양한 언어 처리 작업 수행
##실무에서도 많이 쓸까?
cs: 자동화된 고객 응대, 상담원 지원
content: 마케팅 콘텐츠, 블로그 및 기사 작성
edu: 외국어 번역, 문법 교정
business: 회의록 작성, 실시간 회의 요약, 리포트 작성
computer: 코드 생성, 버그 수정
##어떠한 문제점이 있을까?
데이터 프라이버시 및 보안 문제
- 대화의 맥락 기억하는 ChatGPT
- 이전 고객의 정보 기억하는 경우
- 해당 고객의 정보를 Context상에 갖고 있어서 바로 처리 해버린 경우
비용 문제
- BM에 비해 ChatGPT 토큰이 과하게 소비되는 경우
- 어뷰징으로 인한 비용 상승
정확성 및 신뢰성 부족
- 의료 분야에서 잘못된 조언 내리는 경우
- 온라인 커머스 분야에서 다양한 상품과 매겨져있는 가격 설정 혼동하는 경우
3. Retrieve Augmented Generation?

RAG?
: 정보 검색(Retrieve)과 텍스트 생성(Generate) 결합한 하이브리드 언어 모델 아키텍처
특정 질의에 대해 외부 지식 베이스에서 관련 정보 검색 후, 해당 정보 기반으로 텍스트 생성
특히 정보가 풍부한 응답 생성하는 데 유리
4. RAG 아키텍처
[RAG의 주요 구조]
1) Retrieve 단계
- 입력 질의(query)와 관련된 문서를 외부 지식 베이스에서 검색
- 쿼리와 문서의 임베딩 생성, 임베딩 간의 유사성 계산하여 관련 문서 검색
- 임베딩 알고리즘 통해 수행 가능
2) Augmented 단계
- 검색된 문서 기반 입력 질의(query) 강화
3) Generate 단계
- 입력 질의(query) 또는 검색된 문서등 기반으로 자연스러운 텍스트 생성
ex.
질문: “컴퓨터 프로그래밍의 역사에 대해 설명해주세요.”
1. 검색 단계:
• 데이터베이스에서 ‘컴퓨터 프로그래밍’, ‘역사’와 관련된 문서 검색. 예를 들어, “앨런 튜링과 최초의 컴퓨터 프로그램”, “포트란과 프로그래밍 언어의 발전” 등의 문서가 검색될 수 있다.
2. 생성 단계:
• 검색된 문서 기반으로, 모델이 다음과 같은 답변 생성 가능
“컴퓨터 프로그래밍의 역사는 1940년대로 거슬러 올라갑니다. 앨런 튜링은 최초의 컴퓨터 프로그램을 설계했으며, 이후 포트란 같은 프로그래밍 언어가 개발되어 프로그래밍의 기초를 다졌습니다.”
| RAG 장점 | RAG 단점 |
| 1) 외부 지식 베이스 활용하여 더욱 풍부, 정확한 정보 제공 ##RAG 데이터 베이스가 그러면 따로 구축이 되어 있는건가요? 아니면 그냥 웹에서 검색하여 제공하는 건가요?## RAG 시스템에서 사용하는 데이터베이스는 특별히 구축된 대량의 정보가 저장된 데이터베이스이다. 2) 다양한 데이터 소스 결합하여 더 광범위한 지식 응답에 포함 가능 3) 단순한 생성 모델보다 더 정확하고 정보가 풍부한 응답 생성 4) 내부 LLM모델로 구성하는 경우 보안, 프라이버시 위협에서 어느정도 벗어날 수 있음 ##이게 무슨 의미죠??## = 내부 LLM을 사용한다는 것은 전체 데이터 처리 과정이 외부 서비스에 의존하지 않고, 조직의 자체 서버나 클라우드 인프라에서 이루어진다는 것 의미. 즉, 외부에 데이터 전송 필요X 내부 네트워크에서 모든 처리가 완료되므로 데이터가 외부로 전송, 유출될 위험 크게 감소 + 많은 국가 및 지역에서 데이터 보호에 관한 엄격한 법률 시행 중으로 내부 LLM 사용함으로써 이러한 규제 준수 더 수월 5) 파인튜닝보다 효율적으로 특화 도메인에 대응 가능 ##이게 무슨 의미죠??## = 파인튜닝은 기존 언어 모델을 특정 데이터셋에 맞게 조정하는 과정. 이는 많은 양의 레이블링 된 데이터와 상당한 계산 자원 요구됨. 그러나, RAG의 경우 검색을 통해 관련성 높은 정보를 동적으로 획득, 이를 기반으로 답변 생성하므로 특화 도메인에 빠르게 적응가능 및 모델의 큰 변경 없이 도메인 특화 정보를 효과적으로 활용 가능 |
1) 검색과 생성 결합하는 과정 복잡, 모델 학습 및 튜닝 어려울 가능성 존재 2) 임베딩 생성, 문서 검색, 텍스트 생성 등 모든 단계에서 높은 연산 자원 필요 3) 외부 지식 베이스의 품질과 최신성에 크게 의존 (= 외부 지식 베이스가 최신 정보를 반영하고 있지 않다면, 오래된 정보 바탕으로 답변 생성) |
[RAG 데이터베이스 특징]
1) 구조화된 데이터 저장
• RAG 데이터베이스는 보통 구조화된 형태로 정보 저장
이는 일반적으로 문서의 형태, 각 문서는 특정 주제나 내용 다룸
데이터는 텍스트 파일, 데이터베이스 레코드, 또는 JSON 형태 등으로 저장될 수 있음
2) 도메인 특화 정보
• 많은 경우, RAG 시스템은 특정 도메인에 맞춰 구축
(ex. 의학적 질문에 답변하기 위한 RAG는 의학적 내용 포함한 문서를 데이터베이스에 저장)
3) 인덱싱 및 검색 최적화
• 이 데이터베이스는 고급 검색 알고리즘 사용, 질문에 가장 관련된 문서를 빠르고 효과적으로 검색할 수 있도록 최적화됨.
인덱싱은 데이터의 검색 효율을 극대화하기 위해 중요한 역할
4) 보안 및 접근 제어
• 기업이나 조직에서 사용하는 경우, 보안이 강화된 환경에서 운영될 수 있으며, 특정 사용자나 시스템만 접근할 수 있도록 제한 가능
##그렇다면 웹에서 검색하여 정보를 제공하는 것과의 특별한 차이가 있나요?##
1) 데이터의 출처 및 품질:
• 웹 검색은 인터넷 상의 방대한 정보 중에서 검색 수행하지만, 모든 정보의 품질 검증된 것X
반면, RAG 데이터베이스는 특정 목적에 맞춰 선별된 고품질의 데이터로 구성
2) 응답 시간 및 효율성:
• 웹 검색은 다양한 웹사이트로부터 정보 가져오기 때문에 응답 시간 불규칙
반면, RAG 데이터베이스는 특정한 구조와 최적화 통해 빠르고 일관된 응답 제공
3) 정보의 신뢰도:
• RAG 시스템의 데이터베이스는 신뢰할 수 있는 출처에서 정보 수집, 필요한 경우 사람의 검토 통해 정확성 높일 수 있음
RAG 예시
-질의 응답 시스템 (Question Answering)
: 사용자가 "2022년 FIFA 월드컵 우승 팀은?"이라는 질문 입력 시, 최신 뉴스 기사나 공식 발표 자료 검색
하여 정확한 답변 제공
-헬스케어 챗봇
: 사용자가 "고혈압의 일반적인 증상은 무엇인가요?"라고 질문하면, 챗봇은 최신 의학 논문과 건강 정보 웹사이트에서 관련 정
보 검색하여 정확하고 신뢰할 수 있는 답변 제공. 이는 환자들이 더 신속하고 정확한 건강 정보 얻는 데 도움
- 학술 논문 검색
: 연구자가 "최근 딥러닝을 활용한 암 진단 연구"에 대해 검색하면, RAG 모델은 최신 학술 논문 검색하고 주요 내용 요약
제공함으로써 연구자가 필요한 정보 신속하게 파악 가능
- 법률 상담 챗봇
:사용자가 "임대 계약서 작성 시 주의사항은?"이라고 질문하면, 챗봇은 관련 법률 문서와 판례 검색하여 사용자가 주의해야
할 사항들을 요약하여 제공. 이는 초기 상담 비용 절감, 변호사들이 더 복잡한 문제에 집중 가능
5. RAG 프레임워크
[직접 구현]

1) 임베딩
- TF-IDF, 임베딩 모델
2) 정보저장 및 검색
- RDBMS, NoSQL, VectorDB, …
3) LLM
- Llama, ChatGPT, Phi, …
4) Langchain
- 대규모 언어 모델(LLM)을 활용한 복잡한 언어 처리 파이프라인 구축 위한 프레임워크
- 다양한 언어 모델과 검색 기법 결합하여 효율적이고 확장 가능한 자연어 처리(NLP)시스템 구축하는 데 중점
5) LlamaIndex
- 대규모 언어 모델 기반으로 한 검색 및 생성 작업 지원하는 프레임워크
- 프레임워크는 대규모 데이터셋 효율적으로 인덱싱, 고성능 검색 기능 제공하는 데 중점
6. Langchain
Langchain (자연어 처리를 위한 라이브러리)
: Chain of Thought 방식 사용하여 복잡한 문제 해결 도움
##Chain of Thought란?##
문제를 해결하는 과정에서 발생하는 중간 단계의 사고를 모델이 추론하여 출력하는 방법
- 검색 및 생성을 독립적인 모듈로 구현할 수 있는 구조 제공 -> 각 구성 요소 독립적으로 개발, 테스트, 배포 가능
- 다양한 데이터 소스와 검색 방법 쉽게 통합하는 기능 제공
- 데이터 처리, 변환하는 파이프라인 유연하게 구성 가능
- 사용자가 특정 요구 사항에 맞게 데이터 전처리, 검색 및 생성 단계 조정 가능
- 통합할 수 있는 환경 제공 -> 언어 모델의 학습, 평가, 배포 위한 도구와 기능 포함
[구조]
1. 데이터 소스: 외부 데이터베이스, 웹사이트, 문서 저장소 등 다양한 데이터 소스에서 정보 검색
2. 검색 모듈: TF-IDF, BM25 등의 검색 알고리즘 사용해 입력 쿼리와 관련된 문서 검색하는 기능 담당
3. 생성 모듈: 언어모델 사용해 검색된 문서 바탕으로 자연스러운 텍스트 생성하는 기능 담당
4. 파이프라인 관리: 데이터 전처리, 검색 및 생성 단계 조정하여 최종 응답 생성
ex.
Q : 100개의 사과와 2000개의 오렌지가 있다면, 모든 과일의 수는 몇 개인가?
1. 체인 오브 소트 생성:
• “사과가 100개 있습니다.”
• “오렌지가 200개 있습니다.”
• “이 두 숫자를 더하면 됩니다.”
2. 최종 답변 도출: “따라서, 모든 과일의 수는 300개입니다.”
7. LlamaIndex
LlamaIndex
: 문서나 데이터 인덱싱하여 빠르고 정확한 검색을 가능하게 해주는 시스템
- The leading data framework for building LLM applications
- 대규모 데이터셋 효율적으로 인덱싱하고 고성능 검색 기능을 제공하는 데 중점
- 다양한 검색 알고리즘과 언어 모델 쉽게 통합
- 문서와 쿼리의 임베딩 생성, 유사성 계산하여 관련 문서 검색
[구조]
1. 데이터 인덱싱: 대규모 데이터셋을 효율적으로 인덱싱하여 빠른 검색을 지원하고 그 과정에서 데이터의 구조와 내용을 분석
하여 효율적인 검색 가능
2. 쿼리 처리 및 검색: 사용자가 입력한 쿼리를 임베딩 벡터로 변환하고 인덱싱 된 문서를 임베딩 벡터로 변환한 다음 유사도 계
산
3. 텍스트 생성: 검색된 문서를 바탕으로 생성에 필요한 입력을 준비
4. 파이프라인 관리: 인덱싱, 검색, 생성을 통합하여 효율적인 작업 흐름을 관리
ex.
사용자 검색 쿼리: “기후 변화의 영향”
1. 데이터 인덱싱: 관련 문서에서 “기후 변화”, “영향” 등의 키워드 인덱싱
2. 검색 쿼리 처리: 입력된 쿼리와 일치하거나 관련된 문서들 검색됨
3. 결과 반환: “기후 변화가 생물 다양성에 미치는 영향” 등의 문서가 사용자에게 제공
Langchain VS LlamaIndex
| Langchain | LlamaIndex |
| ● 모듈화된 구성 요소: 검색 및 생성 단계 독립적으로 구현, 조합 가능 ● 확장성: 다양한 데이터 소스와 검색 방법 쉽게 통합 가능 ● 유연한 파이프라인: 데이터 처리, 변환하는 파이프라인 유연하게 구성 |
● 효율적인 인덱싱: 대규모 데이터셋 구조화된 형태로 저장하여 빠른 검색 지원 ● 강력한 검색 기능: Dense Retrieval 기법 사용하여 높은 정확도의 검색 결과 제공 ● 통합된 생성 기능: 검색된 정보 바탕으로 자연스러운 텍스트 생성 |
-> Langchain은 다양한 응용 분야에서 유연하게 활용할 수 있고, LlamaIndex는 대규모 데이터셋 기반의 고성능 검색 작업
에 적합
8. RAG의 최신 동향
SELF-RAG
- RAG 시스템의 생성 품질과 사실성 개선하기 위해 SELF-RAG 프레임워크 제안
- 필요할 때마다 검색, 생성한 내용 자체 반성하여 평가하는 reflection 토큰 사용
- reflection 토큰 통해 검색 빈도 조정하고 사용자 선호도에 맞게 모델 행동 학습
##여기서 말하는 relection token은 뭔가요?##
문서 검색 과정에서 모델이 이전에 생성된 답변 또는 중간 단계의 출력 참고하여 새로운 정보 검색할 때 사용하는 토큰
Reflection 토큰의 작동 원리
1. 모델의 초기 응답 생성:
• SELF-RAG 모델은 사용자의 질문에 대해 초기 답변 생성
이때, 생성된 내용은 후속 검색과정에서의 컨텍스트로 활용됨
2. 반영(Reflection) 과정:
• 모델은 초기에 생성된 응답 반영하는 토큰 사용, 그 내용을 기반으로 추가적인 문서 검색 수행 -> 모델이 자신의 이전 응답 고려하여 보다 관련성 높은 정보 검색하도록 도움
3. 최종 응답 생성:
• 검색된 추가 정보 바탕으로 최종 답변 수정하거나 보완하여 생성
이 과정에서 reflection 토큰은 정보의 일관성과 정확성을 높이는 데 중요한 역할
ex.
질문: “마르스의 온도는 얼마인가요?”
1. 초기 응답 생성:
• 모델이 초기 답변으로 “마르스의 평균 온도는 약 -60도 섭씨입니다.“라고 생성했다고 가정
2. 반영 과정:
• 모델은 이 초기 답변 반영하는 토큰 사용하여 추가적인 정보, 예를 들어 “마르스의 극지방 온도”나 “마르스의 최고 및 최저 온도”에 대해 검색
3. 최종 응답 생성:
• 검색 결과 통해 모델은 추가 정보 통합하여 최종 답변 생성
예를 들어 “마르스의 평균 온도는 약 -60도 섭씨이지만, 극지방은 -125도까지 내려갈 수 있고, 여름에는 최고 20도까지 올라갈 수 있습니다.”
Adaptive RAG
- 쿼리 복잡도에 따라 가장 적절한 전략 동적으로 선택하는 Adaptive-RAG 프레임워크 개발
- 다양한 복잡도의 쿼리 처리하기 위해 적응형 RAG 시스템 제안
- 쿼리 복잡도에 따라 효율성과 정확성 균형 있게 향상
그외에 새로운 연구/논문들이 계속 나오는 중···
'인공지능과정 이론 수업' 카테고리의 다른 글
| Kakao AI Platform(KAP)? (0) | 2024.08.10 |
|---|---|
| Day20 생성형AI IV /Llama, Finetuning, Distillation, Quantization, LoRA and QLoRA, Serving (0) | 2024.07.30 |
| Day18_생성형AI 프롬프트 엔지니어링 (0) | 2024.07.26 |
| Day17_생성형AI I (+Attention is All You Need) (2) | 2024.07.25 |
| 생성형 AI Day16_딥러닝 IV / PyTorch, Seq2Seq, autoencoder, GAN, 모델 최적화 (2) | 2024.07.24 |