λͺ©λ‘μœΌλ‘œ

Programming Notes

AIκ°€ 거짓말을 ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것을 μ–΄λ–»κ²Œ μ•Œ 수 μžˆμ„κΉŒμš”? RAG μ‹œμŠ€ν…œμ—μ„œ LLM을 ν‰κ°€ν•˜λŠ” 기술

πŸ” 1. LLM 응닡을 ν‰κ°€ν•˜κΈ° μ–΄λ €μš΄ 이유

고전적인 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 정확성은 μ΄μ§„μ μž…λ‹ˆλ‹€.

μž…λ ₯μ˜ˆμƒκ²°κ³Ό
2 + 24βœ” μ •ν™•
2 + 25✘ ν‹€λ¦Ό
μ†Œν”„νŠΈμ›¨μ–΄λŠ” κ²°μ •λ‘ μ μž…λ‹ˆλ‹€. 즉, λ™μΌν•œ μž…λ ₯ β†’ λ™μΌν•œ 좜λ ₯μž…λ‹ˆλ‹€. LLM은 **ν™•λ₯ μ **μž…λ‹ˆλ‹€. μ—¬λŸ¬ μœ νš¨ν•œ 단어 μ‘°ν•© 쀑 ν•˜λ‚˜λ₯Ό μƒμ„±ν•˜λ©°, μ—¬λŸ¬ κ°€λŠ₯ν•œ λ™μ˜μ–΄μ™€ λ¬Έμž₯ ꡬ쑰둜 λ¬Έμž₯을 λ§Œλ“œλŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€. μ˜ˆμ‹œ: ν”„λ‘¬ν”„νŠΈ: **"10μ‚΄ μ•„μ΄μ—κ²Œ 쀑λ ₯을 μ„€λͺ…ν•΄ 쀘"** κ°€λŠ₯ν•œ 응닡:
응닡 A응닡 B
쀑λ ₯은 λͺ¨λ“  것을 μ§€κ΅¬λ‘œ λŒμ–΄λ‹ΉκΈ°λŠ” νž˜μž…λ‹ˆλ‹€.쀑λ ₯은 μ‹œκ³΅κ°„μ„ 휘게 ν•˜μ—¬ 물체가 μ„œλ‘œ λŒμ–΄λ‹ΉκΈ°κ²Œ ν•©λ‹ˆλ‹€.

 

λ‘˜ λ‹€ λ§žμŠ΅λ‹ˆλ‹€. μ–΄λŠ 것이 더 μ’‹μ„κΉŒμš”? 청쀑에 따라 λ‹€λ¦…λ‹ˆλ‹€. λ”°λΌμ„œ ν‰κ°€λŠ” ν…μŠ€νŠΈ μœ μ‚¬μ„± 이상을 봐야 ν•©λ‹ˆλ‹€. λ‹€μŒμ„ 확인해야 ν•©λ‹ˆλ‹€: βœ” 닡변이 의미 μžˆλŠ”κ°€? βœ” μ˜¬λ°”λ₯Έκ°€? βœ” μ΄ν•΄ν•˜κΈ° μ‰¬μš΄κ°€? βœ” ν”„λ‘¬ν”„νŠΈ μ˜λ„λ₯Ό λ”°λ₯΄λŠ”κ°€? LLM ν…ŒμŠ€νŠΈλŠ” 에세이λ₯Ό μ±„μ ν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€. 숫자 좜λ ₯을 ν™•μΈν•˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€.

🧠 2. RAG 평가가 더 μ–΄λ €μš΄ 이유

RAGλŠ” 좔가적인 계측, 즉 검색을 λ„μž…ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ 더 이상 기얡에 μ˜μ‘΄ν•˜μ—¬ λ‹΅λ³€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ¨Όμ € μ»¨ν…μŠ€νŠΈλ₯Ό 읽은 λ‹€μŒ μš”μ•½ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν‰κ°€λŠ” 이제 μ—¬λŸ¬ 차원을 κ°€μ§‘λ‹ˆλ‹€:

평가 계측확인해야 ν•  사항
κ²€μƒ‰μ˜¬λ°”λ₯Έ λ¬Έμ„œλ₯Ό κ°€μ Έμ™”λŠ”κ°€?
이해λͺ¨λΈμ΄ μ»¨ν…μŠ€νŠΈλ₯Ό μ˜¬λ°”λ₯΄κ²Œ ν•΄μ„ν–ˆλŠ”κ°€?
근거닡변이 κ²€μƒ‰λœ 데이터에 κΈ°λ°˜ν•˜λŠ”κ°€?
생성 ν’ˆμ§ˆμ΅œμ’… 응닡이 μ™„μ „ν•˜κ³  λͺ…ν™•ν•œκ°€?
κ°„λ‹¨ν•œ 이야기가 이λ₯Ό μ§κ΄€μ μœΌλ‘œ μ„€λͺ…ν•΄ μ€λ‹ˆλ‹€: μ„ μƒλ‹˜μ΄ ν•™μƒμ—κ²Œ **κ΄‘ν•©μ„±**을 μ„€λͺ…ν•΄ 보라고 ν•©λ‹ˆλ‹€. 학생은 λ„μ„œκ΄€μœΌλ‘œ κ°€μ„œ β†’ 책을 κ³ λ₯΄κ³  β†’ 읽고 β†’ μ„€λͺ…을 μž‘μ„±ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” λ‹€μŒμ„ 평가해야 ν•©λ‹ˆλ‹€: 1. μ˜¬λ°”λ₯Έ 책을 κ³¨λžλŠ”κ°€? β†’ 검색 2. 주제λ₯Ό μ΄ν•΄ν–ˆλŠ”κ°€? β†’ μΆ”λ‘  3. 사싀을 μ§€μ–΄λ‚΄μ§€ μ•Šκ³  μ˜¬λ°”λ₯΄κ²Œ λ³΅μ‚¬ν–ˆλŠ”κ°€? β†’ μΆ©μ‹€μ„± 4. μž‘μ„±λœ μ„€λͺ…이 λ‹€λ₯Έ 아이가 배울 수 μžˆμ„ 만큼 μΆ©λΆ„νžˆ λͺ…ν™•ν•œκ°€? β†’ λ‹΅λ³€ ν’ˆμ§ˆ ν•˜λ‚˜μ˜ μ‹€νŒ¨ β†’ 전체 μ‹€νŒ¨.

🧩 3. 두 κ°€μ§€ 평가 μœ ν˜•

πŸ”Ή λ‚΄μž¬μ  평가 β€” 응닡 자체의 ν’ˆμ§ˆ

μ—¬κΈ°μ„œλŠ” μ‹€μ œ 세상에 λ―ΈμΉ˜λŠ” 영ν–₯을 λ¬΄μ‹œν•˜κ³  닡변을 νŒλ‹¨ν•©λ‹ˆλ‹€. λ‹€μŒ 사항을 ν™•μΈν•©λ‹ˆλ‹€: βœ” 문법 및 일관성 βœ” μ„€λͺ…μ˜ μ™„μ „μ„± βœ” ν™˜κ° μ—†μŒ βœ” 논리 흐름 및 λͺ…ν™•μ„± βœ” 의미둠적 μ •ν™•μ„± μ΄λŠ” 에세이가 μ–Όλ§ˆλ‚˜ 잘 μž‘μ„±λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” 것과 μœ μ‚¬ν•©λ‹ˆλ‹€. μ‹€μ œ 문제λ₯Ό ν•΄κ²°ν•˜μ§€ λͺ»ν–ˆλ”라도 닡변은 μ—¬μ „νžˆ μ’‹μ•„ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. 이것이 λ‚΄μž¬μ  ν‰κ°€λ§ŒμœΌλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•Šμ€ μ΄μœ μž…λ‹ˆλ‹€.

πŸ”Ή μ™Έμž¬μ  평가 β€” λͺ©ν‘œλ₯Ό λ‹¬μ„±ν–ˆλŠ”κ°€?

이것은 μž‘μ—… 성곡을 μΈ‘μ •ν•©λ‹ˆλ‹€. 고객 지원 봇이 μ•„λ¦„λ‹΅κ²Œ ν‘œν˜„λœ 단락을 μž‘μ„±ν–ˆμ§€λ§Œ, μ‚¬μš©μžκ°€ μ—¬μ „νžˆ ν™˜λΆˆμ„ λ°›μ§€ λͺ»ν–ˆλ‹€λ©΄ β€” μ™Έμž¬μ μœΌλ‘œ μ‹€νŒ¨ν•œ κ²ƒμž…λ‹ˆλ‹€. μ˜ˆμ‹œ:

μ‹œμŠ€ν…œ μœ ν˜•μ™Έμž¬μ  λͺ©ν‘œ
은행 RAG λ΄‡μ‚¬μš©μžκ°€ μ˜¬λ°”λ₯Έ KYC 절차λ₯Ό λ°›μ•˜λŠ”κ°€?
의료 RAG쑰언이 μ•ˆμ „ν•˜κ³  μ‚¬μ‹€μ μ΄μ—ˆλŠ”κ°€?
법λ₯  검색 λ„μš°λ―Έμ˜¬λ°”λ₯Έ 법 쑰항을 λ°˜ν™˜ν–ˆλŠ”κ°€?
기술 μš”μ•½κΈ°μš”μ•½μ΄ 핡심 의미λ₯Ό ν¬μ°©ν–ˆλŠ”κ°€?
λ‚΄μž¬μ  = μž‘λ¬Έ ν’ˆμ§ˆ. μ™Έμž¬μ  = 영ν–₯ ν’ˆμ§ˆ. 운영 ν™˜κ²½ μˆ˜μ€€μ˜ RAG μ‹œμŠ€ν…œμ€ **λ‘˜ λ‹€ μΆ©μ‘±ν•΄μ•Ό ν•©λ‹ˆλ‹€**.

πŸ“ 4. 핡심 RAG 평가 μ§€ν‘œ (μ•„μ£Ό κ°„λ‹¨ν•œ λΉ„μœ λ‘œ μ„€λͺ…)

μ§€ν‘œμ˜λ―ΈλΉ„μœ 
관련성닡변이 질문과 μΌμΉ˜ν•˜λŠ”κ°€?λˆ„κ°€ C++λ₯Ό 발λͺ…ν–ˆλŠ”κ°€? 라고 λ¬Όμ—ˆλŠ”λ° β†’ λͺ¨λΈμ΄ Java에 λŒ€ν•΄ 이야기함 ❌
μΆ©μ‹€μ„±μ§€μ–΄λ‚Έ 사싀 μ—†μŒμ±…μ—λŠ” 2004년에 μ‹œμž‘ν–ˆλ‹€κ³  λ‚˜μ˜€λŠ”λ°, 응닡은 1990년이라고 함 ❌
근거닡변이 좜처λ₯Ό 좔적할 수 μžˆμŒμ»¨ν…μŠ€νŠΈμ— μ—†λŠ” 사싀을 μ£Όμž₯함 ❌
μ™„μ „μ„±μ§ˆλ¬Έμ˜ λͺ¨λ“  뢀뢄을 λ‹€λ£Έμ‚¬μš©μžκ°€ Windows vs Linuxλ₯Ό λ¬Όμ—ˆλŠ”λ° β†’ Windows만 μ„€λͺ…함
μ»¨ν…μŠ€νŠΈ νšŒμƒλ₯  / μ •ν™•λ„μ˜¬λ°”λ₯Έ λ¬Έμ„œκ°€ κ²€μƒ‰λ˜κ³  μ‚¬μš©λ¨ν•™μƒμ΄ 잘λͺ»λœ 챕터λ₯Ό 펼침
ν™˜κ°λ₯ μ§€μ–΄λ‚Έ μ •λ³΄μ˜ μ •λ„β€œνƒ€μ§€λ§ˆν• μ€ λŸ°λ˜μ— μžˆλ‹€β€ 😱
의미둠적 μœ μ‚¬μ„±μ˜λ―Έ μˆ˜μ€€ μΌμΉ˜β€œμ—”μ§„μ΄ λ©ˆμ·„λ‹€β€ = β€œμ°¨κ°€ 움직이지 μ•Šμ•˜λ‹€β€
πŸ’‘ 쒋은 ν‰κ°€λŠ” μ •ν™•ν•œ 단어λ₯Ό ν™•μΈν•˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. 의미 + μ§„μ‹€μ„± + μœ μš©μ„±μ„ ν™•μΈν•©λ‹ˆλ‹€.

πŸ›  5. RAG 평가 도ꡬ

πŸ”Ή 1. RAGAS β€” RAG 점수 λΆ€μ—¬μ˜ 기반

RAGASλŠ” λ‹€μŒμ„ 기반으둜 응닡을 ν‰κ°€ν•©λ‹ˆλ‹€: βœ” μΆ©μ‹€μ„± βœ” κ΄€λ ¨μ„± βœ” μ»¨ν…μŠ€νŠΈ νšŒμƒλ₯  βœ” λ‹΅λ³€ μœ μ‚¬μ„± RAGASλ₯Ό 채점 κΈ°μ€€ν‘œλ‘œ μ±„μ ν•˜λŠ” μ„ μƒλ‹˜μ΄λΌκ³  μƒκ°ν•΄λ³΄μ„Έμš”. λ‹΅λ³€κ³Ό 원본 λ¬Έμ„œλ₯Ό λͺ¨λ‘ 읽은 λ‹€μŒ, μ§„μ‹€μ„±κ³Ό μΌμΉ˜λ„λ₯Ό 기반으둜 점수λ₯Ό λ§€κΉλ‹ˆλ‹€.

πŸ”Ή 2. LangChain 평가기

LangChain은 μ—¬λŸ¬ 평가 μœ ν˜•μ„ μ œκ³΅ν•©λ‹ˆλ‹€:

μœ ν˜•ν™•μΈν•˜λŠ” 사항
λ¬Έμžμ—΄ λ˜λŠ” μ •κ·œμ‹κΈ°λ³Έ ν‚€μ›Œλ“œ 쑴재 μ—¬λΆ€
μž„λ² λ”© κΈ°λ°˜ν…μŠ€νŠΈ μΌμΉ˜κ°€ μ•„λ‹Œ 의미 μœ μ‚¬μ„±
LLM을 μ‹¬νŒμœΌλ‘œAIκ°€ AIλ₯Ό 평가 (심측 μΆ”λ‘ )
LangChain = **ν…ŒμŠ€νŠΈ 도ꡬ μƒμž** RAGAS = **채점 ν”„λ ˆμž„μ›Œν¬** 이듀은 ν•¨κ»˜ μ™„μ „ν•œ QA μƒνƒœκ³„λ₯Ό ν˜•μ„±ν•©λ‹ˆλ‹€. ### πŸ”Ή 3. PyTest + CIλ₯Ό μ΄μš©ν•œ μžλ™ν™”λœ LLM ν…ŒμŠ€νŠΈ μˆ˜λ™μœΌλ‘œ 좜λ ₯을 κ²€μ¦ν•˜λŠ” λŒ€μ‹ , λ‹€μŒμ„ μžλ™ν™”ν•©λ‹ˆλ‹€: 1. 사전 μ„€μ •λœ μ§ˆλ¬Έμ„ RAG에 μž…λ ₯ 2. λ‹΅λ³€ 캑처 3. RAGAS/LangChain 채점 μ‹€ν–‰ 4. ν™˜κ°μ΄ μž„κ³„κ°’μ„ μ΄ˆκ³Όν•˜λ©΄ ν…ŒμŠ€νŠΈ μ‹€νŒ¨ 이것은 AIλ₯Ό **μ†Œν”„νŠΈμ›¨μ–΄ 곡학적 규율**에 더 κ°€κΉκ²Œ λ§Œλ“­λ‹ˆλ‹€. RAG μ‹œμŠ€ν…œμ€ 더 이상 μ‹€ν—˜μ΄ μ•„λ‹™λ‹ˆλ‹€. β€” **ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•˜κ³ , 좔적 κ°€λŠ₯ν•˜λ©°, 운영 ν™˜κ²½ μˆ˜μ€€μ˜ μ œν’ˆ**이 λ©λ‹ˆλ‹€.

πŸš€ 6. 미래: νŒμ‚¬λ‘œμ„œμ˜ LLM

ν‰κ°€μ˜ λ―Έλž˜λŠ” κ°„λ‹¨ν•©λ‹ˆλ‹€: LLM이 λ‹€λ₯Έ LLM을 평가할 κ²ƒμž…λ‹ˆλ‹€. ν•œ λͺ¨λΈμ΄ 닡변을 μž‘μ„±ν•©λ‹ˆλ‹€. λ‹€λ₯Έ λͺ¨λΈμ€ λ‹€μŒμ„ ν™•μΈν•©λ‹ˆλ‹€: βœ” μ§„μ‹€ν–ˆλŠ”κ°€? βœ” 관련성이 μžˆμ—ˆλŠ”κ°€? βœ” μ»¨ν…μŠ€νŠΈλ₯Ό λ”°λžλŠ”κ°€? μ΄λŠ” λ‹€μŒμ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€:

μ΄μ μ€‘μš”μ„±
ν™•μž₯ κ°€λŠ₯ν•œ 평가λͺ¨λ“  쿼리에 μ‚¬λžŒμ΄ ν•„μš”ν•˜μ§€ μ•ŠμŒ
지속적인 κ°œμ„ λͺ¨λΈμ΄ μ‹€μˆ˜λ‘œλΆ€ν„° ν•™μŠ΅
μ‹€μ‹œκ°„ μ±„μ μ‚¬μš©μžκ°€ 보기 전에 였λ₯˜ 감지
이것은 AI μ‹œμŠ€ν…œμ˜ μžλ™ μ‘°μ’… μž₯μΉ˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. β€” νƒμƒ‰λΏλ§Œ μ•„λ‹ˆλΌ λΉ„ν–‰ 쀑 자체 μˆ˜μ •λ„ ν•©λ‹ˆλ‹€. 그리고 이것이 μ—”ν„°ν”„λΌμ΄μ¦ˆ AIκ°€ λ‚˜μ•„κ°ˆ λ°©ν–₯μž…λ‹ˆλ‹€.

🎯 μ΅œμ’… μš”μ•½

LLM 응닡을 ν‰κ°€ν•˜λŠ” 것은 λ¬Έμžμ—΄μ΄ μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. 기계가 λ‹€μŒμ„ μˆ˜ν–‰ν–ˆλŠ”μ§€ ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€: βœ” μ§ˆλ¬Έμ„ μ΄ν•΄ν–ˆλŠ”μ§€ βœ” κ΄€λ ¨ 지식을 κ²€μƒ‰ν–ˆλŠ”μ§€ βœ” ν™˜κ°μ„ ν”Όν–ˆλŠ”μ§€ βœ” μ™„μ „ν•˜κ³  의미 μžˆλŠ” 좔둠을 μ œκ³΅ν–ˆλŠ”μ§€ βœ” μ‹€μ œ 원본 ν…μŠ€νŠΈμ— 닡변을 κ·Όκ±°ν–ˆλŠ”μ§€ RAG ν‰κ°€λŠ” 검색, μΆ”λ‘ , κ·Όκ±°, 의미둠, μ•ˆμ „μ„± λ“± 닀측적 검증을 μš”κ΅¬ν•©λ‹ˆλ‹€. RAGAS + LangChain 평가기 + PyTest νŒŒμ΄ν”„λΌμΈκ³Ό 같은 ν”„λ ˆμž„μ›Œν¬λŠ” μΈ‘μ • κ°€λŠ₯ν•˜κ³  μ‹ λ’°ν•  수 μžˆλŠ” AI의 κ·œμœ¨μ„ ν˜•μ„±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. β€” LLM 기반 RAGλ₯Ό λ©‹μ§„ 데λͺ¨μ—μ„œ β†’ μ‹ λ’°ν•  수 μžˆλŠ” μ—”ν„°ν”„λΌμ΄μ¦ˆ μΈν…”λ¦¬μ „μŠ€λ‘œ λ°œμ „μ‹œν‚€κ³  μžˆμŠ΅λ‹ˆλ‹€.

μœ μš©ν•œ 자료

RAG(검색 증강 생성)λž€? : https://azure.microsoft.com/en-in/resources/cloud-computing-dictionary/what-is-retrieval-augmented-generation-rag/?utm_source=chatgpt.com RAG(검색 증강 생성) κ°œλ… (Azure AI) : https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/concepts/retrieval-augmented-generation?utm_source=chatgpt.com Azure AI Searchλ₯Ό μ΄μš©ν•œ RAG – κ°œμš” : https://learn.microsoft.com/en-us/azure/search/retrieval-augmented-generation-overview?utm_source=chatgpt.com μƒμ„±ν˜• AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 평가 (Microsoft Learn – ν•™μŠ΅ 경둜) : https://learn.microsoft.com/en-us/training/paths/evaluate-generative-ai-apps/?utm_source=chatgpt.com Microsoft Foundry Portalμ—μ„œ μƒμ„±ν˜• AI λͺ¨λΈ 평가 : https://learn.microsoft.com/en-us/training/modules/evaluate-models-azure-ai-studio/?utm_source=chatgpt.com RAG 평가 μ§€ν‘œ (κ΄€λ ¨μ„±, κ·Όκ±°, μΆ©μ‹€μ„±) : https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/evaluation-evaluators/rag-evaluators?utm_source=chatgpt.com RAGAS – RAG μ‹œμŠ€ν…œμ„ μœ„ν•œ 평가 ν”„λ ˆμž„μ›Œν¬ : https://docs.ragas.io/