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 ์„œ๋ฒ„ ๋ฐฐํฌ"์— ์ง‘์ค‘ํ•ด์ฃผ์„ธ์š”.