한국에이아이랩
경력근거: 폐쇄망 환경에 직접 모델을 올리고 제약 속에서 최적의 성능을 이끌어내는
※ 실제 산출물이 아닌 AI 예측 시안입니다.
한국에이아이랩은 정부·의료·금융·국방처럼 클라우드를 못 쓰는 폐쇄망 시장을 정조준한 On-Premise First 회사로, H100 폐쇄망과 DGX 서버를 자체 보유합니다. 어떤 질문이 어떤 사내 문서로 풀리고 어디까지 보여줘도 되는지는 한국에이아이랩의 폐쇄망 고객 문서·권한 체계가 있어야 의미가 있고, ‘근거 인용 답변 → 검증 → 온프레미스 호스팅’ 사슬은 다른 회사 데이터로는 그대로 만들 수 없습니다.
‘OpenAI API 호출만으로는 못 푸는 시장’ 을 정조준한 On-Premise First 회사입니다. 폐쇄망 제약 안에서 근거 인용·보안 가드가 핵심입니다.
모델을 호출하는 데 그치지 않고 폐쇄망에 올려 제약 속 성능을 끌어냅니다. RAG 검색·근거 인용으로 환각을 막는 게 1주 완결 단위입니다.
공공 R&D·SI 라인업을 확보한 회사입니다. 정부·의료·금융처럼 데이터가 밖으로 못 나가는 현장에 그대로 들어가는 도구가 필요합니다.
폐쇄망 안의 사내 문서를 색인해 한 화면에서 질문하고 답을 받습니다. LLM 이 답과 함께 근거 문서·문단을 인용하고, 기밀·개인정보 등급을 검사해 권한 밖 내용은 가립니다. 1주차만으로 완성품이고, 답이 정답과 맞는지 검증(2주차)·온프레미스 모델 직접 호스팅(3주차)으로 키웁니다.
한국에이아이랩 FDE. 폐쇄망 고객사에서 ‘이 문서 어디에 그 내용이 있냐’ 를 매번 사람이 뒤지던 일을 끝내고, 답마다 근거를 달고 보안 등급까지 지키는 상태로 만들고 싶은 사람입니다.
사내 문서를 한 색인으로 묶고 보안 등급을 붙이면, LLM 이 (a) 질문에 근거 문서를 인용해 답하고 (b) 권한 밖 기밀·개인정보를 가드하며, (c) 정답 세트와 맞춰 그 답이 옳았는지 검증합니다.
사내 문서를 색인해 질문에 근거 문서를 인용해 답하고, 권한 밖 기밀·개인정보를 가리는 동작하는 도구입니다. 온프레미스 모델 직접 호스팅은 W3 로 미루고 W1 은 사내 API/오픈웨이트 모델 호출을 가정해 1주에 혼자 완성합니다.
정답 질문-근거 세트로 답의 근거 인용 정확도를 측정하고, 도메인 검토자 2명이 답이 타당한지 라벨링해 정확도·신뢰도를 보여주는 대시보드입니다.
사내 API 가정을 걷어내고 오픈웨이트 모델을 폐쇄망 GPU 에 직접 올려, 외부 호출 없이 같은 품질로 도는 단계입니다.
질문 한 건을 넣으면, 답과 근거 문서·문단 인용, 보안 등급 판정이 몇 초 안에 나오는 걸 시연합니다
일부러 만든 악성·결측 입력 30종(권한 밖 질문·근거 없는 질문·기밀 유도)을 넣어도 출력 형식(Zod 스키마)이 안 깨지고 권한 밖 내용이 가려지는 걸 보여줍니다
매일 아침 슬랙으로 색인·질의 리포트가 자동 발송되는 걸 14일치 시연으로 보여줍니다
내가 만든 정답 30개 중 근거 인용이 정답 근거와 일치한 게 25개(83%)입니다. 단, 정답과 데이터를 모두 작성자가 만든 합성 기준이라 ‘성능 검증’ 이 아니라 ‘데모 조건에서의 동작’ 임을 밝힙니다
진짜 성능 검증은 여기서 멈춥니다. 위 수치는 전부 작성자가 만든 더미데이터 자가채점이며, 실제 인용 정확도·가드 정확도는 한국에이아이랩 실 폐쇄망 문서와 실 권한 체계가 있어야 측정됩니다. 이 도구는 그 검증을 바로 돌릴 수 있는 상태까지 만듭니다
이건 고객·실데이터 없이 혼자 만든 포트폴리오입니다. 모든 수치는 합성 데이터 자가채점이라 ‘성능 증명’ 이 아닙니다. 면접에서 ‘데모 조건 동작 + 실검증 준비 상태’ 로 솔직히 설명합니다
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 헷갈리는 권한 밖 질문·근거 없는 질문·경계 케이스를 더미에 일부러 섞어, 쉬운 문제만 푸는 게 아님을 보여줍니다
LLM 이 문서에 없는 내용을 그럴듯하게 지어내거나 권한 밖 청크를 인용하는 위험이 있습니다. 근거 인용을 강제하고, 인용 청크가 색인에 실재하며 권한 안인지 자동 검사해 위반이면 차단합니다
문서 출처·버전 표기가 제각각입니다. 출처 정규화 + 최신 버전 우선으로 묶고, 못 묶은 건 추측하지 말고 ‘출처 불명’ 으로 알립니다
실제 도입 시 달라지는 점을 명시합니다. 실 폐쇄망 문서 분포·권한 규정은 더미와 다르므로 보안 등급 기준을 다시 맞춰야 하고, 도메인 검토자도 실제 인력으로 교체해야 합니다(도입 단계 과제로 분리)
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
폐쇄망 사내 문서 청크입니다. RAG 검색·근거 인용의 진실원입니다. 운영 현실대로 서로 충돌하는 버전·근거 없는 주제·민감 내용을 일부러 섞어, 쉬운 문제만 푸는 게 아님을 보여줍니다.
국내 출장 일비는 1일 3만원이며 영수증 첨부 시 실비 정산합니다. 숙박은 1박 10만원 한도입니다.
국내 출장 일비는 1일 2만원입니다.
아래 Zod 스키마에 맞는 폐쇄망 사내 문서 청크 40개 JSON 배열로 생성. 주제(총무·인프라·HR·영업·보안) 분포 포함.
{"type":"object","properties":{"doc_id":{"type":"string"},"chunk_id":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"source_raw":{"type":"string"},"version":{"type":["string","null"]},"sec_level":{"type":"string","enum":["public","internal","confidential","pii"]}},"required":["doc_id","chunk_id","title","body","source_raw","version","sec_level"]}
쉬운 데이터만 만들지 말 것. 다음 하드 케이스를 의도적으로 섞어라(쉬운 문제만 푸는 함정 회피): (1) 같은 주제의 버전 충돌(출장 일비 v1 2만원 vs v3 3만원처럼 최신 버전이 이겨야 함), (2) version=null(버전 미상) 1~2건, (3) sec_level=pii/confidential 청크 각 2건 이상(권한 가드 테스트용), (4) 근거가 빈약해 답하기 어려운 짧은 청크 1~2건. JSON 배열만.{"type":"object","properties":{"doc_id":{"type":"string"},"chunk_id":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"source_raw":{"type":"string"},"version":{"type":["string","null"]},"sec_level":{"type":"string","enum":["public","internal","confidential","pii"]}},"required":["doc_id","chunk_id","title","body","source_raw","version","sec_level"]}사용자 역할별 열람 가능 보안 등급 매트릭스입니다. 보안 가드가 권한 밖 청크를 가릴 때 참조하는 정답입니다. 권한 경계와 미정의 역할을 섞어, 가드가 경계·미매핑을 만났을 때도 안 깨지는지 보여줍니다.
| role_id | role_name | allowed_levels | team_id |
|---|---|---|---|
| r_all | 전직원 | ["public","internal"] | — |
| r_eng | 엔지니어 | ["public","internal","confidential"] | t_eng |
| r_hr | 인사담당 | ["public","internal","pii"] | t_hr |
| r_biz | 영업 | ["public","internal","confidential"] | t_biz |
| r_exec | 임원 | ["public","internal","confidential","pii"] | — |
아래 Zod 스키마에 맞는 access_policy 15행 JSON 배열로 생성. 역할별 열람 가능 보안 등급 매트릭스.
{"type":"object","properties":{"role_id":{"type":"string"},"role_name":{"type":"string"},"allowed_levels":{"type":"array","items":{"type":"string","enum":["public","internal","confidential","pii"]}},"team_id":{"type":["string","null"]}},"required":["role_id","role_name","allowed_levels","team_id"]}
쉬운 데이터만 만들지 말 것. 하드 케이스 의도적 혼입: (1) public 만 허용된 최소권한 역할 2건(인턴·외부 협력사), (2) team_id=null(전사 공통 역할) 다수, (3) pii 허용 역할은 HR·임원·보안담당으로 한정. JSON 배열만.{"type":"object","properties":{"role_id":{"type":"string"},"role_name":{"type":"string"},"allowed_levels":{"type":"array","items":{"type":"string","enum":["public","internal","confidential","pii"]}},"team_id":{"type":["string","null"]}},"required":["role_id","role_name","allowed_levels","team_id"]}| Python | ingest·청크 파이프라인 + RAG 오케스트레이션(검색→가드→생성) + eval 스크립트 |
| FastAPI | 질의응답 API(질문 입력 → output_schema 반환) + 일일 색인 리포트 봇 |
| PostgreSQL | 문서·청크·권한·정답 세트 단일 진실원 + 검증 결과 저장 |
| pgvector | 문서 청크 임베딩 색인 + 의미 검색(근거 후보 추출) |
| Spark | 대용량 사내 문서 배치 색인·청크 전처리(W3 온프레미스 규모 대비) |
| Docker | 폐쇄망 동일 환경 재현 배포(색인·API·모델 컨테이너) |
✓ pass → 그대로 멈춰도 완결입니다. 더 키우려면 2주차(답이 정답과 맞는지 검증)로 진행합니다.
✓ pass → 여기서 멈춰도 완결입니다. 더 키우면 3주차(온프레미스 모델 직접 호스팅)로 진행합니다.
1) 질문별 근거 인용 답변(답·근거 청크·완곡 표현), 2) 보안 등급 가드 판정(가린 청크·사유), 3) 정답 근거로 인용 적중 검증. 질의→인용→검증 한 주기를 한 스키마에 담습니다.
{"type":"object","properties":{"period":{"type":"string"},"answers":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"role_id":{"type":"string"},"answer":{"type":"string","minLength":10},"citations":{"type":"array","items":{"type":"object","properties":{"chunk_id":{"type":"string"},"sec_level":{"type":"string","enum":["public","internal","confidential","pii"]}},"required":["chunk_id","sec_level"]},"minItems":1},"masked_chunks":{"type":"array","items":{"type":"object","properties":{"chunk_id":{"type":"string"},"reason":{"type":"string"}},"required":["chunk_id","reason"]}},"hedge":{"type":["string","null"],"minLength":8}},"required":["question","role_id","answer","citations","masked_chunks","hedge"]},"minItems":3,"maxItems":8},"verification":{"type":["object","null"],"properties":{"prior_period":{"type":"string"},"citation_match_rate":{"type":"number"},"guard_precision":{"type":"number"},"checks":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"cited_chunk":{"type":"string"},"gold_chunk":{"type":"string"},"match":{"type":"boolean"},"confidence_prob":{"type":"number"}},"required":["question","cited_chunk","gold_chunk","match","confidence_prob"]}}},"required":["prior_period","citation_match_rate","guard_precision","checks"]}},"required":["period","answers","verification"]}[
{
"input_ref": "2026-05-11 주간 (verification 은 직전 주 답변 결과)",
"output": {
"period": "2026-05-11",
"answers": [
{
"question": "국내 출장 일비는 얼마인가요?",
"role_id": "r_all",
"answer": "국내 출장 일비는 1일 3만원이며 영수증 첨부 시 실비 정산됩니다.",
"citations": [
{
"chunk_id": "d001_c1",
"sec_level": "internal"
}
],
"masked_chunks": [],
"hedge": "구버전(v1 2만원)과 충돌하나 최신 v3 기준으로 답합니다."
},
{
"question": "홍길동 책임 연락처 알려줘",
"role_id": "r_all",
"answer": "요청하신 내용은 개인정보(PII)로 전직원 권한으로는 열람할 수 없습니다.",
"citations": [
{
"chunk_id": "d010_c1",
"sec_level": "public"
}
],
"masked_chunks": [
{
"chunk_id": "d003_c1",
"reason": "sec_level=pii, 전직원 권한 밖"
}
],
"hedge": "권한 밖 청크는 가렸습니다. 인사담당 권한 필요."
},
{
"question": "GPU 서버 외부 접근이 되나요?",
"role_id": "r_eng",
"answer": "H100 폐쇄망 노드는 외부 네트워크 접근이 차단됩니다.",
"citations": [
{
"chunk_id": "d002_c1",
"sec_level": "confidential"
}
],
"masked_chunks": [],
"hedge": "엔지니어 권한으로 confidential 열람 가능."
}
],
"verification": {
"prior_period": "2026-05-04 ~ 2026-05-10 답변",
"citation_match_rate": 0.83,
"guard_precision": 1,
"checks": [
{
"question": "출장 일비?",
"cited_chunk": "d001_c1",
"gold_chunk": "d001_c1",
"match": true,
"confidence_prob": 0.85
},
{
"question": "휴가 일수?",
"cited_chunk": "d006_c1",
"gold_chunk": "d006_c1",
"match": true,
"confidence_prob": 0.8
},
{
"question": "SLA 응답시간?",
"cited_chunk": "d004_c1",
"gold_chunk": "d007_c1",
"match": false,
"confidence_prob": 0.6
}
]
}
}
},
{
"input_ref": "2026-05-18 주간",
"output": {
"period": "2026-05-18",
"answers": [
{
"question": "A고객사 구축 단가 얼마야?",
"role_id": "r_eng",
"answer": "해당 단가는 계약상 대외비로 엔지니어 권한으로는 제공할 수 없습니다.",
"citations": [
{
"chunk_id": "d005_c1",
"sec_level": "internal"
}
],
"masked_chunks": [
{
"chunk_id": "d008_c1",
"reason": "sec_level=confidential 이나 계약 대외비, 영업·임원 한정"
}
],
"hedge": "권한 정책상 영업·임원만 열람 가능."
},
{
"question": "온프레미스 추론 목표 응답시간은?",
"role_id": "r_eng",
"answer": "온프레미스 추론 API 의 목표 응답시간은 P95 기준 2초입니다.",
"citations": [
{
"chunk_id": "d007_c1",
"sec_level": "confidential"
}
],
"masked_chunks": [],
"hedge": null
},
{
"question": "회사가 뭐 하는 곳이야?",
"role_id": "r_guest",
"answer": "한국에이아이랩은 On-Premise First AI 회사로 공공·금융 폐쇄망 시장을 다룹니다.",
"citations": [
{
"chunk_id": "d010_c1",
"sec_level": "public"
}
],
"masked_chunks": [],
"hedge": "외부 협력사 권한으로 public 만 제공."
}
],
"verification": {
"prior_period": "2026-05-11 ~ 2026-05-17 답변",
"citation_match_rate": 0.83,
"guard_precision": 1,
"checks": [
{
"question": "GPU 외부접근?",
"cited_chunk": "d002_c1",
"gold_chunk": "d002_c1",
"match": true,
"confidence_prob": 0.8
},
{
"question": "보안 서약?",
"cited_chunk": "d009_c1",
"gold_chunk": "d009_c1",
"match": true,
"confidence_prob": 0.85
},
{
"question": "납품 절차?",
"cited_chunk": "d010_c1",
"gold_chunk": "d005_c1",
"match": false,
"confidence_prob": 0.6
}
]
}
}
},
{
"input_ref": "2026-05-18 주간 (verification 은 직전 주 답변 결과)",
"output": {
"period": "2026-05-18",
"answers": [
{
"question": "인턴도 재무 마감 자료를 볼 수 있나요?",
"role_id": "r_intern",
"answer": "재무 마감 자료는 인턴 권한 밖이라 열람할 수 없습니다. 재무팀 승인을 받은 뒤 다시 물어 주십시오.",
"citations": [
{
"chunk_id": "d001_c2",
"sec_level": "public"
}
],
"masked_chunks": [
{
"chunk_id": "d005_c1",
"reason": "sec_level=confidential, 인턴 권한 밖"
}
],
"hedge": "권한 밖 청크를 가려 근거가 공개 문서 하나뿐입니다."
},
{
"question": "외주 계약 단가는 어디에 적혀 있나요?",
"role_id": "r_biz",
"answer": "계약 단가 문단을 찾지 못해 답하지 않았습니다. 계약 문서가 아직 색인에 없을 수 있습니다.",
"citations": [
{
"chunk_id": "d004_c1",
"sec_level": "internal"
}
],
"masked_chunks": [],
"hedge": "근거가 약해 단가를 옮겨 적지 않았습니다."
},
{
"question": "사내 GPU 노드는 몇 대인가요?",
"role_id": "r_eng",
"answer": "폐쇄망 H100 노드 구성이 인프라 문서에 적혀 있습니다.",
"citations": [
{
"chunk_id": "d002_c1",
"sec_level": "confidential"
}
],
"masked_chunks": [],
"hedge": null
}
],
"verification": {
"prior_period": "2026-05-11 ~ 2026-05-17 답변",
"citation_match_rate": 0.75,
"guard_precision": 1,
"checks": [
{
"question": "출장 일비?",
"cited_chunk": "d001_c1",
"gold_chunk": "d001_c1",
"match": true,
"confidence_prob": 0.85
},
{
"question": "연락처?",
"cited_chunk": "d010_c1",
"gold_chunk": "d010_c1",
"match": true,
"confidence_prob": 0.8
},
{
"question": "외주 단가?",
"cited_chunk": "d004_c1",
"gold_chunk": "d007_c1",
"match": false,
"confidence_prob": 0.42
}
]
}
}
}
]자동: (1) Zod parse, (2) citations.chunk_id 가 internal_docs 에 실재하고 role 의 allowed_levels 안인지 검사(환각·권한 밖 인용 차단), (3) 단정 표현 토큰 검출 + LLM-as-judge 근거 인용 평가, (4) Brier score 자동 계산. confidence_prob 는 합성 기준 추정값이라 검증된 수치가 아님을 답변 hedge 에 드러냅니다. 수동: 도메인 검토자 2명 비동기 라벨 → bootstrap Cohen’s κ CI 하한 ≥ 0.6, spot check 5%. verification 은 정답 근거 세트와 자동 조인.
근거: 폐쇄망 환경에 직접 모델을 올리고 제약 속에서 최적의 성능을 이끌어내는