본문 바로가기
인공지능과정 이론 수업

Day 19 생성형AI III / LLM, ChatGPT, RAG, Langchain, LlamaIndex

by eun5098 2024. 7. 29.
728x90
<목차>
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 시스템 제안

- 쿼리 복잡도에 따라 효율성과 정확성 균형 있게 향상

 

그외에 새로운 연구/논문들이 계속 나오는 중···