본문 바로가기
GCP

[Google Cloud AI] Devfest Cloud 2024 (3) Advanced RAG & Evaluation

by bestchoco 2024. 11. 23.

- Imbedding Factor (이게 무엇인지 머릿속에 잘 넣어둬야 한다.)
>> (WITH GPT) 모델이 데이터를 특정 차원으로 변환할 때 사용되는 벡터의 차원 수
>> (WITH GPT) 주로 머신러닝, 특히 자연어 처리(NLP)와 추천 시스템에서 사용되는 개념

**문맥을 이해 / 번역 / 요약...

- Vector

- RAG 기본 아키텍처란? 무엇일까

- Example Embeddings

- Embeddings space


LLM은 데이터베이스와 같다고 생각하신다.

안에 있는 지식과 맵핑이 되는 것이 있냐 없냐?..

>>>>>>>>>>>>>>>>
ppt 시작
- Naive RAG architecture

vector Database에 요소들을 전부 저장한 상태여야 한다. (미리 사전 준비 필요)
그 다음에 Question ! 
=> (Embedding Model을 통해) Context + 기존 Question
 => LLM이 뱉어낸다.
 
(WITH GPT) 내용 보완
/*
Naive RAG 아키텍처는 정보 검색 및 자연어 처리에서 사용되는 기본적인 접근 방식입니다. 이 아키텍처의 작동 방식은 다음과 같습니다:

벡터 데이터베이스 준비: 먼저, 관련 요소들이 벡터 데이터베이스에 저장되어 있어야 합니다. 이 데이터베이스는 미리 준비된 문서, 정보 조각, 또는 기타 유용한 데이터로 구성됩니다. 각 요소는 임베딩 모델을 통해 벡터 형태로 변환되어 저장되며, 이는 나중에 질문에 대한 관련 정보를 효율적으로 검색하는 데 사용됩니다.

질문 입력: 사용자가 질문을 입력하면, 이 질문은 임베딩 모델을 통해 벡터로 변환됩니다. 이 과정에서 질문의 의미와 관련된 정보를 추출하여 벡터 공간에서의 표현으로 변환합니다.

컨텍스트 생성: 변환된 질문 벡터와 함께, 해당 질문에 관련된 컨텍스트 정보를 검색합니다. 이 단계에서는 벡터 데이터베이스에서 질문과 가장 유사한 요소들을 찾아내어, 이를 바탕으로 적절한 컨텍스트를 생성합니다.

LLM(대형 언어 모델)의 활용: 마지막으로, 생성된 컨텍스트와 질문 벡터를 결합하여 대형 언어 모델(LLM)에 입력합니다. LLM은 이 정보를 바탕으로 답변을 생성하며, 질문에 대한 구체적이고 관련성 높은 응답을 제공합니다.

이러한 단계를 통해 Naive RAG 아키텍처는 사용자의 질문에 대한 효과적인 답변을 제공할 수 있습니다. 그러나 이 접근 방식은 벡터 데이터베이스의 품질과 임베딩 모델의 성능에 크게 의존하므로, 초기 데이터 준비 과정이 매우 중요
*/

>> 
Reranking Algorithm VS MS MARCO
/*
Reranking 알고리즘과 MS MARCO에 대해 설명하겠습니다.

Reranking 알고리즘
Reranking 알고리즘은 초기 검색 결과를 개선하기 위해 사용되는 기법입니다. 일반적으로 다음과 같은 단계로 진행됩니다:

초기 검색: 쿼리에 대해 기본 검색 시스템이 결과를 반환합니다.
피처 추출: 초기 결과에서 각 항목에 대한 다양한 피처(예: 텍스트 유사성, 메타데이터, 클릭률 등)를 추출합니다.
모델 학습: 추출된 피처를 사용하여 학습된 모델(예: 기계 학습 모델, 딥러닝 모델)을 통해 항목의 순위를 다시 매깁니다.
결과 반환: 재정렬된 결과를 사용자에게 제공합니다.
이 방법은 검색의 정확성을 높이고 사용자 경험을 개선하는 데 유용합니다.

MS MARCO
MS MARCO(Microsoft MAchine Reading COmprehension)는 대규모 데이터셋으로, 주로 자연어 처리(NLP)와 정보 검색(IR) 연구에 사용됩니다. 이 데이터셋은 다음과 같은 특성을 가집니다:

질문-응답 데이터: 사용자가 질문을 하고, 그에 대한 적절한 답변을 찾는 형식입니다.
다양한 도메인: 여러 주제에 걸쳐 다양한 질문이 포함되어 있습니다.
모델 평가: MS MARCO는 검색 알고리즘 및 모델의 성능을 비교하고 평가하는 데 널리 사용됩니다.
비교
목적: Reranking 알고리즘은 검색 결과를 개선하는 데 중점을 두고, MS MARCO는 모델 성능 평가와 훈련을 위한 데이터셋입니다.
적용 범위: Reranking은 다양한 검색 시스템에 적용될 수 있으며, MS MARCO는 주로 NLP와 정보 검색 분야에서 사용됩니다.
이 두 개념은 서로 보완적일 수 있으며, Reranking 알고리즘을 MS MARCO 데이터셋을 통해 평가하고 개선

*/
>> LLM Based reranking

>> hybrid Model

>> k1 filter, k2 filter

>> Custom Embedding Model
+) Graph Database쪽을 통해 더 데이터 갖고 옴.

>> 질문 안에 질문?

>> llm based splitter

>> lightweight TF Splitter

>> Questions안에서도 동등한 질문이 아니면 Query Graph를 이용.

>> Query Splitting ? Rephrasing?
=> Query Refining


>> Document Parser
기존: static Parser
변경: OCR Parser
변경2: Hybrid ..?

>> Chunking Strategy
유사도로 판별 (큰 문장안에 패러다임들을 구별하여 붙이다가 Embedding Model로 다시 교차 확인하여 필요없는 문맥은 빼버림.)

>> Vector Database 
- index (정확도를 희생시켜서 속도를 얻는다.) (Recall Vs Performance)
- Scann 알고리즘 좋음.