크레딧이 생겨 관리형 모델로 옮길 수 있게 되면서, 어떤 기능을 어떤 모델에 맡길지 정해야 했습니다. 싼 모델로 바꿔도 되는지, 바꾸면 무엇을 잃는지를 추정이 아니라 같은 조건의 실측으로 확인하려고 이 검토를 시작했습니다.
후보 15종을 같은 기준으로 재서 누적 1,750건의 평가 기록을 남겼습니다. 품질만이 아니라 안전(환각)·단가·월비용·품질 손실을 한 표에 놓고 비교했습니다.
가장 싼 모델로 바꿔도 월 절감액은 크지 않았고, 그 대가는 품질 손실과 데이터 리전 이동이었습니다. 새 측정이 나올 때마다 결론이 바뀌어 권고를 다섯 번 수정했고, 매번 이전 판단을 지우지 않고 시점과 함께 남겼습니다.
아래부터 당시 작성한 기록을 공개용으로 정제한 전문입니다.
기능의 용도·의도·니즈에서 출발해 태스크 특성을 규정하고, 실측 근거로 모델을 확정한다 · 건우(AI) · 2026-07-28
누적 실측 약 1,750건 — 모델 15종 · 리전 2곳 · 실물 영수증 15장 · 실험 A~F + 비용 타협 재검토
팀에 AWS 크레딧 $700이 주어졌고, 현재 AI 기능은 전부 개인 Gemini API 키로 돌아간다. 두 가지 동기가 겹쳤다 — ①비용을 크레딧으로 옮긴다 ②개인 키 의존을 팀 계정으로 정리한다.
그런데 최초 이관 설계(bedrock-migration-design.md)는 "코드 구조상 이관 가능한가"만 판단했다. 두 서비스 모두 교체 가능한 백엔드 팩토리가 있어 구현은 쉽다는 결론이었고, 챗·OCR 모두 "✅ 이관"으로 적혀 있었다.
구현 가능성과 품질 보장은 다른 문제다. 그래서 "증명된 것만 이전한다"를 원칙으로 세우고 전면 실측에 들어갔다.
| 측정 | 무엇을 | 왜 그렇게 |
|---|---|---|
| 본 벤치마크 | 11모델 × (평문 챗 25 + 무말투 구조화 25) | 실제 서비스 프롬프트를 코드에서 원문 추출, 운영 파라미터 그대로. 채점은 프로덕션 가드레일 check_output_grounded를 import해 사용 — 벤치 전용 잣대를 새로 만들지 않았다 |
| OCR | 실물 영수증 13장 + 합성 2장 | 합성만으로는 감열지 난이도를 못 잰다. 실물은 개인정보라 레포 밖 보관 |
| 분류·감정 | 품목분류 25 + 리뷰감정 25 × 4모델 | 챗·OCR이 막힌 뒤 Bedrock이 잘하는 태스크를 역으로 탐색 |
| 실험 A~E | 가드레일 수정·프롬프트 개선·결정성·인젝션·온도 | 모델 교체 외에 품질을 올릴 수단이 있는지 |
| 실험 F (HARD-25) | 다품목·숫자밀집·치환유혹·지식경계·복합제약 | 기존 스위트가 포화(전 모델 25/25)해 우열을 못 가려서 천장 없는 스위트를 새로 설계 |
Nova는 한글 글자 자체를 재현하지 못한다. 영수증에서 삼겹살→"이색", 고리조끼→"가입에이에서"로 통짜 환각했고, 놀랍게도 이미지가 아닌 순수 텍스트에서도 같은 결함이 나왔다(nova-pro: 대파→"냠파", 목살→"리마다"). → OCR 이관 제외 확정.
챗 실패 109건을 분해하니 75%(82건)가 오탐이었다. check_output_grounded가 template 출력만 근거로 보고 유저 질문을 보지 않아서, 사용자가 말한 "대파"·"8천원"을 답변이 되풀이하면 환각으로 오판했다. 근거에 질문을 합산하자 60% → 90%로 올랐다(추가 LLM 호출 없음).
남은 실패는 지식경계 창작(근거에 조리법이 없는데 지어냄)에 집중됐다. 금지 규칙 + 좋은예/나쁜예 few-shot을 넣자 전 모델에서 완전 해소(nova-lite 0/3→3/3, claude-3-haiku 0/3→3/3). 이 시점에 nova-micro(서울)가 25/25로 Gemini와 동률이 되어 이전이 가능해 보였다.
천장 없는 HARD-25로 재측정하니 Gemini 18/25 vs nova-micro 12/25로 갈렸다. 중요한 건 갈린 축이다 — 안전성(환각)은 전 모델 25/25 완전 동률이고, 차이는 정보 완전성에서 났다. nova-micro는 5개 요리를 요약하며 가격 5개를 전부 누락했다.
| 모델 | HARD 종합 | 근거무결(안전) | 숫자보존(완전성) |
|---|---|---|---|
gemini-flash-lite | 18/25 | 25/25 | 18/25 |
gemma-3-27b-tokyo | 18/25 | 25/25 | 18/25 |
glm-47-tokyo | 15/25 | 25/25 | 15/25 |
nova-lite-seoul | 14/25 | 25/25 | 14/25 |
nova-micro-seoul | 12/25 | 25/25 | 13/25 |
식비 앱에서 금액은 핵심 가치다. 43% 절감·2배 속도로도 "얼마인지 안 보이는" 손실은 상쇄되지 않는다 → 챗 Gemini 유지.
⚠️ 중간 결론 — 이후 역전됨: HARD-25 raw 판정이며 §실험 G에서 nova-micro(서울) 이전 확정으로 최종 역전됐다(숫자밀집 경로는 프로덕션이 refine하지 않아 실서비스 경로 20/20 = Gemini 동률). 최종 판정 = 상단 한눈 요약표·기능별 최종 배치. 이 문단을 챗 최종 판정으로 인용하지 말 것.
비용을 줄일 여지를 찾기 위해 웹 리서치로 2026년 요율·평판을 조사해 미검증 후보 10종을 추가 발굴하고, 동일한 HARD-25 프로세스로 재측정했다(신규 250건). 신규 후보: Nova 2 Lite(신세대) · GLM-4.7-flash(저가판) · Gemma-3-12B · Qwen3-next-80B · Kimi K2.5 · Nemotron Nano 3 · DeepSeek V3 · Mistral Large 3 · gpt-oss-120B · MiniMax M2.1.
| 모델 | 리전 | 품질(HARD) | 안전(환각) | 원/콜 | 월비용 | vs Gemini | 품질손실 |
|---|---|---|---|---|---|---|---|
gemma-3-12b-tokyo | 도쿄 | 14/25 | 25/25 | 0.0396원 | 594원 | -598원 | 22% |
nova-micro-seoul | 서울 | 12/25 | 25/25 | 0.0482원 | 723원 | -470원 | 33% |
nemotron-nano3-tokyo | 도쿄 | 14/25 | 24/25 | 0.0774원 | 1,161원 | -32원 | 22% |
gemini-flash-lite | 18/25 | 25/25 | 0.0795원 | 1,192원 | +0원 | 0% | |
nova-lite-seoul | 서울 | 14/25 | 25/25 | 0.0875원 | 1,312원 | +120원 | 22% |
gemma-3-27b-tokyo | 도쿄 | 18/25 | 25/25 | 0.0917원 | 1,376원 | +183원 | 0% |
glm-47-flash-tokyo | 도쿄 | 14/25 | 25/25 | 0.0941원 | 1,412원 | +219원 | 22% |
qwen3-next-80b-tokyo | 도쿄 | 13/25 | 25/25 | 0.1202원 | 1,803원 | +610원 | 28% |
glm-47-tokyo | 도쿄 | 15/25 | 25/25 | 0.1836원 | 2,754원 | +1,562원 | 17% |
gpt-oss-120b-tokyo | 도쿄 | 17/25 | 23/25 | 0.2499원 | 3,748원 | +2,556원 | 6% |
nova-2-lite-seoul | 서울 | 14/25 | 23/25 | 0.2841원 | 4,262원 | +3,069원 | 22% |
mistral-large3-tokyo | 도쿄 | 12/25 | 21/25 | 0.3413원 | 5,120원 | +3,927원 | 33% |
minimax-m21-tokyo | 도쿄 | 13/25 | 24/25 | 0.4949원 | 7,424원 | +6,231원 | 28% |
deepseek-v3-tokyo | 도쿄 | 15/25 | 24/25 | 0.5192원 | 7,788원 | +6,596원 | 17% |
kimi-k25-tokyo | 도쿄 | 13/25 | 23/25 | 0.6039원 | 9,058원 | +7,866원 | 28% |
월비용 = 챗 refine 15,000콜/월(DAU500×1추천), 캐시 0% 최악 가정 · 1,400원/USD · 요율은 2026 공시(웹 리서치)
gemma-3-12b로 바꿔도 월 598원 절약이다. 그 대가는 품질 22% 손실 + 도쿄 리전(데이터 반출). 커피 한 잔 값에 핵심 품질과 레지던시를 판다.nova-lite(서울)는 오히려 Gemini보다 비싸면서 품질은 14/25다. nova-micro만 470원 싸지만 품질 33% 손실.따라서 "약간의 타협"으로 얻을 것이 없다. AI 월 비용이 1천원대라 절감 레버가 애초에 존재하지 않으며, 타협의 대상이 금액 정확도(식비 앱의 핵심 가치)와 데이터 레지던시라 교환비가 극히 불리하다. → 기존 결론 유지: 생성·판독은 Gemini, 분류·구조화만 Bedrock nova-micro(서울).
⚠️ 이 "기존 결론 유지"는 비용 섹션(실험 G 이전) 시점 상태다. 챗 refine은 §실험 G에서 nova-micro(서울) 이전 확정으로 바뀐다 — 이 문단을 챗 최종 판정으로 인용하지 말 것.
비용을 정말 줄이려면 모델 교체가 아니라 호출 자체를 줄이는 레버가 훨씬 크다 — 이미 구현된 Redis 캐시(30일)·recommend-only skip(가격·영양은 template)·거절 시 호출 0이 그것이며, 실제 유료 호출은 위 최악 가정보다 크게 낮다.
앞선 월비용은 캡스톤 규모(DAU 500 · 챗만) 가정이었다. 상용 서비스 수준으로 확장하고, 누가 지불하는가(Bedrock=팀 AWS 크레딧 / Gemini=개인 API 키)를 분리해 다시 계산했다. 전 항목 실측 토큰 기반이며, 영상 토큰만 추정치(1분 영상 ~50K)다.
사용 프로파일(유저 1명/월): 챗 refine 6회 · OCR 8장 · 리뷰 감정 20건 · 구조화 8건 · 영상 0.5건
| 기능 | 월 비용(MAU 50만) | 비중 | 이전 가능성 |
|---|---|---|---|
| 영상→레시피 | 1,862,000원 | 40.7% | ❌ Bedrock에 URL 입력 없음 |
| 영수증 OCR | 1,770,720원 | 38.7% | ❌ Nova 환각·haiku 오독 |
| 구조화 추출 | 436,800원 | 9.5% | ✅ Bedrock 채택 |
| 리뷰 감정분류 | 270,200원 | 5.9% | ✅ Bedrock 채택 |
| 챗 추천 refine | 237,720원 | 5.2% | ⚠️ 품질 33% 손실 |
영상(40.7%) + OCR(38.7%) = 79.4%가 비용의 대부분이고, 그동안 집중 비교한 챗은 5.2%에 불과하다. 그런데 이 79.4%는 둘 다 기술적으로 Bedrock 이전이 불가능하다 — 개인 지출의 큰 덩어리는 구조적으로 못 줄인다.
| 규모 | MAU | A. 전부 Gemini (개인) | B. 실측 권고 (개인 / 크레딧) | C. 챗까지 Bedrock (개인 / 크레딧) | C의 추가 절감 |
|---|---|---|---|---|---|
| 현재(캡스톤) | 500 | 4,577원 | 3,870원 / 247원 | 3,633원 / 392원 | 237원 |
| 소규모 상용 | 5,000 | 45,774원 | 38,704원 / 2,474원 | 36,327원 / 3,921원 | 2,377원 |
| 중규모 상용 | 50,000 | 457,744원 | 387,044원 / 24,745원 | 363,272원 / 39,210원 | 23,772원 |
| 대규모 상용 | 500,000 | 4,577,440원 | 3,870,440원 / 247,450원 | 3,632,720원 / 392,098원 | 237,720원 |
챗을 Bedrock으로 옮겨 얻는 개인 지출 절감은 어느 규모에서든 전체의 2.4%다 — 캡스톤 93원, 대규모 상용에서도 93,072원(전체 386만원 중). 대가는 품질 33% 손실(HARD 18→12, 금액 누락).
| 규모 | B 전략 소모 | B 수명 | C 전략 소모 | C 수명 |
|---|---|---|---|---|
| 현재(캡스톤) | 247원/월 | 999+개월 | 392원/월 | 999+개월 |
| 소규모 상용 | 2,474원/월 | 396개월 | 3,921원/월 | 250개월 |
| 중규모 상용 | 24,745원/월 | 40개월 | 39,210원/월 | 25개월 |
| 대규모 상용 | 247,450원/월 | 4개월 | 392,098원/월 | 2개월 |
캡스톤 규모에서는 크레딧에 여유가 크다(999+개월 = 사실상 무한) — 즉 크레딧 소진을 걱정해 이전을 늦출 이유가 없다. 반면 상용 규모에서는 2~4개월이면 소진되므로 영구 절감이 아니라 일시적 유예로 계획해야 한다. 두 경우 모두 이전 판단의 기준은 크레딧 잔량이 아니라 품질 동등성이며, 실험 G가 그것을 확인했다.
최종: OCR·영상만 Gemini(기술적 이전 불가) · 챗 refine·감정분류·구조화는 Bedrock 서울(품질 동률 확인 후 이전, 크레딧 결제).
"이전 가능한 것은 품질이 최대한 덜 떨어지는 쪽으로 옮긴다"는 목표에 맞춰, 실험 F에서 드러난 실패 원인(금액 누락)을 직접 겨냥한 프롬프트를 만들어 서울 후보를 재측정했다.
| 모델 | HARD 종합 전→후 | 숫자보존 전→후 | 안전(환각) | 프로덕션 경로* | 원/콜 | p50 |
|---|---|---|---|---|---|---|
gemini-flash-lite | 18→24/25 | 18→24/25 | 25/25 | 20/20 | 0.1111원 | 936ms |
nova-micro-seoul | 12→23/25 | 13→23/25 | 25/25 | 20/20 | 0.0670원 | 456ms |
nova-pro-seoul | None→22/25 | None→23/25 | 24/25 | 19/20 | 1.5422원 | 658ms |
nova-2-lite-seoul | 14→19/25 | 14→20/25 | 24/25 | 17/20 | 0.3726원 | 723ms |
nova-lite-seoul | 14→14/25 | 14→16/25 | 23/25 | 12/20 | 0.1192원 | 590ms |
* 프로덕션 경로 = 숫자밀집(영양·가격·재료비) 제외 20케이스. 실제 서비스는 gemini_refine_recommend_only=True라 레시피 추천(recipe_match)만 refine하고 영양·가격은 template 출력이 그대로 나가므로 LLM을 거치지 않는다.
nova-lite는 같은 프롬프트로도 14/25에 정체하고 안전이 25→23으로 하락했다. nova-pro는 22/25지만 단가가 23배(1.5422원). nova-micro가 명확한 최선이다.보관법·가공식품 경계 규칙을 프롬프트에 명시해 재측정했다: nova-lite 18 → 20/25, nova-micro 18 → 17/25. Gemini 25/25와의 격차가 남는다 — 이 태스크는 표기법이 아니라 도메인 상식 판단이라 프롬프트로 좁혀지지 않았다. → 티어7 분류는 Gemini 유지.
서비스 단위가 아니라 태스크 유형으로 모델을 고른다. 같은 기능 안에서도 하위 태스크가 다르면 모델이 갈린다 — 리뷰 감정분석이 그 예다(분류=Nova, 요약=Gemini).
| 태스크 유형 | 선택 | 실측 근거 |
|---|---|---|
| 라벨 분류(감정 등) | Bedrock nova-micro(서울) | 감정 24/25 ≈ Gemini 25/25 · 2.2× 빠름 · 절반 비용 |
| 텍스트→구조화 JSON | Bedrock nova-micro(서울) | 품목 100%·합계 25/25 포화 → 최저가·최속 |
| 한국어 문장 생성 — 근거 재작성(refine) | Bedrock nova-micro(서울) | 숫자보존 프롬프트 적용 시 프로덕션 경로 20/20 = Gemini 동률(실험 G) |
| 한국어 문장 생성 — 자유 요약/서술 | 미실측 — 착수 시 실측 | refine과 성격이 달라 실험 G 결과를 전용할 수 없음 |
| 한국어 이미지 판독 | Gemini | Nova 통짜 환각 · haiku 글자 오독 |
| 도메인 상식 판단 | Gemini | 품목분류 18/25 < 25/25(보관법·가공식품 경계) |
| 영상 이해 | Gemini 전용 | Bedrock에 URL 입력 자체가 없음 |
| 재현성이 곧 자산 | 자체 모델 | NER·랭킹·이상탐지는 LLM 미적용 |
왜 이렇게 갈리나: Nova는 한글 글자를 생성·판독하는 데 약하지만, 입력 텍스트를 읽고 라벨·구조를 뱉는 데는 포화 품질이다. 이 한 문장이 모든 배치를 설명한다.
리전은 성능이 아니라 데이터 레지던시로 정한다 — 동일 모델의 서울/도쿄 지연차는 41ms, 품질차는 오차 범위였다. 도쿄에는 더 강한 모델(GLM-4.7·Gemma)이 있지만 한국 유저 데이터의 일본 반출이라 팀 합의 전까지 쓰지 않는다.
check_output_grounded로 기계 대조.gemini_refine_recommend_only=True). 실제 서비스 경로만 보면 nova-micro 20/20 = Gemini 20/20 완전 동률이며 안전(환각) 25/25도 동일. 게다가 40% 저렴 · 2배 빠름(456ms) · 서울 리전 · 크레딧 결제.apac.amazon.nova-micro-v1:0 · 2순위(품질 우선) apac.anthropic.claude-3-5-sonnet-20241022-v2:0 · AWS 서울claude-3-5-sonnet-v2(2026-07-28 액세스 재확인·호출 가능, 한국어 문서 정평)로 올린다 — 레시피당 1회라 단가($3/$15)를 감당할 수 있다. 제외: nova-lite(안전 25→23 하락), nova-pro(단가 23배 대비 이득 불명확).apac.amazon.nova-micro-v1:0 · AWS 서울| 기능 | 태스크 특성 | 모델 | 리전 | 실측 근거 | 판정 |
|---|---|---|---|---|---|
| 영수증 OCR | 이미지 판독 | gemini-3.5-flash-lite | 합계정합 12/13 vs Nova 1/13·haiku 오독 | 유지 | |
| 챗 refine | 문장 생성 | apac.amazon.nova-micro-v1:0 | AWS 서울 | 프로덕션 경로 20/20 = Gemini 동률(실험 G) | 이전 |
| 영상→레시피 | 영상 이해 | gemini-3.5-flash-lite | Bedrock에 URL 입력 없음 | 전용 | |
| 리뷰 감정분석 | 라벨 분류 | apac.amazon.nova-micro-v1:0 | AWS 서울 | 24/25 ≈ 25/25 · 2.2× · 절반가 | 채택 |
| 리뷰 요약 | 자유 요약 | nova-micro → (대안) claude-3-5-sonnet-v2 | AWS 서울 | 후보 확정 · 구현 후 실측 필요 | 보류 |
| 구조화 추출 | 텍스트→JSON | apac.amazon.nova-micro-v1:0 | AWS 서울 | 품목 100% 포화 → 최저가 | 채택 |
| OCR 티어7 분류 | 도메인 판단 | gemini-3.5-flash-lite | 개선해도 20/25 < 25/25(실험 H) | 유지 | |
| chat-insights 서술 | 자유 서술 | nova-micro | AWS 서울 | 후보 확정 · 구현 후 실측 필요(저우선) | 보류 |
| NER·랭킹·이상탐지 | 비-LLM | CRF / LightGBM / z-score | 온프렘 | 자체 자산 · 외부 의존 배제 | 미적용 |
| # | 조치 | 근거 | 비용 | 시점 |
|---|---|---|---|---|
| 1 | 가드레일에 질문 합산 + 한글수사 정규화 | 실험 A — 60→90%, 81건 회수 | 0원 | 즉시 |
| 2 | refine 프롬프트에 금지규칙 + few-shot | 실험 B — 지식경계 창작 전 모델 해소 | ~0.01원/콜 | 즉시 |
| 3 | temperature 0.3 → 0.0 | 실험 E — 분산 −38%, 품질 동일 | 0원 | 즉시 |
| 4 | 리뷰 감정분석 구현 시 nova-micro(서울) | 감정 24/25 · 2.2× · 절반가 | 절감 | 기능 착수 시 |
| 5 | 구조화 추출 신규 지점에 nova-micro(서울) | 품목 100% 포화 → 최저가 | 절감 | 기능 착수 시 |
| 6 | OCR·영상 = Gemini 유지(→ Vertex 호스팅) · 챗 refine = nova-micro 이전(실험 G) | HARD-25·실물 13장·실험 G | 현행/절감 | 확정 |
1~3은 모델과 무관하게 현행 Gemini에도 즉시 이득이므로 이관 여부와 별개로 먼저 적용한다.
이 프로젝트의 결론은 일곱 번 바뀌었다. 각 전환은 추측이 아니라 새 실측이 이전 판단을 반증하며 일어났다. 아래는 그 순서와 근거다.
| # | 단계 | 그때의 결론 | 뒤집은 근거 |
|---|---|---|---|
| 1 | 최초 이관 설계 | 챗·OCR 모두 ✅ 이관 가능 | 코드에 교체 가능한 백엔드 팩토리가 있어 구현이 쉽다고 판단 — 품질은 보지 않음 |
| 2 | 전제 점검 | Bedrock에 Gemini가 없다 | Bedrock 카탈로그는 Claude·Nova·Llama 등 — Gemini는 Google 소유라 부재. 이관 = 엔드포인트 교체가 아니라 모델 교체임이 확정 |
| 3 | OCR 실측 | OCR ❌ 이관 불가 | 실물 13장에서 Nova가 한글 품목명을 통짜 환각(파싱 5/13·정합 1/13). claude-3-haiku도 글자 오독 |
| 4 | 본 벤치마크 550건 | 챗 ⏸️ 보류 | 11모델 × 50케이스. 서울 최선 nova-micro 16/18 < Gemini 18/18 |
| 5 | 실험 A·B | 챗 🟡 동률 도달 | 가드레일 오탐 82/109 수정(60→90%) + 프롬프트 few-shot → nova-micro 25/25 = Gemini |
| 6 | 실험 F (HARD-25) | 챗 ❌ Gemini 우월 | 25/25는 천장 효과였음. 천장 없는 스위트에서 Gemini 18 vs nova-micro 12 — 금액 누락이 원인 |
| 7 | 실험 G (최종) | 챗 ✅ 이전 확정 | 실패 원인(금액 누락)을 겨냥한 숫자보존 프롬프트 → nova-micro 12→23/25. 남은 실패는 프로덕션이 refine하지 않는 경로라 실제 서비스 경로는 20/20 동률 |
배운 것: ①구현 가능성 ≠ 품질 보장 · ②측정 스위트가 포화하면 우열을 못 가린다(천장 효과) · ③실패 원인을 특정하면 프롬프트로 상당 부분 복구된다 — 모델을 바꾸기 전에 가드레일·프롬프트를 먼저 보라.
[계정 정보 비공개] · 리전 ap-northeast-2(서울) / ap-northeast-1(도쿄)global.(예 global.anthropic.claude-haiku-4-5-20251001-v1:0) / Nova=apac.(예 apac.amazon.nova-lite/micro/pro-v1:0) (예외: global.amazon.nova-2-lite-v1:0은 global 프리픽스)bedrock-runtime.converse (boto3)AccessDeniedException(403): "not authorized to perform the required AWS Marketplace actions (aws-marketplace:ViewSubscriptions, aws-marketplace:Subscribe)" — Claude는 Bedrock에서 Marketplace 구독형(3rd-party)이라 계정 구독 + IAM 권한이 필요하다. Nova는 Amazon 1st-party라 무관. get_foundation_model_availability도 geonu 권한 밖(스코프 정책).
해제 방법: 계정 owner가 Bedrock 콘솔(리전=서울) Model access에서 Anthropic 활성화 + mp-dev 그룹에 aws-marketplace:ViewSubscriptions 부여. 구형 Claude 3/3.5는 액세스 없이도 호출되어 측정에 포함했다.
ocr-poc-receipts/receipt_0001~0013 — 로컬 비공개 보관 · 개인정보 포함으로 Git 미추적. ocr-model-benchmark.md가 쓴 것과 동일 세트.docs/assets/ocr/receipt_synth_{clean,degraded}.jpg(레포 내)services/ocr/app/pipeline/backend/vision.py의 _SYSTEM, services/chat/app/pipeline/generator/gemini.py의 _SYSTEM-latest 별칭이 상위 세대로 롤링되며 thinking_budget=0이 거부되어(400) OCR이 전량 실패한 사고가 있었다(PR #272). 이후 gemini-3.5-flash-lite로 버전 핀 고정하고 thinking은 하한 미만 작은 양수(1)로 사실상 OFF. 별칭 사용 금지가 팀 규칙이다.
합성 clean/degraded에서 Gemini 계열은 11/12 필드를 맞혔으나 Nova는 ≈6/12(품목명 0/4)로 실패했다(Lite: 삼겹살→"이색", Pro: "삼양라면"으로 창작). Tesseract는 저품질에서 0/12 · 빈 출력. 이 합성 실패가 실물 13장 측정으로 이어졌다.
| 항목 | 상태 | 영향 |
|---|---|---|
| Claude 4.5 (Haiku/Sonnet) | 액세스 미개통 | 2026-07-28 재확인 결과 여전히 차단(AccessDeniedException — marketplace 권한). 봉수가 서울 Model access enable + geonu에 aws-marketplace:ViewSubscriptions 부여 시 측정 가능. Claude는 한글 판독력이 구형(3-haiku)에서도 Nova보다 나았으므로 OCR·챗 판정을 바꿀 수 있는 유일한 후보 |
| 도쿄 리전 사용 허용 | 팀 합의 필요 | 허용 시 Gemma-3-27B(HARD 18/25로 Gemini와 동률)가 챗 후보로 즉시 승격 |
| HARD-25 자체의 한계 | 소표본 | 25케이스·단일 시행. 순위는 견고하나 절대% 는 물렁 — 카나리로 실사용 검증 권장 |
ai-model-migration-benchmark.md(550건 벤치·요금) · ai-model-quality-uplift.md(실험 A~F) · bedrock-migration-design.md(이관 설계) · ai-features-roadmap.md(기능 로드맵). 측정 2026-07-28 · 채점은 프로덕션 가드레일 import.