LlamaIndex
-
[논문리뷰] RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval(2024)카테고리 없음 2024. 4. 17. 22:51
1. 요약- 기존의 검색 증강 LM 방식은 연속된 짧은 청크만 검색하므로 전체 문서 컨텍스트에 대한 이해가 부족- 청크를 재귀적으로 클러스터링, 요약하여 다양한 추상화 수준의 노드 트리를 구축- RAPTOR는 노드 트리에서 정보를 검색하여 긴 문서의 정보 파악에 유리- RAPTOR는 여러 Task에서 기존의 검색 증강 LM 보다 우수하며, QuALITY 벤치마크의 최고 성능을 20% 향상 2. 도입- LLM을 도메인 질의응답에 활용하기 위해 텍스트를 청크(단락)로 분할 후 색인화 함- 이러한 방식은 짧은 몇 개의 청크만을 검색하기 때문에 전체 맥락의 구조를 이해하는데 한계가 있음. 예를들어 "신데렐라는 어떻게 해피 엔딩에 도달했나요?" 라는 질문에 답하기 어려움- RAPTOR는 트리 구조를 사용하..
-
[논문리뷰] Adaptive-RAG: Learning to Adapt Retrieval-AugmentedLarge Language Models through Question Complexity카테고리 없음 2024. 4. 12. 23:21
1. 요약 - 외부 지식을 LLM에 통합하는 RAG는 다양한 Task에서 활용됨 - 그러나 복잡한 쿼리를 적절히 처리 못하거나, 단순한 쿼리 처리에 불필요한 계산량을 소비하는 문제 발생 - 쿼리의 복잡도에 따라 가장 적합한 전략을 동적으로 선택할 수 있는 적응형 QA 프레임워크 Adaptive-RAG를 제안 - Adaptive-RAG는 쿼리 처리 전에 분류 모델을 통해 쿼리의 복잡도 수준을 판별 - 판별된 쿼리 복잡도에 따라 비 검색, 단일 단계 검색, 복잡한 처리 등을 수행 2. 도입 - 매개변수화된 지식에만 의존하는 LLM의 한계를 개선하기 위해 검색 증강 LLM이 많이 사용됨 - 검색 증강 LLM은 사용자 쿼리, 특히 복잡도가 높은 쿼리에 대해 답을 제공하는 Task에 많이 사용됨 - 복잡도가 높은..
-
[논문리뷰] RAFT: Adapting Language Model to Domain Specific RAG(2024)카테고리 없음 2024. 4. 10. 11:56
1. 요약 - LLM의 Domain Adoptation을 위해 RAG 또는 Fine-tunining을 사용하는 것이 일반적임 - 그러나 RAG와 Fine-tunining을 Domain에 최적화 하기 위한 일반화된 방법이 없음 - "Open-Book" 환경에서 Domain Specific한 질문에 답하는 능력을 향상시키는 RAFT(Retrieval Aware Fine-tuning)를 제안 - RAFT는 질문과 검색된 문서가 주어졌을때 도움이 되지 않는 문서를 무시하고, 관련성 높은 문서를 잘 참고하도록 모델을 훈련 - 또한 COT(Chain of Thought)를 적용하여 모델의 추론 능력을 향상 - PubMed, HotpotQA 및 Gorilla 데이터 세트에서 평가 결과, 우수한 성능을 나타냄 2. 도..
-
[논문리뷰] Retrieval Augmented Generation for Knowledge Intensive NLP Tasks(2020)카테고리 없음 2024. 3. 27. 13:33
# 요약 Large pre-trained model은 사실적 지식을 매개변수에 저장하고, 다운스트림 NLP 작업에서 미세 조정할 때 SOTA의 성능을 냄. 그러나 지식에 접근하고 정확하게 다루는데는 여전히 한계가 있음. 또한 결과에 대한 출처를 제공하고 지식을 업데이트하는 것도 한계가 있음. 본 논문에서는 Language model의 parametric memory에 non-parametric memory를 결합한 RAG(Retrival-augmented generation)을 제안함. Parametric memory는 pre-trained seq2seq 모델을 사용하고, non-parametric memory로 pre-trained neural retriever로 위키피디아의 dense vector를 ..
-
[LlamaIndex] Building RAG Applications for Production카테고리 없음 2024. 2. 6. 22:45
RAG 애플리케이션의 프로토타입을 만드는 것은 쉽지만 성능이 뛰어나고 강력하며 대규모 지식 자료로 확장 가능하도록 만드는 것은 어렵습니다. 이 가이드에는 RAG 파이프라인의 성능을 향상시키기 위한 다양한 팁과 요령이 포함되어 있습니다. 먼저 몇 가지 일반적인 기술의 개요와 구현방법을 설명합니다. 가장 간단한 기술부터 가장 어려운 기술까지 있습니다. 최종 목표는 검색 및 생성 성능을 최적화하여 더 복잡한 데이터 세트에 대한 더 많은 쿼리에 환각 없이 정확하고 답변하는 것입니다. ○ 검색된 Chunk와 응답 합성에 사용되는 Chunk 분리하여 생각하기 더 나은 검색을 위한 핵심 기술은 검색에 사용되는 Chunk를 합성에 사용되는 Chunk와 분리하는 것입니다 # 문서와 관련된 청크로 연결되는 문서 요약 삽입..
-
[LlamaIndex] Advanced Retrieval Strategies카테고리 없음 2024. 2. 5. 13:04
지금까지 LlamaIndex로 RAG를 구현하는 방법들을 알아봤습니다. 이번에는 고급 RAG 구현하는 몇가지 방법을 알아보겠습니다. ○ Query Transformation 사용자 쿼리는 RAG 쿼리 엔진, 에이전트 또는 기타 파이프라인의 일부로 실행되기 전에 여러 가지 방법으로 변환 및 분해될 수 있습니다. 1. Routing: 쿼리는 유지하되, 쿼리가 적용되는 Tool을 선택합니다. 2. Query-Rewriting: 다양한 방법으로 쿼리를 다시 작성합니다. 3. Sub-Questions: 쿼리를 여러 개의 하위 질문으로 분해합니다. 4. ReAct Agent Tool Picking: 초기 쿼리가 주어지면 1) 선택할 Tool과 2) 해당 Tool에서 실행할 쿼리를 식별합니다. # Routing 이 ..
-
[LlamaIndex] Evaluating카테고리 없음 2024. 1. 30. 12:29
평가와 벤치마킹은 LLM 개발에서 중요한 개념입니다. LLM 앱(RAG, 에이전트)의 성능을 향상하려면 이를 측정할 수 있는 방법이 있어야 합니다. LlamaIndex는 생성된 결과의 품질을 측정하는 주요 모듈을 제공합니다. 또한 검색 품질을 측정하기 위한 주요 모듈도 제공합니다. ○ Response Evaluation(응답 평가) LlamaIndex는 결과의 품질을 측정하기 위해 LLM 기반 평가 모듈을 제공합니다. 이는 "골드" LLM(예: GPT-4)을 사용하여 예측된 답변이 다양한 방식으로 올바른지 여부를 결정합니다. 이러한 현재 평가 모듈 중 다수에는 실측 라벨이 필요 하지 않습니다. 쿼리, 컨텍스트, 응답의 일부 조합을 통해 평가를 수행하고 이를 LLM 호출과 결합할 수 있습니다. 평가 모듈은..
-
[LlamaIndex] Querying카테고리 없음 2024. 1. 29. 12:21
이제 데이터를 로드하고, 인덱스를 작성하고, 나중에 사용할 수 있도록 해당 인덱스를 저장했습니다. LLM 응용 프로그램의 가장 중요한 부분인 쿼리를 시작할 준비가 되었습니다. 쿼리는 간단히 말하면 LLM에 대한 프롬프트 호출입니다. 쿼리는 질문을 하고 답변을 얻을 수도 있고, 요약 요청이 될 수도 있고, 훨씬 더 복잡한 지침이 될 수도 있습니다. ○ 기본 사용법 쿼리의 기본은 QueryEngine 입니다. QueryEngine을 얻는 가장 간단한 방법은 다음과 같이 색인을 생성하여 색인을 얻는 것입니다. query_engine = index.as_query_engine() response = query_engine.query( "Write an email to the user given their bac..