# 회사 자체 문서를 바탕으로 한 AI(RAG), 헝가리어로도

부다페스트의 소프트웨어 개발 회사인 Mesterséges Intelligencia Központ Kft.는 회사 문서를 바탕으로 검증 가능한 답변을 주는 것은 RAG라고 봅니다. 시스템이 먼저 관련 부분을 찾고, 모델은 이를 근거로 출처를 밝혀 헝가리어로도 답변합니다.

> **핵심:** 모델을 회사 자체 데이터로 학습시킬 필요는 없습니다. RAG는 질문하는 순간 관련 부분을 모델에 전달하고, 답변은 출처를 표시합니다. 품질은 문서가 얼마나 잘 정리되어 있는지, 검색이 얼마나 정확한지, 그리고 지속적인 측정에 달려 있습니다. 헝가리어로도 작동하지만, 회사 자체의 헝가리어 질문으로 측정해야 합니다.

## RAG란 무엇이며, 이 용어는 어디에서 왔습니까?

RAG는 retrieval-augmented generation의 약자로, 한국어로는 대략 ‘검색 증강 생성’이라고 합니다. 이 용어는 Patrick Lewis와 공동 저자들이 [2020년에 발표한 논문](https://arxiv.org/abs/2005.11401)에서 나왔으며, 논문 제목은 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”입니다. 저자들은 사전 학습된 언어 모델의 이른바 매개변수 메모리(parametric memory)를 비매개변수 메모리와 결합했습니다. 그것은 신경망 검색기로 접근하는 위키백과의 밀집 벡터 인덱스였습니다.

오늘날 이 용어는 더 넓게, 시스템이 질문마다 먼저 문서 모음에서 필요한 부분을 찾고 언어 모델이 그 내용을 바탕으로 답변을 작성하는 방식을 뜻합니다. 이 과정에서 모델 자체의 지식은 바뀌지 않으며, 회사의 자료는 질문하는 순간 모델에 전달됩니다. 여기에서 RAG의 세 가지 실무적 장점이 나옵니다. 지식을 즉시 업데이트할 수 있고, 답변이 출처를 표시할 수 있으며, 검색할 때 질문한 사람이 볼 수 있는 것으로 걸러 낼 수 있습니다.

## 어떻게 작동합니까? 여섯 단계

1. **수집:** 문서 저장소, 위키, 티켓 관리 시스템, 메일함의 선택된 부분 등 출처를 한곳으로 모읍니다.
2. **분할:** 긴 문서를 몇 단락 분량의 작은 조각(chunk)으로 나눕니다. 예를 들어 OpenAI의 [검색 서비스](https://developers.openai.com/api/docs/guides/retrieval)는 기본적으로 최대 800토큰 크기의 조각을 400토큰씩 겹치게 만듭니다.
3. **임베딩(embedding):** 임베딩 모델이 각 조각을 숫자의 나열, 즉 벡터로 바꿉니다. OpenAI의 [설명](https://developers.openai.com/api/docs/guides/embeddings)에 따르면 벡터 사이의 거리가 작으면 내용상 관련성이 높고, 거리가 크면 관련성이 낮습니다.
4. **검색:** 같은 모델이 질문을 벡터로 바꾸고, 시스템은 그와 가장 가까운 조각을 찾습니다. Anthropic은 [Contextual Retrieval](https://www.anthropic.com/engineering/contextual-retrieval) 설명에서 의미 기반 검색을 글자 그대로 일치시키는 키워드 검색(BM25)으로 보완합니다. 키워드 검색이 식별자 같은 정확한 표현을 더 잘 찾기 때문입니다. 그다음 재순위화(reranker) 단계가 가장 관련성 높은 조각만 모델에 넘깁니다.
5. **필터링과 구성:** 찾은 조각 중 질문한 사람도 볼 수 있는 것만 남기고, 이를 질문과 함께 모델에 전달합니다.
6. **출처를 밝힌 답변:** 모델은 받은 부분을 바탕으로 답하고, 각 주장을 어디에서 가져왔는지 표시합니다. Anthropic의 [인용(citations) 기능](https://platform.claude.com/docs/en/build-with-claude/citations)은 PDF에서는 페이지 번호를, 일반 텍스트에서는 문자 위치를 가리키며, OpenAI의 [파일 검색](https://developers.openai.com/api/docs/guides/tools-file-search)은 답변 안에 원본 파일을 참조하는 표시를 붙입니다.

분할에서 흔히 일어나는 문제는 조각이 맥락을 잃는 것이며, Anthropic도 같은 설명에서 이를 경고합니다. “기한은 수령일부터 계산합니다”라는 문장만으로는 어느 계약의 어느 기한인지 알 수 없습니다. 그래서 각 조각에 문서 제목, 장 제목, 날짜를 덧붙여 검색과 모델 모두 그 맥락을 볼 수 있게 하는 것이 좋습니다.

## RAG와 파인튜닝 중 어느 쪽이 맞습니까?

파인튜닝(fine-tuning, 미세 조정)은 작업에 특화된 데이터로 모델을 추가 학습시키는 것입니다. OpenAI의 [정확도에 관한 가이드](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy)에 따르면 RAG는 작업에 필요한 분야별 맥락을 제공하며, 모델의 지식이 오래되었거나 작업에 회사 고유의 정보가 필요할 때 쓰입니다. 반면 파인튜닝은 모델의 출력이 일관되지 않거나 형식이나 어조가 맞지 않을 때 도움이 됩니다. 이 가이드에 따르면 두 방법은 서로를 보완하며 함께 사용할 수도 있습니다.

| 기준 | RAG | 파인튜닝 |
|---|---|---|
| 용도 | 질문하는 순간 회사의 지식을 전달함 | 모델의 동작, 형식, 어조를 일관되게 함 |
| 최신 지식 | 문서가 바뀐 뒤 인덱스를 업데이트하면 반영됨 | 새로 학습시켜야 함 |
| 출처 표시 | 답변이 찾은 부분을 가리킬 수 있음 | 모델 가중치에 들어간 지식에는 출처 표시가 없음 |
| 접근 권한 | 문서별로 걸러 낼 수 있음 | 학습된 지식은 모든 사용자에게 같음 |
| 문서 철회 | 문서가 인덱스에서 빠짐 | 그 영향은 새로 학습해야만 사라짐 |
| 적합한 때 | 회사 문서라면 거의 언제나 이것이 출발점 | 형식이나 어조의 일관성이 문제일 때, RAG와 함께 |

따라서 회사 문서에는 RAG가 자연스러운 출발점입니다. “모델을 학습시켜야 합니까?”라는 질문은 대개 실제로는 모델이 회사의 지식을 어떻게 얻느냐는 뜻이며, 그에 대한 답이 RAG입니다.

## 헝가리어로도 됩니까? 언어 지원과 여러 언어가 섞인 자료

### 답변하는 모델

주요 서비스 제공업체의 모델은 헝가리어도 잘 이해하고 잘 쓰지만, 공개된 언어 성능 측정 결과가 항상 헝가리어를 포함하지는 않습니다. Anthropic의 [다국어 지원 페이지](https://platform.claude.com/docs/en/build-with-claude/multilingual-support)는 영어 외 14개 언어의 측정 결과를 공개하고 있으며, 헝가리어는 그중에 없습니다(2026년 10월 17일 확인). 한편 이 페이지는 Claude가 표에 있는 언어 외에도 많은 언어로 사용할 수 있다고 강조하고, 애플리케이션에 중요한 언어로 테스트할 것과 답변 언어를 시스템 프롬프트에 명시할 것을 권합니다. 저희의 경험도 같습니다. 저희 홈페이지에서 Claude 기반으로 작동하는 AI 어시스턴트는 헝가리어와 그 밖의 13개 언어로 대화하지만, 새로운 활용 방식은 모두 헝가리어 질문으로 측정합니다.

### 임베딩 모델

검색 품질은 답변하는 모델 못지않게 임베딩 모델에 달려 있습니다. 주요 서비스 제공업체의 현황은 다음과 같습니다(2026년 10월 17일 확인).

- 문서에 따르면 Google의 [Gemini Embedding 2 모델](https://ai.google.dev/gemini-api/docs/embeddings)은 100개가 넘는 언어에서 작동합니다.
- Anthropic은 [자체 임베딩 모델을 제공하지 않으며](https://platform.claude.com/docs/en/build-with-claude/embeddings), 대신 Voyage AI의 모델을 언급합니다. 그중 voyage-4는 범용 검색과 다국어 검색에 최적화되어 있습니다.
- OpenAI의 임베딩 가이드는 text-embedding-3 모델을 소개하지만, 지원 언어를 나열하지는 않습니다.

따라서 임베딩 모델은 서비스 제공업체의 일반적인 측정 결과가 아니라 회사 자체의 헝가리어 질문–문서 쌍으로 선택합니다.

### 헝가리어의 특수 사항

- **굴절(어미 변화):** “szerződés”, “szerződésben”, “szerződéseinkről”(계약, 계약에서, 저희 계약들에 관해)은 같은 대상을 가리키지만, 글자 그대로 일치시키는 키워드 검색은 어간 추출(stemming) 없이는 이를 일치로 보지 않습니다. 의미 기반 검색이 여기에 도움이 되고, 하이브리드 검색은 두 가지를 결합합니다.
- **전문 용어와 사내 명칭:** 회사의 약어, 제품 코드, 사내 명칭은 모델의 일반 지식에 들어 있지 않습니다. 짧은 용어집이 검색을 크게 개선합니다.
- **여러 언어가 섞인 자료:** 질문은 헝가리어인데 매뉴얼은 영어라면 다국어 임베딩 모델이 필요하고, 답변 언어를 고정해야 합니다. 출처 인용은 원래 언어 그대로 둡니다.
- **일상적인 표현:** 오타, 악센트 부호 없이 입력한 질문, 구어 표현도 테스트 질문에 포함해야 합니다.

## 어떤 문서를 바탕으로 작동할 수 있습니까?

| 출처 | 주의할 점 |
|---|---|
| 텍스트 기반 PDF | 처리하기 쉬우며, 출처 표시가 페이지 번호까지 가리킬 수 있음 |
| 스캔한 PDF | 먼저 문자 인식(OCR)이 필요함. Anthropic 문서에 따르면 추출할 수 있는 텍스트가 없는 스캔 PDF는 인용할 수 없음 |
| Word와 Excel | Anthropic은 DOCX 및 XLSX 파일을 텍스트로 변환할 것을 권하고, OpenAI의 파일 검색은 DOCX를 직접 받기도 함. 표의 구조를 유지해야 함 |
| 위키와 인트라넷 | 현행 버전이 기준이 되어야 하며, 오래된 페이지는 보관 처리해야 함 |
| 티켓, 헬프데스크 | 개인정보와 오래된 해결책이 많으므로 걸러 내야 함 |
| 이메일 | 선택하고 정리한 범위만 사용함. 개인정보와 접근 권한 측면에서 가장 민감한 출처 |

## 문서별 접근 권한

RAG에서 가장 민감한 지점은, 질문한 사람이 원본 시스템에서도 열 수 없는 부분을 시스템이 내주어서는 안 된다는 것입니다. 저희는 이를 모델에 맡기지 않고 검색에 넣습니다.

- 모든 조각은 원본 문서의 접근 권한 정보를 메타데이터로 함께 지닙니다.
- 필터링은 검색 전이나 검색 중에 이루어집니다. 예를 들어 OpenAI의 검색 서비스는 의미 기반 검색 전에 파일 속성으로 걸러 내는 기능을 제공합니다. 따라서 질문한 사람이 볼 수 없는 것은 모델에 아예 도달하지 않습니다.
- 접근 권한의 변경은 손으로 관리하지 않고 원본 시스템에서 동기화합니다.
- 누가 무엇을 질문했고 어떤 문서를 바탕으로 답변을 받았는지 기록합니다.

## 최신 상태로 유지되는 인덱스

RAG는 인덱스가 최신인 만큼만 좋습니다. 저희가 주의하는 점은 다음과 같습니다.

- **변경 감지:** 새 문서와 수정된 문서를 시스템이 자동으로 처리합니다.
- **삭제:** 원본에서 삭제된 문서는 인덱스에서도 빠집니다. OpenAI 문서에 따르면 삭제는 점진적으로 반영되므로, 삭제된 파일이 짧은 시간 동안 검색 결과에 계속 나타날 수 있습니다.
- **버전:** 현행 버전과 철회된 버전을 구분하며, 날짜를 메타데이터에 기록합니다.
- **출처 담당자:** 모든 출처에는 무언가가 오래되었을 때 알려 주는 책임자가 있습니다.
- **만료:** 임시 자료에는 만료 규칙을 둡니다. 예를 들어 OpenAI의 벡터 저장소에는 만료 기간을 설정할 수 있습니다.

## 틀린 답변 줄이기: 출처, “모르겠습니다”, 측정

언어 모델은 자료가 주어져도 틀릴 수 있습니다. Anthropic의 [틀린 답변을 줄이는 방법에 관한 가이드](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)는 모델이 “모르겠습니다”라고 답하는 것을 명시적으로 허용하고, 글자 그대로의 인용에 근거하게 하며, 모든 주장에 대해 뒷받침하는 인용을 찾게 하고(찾지 못하면 그 주장을 철회하게 하고), 주어진 문서만을 바탕으로 작업하게 할 것을 권합니다. 이 가이드는 이러한 방법이 틀린 답변을 줄이기는 하지만 완전히 없애지는 못하므로 중요한 정보는 확인해야 한다고 덧붙입니다. 저희는 다음을 바탕으로 합니다.

- **출처 표시:** 모든 답변 옆에 어느 문서의 어느 부분에서 나온 것인지 보입니다.
- **“모르겠습니다”와 넘기기:** 답이 자료에 없으면 시스템이 그렇다고 말하고, 질문을 직원에게 넘깁니다.
- **주어진 자료만 사용:** 모델은 회사에 관해 일반 지식을 사용하지 않습니다.
- **평가 세트:** 기대하는 답변과 올바른 출처를 갖춘 실제 질문입니다. 검색이 맞는 부분을 찾았는지, 그리고 답변이 그 부분에 충실한지를 따로 측정합니다. [OpenAI의 평가 가이드](https://developers.openai.com/api/docs/guides/evaluation-best-practices)에 따르면 테스트 데이터에는 전형적인 사례, 극단적인 사례, 의도적으로 오도하는 사례가 모두 있어야 하며, 변경할 때마다 평가를 다시 실행해야 합니다.
- **피드백:** 사용자는 잘못된 답변을 신고할 수 있고, 로그에서 새로운 테스트 사례가 만들어집니다.

## 데이터 보호: 문서는 어디에 저장됩니까?

RAG 시스템에서 회사의 자료는 세 곳을 거칩니다.

- **원본 시스템:** 문서는 지금까지 있던 곳, 즉 문서 저장소, 위키, 메일함에 그대로 있습니다.
- **인덱스:** 조각과 벡터가 검색 데이터베이스에 있습니다. 이는 회사 자체 환경에서도, 서비스 제공업체에서도 실행할 수 있습니다. 예를 들어 OpenAI의 파일 검색에서는 [데이터 관리 문서](https://developers.openai.com/api/docs/guides/your-data)와 검색 가이드에 따르면 업로드된 파일이 삭제되거나 벡터 저장소가 만료될 때까지 저장된 상태로 남습니다.
- **모델 호출:** 질문에 맞게 선택된 조각만 모델에 전달됩니다. 이때는 서비스 제공업체의 데이터 처리 조건이 적용됩니다. 이 조건이 학습, 보관 기간, 처리 장소에 관해 무엇을 정하는지는 [회사 시스템을 인공지능으로 연결하기](https://www.mestersegesintelligenciakozpont.hu/ko/knowledge-base/connecting-business-systems-with-ai) 글에서 정리합니다.

문서에 개인정보도 들어 있다면 그 처리에는 GDPR이 적용되며, 데이터 처리자인 서비스 제공업체와 [일반 데이터 보호 규칙](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679) 제28조에 따른 계약을 맺어야 합니다. 투명성, 데이터 전송, 영향 평가 같은 법적 문제는 [기업용 챗봇에 적용되는 AI Act와 GDPR](https://www.mestersegesintelligenciakozpont.hu/ko/knowledge-base/ai-act-and-gdpr-for-business-chatbots) 글에서 다룹니다. 이 내용은 정보 제공을 위한 것이며 법률 자문이 아닙니다.

## RAG 프로젝트의 단계

1. **목표와 질문 범위:** 누가, 무엇에 관해 질문하며, 무엇을 좋은 답변으로 볼지 정합니다.
2. **출처의 현황 파악과 정리:** 중복된 것, 서로 모순되는 것, 오래된 버전을 걸러 냅니다.
3. **접근 권한 모델:** 누가 어떤 문서를 바탕으로 답변을 받을 수 있는지 정합니다.
4. **평가 세트:** 기대하는 답변과 출처를 갖춘 실제 헝가리어 질문을 준비합니다.
5. **프로토타입:** 측정을 바탕으로 분할, 임베딩 모델, 검색을 조정합니다.
6. **연결:** 사용자 화면, 출처 표시, 직원에게 넘기기, 로그 기록을 갖춥니다.
7. **시범 운영:** 좁은 사용자 범위에서 피드백을 모으며 운영합니다.
8. **운영:** 인덱스 업데이트, 지속적인 측정, 모델 교체 시의 측정을 수행합니다.

## 전형적인 실수

- **문서 저장소를 “있는 그대로”:** 같은 규정의 버전이 세 개 있으면 시스템은 그중 어느 것이든 인용할 수 있습니다.
- **나중에 생각한 접근 권한:** 첫 시연에서는 모든 것이 보이며, 실제 운영에서는 이것이 개인정보 침해 사고가 될 수 있습니다.
- **출처 없는 답변:** 사용자는 답변을 확인할 수 없고, 신뢰하지도 않습니다.
- **지어낸 질문으로 테스트:** 시연용 질문은 잘 작동하지만, 오타가 섞인 실제 헝가리어 질문은 그렇지 않습니다.
- **일회성 적재:** 업데이트가 없으면 지식 베이스는 금세 낡습니다.
- **문자 인식 없는 스캔 PDF:** 시스템은 그 내용을 전혀 보지 못합니다.

## 자주 묻는 질문

### RAG란 무엇입니까?

RAG(retrieval-augmented generation, 검색 증강 생성)는 시스템이 질문마다 먼저 회사 문서에서 관련 부분을 찾고, 언어 모델이 그 내용을 바탕으로 출처를 밝혀 답변하는 방식입니다. 이 용어는 2020년의 한 연구 논문에서 나왔습니다.

### 회사 자체 문서를 바탕으로 헝가리어로 답변합니까?

네. 오늘날의 대규모 언어 모델은 헝가리어도 잘 이해하고 잘 쓰며, 헝가리어 문서로도 작업합니다. 저희 홈페이지의 AI 어시스턴트도 헝가리어로 대화합니다. 서비스 제공업체가 공개한 측정 결과가 항상 헝가리어를 포함하지는 않으므로, 실제 운영 전에 답변하는 모델과 임베딩 모델 모두 회사 자체의 헝가리어 질문으로 측정합니다.

### 모델을 회사 자체 데이터로 학습시켜야 합니까?

일반적으로 그렇지 않습니다. RAG는 질문하는 순간 필요한 부분을 모델에 전달하므로, 지식을 업데이트할 수 있고, 출처를 표시할 수 있으며, 접근 권한을 문서별로 걸러 낼 수 있습니다. 파인튜닝은 답변의 형식이나 어조가 충분히 일관되지 않을 때 고려할 수 있으며, 그때도 RAG를 대신하는 것이 아니라 RAG와 함께 사용합니다.

### 답을 모르면 어떻게 됩니까?

무언가를 지어내는 대신 모른다고 말하고 질문을 직원에게 넘기도록 만듭니다. 모델은 “모르겠습니다”라고 답하는 것을 명시적으로 허용받고, 주어진 자료만으로 작업할 수 있으며, 답하지 못한 질문은 로그에서 다시 가져와 지식 자료를 보완하는 데 씁니다.

### 회사 문서는 어디에 저장됩니까?

지금까지와 같이 원본 시스템에 있습니다. 그 옆에 검색 인덱스가 있는데, 이는 회사 자체 환경에서도, 서비스 제공업체에서도 실행할 수 있습니다. 그리고 모델에는 질문마다 선택된 부분만 서비스 제공업체의 데이터 처리 조건에 따라 전달됩니다. 어떤 방식이 회사에 맞는지는 문서의 민감도와 데이터 보호 요구사항에 따라 달라집니다.

## 저희는 어떻게 도와드립니까?

Mesterséges Intelligencia Központ Kft.는 회사 자체 문서를 바탕으로 헝가리어로도 답변하는 AI 챗봇을 개발합니다. RAG 방식과 출처 표시를 사용하며, OpenAI(ChatGPT), Anthropic(Claude), Google(Gemini)의 언어 모델을 기반으로 합니다. 첫 상담은 무료이며, 개발 규모는 COSMIC 기능점수로 측정하고 이를 바탕으로 견적과 일정을 작성합니다. 요청하시면 비밀유지계약(NDA)을 체결하며, 인도 후에는 지식 자료 업데이트와 작동 상태 모니터링도 맡습니다. 소스 코드와 이용 권리는 계약으로 정합니다.

자세한 내용은 [AI 챗봇과 AI 에이전트](https://www.mestersegesintelligenciakozpont.hu/ko/services/ai-chatbots-and-agents) 페이지와 [AI 통합](https://www.mestersegesintelligenciakozpont.hu/ko/services/ai-integration) 페이지에서 보실 수 있으며, 챗봇과 에이전트 중 무엇이 필요한지는 [챗봇입니까, AI 에이전트입니까?](https://www.mestersegesintelligenciakozpont.hu/ko/knowledge-base/chatbot-vs-ai-agent) 글이 판단을 돕습니다. 회사 문서를 바탕으로 답변하는 시스템을 계획하고 계시다면 [연락처](https://www.mestersegesintelligenciakozpont.hu/ko/contact) 페이지에 안내된 연락처로 메시지를 보내 주시기 바랍니다.

## 출처

- [arXiv: Lewis 외, Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks](https://arxiv.org/abs/2005.11401)
- [OpenAI: Vector embeddings](https://developers.openai.com/api/docs/guides/embeddings)
- [OpenAI: Retrieval](https://developers.openai.com/api/docs/guides/retrieval)
- [OpenAI: File search](https://developers.openai.com/api/docs/guides/tools-file-search)
- [OpenAI: Data controls in the OpenAI platform](https://developers.openai.com/api/docs/guides/your-data)
- [OpenAI: Optimizing LLM Accuracy](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy)
- [OpenAI: Evaluation best practices](https://developers.openai.com/api/docs/guides/evaluation-best-practices)
- [Anthropic: Embeddings](https://platform.claude.com/docs/en/build-with-claude/embeddings)
- [Anthropic: Multilingual support](https://platform.claude.com/docs/en/build-with-claude/multilingual-support)
- [Anthropic: Citations](https://platform.claude.com/docs/en/build-with-claude/citations)
- [Anthropic: Reduce hallucinations](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations)
- [Anthropic: Contextual Retrieval](https://www.anthropic.com/engineering/contextual-retrieval)
- [Google Gemini API: Embeddings](https://ai.google.dev/gemini-api/docs/embeddings)
- [EUR-Lex: 규칙 (EU) 2016/679(일반 데이터 보호 규칙, GDPR)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679)
