πŸ“ νŒ€ ν”„λ‘œμ νŠΈ: [κ³Όν•™ 상식 RAG 기반 μ§ˆμ˜μ‘λ‹΅ μ‹œμŠ€ν…œ]

πŸ“ ν”„λ‘œμ νŠΈ κ°œμš”

질문과 이전 λŒ€ν™” νžˆμŠ€ν† λ¦¬λ₯Ό 보고 μ°Έκ³ ν•  λ¬Έμ„œλ₯Ό κ²€μƒ‰μ—”μ§„μ—μ„œ μΆ”μΆœ ν›„ 이λ₯Ό ν™œμš©ν•˜μ—¬ μ§ˆλ¬Έμ— μ ν•©ν•œ λŒ€λ‹΅μ„ μƒμ„±ν•˜λŠ” νƒœμŠ€ν¬μž…λ‹ˆλ‹€.

⏱️ κΈ°κ°„ 및 인원

κΈ°κ°„: 2025.04.16 ~ 2025.04.21

인원: 총 4λͺ…

πŸ›  기술 μŠ€νƒ

ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 및 도ꡬ: Python, FAISS, LangChain, Streamlit

μ‚¬μš© λͺ¨λΈ: Upstage Solar API

πŸ”§ 핡심 κΈ°λŠ₯

πŸ“Š μ‹œμŠ€ν…œ μ›Œν¬ν”Œλ‘œμš°

RAG μ‹œμŠ€ν…œ μ›Œν¬ν”Œλ‘œμš°

β–² 전체 λͺ¨λΈλ§ νŒŒμ΄ν”„λΌμΈ

πŸ§‘β€πŸ’» λ‚΄κ°€ κΈ°μ—¬ν•œ λΆ€λΆ„

πŸ“„ μ‚¬μš©ν•œ κ³Όν•™ 지식 λ¬Έμ„œ ꡬ쑰 보기
κ³Όν•™ λ¬Έμ„œ JSONL μ˜ˆμ‹œ

β–² κ³Όν•™ 지식 λ¬Έμ„œ ꡬ쑰 μ˜ˆμ‹œ (JSONL)

πŸ› νŠΈλŸ¬λΈ”μŠˆνŒ…

πŸ“Œ 문제 1: 질문 도메인 νŒλ³„ μ‹€νŒ¨

- 문제 λ°°κ²½: λ‹¨μˆœ ν‚€μ›Œλ“œ κΈ°μ€€ λΆ„λ₯˜λŠ” 일반 λŒ€ν™”μ™€ κ³Όν•™ μ§ˆλ¬Έμ„ λͺ…ν™•νžˆ κ΅¬λΆ„ν•˜μ§€ λͺ»ν•΄, μ—‰λš±ν•œ λ¬Έμ„œκ°€ κ²€μƒ‰λ˜κ±°λ‚˜ μ•„μ˜ˆ 검색이 λˆ„λ½λ¨.

- ν•΄κ²° 방법: μ‚¬μš©μž μ§ˆλ¬Έμ„ μ •κ·œν™”ν•œ λ’€, κ³Όν•™ ν‚€μ›Œλ“œ 리슀트 기반 필터링 외에도 Rule 기반 μ˜ˆμ™Έμ²˜λ¦¬ 및 fallback λ‹΅λ³€ λ‘œμ§μ„ μ„€κ³„ν•˜μ—¬ μ•ˆμ •μ„±μ„ λ†’μž„.

πŸ“Œ 문제 2: 검색 κ²°κ³Όκ°€ λΆ€μ μ ˆν•˜κ±°λ‚˜ λˆ„λ½λ˜λŠ” 문제

- 문제 λ°°κ²½: FAISS의 μœ μ‚¬λ„ κΈ°μ€€λ§ŒμœΌλ‘œλŠ” 질문 μ˜λ„μ™€ 동떨어진 λ¬Έμ„œκ°€ λ°˜ν™˜λ˜λŠ” κ²½μš°κ°€ λ°œμƒ.

- ν•΄κ²° 방법: κ²€μƒ‰λœ λ¬Έμ„œμ˜ 제λͺ©/λ³Έλ¬Έ μœ μ‚¬λ„λ₯Ό μΆ”κ°€ ν•„ν„°λ‘œ κ²€ν† ν•΄ μƒμœ„ 3개만 λ…ΈμΆœν•˜κ³ , ν•„μš” μ‹œ 검색 κ²°κ³Όκ°€ μ—†μŒμ„ μ•ˆλ‚΄ν•˜λŠ” μ˜ˆμ™Έ 응닡 κ΅¬ν˜„.

🌟 νŒ€ μ„±κ³Ό 및 생성 κ²°κ³Ό μ˜ˆμ‹œ

μ΅œμ’… κ²°κ³Ό

β–² λŒ€νšŒ μ΅œμ’… 점수 및 μˆœμœ„

μ§ˆλ¬Έμ— λŒ€ν•΄ κ²€μƒ‰λœ λ¬Έμ„œλ₯Ό 기반으둜 μƒμ„±λœ λ‹΅λ³€ μ˜ˆμ‹œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 좜처 λ¬Έμ„œμ™€ ν•¨κ»˜ κ²°κ³Όλ₯Ό μ‚¬μš©μžμ—κ²Œ μ „λ‹¬ν•©λ‹ˆλ‹€.

생성 응닡 μ˜ˆμ‹œ

β–² 검색 λ¬Έμ„œ 기반으둜 μƒμ„±λœ 응닡 μ˜ˆμ‹œ

πŸ’‘ 깨달은 점

이번 ν”„λ‘œμ νŠΈλ₯Ό 톡해 λ‹¨μˆœνžˆ λͺ¨λΈμ˜ μ„±λŠ₯보닀도, μ§ˆλ¬Έμ— μ ν•©ν•œ λ¬Έμ„œλ₯Ό μ–Όλ§ˆλ‚˜ μ •ν™•νžˆ κ²€μƒ‰ν•˜κ³ , 이λ₯Ό λ°”νƒ•μœΌλ‘œ μžμ—°μŠ€λŸ½κ³  μ‹ λ’° κ°€λŠ₯ν•œ 응닡을 μƒμ„±ν•˜λŠ” 전체 정보 νλ¦„μ˜ 섀계가 λ”μš± μ€‘μš”ν•˜λ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. 특히 RAG μ‹œμŠ€ν…œμ—μ„œ 핡심은 LLM μžμ²΄κ°€ μ•„λ‹ˆλΌ, 질문 λΆ„λ₯˜ β†’ λ¬Έμ„œ 검색 β†’ 응닡 μƒμ„±μœΌλ‘œ μ΄μ–΄μ§€λŠ” νŒŒμ΄ν”„λΌμΈ μ „λ°˜μ˜ κ΅¬μ‘°μ˜€μŠ΅λ‹ˆλ‹€.

λ˜ν•œ, Streamlit을 ν™œμš©ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„ κ²½ν—˜μ€ ν”„λ‘ νŠΈμ—”λ“œ μ‹œκ°ν™”μ˜ μ€‘μš”μ„±μ„ μ²΄κ°ν•˜λŠ” 계기가 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 결과와 좜처 λ¬Έμ„œλ₯Ό μ§κ΄€μ μœΌλ‘œ μ—°κ²°ν•΄ λ³΄μ—¬μ£ΌλŠ” UI 섀계가 λΆ€μ‘±ν–ˆλ˜ 점은 이후 κ°œμ„  과제둜 λ‚¨μ•˜μœΌλ©°, μ‚¬μš©μž κ²½ν—˜μ„ κ³ λ €ν•œ 정보 ν‘œν˜„ 방식에 λŒ€ν•΄ κ³ λ―Όν•΄λ³΄λŠ” κΈ°νšŒκ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ, μƒμ„±λœ μ‘λ‹΅μ˜ ν’ˆμ§ˆμ„ μ •λŸ‰μ μœΌλ‘œ ν‰κ°€ν•˜κΈ° μœ„ν•œ μ§€ν‘œ(MAP, MRR)κ°€ μœ μš©ν–ˆμ§€λ§Œ, κ·Έ ν•œκ³„λ„ λΆ„λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. 특히 μ‚¬μš©μž κ΄€μ μ—μ„œ '쒋은 응닡'이 무엇인지에 λŒ€ν•œ 기쀀은 정성적 ν”Όλ“œλ°± μ—†μ΄λŠ” ν¬μ°©ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” μ μ—μ„œ, μ •λŸ‰κ³Ό μ •μ„± 평가λ₯Ό ν•¨κ»˜ κ³ λ €ν•œ ν…ŒμŠ€νŠΈ μ„€κ³„μ˜ μ€‘μš”μ„±μ„ λŠκΌˆμŠ΅λ‹ˆλ‹€.

πŸ”— μ°Έκ³  링크