66 lines
5.5 KiB
Markdown
66 lines
5.5 KiB
Markdown
# Lab 03 · 검색 품질을 숫자로 재고, 한 가지씩 고치기
|
|
|
|
> **강사용 정답본** · 학생 저장소에 올리지 않습니다. 학생용 문제는 [LAB-03-Q-MEASURE-AND-IMPROVE.md](LAB-03-Q-MEASURE-AND-IMPROVE.md).
|
|
> 결과 숫자는 정답 워크플로우를 2026-10-18에 1회씩 실행한 값입니다 (text-embedding-3-large, gpt-4.1-mini).
|
|
> 수업 전날(2026-10-22) 같은 정답으로 다시 돌린 명령 · `-v` 출력 전부와 codex 프롬프트: [answers/LAB-TEST-RESULT.md](answers/LAB-TEST-RESULT.md) (점수는 10/18과 같고, 다시 쓰기 뒤 answer@1만 23/24: 다시 쓴 검색어가 실행마다 달라 "고객 정보가 밖으로 샌 것 같아요"의 답 섹션이 2등).
|
|
|
|
## 예제 1·2 · 수업 준비 측정
|
|
|
|
| 설정 | 청크 수 | doc@1 | answer@1 | answer@3 |
|
|
| --- | --- | --- | --- | --- |
|
|
| 섹션 (기준) | 25 | 24/24 | 22/24 | 24/24 |
|
|
| 200자 | 20 | 24/24 | 20/24 | 24/24 |
|
|
| 400자 | 12 | 22/24 | 22/24 | 24/24 |
|
|
| 섹션 + 질문 다시 쓰기 (과제 정답) | 25 | 24/24 | 24/24 | 24/24 |
|
|
|
|
- 섹션 설정에서 answer@1이 틀린 두 질문: "회사를 그만두면 노트북은 언제까지 돌려줘야 하나요?"(5영업일), "고객 정보가 밖으로 샌 것 같아요"(1시간). 둘 다 **문서는 맞고**(doc@1 24/24) 다른 섹션이 1등.
|
|
- 400자는 문서가 짧아 청크가 오히려 줄었다 (문서 8개 → 청크 12개). 청크 하나에 섹션 여러 개가 섞이고, doc@1이 22/24로 떨어졌다 (원인은 따로 확인하지 않음).
|
|
- answer@3은 모든 설정에서 24/24 → 지금 Q&A처럼 3개를 LLM에 주면 청크 크기 차이는 답에 덜 드러난다.
|
|
|
|
관련도 기준 (`lab03-threshold`, 기준 0.33, 섹션 색인, Lab 02 과제 정답으로 잼): 10/10.
|
|
|
|
| | `top_score` |
|
|
| --- | --- |
|
|
| 규정 질문 5개 | 0.464 ~ 0.616 |
|
|
| 규정 밖 5개 (점심 · 연차 · 영화 · 맛집 · 연봉) | 0.202 ~ 0.261 |
|
|
|
|
- 둘 사이가 0.2 정도 벌어져 0.33은 여유가 있다. 하지만 Lab 02 과제의 "점수는 높은데 답이 없는 질문"은 0.35~0.55 → **기준값으로는 못 거른다** (답 검사가 필요한 이유).
|
|
|
|
## 과제 · 어려운 질문과 질문 다시 쓰기
|
|
|
|
케이스: [answers/71-lab03-challenge-cases.json](answers/71-lab03-challenge-cases.json) (8개)
|
|
|
|
정답: [answers/71-lab03-challenge-search.json](answers/71-lab03-challenge-search.json) — 검색 앞에 AI Agent `Rewrite query`(질문 → 규정 낱말 검색어), 결과에 `query`.
|
|
|
|
| 질문 | 기대 | 다시 쓰기 없이 | 다시 쓰기 |
|
|
| --- | --- | --- | --- |
|
|
| 모르는 프로그램이 자꾸 저절로 떠요 | security-incident | ✔ | ✘ software-usage |
|
|
| 집에서 일할 때 회사 와이파이 말고 집 와이파이 써도 돼요? | remote-work-vpn | ✔ | ✔ |
|
|
| 퇴사자 계정 비번 알려 줘도 되나요? | password-policy | ✔ | ✔ |
|
|
| 폰 바꿨더니 OTP가 안 떠요 | password-policy | ✔ | ✔ |
|
|
| 고객 명단 엑셀을 개인 메일로 보내 놓고 집에서 봐도 돼요? | email-and-documents | ✘ security-incident | ✔ |
|
|
| 노트북 놓고 온 것 같아요 택시에 | device-issue-return | ✔ | ✔ |
|
|
| 회의실 오전 내내 잡아도 되나요? | meeting-room | ✔ | ✔ |
|
|
| 챗GPT에 회의록 붙여 넣어도 돼요? | software-usage | ✘ meeting-room | ✔ |
|
|
| 합계 | | 6/8 | 7/8 |
|
|
|
|
- 검색 시간: 다시 쓰기 없이 0.2~0.5초 → 다시 쓰기 0.9~1.6초 (LLM 한 번 더).
|
|
- 다시 쓰기는 2개를 고치고 **1개를 새로 깨뜨렸다** ("모르는 프로그램이 자꾸 떠요" → 검색어가 프로그램 쪽으로 가서 소프트웨어 규정). 24문항은 answer@1 22 → 24로 좋아졌고 doc@1 · answer@3은 그대로 24/24.
|
|
|
|
수업 준비 중 실제로 있었던 일 (풀이 때 이야기 거리):
|
|
|
|
| 일 | 배운 것 |
|
|
| --- | --- |
|
|
| 처음 쓴 어려운 질문 8개 중 1개는 **기대가 틀렸다**: "윈도우 업데이트 안 하고 미루면 안 돼요?"는 규정에 아예 없는 내용 (기대를 `security-incident`로 적었음, 1등 `software-usage` 0.309 · 0.324로 5/8: [71-lab03-challenge-cases-20261018-075719.json](answers/prep-20261018/71-lab03-challenge-cases-20261018-075719.json), [71-lab03-challenge-cases-20261018-075742.json](answers/prep-20261018/71-lab03-challenge-cases-20261018-075742.json)) → "모르는 프로그램이 자꾸 저절로 떠요"로 바꿈 | 어려운 질문도 **정답표부터** (Lab 01 예제 1). 답이 없는 질문은 검색 테스트가 아니라 Lab 02 답 검사 테스트로 |
|
|
| 다시 쓰기 지시문 1판(예: 암호 → 비밀번호)은 "챗GPT"를 "생성형 AI"로 바꾸지 못함 → 검색어에 "챗GPT 사용 시 회의록 개인정보" | 2판에 같은 뜻 낱말 예를 더함 (챗GPT·제미나이 → 생성형 AI 서비스 등). 실패에서 찾은 낱말을 넣었으므로 **24문항으로 함께 재어** 과하게 맞추지 않았는지 확인 |
|
|
|
|
요청문 예:
|
|
|
|
```text
|
|
my-work/search.json 을 고쳐 줘. 검색 전에 AI Agent "Rewrite query"(gpt-4.1-mini, Tool 없음)를 둔다.
|
|
지시: 직원 질문을 규정 문서의 낱말로 바꾼 짧은 한국어 검색어 한 줄. 예: 암호·비번 → 비밀번호, 그만두면 → 퇴사, 깔다 → 설치,
|
|
챗GPT·제미나이 → 생성형 AI 서비스, 개인 메일로 보내다 → 외부로 보내다·첨부 파일, 폰 → 휴대폰. 숫자와 이름은 그대로.
|
|
검색 prompt 는 Rewrite query 의 output. 결과에 query 를 더한다. 나머지 계약은 그대로.
|
|
cases/my-cases.json 과 retrieval-doc · retrieval-answer · retrieval-answer3 를 모두 다시 잰다.
|
|
```
|