P6-9.2 잘 따르는 답과 허용 가능한 답을 나누는 정렬¶
Section ID:
P6-9.2Version:v2026.07.24
P6-9.1에서는 지시 튜닝(instruction tuning)이 모델을 더 대화형 조수 같은 반응으로 만드는 조정 단계라는 점을 보았습니다. 하지만 말을 잘 따르는 답이 곧바로 안전하고 바람직한 답이라는 보장은 없습니다.
사용자의 지시를 잘 따른다는 것이, 곧 좋은 AI 시스템이라는 뜻일까?
정렬(alignment)은 모델의 행동이 사람의 의도, 안전 기준, 사회적 제약과 얼마나 맞는지를 다루는 문제다.
허용 가능성을 나눠 보는 축¶
허용 가능성 판단은 다음 질문에서 시작합니다.
- 정렬(alignment)은 무엇을 맞추려는 문제인가?
- 유용성(helpfulness), 안전성(safety), 사실성(factuality)은 왜 같은 말이 아닌가?
- 왜 지시를 잘 따르는 모델도 위험할 수 있는가?
정렬을 이해할 때 먼저 필요한 것은 유용성, 안전성, 사실성을 같은 점수로 섞지 않는 기준입니다. 프롬프트, RAG, 평가, 운영 정책은 이 기준을 실제 사용 층에 옮기는 장치입니다. 기준을 먼저 나누어 두어야 답이 친절하다, 답이 안전하다, 답이 사실에 맞다를 한 문장으로 뭉개지 않게 됩니다.
정렬은 단순 도덕 구호가 아니라 LLM을 실제 서비스에 쓰기 위해 반드시 등장하는 설계 문제입니다. 핵심은 잘 따르는가와 허용 가능한가가 서로 다른 질문이라는 점입니다. 이 절에서는 지시를 잘 따르는 것과 안전하고 허용 가능한 행동 기준이 왜 다른지, helpfulness, safety, factuality를 왜 따로 읽어야 하는지를 먼저 잡습니다. 그 기준을 실제 평가 절차와 운영 정책에 어떻게 녹일지, 프롬프트와 RAG와 서비스 운영에서 어떤 장치로 긴장을 다룰지는 뒤에서 다시 이어 갑니다.
잘 답하는 것과 허용 가능한 행동을 하는 것을 같은 문제로 섞지 않도록, 유용성·안전성·사실성을 나눠 읽어야 합니다.
지시 따르기와 허용 가능성의 구분¶
- alignment를 입문 수준에서 설명할 수 있습니다.
- helpfulness, safety, factuality를 서로 다른 기준으로 구분할 수 있습니다.
- 지시 따르기와 안전성이 항상 같은 방향은 아니라는 점을 말할 수 있습니다.
- 이후 평가, 운영, 정책 논의로 자연스럽게 이어질 수 있습니다.
이 기준이 필요한 이유는 다음과 같습니다.
- 지시 따르기와 안전성을 구분하게 하고
- 평가(evaluation)를 왜 여러 축으로 봐야 하는지 준비시키며
- 이후 P6-16.1 LLM 평가, P6-16.2 자동 평가와 사람 평가, P6-17.1 서비스 운영 제약, P6-17.2 운영 중 실패 대응을 읽는 기준을 만들어 주기 때문입니다
정렬 기준의 판단 축¶
정렬은 좋은 답변을 한 점수로 고르는 문제가 아니라, 여러 기준을 동시에 보는 문제입니다.
| 판단 축 | 확인할 질문 |
|---|---|
| 유용성 | 사용자의 일을 실제로 돕는가 |
| 안전성 | 해로운 결과나 정책 위반 가능성을 줄이는가 |
| 사실성 | 근거 없는 단정이나 틀린 정보를 줄이는가 |
| 허용 가능성 | 지시를 잘 따르더라도 멈추거나 거절해야 할 지점이 있는가 |
정렬은 무엇을 맞추려는가¶
정렬이라는 말은 추상적으로 들리기 쉽습니다. 하지만 다음 질문으로 풀면 더 명확합니다.
- 이 모델은 사용자가 기대하는 방식으로 반응하는가?
- 해로울 수 있는 요청에는 어떤 제한을 두는가?
- 그럴듯하지만 틀린 말을 줄이는가?
- 사회적 책임과 서비스 정책을 반영하는가?
즉, 정렬은 단순히 친절한 답을 한다는 뜻이 아닙니다. 모델 행동이 어떤 기준에 얼마나 맞도록 설계되는가를 묻는 문제입니다.
유용성, 안전성, 사실성은 왜 구분해야 하나¶
이 세 표현은 자주 함께 나오지만 같은 말이 아닙니다.
| 기준 | 중심 질문 |
|---|---|
| 유용성(helpfulness) | 사용자의 일을 실제로 돕는가? |
| 안전성(safety) | 해로운 결과를 줄이는가? |
| 사실성(factuality) | 사실에 맞는가? |
예를 들어:
- 아주 유창하지만 틀린 답은 유용해 보여도 사실성이 낮을 수 있습니다.
- 지나치게 보수적인 답은 안전할 수 있지만 실무 유용성이 낮을 수 있습니다.
- 사용자의 요구를 잘 따르더라도 위험한 행동을 돕는다면 안전성이 부족합니다.
따라서 alignment는 보통 한 점짜리 점수가 아니라, 서로 긴장 관계가 있는 여러 기준을 함께 다루는 문제로 보는 편이 안전합니다.
왜 지시를 잘 따르는 모델도 위험할 수 있나¶
이 질문을 먼저 잡아야 지시를 잘 따른다는 성질과 무엇을 거절하고 어디서 멈춰야 하는가를 같은 문제로 섞지 않게 됩니다.
지시 따르기 능력이 높다는 것은 사용자의 요청 형식을 잘 해석하고, 원하는 형태의 답을 잘 만들어 낼 수 있다는 뜻일 수 있습니다. 하지만 사용자의 요청이 항상 안전하거나 적절한 것은 아닙니다.
예를 들어:
- 위험한 행위를 돕는 요청
- 개인정보를 노출할 수 있는 요청
- 허위 사실을 단정적으로 만들어 달라는 요청
이런 상황에서는 잘 따름이 오히려 위험을 키울 수 있습니다.
그래서 지시를 더 잘 따른다는 사실만으로는 충분하지 않고, 어디서 멈추고 무엇을 거절해야 하는가를 따로 정하는 정렬 문제가 거의 반드시 따라옵니다.
지시 튜닝과 정렬은 무엇이 다르나¶
이 둘은 실제 작업 흐름에서 이어서 등장하지만, 같은 질문에 답하지는 않습니다.
| 구분 | 지시 튜닝이 먼저 겨냥하는 것 | 정렬이 더 직접 겨냥하는 것 |
|---|---|---|
| 중심 질문 | 요청 형식에 맞게 잘 답하는가 | 그 답이 허용 가능하고 안전하며 정책에 맞는가 |
| 잘되면 보이는 변화 | 더 조수형에 가까운 구조, 더 자연스러운 응답 형식 | 위험한 요청 거절, 민감 정보 보호, 과도한 단정 완화 |
| 대표 오해 | 형식이 좋아지면 전체 품질도 끝났다고 느끼기 쉽다 | 거절만 잘하면 충분하다고 느끼기 쉽다 |
즉, 지시 튜닝은 어떻게 답하는가를 더 잘 맞추는 층에 가깝고, 정렬은 어디까지 답하고 어떤 기준을 넘지 말아야 하는가를 더 직접 다루는 층에 가깝습니다.
정렬은 서비스 정책 문제이기도 하다¶
정렬은 연구실 안의 모델 조정 문제에만 머물지 않습니다. 실제 서비스에서는 다음이 함께 들어옵니다.
- 어떤 요청을 거절할지
- 어떤 경고를 붙일지
- 어떤 도구 호출을 막을지
- 어떤 로그와 감사를 남길지
즉, 정렬은 모델만의 문제가 아니라 애플리케이션(application), 도구(tool), 운영 정책(operation)이 함께 만드는 구조입니다.
좋은 답변을 여러 기준으로 통과시키는 흐름¶
flowchart TD
A["사용자 요청"]
B["도움이 되는 답"]
C["안전 점검"]
D["사실성 점검 또는 grounding"]
E["최종 응답"]
A --> B
B --> C
C --> D
D --> E
이 도식에서 확인해야 할 결과는 좋은 답변 하나만으로 평가가 끝나는 것이 아니라, 도움 됨, 안전성, 정책 준수 같은 여러 기준이 동시에 걸린다는 점입니다.
사례 및 예시¶
사례 1. 의료 정보 답변¶
사용자가 약 복용 방법을 묻는 의료 정보 답변을 생각해 볼 수 있습니다. 빠르고 단정적인 답은 편하게 느껴지기 쉽습니다. 질문에 바로 결론이 나오면 도움을 받은 것처럼 느껴지기 때문입니다. 하지만 이 영역에서는 자신감 있는 오답이 가장 위험한 결과가 될 수 있습니다. 예를 들어 복용량, 연령, 기존 질환 같은 조건을 확인하지 않은 채 일반 답을 단정적으로 주면, 겉보기에는 친절해도 실제 위험은 커집니다. 사용자는 짧은 처방처럼 받아들일 수 있지만, 실제로는 의료진 상담이 먼저 필요한 질문일 수 있습니다.
여기서 바뀌는 점은 짧고 단정적인가를 먼저 보던 기준에서 위험 조건을 확인하고 안전한 경로로 넘기는가를 함께 보는 기준으로 이동한다는 것입니다. 이때 정렬 관점에서는 도움이 되는 답을 만들면서도 과도한 단정, 근거 없는 일반화, 위험한 지시를 줄이는 기준이 같이 필요합니다. 여기서 바로잡아야 할 오해는 바로 답하는 친절함이 곧 좋은 서비스라는 기대입니다. 그래서 이 사례에서 확인해야 할 결과는 답변이 짧고 단정적인가보다, 위험 조건을 확인하도록 유도하거나 사람 상담으로 넘기는 쪽으로 실제 출력이 바뀌는가, 그리고 그 경고가 단순 형식이 아니라 실제 판단을 멈추게 만드는가입니다.
| 비교 지점 | 잘 따르지만 위험한 답 | 정렬 기준을 통과하는 답 |
|---|---|---|
| 의료 정보 | 바로 복용 가능하다고 단정함 | 성분, 기존 질환, 전문가 확인 경로를 함께 제시함 |
사례 2. 코드 생성¶
코드가 실제로 실행된다고 해서 곧바로 좋은 답은 아닙니다. 데모 단계에서는 일단 돌아가면 괜찮다고 먼저 느끼기 쉽습니다. 눈앞의 오류가 없으면 성공처럼 보이기 때문입니다. 하지만 인증 검사를 빼고 빠르게 동작하는 코드를 제안하거나, 예외 처리를 생략한 채 파일을 바로 삭제하는 코드를 주면 겉보기에는 유용해도 보안과 안정성 측면에서는 큰 문제가 됩니다. 예를 들어 개발 서버에서는 통과한 스크립트가 운영 환경에서는 잘못된 사용자 데이터까지 지워 버릴 수 있습니다. 사람이 결과를 볼 때도 돌아간다와 안전하게 돌아간다를 분리해서 봐야 합니다.
여기서 바뀌는 점은 실행 성공 하나로 끝내던 기준에서 인증, 예외 처리, 위험 작업 제한까지 함께 보게 되는 기준으로 이동한다는 것입니다. 정렬 관점에서는 이런 충돌을 줄이기 위해 유용성과 안전성 기준을 함께 걸어야 합니다. 여기서 바로잡아야 할 오해는 돌아가는 코드면 나중에 안전장치를 붙여도 된다는 판단입니다. 그래서 이 사례에서 확인해야 할 결과는 단순 실행 성공보다 인증 확인, 예외 처리, 위험 작업 제한이 실제 출력 코드에 함께 들어가는가, 그리고 위험 작업을 기본 허용이 아니라 기본 제한으로 두는가입니다.
| 비교 지점 | 잘 따르지만 위험한 답 | 정렬 기준을 통과하는 답 |
|---|---|---|
| 코드 생성 | 요청한 스크립트를 바로 만들지만 인증과 확인 절차가 없음 | 실행 전 대상 확인, 관리자 승인, 백업, 예외 처리를 함께 둠 |
사례 3. 내부 업무 자동화¶
회사 내부 문서 자동화에서는 형식이 예쁘고 요약이 빨라도 민감 정보가 그대로 노출되면 바로 운영 문제가 됩니다. 결과가 깔끔하면 우선 잘 정리됐다고 느끼기 쉽습니다. 하지만 실제로는 고객 이름, 계약 금액, 내부 코드명 같은 정보가 그대로 남아 있을 수 있습니다. 예를 들어 팀 회의 요약을 외부 공유본으로 만들 때 내부 프로젝트 코드명이 그대로 남아 있으면, 요약 품질과 별개로 바로 사고가 됩니다. 이 경우 확인해야 하는 것은 답변이 편한가만이 아니라 조직 정책과 감사 기준을 어기지 않는가입니다.
여기서 바뀌는 점은 잘 정리됐는가를 먼저 보던 기준에서 무엇을 남기고 무엇을 가려야 하는가를 운영 정책 기준으로 함께 보게 된다는 것입니다. 정렬은 추상적인 윤리 담론이 아니라 무엇을 말해도 되고 무엇은 가려야 하는가를 운영 정책으로 연결하는 문제에 가깝습니다. 여기서 바로잡아야 할 오해는 요약 품질이 높으면 공유 가능성도 높다는 감각입니다. 그래서 이 사례에서 확인해야 할 결과는 문장 요약 품질과 별개로 민감 정보가 실제로 가려지고, 외부 공유 기준을 넘지 않는 출력으로 바뀌는가, 그리고 가림 기준이 문장 안에 일관되게 적용되는가입니다.
| 비교 지점 | 잘 따르지만 위험한 답 | 정렬 기준을 통과하는 답 |
|---|---|---|
| 내부 공유 | 회의 내용을 빠르게 요약하지만 식별 정보가 남음 | 공개 가능한 내용과 가려야 할 정보를 분리함 |
세 사례를 정렬 관점으로 다시 묶으면 다음과 같습니다.
| 상황 | 겉보기 유용성만 보면 놓치기 쉬운 것 | 함께 걸어야 하는 안전 기준 |
|---|---|---|
| 의료 정보 답변 | 단정적 즉답이 주는 위험 | 위험 조건 확인, 사람 상담 유도 |
| 코드 생성 | 실행만 되면 된다는 착시 | 인증, 예외 처리, 위험 작업 제한 |
| 내부 업무 자동화 | 요약이 깔끔하다는 만족감 | 민감 정보 가림, 조직 정책 준수 |
정렬 기준이 갈리는 장면¶
이 절을 읽은 뒤에는 아직 RLHF나 정책 세부를 다 몰라도, 지금 막히는 것이 유용성 문제인가, 안전성 문제인가, 사실성 문제인가를 먼저 가르는 연습을 할 수 있습니다. 답이 매우 친절하고 직접적이지만 위험 조건 확인이 없다면, 도움이 많이 되는 인상과 실제 안전성을 따로 봐야 합니다. 답이 지나치게 짧고 보수적이라 사고는 막지만 실무에 거의 도움을 주지 못한다면, 안전성보다 실제 유용성이 부족한 장면일 수 있습니다. 말은 자연스럽고 자신감 있지만 근거 없는 단정이 많다면, 문제는 말투가 아니라 사실성입니다.
여기서 중요한 것은 좋은 답을 한 줄 평가로 끝내는 일이 아니라, 먼저 도움이 되는가, 위험을 줄이는가, 사실에 맞는가를 다른 축으로 읽는 일입니다.
여기서 자주 섞이는 것도 다음과 같습니다.
- 친절함과 안전성을 같은 말처럼 느끼기 쉽습니다.
- 보수적인 거절이 많으면 정렬이 잘된 것이라고 단순화하기 쉽습니다.
- 유창한 답변을 사실성 높은 답변으로 착각하기 쉽습니다.
그래서 이 절의 닫힘은 정렬은 한 점수 문제가 아니라 여러 기준을 함께 맞추는 문제라는 문장을 실제 판단 기준으로 바꾸는 데 있습니다.
세 사례를 도식으로 다시 보면 다음처럼 읽을 수 있습니다.
flowchart LR
A["겉보기 유용성<br/>빨리 답함 / 바로 실행됨 / 보기 좋게 정리됨"]
B["숨은 위험<br/>오답 / 위험 작업 / 민감 정보 노출"]
C["정렬 기준 추가<br/>질문 확인 / 제한 / 검토 / 거절"]
D["운영 가능한 응답<br/>도움이 되면서도 정책을 넘지 않음"]
A --> B --> C --> D
연습 및 예제¶
이 예제의 목표는 alignment를 수식으로 최적화하는 것이 아니라, 서로 다른 작업의 응답 로그를 유용성, 안전성, 사실성 축으로 따로 읽어야 한다는 점을 보여 주는 것입니다. 후보 응답에 미리 정답 이름을 붙이지 않고, 여러 업무 장면의 응답을 같은 규칙으로 점검하면 어떤 응답은 겉보기에는 유용해도 최소 통과선에서 탈락한다는 점을 확인할 수 있습니다.
입력:
- 의료, 코드, 내부 공유, 금융, 법무, 고객지원 작업
- 각 작업마다 여섯 개 후보 응답
- 후보 응답 CSV: p6-9-2-alignment-candidate-responses.csv
CSV의 한 행은 하나의 작업, 질문, 응답 ID, 후보 응답을 뜻합니다. 응답 ID는 정답 라벨이 아니라 로그 식별자입니다. 독자가 직접 바꿔 볼 값은 응답 문장, 위험 표현 목록, 안전 경로 표현 목록, 작업별 최소 통과선입니다.
결과에서는 각 응답의 helpfulness, safety, factuality 점검 결과를 만든 뒤, 작업별 통과·탈락 수, 실패 축, 겉보기 점수는 높지만 정책 기준에서 탈락한 응답을 함께 확인합니다. 여기서 겉보기 상위 응답은 helpfulness + factuality가 4 이상인 응답으로 둡니다. 이 코드는 실제 토큰 선택이나 tokenizer를 다루는 예제가 아닙니다. 이미 생성된 응답 문자열 안에서 어떤 표현 신호가 위험 단정, 안전 경로, 판단 조건으로 읽히는지 관찰합니다. 실제 토큰을 어떻게 뽑느냐가 답변의 안정성, 다양성, 재현성을 어떻게 바꾸는지는 디코딩(decoding)과 샘플링(sampling) 절의 중심 질문으로 분리해 읽어야 합니다.
확인할 핵심은 정렬이 도움됨, 안전성, 사실성을 함께 비교하며 채택 가능한 답을 고르는 과정이라는 점입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | |
이 예제는 로컬 .venv의 Python으로 실행해 본문 출력과 일치함을 확인했습니다.
실행 결과 예시는 다음처럼 읽을 수 있습니다.
그래서 이 예제에서 확인해야 할 결과는 같은 평가 축이라도 업무 장면이 달라지면 탈락 이유가 다르게 나타난다는 점입니다. 동시에 surface_score가 높아 보여도 안전성이나 사실성의 최소 통과선을 넘지 못하면 실제 채택 후보에서 빠질 수 있다는 점도 보입니다. axis misses는 응답 개수가 아니라 축별 실패 신호를 센 값입니다. 한 응답이 안전성과 사실성에서 동시에 실패하면 두 축에 함께 잡힙니다.
응답 표현을 더 작게 나누어 보면, 응답 전체가 한 번에 좋다 또는 나쁘다가 되는 것이 아니라, 출력 안의 특정 표현 조각이 서로 다른 평가 축의 신호로 읽힙니다. 예를 들어 summary_r03은 민감 정보, 고객 식별 정보 같은 조건 신호가 있지만 식별 정보를 남기되라는 위험 신호도 함께 있어 통과하지 못합니다. support_r05도 답변 형식은 그럴듯하지만 예외 환불 가능성을 넌지시라는 표현 조각이 안전한 검토 경로 없이 남아 안전성에서 막힙니다. 반대로 code_r05처럼 위험 표현 목록에 직접 걸리는 문구가 없어도, 대상 경로, 백업, 관리자 확인 같은 조건과 안전 경로가 빠지면 운영 스크립트 응답으로는 탈락할 수 있습니다. 정렬에서는 금지어를 찾는 일만이 아니라, 필요한 확인 조건과 멈춤 경로가 실제 답변에 들어 있는지도 함께 봐야 합니다.
이 예제에서 독자가 직접 해 볼 수 있는 조정은 다음과 같습니다.
- CSV에 더 공격적이거나 더 모호한 답변을 추가해 보기
risky_phrases목록에 새로운 금지 표현을 넣어 보기customer_support의 최소 안전 기준을 2에서 3으로 올렸을 때 통과 수가 어떻게 바뀌는지 확인해 보기- 같은 뜻의 응답이라도 위험 신호 표현을 다른 말로 바꾸면 어떤 행이 새로 통과하거나 탈락하는지 확인해 보기
- 의료 대신 내부 보안, 교육, 채용 질문으로 바꿔도 같은 다중 평가 구조가 유지되는지 확인해 보기
그래프는 작업별 통과·탈락 수와 전체 실패 축을 나누어 보여 줍니다. 왼쪽은 같은 여섯 개 응답을 둔 작업에서도 몇 개가 통과선에 걸리는지 보여 줍니다. 오른쪽은 안전성 미달, 사실성 미달, 겉보기 상위 탈락 신호를 중복 집계한 값입니다. 한 응답이 안전성과 사실성에서 동시에 실패할 수 있으므로, 오른쪽 막대의 합은 전체 응답 수와 같지 않아도 됩니다.

다중 평가 축에서 갈리는 승인 기준¶
이 예제는 alignment를 하나의 점수로 뭉뚱그려 읽지 않게 해 줍니다. 여기서는 설명을 위해 단순 규칙으로 점수를 만들었지만, 실제 운영에서도 핵심은 같습니다. 도움이 된다, 안전하다, 사실에 맞다는 서로 다른 실패 유형을 가지며, 의료, 코드, 내부 공유, 금융, 법무, 고객지원은 같은 축을 써도 감점 포인트가 다르게 나타납니다. 또 서비스 운영에서는 총점이 높다는 이유만으로 바로 배포하지 않고, 안전성과 사실성에 최소 통과선을 두는 경우가 많습니다. 그래서 이후 평가와 정책 논의도 여러 축을 분리해서 보고, 필요하면 축별 하한선까지 같이 설계하는 것이 기본입니다.
정렬이 나누는 평가 축¶
alignment는 잘 말하는 모델을 만드는 문제가 아니라, 여러 업무 장면에서 도움이 되면서도 위험과 정책 위반을 넘지 않는 응답을 고르는 기준을 세우는 문제입니다.
핵심은 지시를 따르는가와 어디까지 허용할 것인가가 같은 문제가 아니라는 것입니다. 그래서 alignment는 유창한 답변을 더 만드는 기술 하나가 아니라, 여러 업무 장면에서 어떤 응답을 통과시키고 어디서 멈출지를 고르는 기준으로 읽는 편이 좋습니다.
체크리스트¶
잘 답한다와허용 가능한 행동을 한다를 다른 문제로 설명할 수 있는가?- helpfulness, safety, factuality를 각각 다른 실패 유형과 연결해 말할 수 있는가?
- P6-9.3을 기술 이름보다
어떤 부족을 먼저 고칠 것인가의 선택 문제로 읽을 준비가 되었는가?
출처와 참고 자료¶
- Long Ouyang et al.,
Training language models to follow instructions with human feedback, arXiv, 2022, 확인 날짜: 2026-07-19. https://arxiv.org/abs/2203.02155 - Yuntao Bai et al.,
Constitutional AI: Harmlessness from AI Feedback, arXiv, 2022, 확인 날짜: 2026-07-19. https://arxiv.org/abs/2212.08073 - OpenAI,
Model Spec, 모델 행동 기준 문서, 확인 날짜: 2026-07-19. https://model-spec.openai.com/2025-09-12.html