Spaces:
Sleeping
Sleeping
| # Lily LLM RAG ์์คํ ๊ฐ๋ฐ - ์ ์ฑํ ์ฐฝ AI ํ๋กฌํํธ | |
| ## ๐ฏ ํ๋ก์ ํธ ๋ชฉํ | |
| PDF ๋ฌธ์์ ์ํ ๋ฌธ์ ํด์ ๋ฐ ํด๊ฒฐ์ ์ํ RAG ์์คํ ์ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค. ํ์ฌ CPU ํ๊ฒฝ์์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ๋น ๋ฅธ ๊ฒ์ฆ์ ์๋ฃํ์ผ๋ฉฐ, ๋ค์ ๋จ๊ณ๋ก GPU ์๋ฒ ๋ฐฐํฌ ๋ฐ ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ ํฅ์์ ์งํํด์ผ ํฉ๋๋ค. | |
| ## ๐ ํ์ฌ ์ํฉ | |
| ### โ ์๋ฃ๋ ์์ | |
| 1. **ํ ์คํธ ๊ธฐ๋ฐ RAG ์์คํ ๊ตฌ์ถ** | |
| - PDF ํ ์คํธ ์ง์ ์ถ์ถ (์ด๋ฏธ์ง OCR ๋์ ) | |
| - RAG ํ๋ก์ธ์ ๋จ์ํ (๋ฉํฐ๋ชจ๋ฌ ์ฒ๋ฆฌ ์ ๊ฑฐ) | |
| - LLM ์์ด๋ ์๋ํ๋ ๊ตฌ์กฐํ๋ ์๋ต | |
| 2. **ํ ์คํธ ์์คํ ๊ตฌ์ถ** | |
| - ์๋ฒ ์ฐ๊ฒฐ ๋ฐ ๋ฌธ์ ์ ๋ก๋ ํ ์คํธ | |
| - ํ ์คํธ ๊ธฐ๋ฐ RAG ์ฟผ๋ฆฌ ํ ์คํธ | |
| - ๊ตฌ์ฒด์ ์ธ ์ํ ๋ฌธ์ ์ง๋ฌธ ํ ์คํธ | |
| 3. **์ฑ๊ณผ ํ์ธ** | |
| - PDF ํ ์คํธ ์ถ์ถ ์๋ฒฝ ์๋ | |
| - ๊ฒ์ ๊ธฐ๋ฅ ์๋ฒฝ ์๋ (5๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ) | |
| - ๋น ๋ฅธ ์ฒ๋ฆฌ (์ฆ์ ์๋ต) | |
| - ์ค์ ์ํ ๋ฌธ์ ๋ด์ฉ ์ ํํ ์ถ์ถ | |
| ### ๐ง ํด๊ฒฐ๋ ๋ฌธ์ ๋ค | |
| 1. **ํ ํฐ ID ๋ฌธ์ **: ํ ์คํธ ๊ธฐ๋ฐ์ผ๋ก ํด๊ฒฐ | |
| 2. **PDF ํ ์คํธ ์ถ์ถ**: ์ค์ ๋ฌธ์ ๋ด์ฉ ์ถ์ถ ์ฑ๊ณต | |
| 3. **๋น ๋ฅธ ๊ฒ์ฆ**: ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ์ฑ๊ณต | |
| 4. **๊ตฌ์กฐํ๋ ์๋ต**: ๋ฌธ์ ๋ถ์๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ ํฌํจ | |
| ## ๐ ์ฃผ์ ํ์ผ ๊ตฌ์กฐ | |
| ### Core ํ์ผ๋ค | |
| - `lily_llm_core/document_processor.py`: PDF ํ ์คํธ ์ถ์ถ ๊ฐ์ | |
| - `lily_llm_core/rag_processor.py`: RAG ํ๋ก์ธ์ ๋จ์ํ | |
| - `lily_llm_api/app_v2.py`: ์๋ํฌ์ธํธ ์์ | |
| ### ํ ์คํธ ํ์ผ๋ค | |
| - `test_simple_rag.py`: ๊ธฐ๋ณธ ์ฐ๊ฒฐ ํ ์คํธ | |
| - `test_text_only_rag.py`: ํ ์คํธ ๊ธฐ๋ฐ RAG ํ ์คํธ | |
| - `test_specific_questions.py`: ๊ตฌ์ฒด์ ์ง๋ฌธ ํ ์คํธ | |
| - `test_llm_rag.py`: LLM ํฌํจ ํ ์คํธ | |
| ## ๐ ๋ค์ ๋จ๊ณ ์์ฒญ์ฌํญ | |
| ### 1. GPU ์๋ฒ ๋ฐฐํฌ ์ค๋น | |
| - ํ์ฌ CPU ํ๊ฒฝ์์ ํ ์คํธ ์๋ฃ | |
| - GPU ํ๊ฒฝ์์์ ์ฑ๋ฅ ์ต์ ํ | |
| - ์๋ฒ ๋ฐฐํฌ ์๋ํ ์คํฌ๋ฆฝํธ ์์ฑ | |
| ### 2. LLM ํตํฉ ๊ฐ์ | |
| - Kanana ๋ชจ๋ธ์ ํ ํฐ ๋์ฝ๋ฉ ๋ฌธ์ ํด๊ฒฐ | |
| - ์ค์ ์ํ ๋ฌธ์ ํ์ด ๋ฅ๋ ฅ ํฅ์ | |
| - ๋ ์ ํํ ๋ต๋ณ ์์ฑ | |
| ### 3. ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ ํฅ์ | |
| - ์ํ ๋ฌธ์ ํ์ด ๋ก์ง ๊ฐ์ | |
| - ๋จ๊ณ๋ณ ํด๊ฒฐ ๊ณผ์ ์ ์ | |
| - ์ ๋ต๊ณผ ํด์ค ์ ๊ณต | |
| ### 4. ์ฑ๋ฅ ์ต์ ํ | |
| - ๋ ํฐ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ | |
| - ์๋ต ์๋ ๊ฐ์ | |
| - ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ต์ ํ | |
| ## ๐ก ๊ธฐ์ ์ ์๊ตฌ์ฌํญ | |
| ### ํ์ฌ ํ๊ฒฝ | |
| - **OS**: Windows 10 | |
| - **Python**: ๊ฐ์ํ๊ฒฝ (lily_llm_env) | |
| - **์๋ฒ**: FastAPI (ํฌํธ 8001) | |
| - **๋ชจ๋ธ**: Kanana-1.5-v-3b-instruct | |
| - **๋ฒกํฐ ์คํ ์ด**: FAISS | |
| ### ๋ชฉํ ํ๊ฒฝ | |
| - **GPU ์๋ฒ**: ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋ | |
| - **ํ์ฅ์ฑ**: ๋ ํฐ ๋ฌธ์ ์ฒ๋ฆฌ | |
| - **์ ํ์ฑ**: ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ | |
| ## ๐ ํ์ฌ ํ ์คํธ ๊ฒฐ๊ณผ | |
| ### ์ฑ๊ณตํ ๊ธฐ๋ฅ๋ค | |
| - โ **PDF ํ ์คํธ ์ถ์ถ ์๋ฒฝ**: ์ค์ ์ํ ๋ฌธ์ ๋ด์ฉ ์ ํํ ์ถ์ถ | |
| - โ **๊ฒ์ ๊ธฐ๋ฅ ์๋ฒฝ**: ๊ด๋ จ ๋ฌธ์ ๋ค์ ์ ํํ ์ฐพ์๋ | |
| - โ **๋น ๋ฅธ ์ฒ๋ฆฌ**: ์ฆ์ ์๋ต (LLM ์์ด๋ ์๋) | |
| - โ **๊ตฌ์กฐํ๋ ์๋ต**: ๋ฌธ์ ๋ถ์๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ์ | |
| - โ **์ ํํ ๋ฌธ์ ๋งค์นญ**: 23๋ฒ, 24๋ฒ, 15๋ฒ ๋ฌธ์ ์ ํํ ์ฐพ์ | |
| ### ํ ์คํธ ๊ฒฐ๊ณผ | |
| - **๋ฌธ์ ์ ๋ก๋**: 12๊ฐ ์ฒญํฌ ์ฑ๊ณต | |
| - **๊ฒ์ ๊ฒฐ๊ณผ**: 5๊ฐ์ฉ ์ ํํ ๋ฐํ | |
| - **์๋ต ์๊ฐ**: ์ฆ์ (ํ ํฐ ID ๋ฌธ์ ํด๊ฒฐ๋จ) | |
| - **๋ฌธ์ ์ธ์**: ์ค์ ์ํ ๋ฌธ์ ๋ด์ฉ ์ ํํ ์ถ์ถ | |
| ## ๐ ์์ฒญ์ฌํญ | |
| ์๋ก์ด AI ์ด์์คํดํธ์๊ฒ ๋ค์ ์์ ์ ์์ฒญํฉ๋๋ค: | |
| 1. **ํ์ฌ ์ฝ๋๋ฒ ์ด์ค ๋ถ์**: ์์์ ์ธ๊ธ๋ ํ์ผ๋ค์ ๊ฒํ ํ์ฌ ํ์ฌ ์ํ ํ์ | |
| 2. **GPU ์๋ฒ ๋ฐฐํฌ ๊ณํ ์๋ฆฝ**: ํ์ฌ CPU ํ ์คํธ ์๋ฃ ์ํ์์ GPU ํ๊ฒฝ์ผ๋ก ์ ํ | |
| 3. **LLM ํตํฉ ๊ฐ์ **: ํ ํฐ ๋์ฝ๋ฉ ๋ฌธ์ ํด๊ฒฐ ๋ฐ ์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ ํฅ์ | |
| 4. **์ฑ๋ฅ ์ต์ ํ**: ๋ ํฐ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ๋ฐ ์๋ต ์๋ ๊ฐ์ | |
| 5. **์ค์ ๋ฌธ์ ํด๊ฒฐ**: ์ํ ๋ฌธ์ ํ์ด ๋ก์ง ๊ฐ์ ๋ฐ ์ ํํ ๋ต๋ณ ์์ฑ | |
| ํ์ฌ "์์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ๋น ๋ฅธ ๊ฒ์ฆ" ๋ชฉํ๋ ๋ฌ์ฑํ์ผ๋ฏ๋ก, ๋ค์ ๋จ๊ณ์ธ "์ค์ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ ํฅ์"๊ณผ "GPU ์๋ฒ ๋ฐฐํฌ"์ ์ง์คํด์ฃผ์ธ์. |