# ๐Ÿ“Š AutoRAG Evaluation AutoRAG Evaluation์€ RAG(Relevance-Augmented Generation) ํŒŒ์ดํ”„๋ผ์ธ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๋ถ€ํ„ฐ RAG ํ‰๊ฐ€ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ ํ™œ์šฉ๊นŒ์ง€์˜ ์ „์ฒด ๊ณผ์ •์— ๋Œ€ํ•œ ์•ˆ๋‚ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. --- ## **๐Ÿš€ 1. ํ™˜๊ฒฝ ์„ค์ •** ### **1๏ธโƒฃ `.env` ํŒŒ์ผ ์„ค์ •** `.env.sample` ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์—ฌ `.env` ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ### **2๏ธโƒฃ Docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ** ```bash docker build -t autorag-base . ``` ### **3๏ธโƒฃ Docker Compose ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰** ```bash docker compose up -d ``` ### **4๏ธโƒฃ ์‹คํ–‰ ๋ชจ๋“œ (Docker)** AutoRAG Evaluation์€ ์‹คํ–‰ ๋ชจ๋“œ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. Docker ์‹คํ–‰ ์‹œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•˜์„ธ์š”. ```bash docker run autorag-base ``` | ์‹คํ–‰ ๋ชจ๋“œ | ์„ค๋ช… | | ---------- | -------------------------------- | | `data-gen` | ๋ฐ์ดํ„ฐ ์ƒ์„ฑ (`making.sh` ์‹คํ–‰) | | `evaluate` | RAG ํ‰๊ฐ€ (`main.py` ์‹คํ–‰) | | `bash` | ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์ ‘๊ทผ (`/bin/bash`) | ์˜ˆ์‹œ: ```bash docker run autorag-base data-gen docker run autorag-base evaluate docker run autorag-base bash ``` --- ## **๐Ÿ“‚ 2. ๋ฐ์ดํ„ฐ ์ƒ์„ฑ** RAG ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด **QA ๋ฐ์ดํ„ฐ ์„ธํŠธ**์™€ **์ฝ”ํผ์Šค ๋ฐ์ดํ„ฐ ์„ธํŠธ**๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ### **1๏ธโƒฃ ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ** ```bash cd projects mkdir -p example_project/{raw_data,config} ``` - **`raw_data/`**: ์›๋ณธ ๋ฐ์ดํ„ฐ ์ €์žฅ (`.pdf`, `.txt` ๋“ฑ) - **`config/`**: ์„ค์ • ํŒŒ์ผ ์ €์žฅ (`parse.yaml`, `chunk.yaml` ๋“ฑ) ### **2๏ธโƒฃ ํŒŒ์‹ฑ ์„ค์ • (`parse.yaml`)** ```yaml modules: - module_type: langchain_parse parse_method: pdfminer ``` ### **3๏ธโƒฃ ์ฒญํ‚น ์„ค์ • (`chunk.yaml`)** ```yaml modules: - module_type: llama_index_chunk chunk_method: Token chunk_size: 1024 chunk_overlap: 24 add_file_name: en ``` ### **4๏ธโƒฃ QA ๋ฐ์ดํ„ฐ ์ƒ์„ฑ** ```bash bash making.sh ``` > **์ฐธ๊ณ :** `GPT-4o-mini` ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ QA ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ๋ณธ 20๊ฑด) --- ## **๐Ÿ” 3. RAG Pipeline ํ‰๊ฐ€** ### **1๏ธโƒฃ Ollama ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ** WSL(Windows Subsystem for Linux)์—์„œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ```bash docker exec -it autorag-ollama bash ollama pull phi4 ollama list ``` ### **2๏ธโƒฃ ํ‰๊ฐ€ ์‹คํ–‰** ```bash python main.py ``` ### **3๏ธโƒฃ ํ‰๊ฐ€ ๊ฒฐ๊ณผ ํ™•์ธ** ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด `benchmark_*` ๊ฒฝ๋กœ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. #### **โœ… ์ „์ฒด ํ‰๊ฐ€ ๊ฒฐ๊ณผ** ```bash cd projects/example_project/benchmark_*/summary.csv ``` #### **โœ… ์„ธ๋ถ€ ํ‰๊ฐ€ ๊ฒฐ๊ณผ** | ํ‰๊ฐ€ ํ•ญ๋ชฉ | ํŒŒ์ผ ๊ฒฝ๋กœ | | ------------------------- | --------------------------------------------------- | | **๊ฒ€์ƒ‰๊ธฐ ๋…ธ๋“œ ๋ผ์ธ ํ‰๊ฐ€** | `./retrieve_node_line/summary.csv` | | **๊ฒ€์ƒ‰ ๋…ธ๋“œ ํ‰๊ฐ€** | `./retrieve_node_line/retrieval/summary.csv` | | **๋ฆฌ๋žญ์ปค ๋…ธ๋“œ ํ‰๊ฐ€** | `./retrieve_node_line/passage_reranker/summary.csv` | | **์ƒ์„ฑ๊ธฐ ๋…ธ๋“œ ๋ผ์ธ ํ‰๊ฐ€** | `./post_retrieve_node_line/summary.csv` | | **์ƒ์„ฑ ๋…ธ๋“œ ํ‰๊ฐ€** | `./post_retrieve_node_line/generator/summary.csv` | > ๐Ÿ“Œ `./projects/example_01` ํด๋”์—๋Š” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๋ถ€ํ„ฐ ํ‰๊ฐ€๊นŒ์ง€ ์ง„ํ–‰๋œ ์˜ˆ์ œ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ---