전체 글
-
[논문리뷰] 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. 도..
-
[논문리뷰] Corrective Retrieval Augmented Generation(CRAG, 2024)카테고리 없음 2024. 4. 4. 12:23
1. 요약 - 검색 증강 생성(RAG)은 LLM의 할루시네이션을 보완할 수 있지만 검색된 문서에 크게 의존 - RAG의 답변 품질을 개선하기 위해 수정 검색 증강 생성(CRAG)을 제안 - Retrieval evaluator를 통해 쿼리에 대해 검색된 문서의 전반적인 품질을 평가 - 검색된 문서의 정보가 불충분한 경우, 대규모 웹 검색을 통해 검색 결과를 보강 - 검색된 문서가 핵심 정보에 선택적으로 집중하고 관련 없는 정보를 걸러낼 수 있도록 분해 후 재구성 - CRAG는 플러그 앤 플레이 방식으로 다양한 RAG에 쉽게 결합 가능 - 다양한 데이터 세트에 대한 실험 결과, CRAG가 기존 RAG 대비 성능이 우수함 2. 인트로 - 검색 증강 생성(RAG)은 LLM의 할루시네이션을 보완할 수 있지만 검색..
-
[논문리뷰] 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 이 ..
-
[논문리뷰] LLaMA: Open and Efficient Foundation Language Models(2023)카테고리 없음 2024. 2. 1. 22:25
# 요약 7B에서 65B 매개변수를 포함하는 LM인 LLaMA를 제안. 공개적으로 사용 가능한 데이터셋만을 활용하고, 초 대규모로 모델 사이즈를 키우지 않고도 좋은 성능을 낼 수 있음을 입증함. # 서론 - 최근의 연구는 LM의 크기와 성능이 선형적 관계라는 가정으로 LM의 크기를 키우는 방향으로 연구되고 있음 - 그러나 Hoffmann 등(2022)의 최근 연구에 따르면, 주어진 컴퓨팅 리소스 내에서 최고의 성능은 가장 큰 모델이 아니라 더 많은 데이터로 훈련된 더 작은 모델임 - 모델의 추론과 서빙을 고려할때 우리는 적정한 크기의 성능 좋은 LM이 필요함 - 본 논문에서는 더 많은 토큰을 학습시켜 최고의 성능을 달성하는 적정한 크기의 LM을 추구함 - 이렇게 생성된 LLaMa는 7B ~ 65B 파라미..
-
[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..