Spaces:
Running
Running
File size: 4,135 Bytes
526927a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# 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 ์๋ฒ ๋ฐฐํฌ"์ ์ง์คํด์ฃผ์ธ์. |