Spaces:
Sleeping
Sleeping
Lily LLM RAG μμ€ν κ°λ° - μ μ±ν μ°½ AI ν둬ννΈ
π― νλ‘μ νΈ λͺ©ν
PDF λ¬Έμμ μν λ¬Έμ ν΄μ λ° ν΄κ²°μ μν RAG μμ€ν μ ꡬμΆνκ³ μμ΅λλ€. νμ¬ CPU νκ²½μμ μμ ν μ€νΈ λ°μ΄ν°λ‘ λΉ λ₯Έ κ²μ¦μ μλ£νμΌλ©°, λ€μ λ¨κ³λ‘ GPU μλ² λ°°ν¬ λ° μ€μ λ¬Έμ ν΄κ²° λ₯λ ₯ ν₯μμ μ§νν΄μΌ ν©λλ€.
π νμ¬ μν©
β μλ£λ μμ
ν μ€νΈ κΈ°λ° RAG μμ€ν ꡬμΆ
- PDF ν μ€νΈ μ§μ μΆμΆ (μ΄λ―Έμ§ OCR λμ )
- RAG νλ‘μΈμ λ¨μν (λ©ν°λͺ¨λ¬ μ²λ¦¬ μ κ±°)
- LLM μμ΄λ μλνλ ꡬ쑰νλ μλ΅
ν μ€νΈ μμ€ν ꡬμΆ
- μλ² μ°κ²° λ° λ¬Έμ μ λ‘λ ν μ€νΈ
- ν μ€νΈ κΈ°λ° RAG 쿼리 ν μ€νΈ
- ꡬ체μ μΈ μν λ¬Έμ μ§λ¬Έ ν μ€νΈ
μ±κ³Ό νμΈ
- PDF ν μ€νΈ μΆμΆ μλ²½ μλ
- κ²μ κΈ°λ₯ μλ²½ μλ (5κ° κ²μ κ²°κ³Ό)
- λΉ λ₯Έ μ²λ¦¬ (μ¦μ μλ΅)
- μ€μ μν λ¬Έμ λ΄μ© μ νν μΆμΆ
π§ ν΄κ²°λ λ¬Έμ λ€
- ν ν° ID λ¬Έμ : ν μ€νΈ κΈ°λ°μΌλ‘ ν΄κ²°
- PDF ν μ€νΈ μΆμΆ: μ€μ λ¬Έμ λ΄μ© μΆμΆ μ±κ³΅
- λΉ λ₯Έ κ²μ¦: μμ ν μ€νΈ λ°μ΄ν°λ‘ μ±κ³΅
- ꡬ쑰νλ μλ΅: λ¬Έμ λΆμκ³Ό ν΄κ²° λ°©λ² ν¬ν¨
π μ£Όμ νμΌ κ΅¬μ‘°
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 μ΄μμ€ν΄νΈμκ² λ€μ μμ μ μμ²ν©λλ€:
- νμ¬ μ½λλ² μ΄μ€ λΆμ: μμμ μΈκΈλ νμΌλ€μ κ²ν νμ¬ νμ¬ μν νμ
- GPU μλ² λ°°ν¬ κ³ν μ립: νμ¬ CPU ν μ€νΈ μλ£ μνμμ GPU νκ²½μΌλ‘ μ ν
- LLM ν΅ν© κ°μ : ν ν° λμ½λ© λ¬Έμ ν΄κ²° λ° μ€μ λ¬Έμ ν΄κ²° λ₯λ ₯ ν₯μ
- μ±λ₯ μ΅μ ν: λ ν° λ°μ΄ν°μ μ²λ¦¬ λ° μλ΅ μλ κ°μ
- μ€μ λ¬Έμ ν΄κ²°: μν λ¬Έμ νμ΄ λ‘μ§ κ°μ λ° μ νν λ΅λ³ μμ±
νμ¬ "μμ ν μ€νΈ λ°μ΄ν°λ‘ λΉ λ₯Έ κ²μ¦" λͺ©νλ λ¬μ±νμΌλ―λ‘, λ€μ λ¨κ³μΈ "μ€μ λ¬Έμ ν΄κ²° λ₯λ ₯ ν₯μ"κ³Ό "GPU μλ² λ°°ν¬"μ μ§μ€ν΄μ£ΌμΈμ.