docs: expand Company X grounding research

This commit is contained in:
Claude-51124 2026-03-12 22:11:45 +09:00
parent e147d3ff0c
commit a253b65eaf

View File

@ -120,6 +120,84 @@ tags: [robeing, companyx, rag, research, internal-documents, grounding]
- 또한 관련 원본 문서가 `skill-rag-file` 인덱스에 들어가 있지 않다. - 또한 관련 원본 문서가 `skill-rag-file` 인덱스에 들어가 있지 않다.
- 즉 현재 실패 원인은 `Company X 문서가 실제로 없어서`가 아니라, `있지만 로빙 답변 경로와 연결되지 않아서`다. - 즉 현재 실패 원인은 `Company X 문서가 실제로 없어서`가 아니라, `있지만 로빙 답변 경로와 연결되지 않아서`다.
### 9. 현재 로빙 임베딩 경로 기준 실제 문서 인덱싱 시간은 수초~수십초가 아니라 수초 단위다
- `skill-rag-file` 실제 `/api/upload` 경로로 Company X 문서 2개를 직접 인덱싱해 시간을 확인했다.
- 유효한 기존 team_id를 사용해 `업로드 -> 텍스트 추출 -> 청킹 -> 임베딩 -> Chroma 저장`까지 포함한 전체 시간을 측정했다.
- 측정 결과:
- `옐로펀치X컴퍼니엑스 MOU` PDF `130,944B`: `0.608초`, `5 chunks`
- `오늘전통 사업계획서_컴퍼니엑스` PDF `12,937,755B`: `8.371초`, `104 chunks`
- 인덱싱 후 검색 시간도 확인했다.
- 질의 `공동 컨소시엄 협력`
- 검색 응답 시간: `0.059초`
- 결과: MOU 문서 청크 1건 반환
### 10. 현재 로빙 임베딩 모델은 384차원이고, StarsAndI가 쓰는 OpenAI 임베딩은 1536차원이다
- 현재 로빙 `skill-embedding` 런타임 설정은 아래와 같다.
- 모델: `multilingual-MiniLM-L12-v2`
- 차원: `384`
- 확인 근거:
- `skill-embedding/.env`
- `rb8001` 런타임 로그의 `Collection expecting embedding with dimension of 768, got 384`
- 비교 대상으로 본 StarsAndI 코드의 OpenAI 임베딩 경로는 아래와 같다.
- 모델: `text-embedding-3-small`
- 차원: `1536`
- 확인 근거:
- `starsandi/apps/apps/api-py/app/services/recommend.py`
- 실제 OpenAI 임베딩 API 호출 결과 `dim=1536`
### 11. OpenAI 임베딩 단건 호출 시간은 현재 환경에서 대략 0.2초~3초, 평균 1.8초 수준이다
- StarsAndI가 쓰는 실제 모델 `text-embedding-3-small`로 대표 질문 1건을 3회 호출해 시간을 측정했다.
- 측정 결과:
- 1회: `2966.1ms`
- 2회: `2226.3ms`
- 3회: `234.3ms`
- 평균: `1808.9ms`
- 따라서 OpenAI 임베딩은 현재 환경에서 단건 기준 대략 `0.2초 ~ 3초`, 보통 `약 2초` 안팎으로 보는 것이 맞다.
### 12. 2,000개 쉬운 문서 기준 인덱싱 시간은 로컬 모델이 더 짧고, OpenAI 모델도 절대 시간이 과도하지는 않다
- 현재 로빙 로컬 임베딩 경로(`384d`) 기준 현실 추정:
- 쉬운 문서 평균 `0.6초 ~ 2초/문서`
- `2,000개` 문서: 약 `20분 ~ 67분`
- OpenAI 임베딩 경로(`1536d`) 기준 현실 추정:
- 네트워크 왕복 포함 평균 `2.5초 ~ 4초/문서`
- `2,000개` 문서: 약 `83분 ~ 133분`
- 따라서 `2,000개 쉬운 문서` 범위는 두 경로 모두 `몇 시간 이내`에 검증 가능하다.
### 13. OpenAI 임베딩 비용은 2,000개 문서 규모에서는 병목이 아니다
- `text-embedding-3-small`의 현재 공식 가격은 `1M tokens당 $0.02`다.
- 문서당 평균 토큰 수를 가정한 대략 비용:
- `1,000 tokens x 2,000문서 = 2M tokens` -> 약 `$0.04`
- `2,000 tokens x 2,000문서 = 4M tokens` -> 약 `$0.08`
- `5,000 tokens x 2,000문서 = 10M tokens` -> 약 `$0.20`
- 따라서 이번 주제에서 OpenAI 임베딩 선택의 핵심 기준은 비용보다 `품질`, `속도`, `운영 단순성`이다.
### 14. 품질 비교 테스트는 지금 바로 설계 가능한 상태다
- 현재 단계에서 가능한 최소 품질 테스트는 아래 구조다.
- Company X 질문 `20~50개`를 고정한다.
- 각 질문에 대해 사람이 `정답 근거 문서`를 1차 지정한다.
- 같은 문서셋을 `384d 로컬 모델``1536d OpenAI 모델`로 각각 인덱싱한다.
- 같은 질문셋을 돌려 `정답 문서가 상위 결과에 들어오는지`를 비교한다.
- 이 비교는 아직 답변 생성 LLM 품질이 아니라, `검색 근거 품질`을 먼저 비교하는 테스트다.
- 현재 문제의 본질이 `근거 연결`인 점을 고려하면, 이 단계에서는 생성 답변보다 `retrieval quality`를 먼저 보는 것이 맞다.
### 15. 품질 비교에서 바로 쓸 수 있는 지표는 이미 정리할 수 있다
- `Recall@5`
- 정답 근거 문서가 상위 5개 안에 들어오는지
- `MRR`
- 정답 근거 문서가 평균 몇 위에 오는지
- `근거 문단 사용 가능성`
- 사람이 봤을 때 바로 답변 근거로 쓸 수 있는 청크인지
- `응답 시간`
- 인덱싱 시간, 검색 시간
- 현재 단계에서 가장 중요한 지표는 `정답률`보다 `근거 일관성``상위 검색 적중률`이다
## Interpretation ## Interpretation
### 1. 아이디어 문서는 유효한 가설이다 ### 1. 아이디어 문서는 유효한 가설이다
@ -151,6 +229,20 @@ tags: [robeing, companyx, rag, research, internal-documents, grounding]
- `문서 표현은 공동 운영/협력 운영/협력기관으로 조금씩 다르다` - `문서 표현은 공동 운영/협력 운영/협력기관으로 조금씩 다르다`
를 함께 답하는 편이 더 정확하다. 를 함께 답하는 편이 더 정확하다.
### 5. 현재 단계에서 전체 5만여 개를 먼저 넣는 것보다 2천 개 샘플 품질 비교가 더 맞다
- 전체 `52,833개` 경로를 한 번에 인덱싱하는 것은 가능하더라도, 지금 필요한 질문은 `될 수 있는가`보다 `어떤 모델/경로가 더 낫고 실제 근거 검색이 맞는가`다.
- 이미 시간 측정상 `2,000개 쉬운 문서` 범위는 현실적으로 `1~2시간대` 안에서 비교 가능하다.
- 따라서 다음 `plans`는 먼저 `대표 문서군 2,000개 내외 샘플 인덱싱 + 20~50개 질문셋 품질 비교`를 우선 고정하는 것이 맞다.
### 6. 임베딩 모델 선택 기준은 비용보다 검색 품질과 운영 복잡도다
- 비용 차이는 `2,000개` 규모에서는 매우 작다.
- 실제 선택 기준은 아래가 된다.
- `384d 로컬`: 빠름, 외부 의존 적음, 운영 단순
- `1536d OpenAI`: 네트워크 의존, 약간 느림, 그러나 품질 우위 가능성 존재
- 즉 다음 계획 단계에서 해야 할 것은 `이론 비교`가 아니라 `같은 질문셋으로 실제 retrieval quality를 비교하는 실험`이다.
## Unresolved ## Unresolved
1. Company X 소속 사용자 판별 기준 1. Company X 소속 사용자 판별 기준
@ -169,12 +261,20 @@ tags: [robeing, companyx, rag, research, internal-documents, grounding]
5. 질문 해석 규칙 5. 질문 해석 규칙
- `근거 있어?`, `자료 기준으로`, `내부 문서 기준으로` 같은 표현을 별도 의도로 볼지, 일반 질문에 Company X 컨텍스트를 자동 적용할지 아직 미정이다. - `근거 있어?`, `자료 기준으로`, `내부 문서 기준으로` 같은 표현을 별도 의도로 볼지, 일반 질문에 Company X 컨텍스트를 자동 적용할지 아직 미정이다.
6. 샘플 문서셋 구성
- `2,000개 쉬운 문서`를 어떤 기준으로 뽑을지 아직 정해지지 않았다.
- 오늘전통, MOU, 프로그램 소개, 운영안, 보도자료 초안 같은 문서군 우선순위를 먼저 고정해야 한다.
7. OpenAI 1536d와 로컬 384d의 실제 검색 품질 비교 결과
- 현재는 시간/비용/구조 확인만 끝났고, retrieval quality 비교 실험 결과는 아직 없다.
## 현재 결론 ## 현재 결론
- 대표 질문에 대한 현재 실제 로빙 답변은 기대 시나리오를 만족하지 못한다. - 대표 질문에 대한 현재 실제 로빙 답변은 기대 시나리오를 만족하지 못한다.
- 그러나 내부 NAS 원본에는 관련 근거 문서가 실제로 존재한다. - 그러나 내부 NAS 원본에는 관련 근거 문서가 실제로 존재한다.
- 현재 실패 원인은 `Company X 근거 없음`이 아니라 `Company X 근거 문서가 런타임 RAG 경로와 연결되지 않음`이다. - 현재 실패 원인은 `Company X 근거 없음`이 아니라 `Company X 근거 문서가 런타임 RAG 경로와 연결되지 않음`이다.
- 따라서 다음 단계 `plans``문서 색인`, `권한 경계`, `질문 해석`, `근거답변 형식`을 한 번에 고정하는 계획 문서여야 한다. - 시간과 비용 조사 결과, `2,000개 쉬운 문서` 규모는 실험 가능한 범위이며 비용도 병목이 아니다.
- 따라서 다음 단계 `plans``2,000개 샘플 문서셋`, `20~50개 질문셋`, `384d vs 1536d retrieval quality 비교`, `문서 색인`, `권한 경계`, `질문 해석`, `근거답변 형식`을 한 번에 고정하는 계획 문서여야 한다.
## 관련 문서 ## 관련 문서
- [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md) - [Company X 내부 문서 RAG 응답 아이디어](../ideas/260312_companyx_내부문서_rag_응답_아이디어.md)