제9부 사업·전략·법·윤리
9.4 윤리·편향·안전·거버넌스
법은 "해도 되는가"의 하한선을 긋는다(9.3). 이 마지막 본문 장은 그 선 위에서 "해야 하는가, 하지 말아야 하는가"를 묻는다. 그리고 그 물음을 한 사람의 양심이 아니라 조직이 반복해서 밟을 수 있는 절차로 바꾸는 공학 — 거버넌스 — 을 세운다.
먼저 이 장이 무엇을 하지 않는지부터 분명히 하자. 초지능이 인류를 지배하는가, 기계가 자율적으로 반란하는가 같은 먼 미래의 사변은 다루지 않는다(BK-04). 그런 담론은 자원을 잘못된 곳으로 빨아들인다. 오늘 배포된 LLM이 오늘 만들어 내는 해악은 훨씬 구체적이고 이미 진행 중이다 — 이력서 심사에서의 차별, 자신 있게 틀린 의료·법률 정보, 딥페이크와 대량 사기, 특정 언어권에서의 낮은 품질, 저임금 라벨러의 트라우마, 데이터센터가 소비하는 전력. 이 장의 무게는 전부 여기, 지금의 실무 리스크에 있다.
한 가지를 미리 각오해야 한다. 이 책의 다른 장에서는 대개 정답에 가까운 것이 있었다 — 어텐션은 이렇게 계산하고, KV 캐시는 이만큼 크며, 이 양자화는 이 손실을 낸다. 윤리에는 그런 계산된 정답이 없다. "이 완화책이 옳다", "이렇게 하면 공정하다", "우리 모델은 안전하다"는 문장은 대부분 정리(定理)가 아니라 가치 선택이거나 검증되지 않은 주장이다. 그래서 이 장은 답을 주는 대신 트레이드오프를 펼쳐 보이고, "공정·안전이 해결됐다"는 통념을 조용히 깨고, 실질 없이 선한 외형만 두르는 워싱(washing)을 이름 붙여 경계한다. 규제·수치·기법은 시점에 따라 바뀌므로 정말 독자가 직접 최신값을 확인해야 하는 곳에만 (확인 필요)를 남긴다.
9.4.1 왜 윤리가 리스크 장부에 오르나 — 정답이 계산되지 않는 문제
윤리를 기업의 사회공헌이나 홍보 문구로 오해하기 쉽다. 그러나 배포된 시스템에서 윤리 실패는 곧바로 제품·법·운영 리스크로 환산된다. 편향되거나 유해한 산출은 사용자 신뢰를 깎고 이탈을 부르며, 한 번의 바이럴한 실패가 브랜드를 몇 년 따라다닌다. 차별적 결정·프라이버시 침해·불투명성은 규제의 직접 대상이다(9.3). 안전 사건 한 번은 대응 비용·다운타임·신뢰 회복 비용을 낳고, 대비 없는 조직은 그 한 번에 마비된다. 그래서 윤리는 "착한 일"이기 이전에 관리해야 할 리스크의 한 종류다 — 보안이나 가용성과 같은 장부에 올라가는 항목이다.
다만 이 리스크는 다른 리스크와 결정적으로 다른 성질을 세 가지 갖는다. 첫째는 가치 충돌이다. 유용성과 안전, 표현의 자유와 유해성 억제, 프라이버시와 개인화된 유용성은 서로 좋은 것들인데 정면으로 부딪힌다. 한쪽을 최대로 얻으면 다른 쪽을 내준다 — 3.1.3이 HHH(유용·정직·무해)의 긴장으로 못박은 그 트레이드오프가 여기서 조직 차원으로 확대된다. "둘 다 최대"라는 설정은 존재하지 않는다. 둘째는 다원성이다. 무엇이 "유해"·"공정"·"적절"인지가 문화·집단·개인마다 다르다. 하나의 설정이 모두를 만족시킬 수 없고, "중립"을 택하는 것조차 하나의 값을 고른 선택이다. 셋째는 불확실성이다. 해악은 배포 후에, 장기에 걸쳐, 간접적으로 드러나는 경우가 많아 사전에 전부 알 수 없다. 완벽한 사전 심사는 원리적으로 불가능하다.
이 세 성질이 겹치면 결론은 하나다. 윤리는 풀어서 끝내는 문제가 아니라 계속 항해하는 과정이다. 정답을 알 수 없으니, 정답을 계산하는 대신 결정을 잘 내리는 절차와 틀렸을 때 회복하는 절차를 갖춘다. 이 장이 체크리스트·출시 게이트·모니터링·사건 대응 같은 프로세스를 그토록 강조하는 이유가 여기 있다. 좋은 거버넌스는 옳은 답을 보장하지 않는다 — 옳은 답이 없기 때문이다. 대신 나쁜 결정의 확률을 낮추고, 나쁜 결정이 났을 때 빨리 되돌리게 한다.
9.4.2 편향은 어디서 스며드나 — 파이프라인 전체의 성질
"편향(bias)"은 다의어라 먼저 좁혀야 한다. 통계학에서 편향은 추정치가 참값에서 체계적으로 치우친 것을 뜻하고, 이것은 나쁜 것이 아니라 종종 유용하다(편향-분산 트레이드오프). 이 절이 말하는 편향은 다르다 — 성별·인종·연령·지역·언어 같은 집단에 따라 부당하게 다른 대우를 하는 사회적 편향이다. 두 뜻을 섞으면 "편향은 원래 있는 것"이라는 말로 사회적 차별을 가려 버리게 되니, 이 장 내내 후자만 가리킨다.
이 편향은 한 곳에서 오지 않는다. LLM 파이프라인의 거의 모든 단계가 편향을 주입하거나 증폭한다.
시작은 데이터다(2.1). 학습 코퍼스는 인간이 쓴 텍스트이고, 거기 담긴 역사적 불평등·고정관념·과소대표가 그대로 통계로 들어온다. "간호사"에 여성 대명사가, "CEO"에 남성 대명사가 더 자주 붙는 연관은 모델이 지어낸 것이 아니라 데이터의 반영이다. 더 근본적으로, 어떤 언어·방언·문화권은 웹에 텍스트가 적어 애초에 데이터 자체가 얇다 — 이것은 편향 이전에 품질의 문제이고 뒤에서 따로 다룬다(9.4.9). 사전학습은 이 분포를 압축·일반화하는데, 일반화 과정에서 편향이 완화되기는커녕 매끄럽게 다듬어져 더 자신 있게 나오기도 한다.
정렬 단계(3.1, 3.3)는 편향을 줄이려는 단계다. 그러나 여기서 라벨러의 관점, 지침, 정책 작성자의 가치가 새로 각인된다. 편향을 지우는 손이 자기 편향을 남기는 것이다. 완화가 지나치면 과잉 교정(over-correction) — 특정 주제에서 부자연스럽게 회피하거나, 사실을 왜곡하면서까지 균형을 맞추려는 산출 — 이라는 반대편 실패가 나온다. 평가 단계도 안전하지 않다(4.1, 4.2). 편향을 재는 도구 자체가 편향될 수 있어서, 영어 위주 벤치마크는 다른 언어의 편향을 아예 못 보고, LLM 심판(4.2)은 자기와 비슷한 문체·관점을 더 높게 치는 편향을 갖는다. 마지막으로 배포 후 데이터 플라이휠(8.1)은 편향도 환류시킨다 — 특정 집단이 제품을 덜 쓰면 그 집단의 데이터가 덜 쌓이고, 다음 버전에서 그 집단의 품질이 더 벌어지는 자기강화 루프가 반복한다.
여기서 챙길 것은 이렇다. 편향은 "데이터만 고치면 되는" 버그가 아니라 파이프라인 전체에 분산된 성질이다. 그래서 완화도 한 단계가 아니라 여러 단계에 걸쳐야 하고, 어느 한 단계에서 "고쳤다"고 선언하는 순간 다른 단계가 새로 주입한 편향을 놓친다.
편향의 해악을 두 갈래로 나누면 완화 전략이 선명해진다. 배분적 해악(allocational harm)은 자원·기회를 부당하게 배분하는 것이다 — 이력서 심사에서 특정 집단을 더 자주 탈락시키거나, 대출·심사에서 차별하는 것. 표현적 해악(representational harm)은 집단을 부당하게 묘사·연관하는 것이다 — 고정관념을 강화하거나, 특정 집단을 비하·삭제·타자화하는 것. 전통적 공정성 문헌은 배분(대출·채용 분류기)에 초점을 뒀는데, LLM은 여기에 표현적 해악을 크게 더한다. 수억 명이 매일 읽는 텍스트가 집단을 어떻게 그리느냐가 사회적 인식을 형성하기 때문이다. "말일 뿐이니 무해하다"는 반론은 틀렸다 — 반복 노출은 인식과 자기인식을 바꾼다. 그리고 LLM이 채용·심사·상담에 에이전트로 편입되면(6.5~6.7) 표현적 해악은 곧장 배분적 해악으로 넘어간다. "그 자리에 어울리는 후보"를 서술하는 표현적 편향이, 그 서술을 근거로 후보를 거르는 순간 배분이 된다.
9.4.3 편향을 재는 법 — 집단별 성능차와 반사실
관리하려면 재야 한다. LLM에는 대출 분류기 같은 단일 예측값 $\hat{Y}$ 가 없어 전통적 분류 공정성 지표를 그대로 못 쓰지만, 원리는 같다 — 집단을 나눠 지표를 비교한다.
가장 직접적인 것은 집단별 품질·거절 격차다. 같은 과제를 언어·방언·집단별로 던져 정확도·유용성·거절률을 비교한다. 예컨대 동일한 고객 문의를 표준어와 특정 방언으로 각각 넣어 응답 품질과 어조가 갈리는지 보고, 같은 요청을 전형적인 남성 이름과 여성 이름으로 바꿔 넣어 대우가 달라지는지 본다. 이 마지막이 반사실 공정성(counterfactual fairness) 테스트다 — 프롬프트에서 보호 속성(이름·성별·국적)만 바꾸고 나머지를 고정해, 산출이 달라지면 모델이 그 속성에 반응한 것이다.
숫자로 개략을 파악하자(값은 설명용 개략치다). 동일한 이력서 1,000장을 두 벌 만들어 한 벌에는 집단 A를 연상시키는 이름을, 다른 벌에는 집단 B를 연상시키는 이름을 붙이고 나머지는 글자까지 동일하게 둔 뒤 "면접 추천 여부"를 물었다 하자. 집단 A에서 620장, 집단 B에서 540장이 추천으로 나왔다면 추천율이 62%와 54%로 8%포인트, 상대적으로 약 1.15배 벌어졌다. 내용이 글자까지 같은데 이름만으로 이 차이가 났다면, 모델은 이력서의 자격이 아니라 이름이 신호하는 집단에 반응한 것이다. 반사실 테스트의 힘은 여기 있다 — 교란 변수를 설계로 제거하기 때문에, 차이가 나오면 그 원인을 보호 속성으로 곧장 지목할 수 있다. 이런 테스트는 거절·독성의 비대칭에도 쓴다. 같은 유형의 요청에 집단에 따라 거절률이나 독성 산출이 다른지를 재는 것이다.
측정에는 함정이 있고, 그 함정은 4.1에서 본 것과 같은 결이다. 편향 점수는 어떤 집단을, 어떤 프롬프트로, 어떤 지표로 재느냐에 따라 크게 달라진다. "고정관념 벤치마크 점수가 낮다"가 곧 "공정하다"를 뜻하지 않는다 — 벤치마크가 담은 집단·상황 바깥은 여전히 캄캄하고, 고정관념 벤치마크 자체가 특정 사회의 고정관념 목록을 코드화한 것이라 다른 사회에는 안 맞는다. 게다가 공개 벤치마크는 학습 데이터에 유입되어 오염될 수 있어(4.1), 점수가 좋아 보이는 것이 편향이 줄어서인지 벤치마크를 외워서인지 구분이 안 된다. 그래서 편향 측정은 통과/불합격 도장이 아니라 끝이 없는 감사(audit)로 다뤄야 한다. 한 번 재고 "공정성 확인"에 체크하는 순간, 그 지표가 못 보는 집단은 방치된다.
9.4.4 공정성은 하나가 아니다 — 정의들의 수학적 충돌
여기가 이 장에서 가장 정직하게 말해야 할 대목이다. "공정하게 만들자"는 합의는 쉽다. 그러나 "공정"의 정의는 여럿이고, 그것들은 취향의 차이가 아니라 수학적으로 동시에 만족될 수 없다. 이것은 더 노력하면 풀리는 공학 문제가 아니라 증명된 불가능성이다.
분류 세팅으로 단순화해 세 정의를 보자($A$ = 보호 집단, $Y$ = 실제 정답, $\hat{Y}$ = 모델 결정, $\hat{S}$ = 모델이 매긴 점수).
통계적 동등(demographic parity) 은 집단과 무관하게 긍정 판정 비율이 같기를 요구한다.
$$P(\hat{Y}{=}1 \mid A{=}a) = P(\hat{Y}{=}1 \mid A{=}b)$$
동등 오즈(equalized odds) 는 실제 정답이 같은 사람들 사이에서 참·거짓 양성률이 집단 간 같기를 요구한다 — 즉 오류를 집단에 고르게 나눈다.
$$P(\hat{Y}{=}1 \mid Y{=}y,\, A{=}a) = P(\hat{Y}{=}1 \mid Y{=}y,\, A{=}b), \quad \forall y$$
보정(calibration) 또는 예측 동등(predictive parity) 은 같은 점수를 받은 사람은 집단과 무관하게 실제 정답률이 같기를 요구한다 — 점수의 의미가 집단 간 동일하다.
$$P(Y{=}1 \mid \hat{S}{=}s,\, A{=}a) = P(Y{=}1 \mid \hat{S}{=}s,\, A{=}b)$$
셋 다 좋은 성질이다. 문제는 집단 간 기저율(base rate) — 실제 정답이 1일 사전 확률 $P(Y{=}1\mid A)$ — 이 다르면 이들이 서로 충돌한다는 것이다. Kleinberg·Mullainathan·Raghavan(2016)과 Chouldechova(2017)가 증명한 바에 따르면, 기저율이 다른 두 집단에서 보정과 동등 오즈를 동시에 만족하는 분류기는 완벽한 분류기이거나 두 집단을 똑같이 취급하는 퇴화 경우뿐이다. 현실의 불완전한 분류기로는 셋 중 둘도 대개 함께 못 간다.
왜 그런지는 직접 확인할 수 있다. Chouldechova의 항등식을 유도해 보자. 한 집단에서 유병률(기저율)을 $p = P(Y{=}1)$, 거짓 음성률을 $\text{FNR}=P(\hat{Y}{=}0\mid Y{=}1)$, 거짓 양성률을 $\text{FPR}=P(\hat{Y}{=}1\mid Y{=}0)$, 양성 예측도(정밀도)를 $\text{PPV}=P(Y{=}1\mid\hat{Y}{=}1)$ 로 두면, 베이즈 정리로
$$\text{PPV} = \frac{(1-\text{FNR})\,p}{(1-\text{FNR})\,p + \text{FPR}\,(1-p)}$$
이다. 분모의 첫 항은 참 양성(실제 1을 1로), 둘째 항은 거짓 양성(실제 0을 1로)의 비율이다. 이것을 $\text{FPR}$ 에 대해 풀면
$$\text{FPR} = \frac{p}{1-p}\cdot\frac{1-\text{PPV}}{\text{PPV}}\cdot(1-\text{FNR})$$
가 나온다. 이 한 줄이 전부를 말한다. 두 집단에서 PPV를 같게 맞추고(보정) FNR도 같게 맞춰도, 앞의 $\tfrac{p}{1-p}$ 인자가 기저율에 따라 다르면 FPR은 강제로 달라진다. 동등 오즈는 FPR과 FNR을 둘 다 집단 간 같게 요구하므로, 이 순간 깨진다.
수를 넣어 명시하자. 집단 A의 유병률 $p_a=0.5$, 집단 B의 유병률 $p_b=0.25$ 로 다르다고 하고, 분류기가 두 집단 모두에서 $\text{PPV}=0.6$, $\text{FNR}=0.4$ 가 되도록 맞췄다 하자. 실제 인원으로 그려 보면 다음과 같다.
| 집단 A ($p_a=0.5$) | 집단 B ($p_b=0.25$) | |
|---|---|---|
| 전체 / 실제 양성·음성 | 1000 / 500·500 | 1000 / 250·750 |
| 참 양성(TP) | 300 | 150 |
| 거짓 음성(FN) | 200 | 100 |
| 거짓 양성(FP) | 200 | 100 |
| 참 음성(TN) | 300 | 650 |
| PPV = TP/(TP+FP) | 300/500 = 0.60 | 150/250 = 0.60 |
| FNR = FN/(TP+FN) | 200/500 = 0.40 | 100/250 = 0.40 |
| FPR = FP/(FP+TN) | 200/500 = 0.40 | 100/750 = 0.133 |
PPV도 0.6으로 같고 FNR도 0.4로 같은데, FPR은 0.40 대 0.133으로 세 배 벌어졌다. 실제로는 무고한(정답이 0인) 집단 A 사람이 집단 B 사람보다 세 배 자주 양성으로 잘못 분류된다. 이것이 형사 위험 점수 같은 맥락에서 벌어진 유명한 논쟁의 정확한 골격이다 — 도구 제작사는 "우리는 보정돼 있다(같은 점수면 같은 재범률)"고 정당하게 말할 수 있고, 비판자는 "무고한 이들의 오탐률이 집단 간 세 배 다르다"고 정당하게 말할 수 있다. 둘 다 옳다. 기저율이 다른 한, 한쪽을 맞추면 다른 쪽이 어긋나는 것이 수학이기 때문이다.
이 정리의 무게는 실무로 곧장 넘어온다. "공정한 알고리즘"은 기술적으로 잘 정의된 하나의 목표가 아니다. 어떤 공정성을 고를지는 세계관의 선택이다 — 오류를 집단 간 고르게 나눌 것인가(동등 오즈), 점수의 의미를 집단 간 같게 할 것인가(보정), 결과의 비율을 맞출 것인가(통계적 동등). 셋은 서로 다른 정의(正義) 관념을 담고, 기저율이 다른 세계에서는 하나를 얻으려면 다른 하나를 내줘야 한다. 그러니 엔지니어가 "공정성 켜기" 스위치를 누르는 그림은 처음부터 틀렸다. 정직한 태도는 조직이 어떤 공정성을 왜 택했는지 명시하고 그 선택에 책임지는 것이다. LLM에는 단일 $\hat{Y}$ 가 없어 이 정의들이 그대로 적용되진 않지만, 앞서 봤듯 LLM을 채용·심사·대출 판단에 편입하는 순간(6.5~6.7) 이 분류기 공정성의 수학이 정확히 그 시스템의 문제가 된다.
9.4.5 완화와 그 대가
완화는 파이프라인 여러 단계에서 가능하고, 각각 대가가 있다. 데이터 단계에서는 과소대표 집단을 보강하거나 유해 텍스트를 필터링하는데, 무엇이 "균형"인지 자체가 가치 선택이고 과도한 필터링은 정보 손실과 또 다른 편향을 부른다(어떤 관점의 텍스트를 "유해"로 걸러 내느냐가 이미 편향이다). 정렬 단계에서는 공정성 지향 선호 데이터나 헌법 원칙(3.6), 거절 정책으로 조정하는데, 앞서 본 과잉 교정과 라벨러 편향 전이가 대가다. 추론 시점에는 시스템 프롬프트나 가드레일(7.3)로 재조정할 수 있지만 이것은 표면만 덮는 것이라 탈옥·인젝션에 취약하다(7.4). 그리고 평가·감사(4.3)는 엄밀히 말해 완화가 아니라 탐지다 — 재는 것만으로는 아무것도 고쳐지지 않고, 못 보는 집단은 여전히 방치된다.
세 가지를 못박고 이 절을 끝내자. 편향은 인간 사회와 데이터에 기반을 두므로 완전 제거는 불가능하고, 현실적 목표는 관리·감소·투명한 문서화다. 공정성 정의가 충돌하므로 "공정하다"는 주장은 반드시 어떤 정의로 공정한지 밝혀야 의미가 있다. 그리고 한 축의 편향을 줄이면 다른 축이 나빠지거나 과잉 교정이라는 새 편향이 생길 수 있으므로, 편향 완화는 단일 버그 수정이 아니라 여러 목표를 비교 평가하는 다목적 최적화다. 이 셋을 종합하면 실무 규칙 하나가 나온다 — "우리 모델은 편향이 없다"는 문장은 거의 언제나 거짓이거나 측정이 부족하다는 자백이다. 좋은 팀은 그렇게 말하지 않고, "이 집단·이 지표에서 이만큼의 격차가 남아 있고, 우리는 이 공정성 정의를 택했다"고 말한다.
9.4.6 유해 산출과 오남용 — 유형과 듀얼유즈
편향이 "부당한 차별"이라면, 이 절은 더 넓은 해악 — 시스템이 만들거나 조력하는 나쁜 결과 전반 — 을 다룬다. 유형을 갈라 놓으면 방어를 어디에 걸지가 보인다.
| 유형 | 메커니즘 | 예 |
|---|---|---|
| 오정보·환각 | 그럴듯하지만 틀린 내용을 자신 있게 생성(1.1) | 잘못된 의료·법률·재정 조언, 지어낸 인용·출처 |
| 조작·설득 | 대규모·개인화된 설득·기만 텍스트 생성 | 스팸·피싱·여론 조작·가짜 리뷰·정치 선전 |
| 차별·비하 | 집단에 대한 유해·모욕·고정관념 산출(9.4.2) | 혐오 표현, 특정 집단 대상 조롱 |
| 위험 조력(듀얼유즈) | 무기·사이버공격·자해 등에 실행 가능한 조력 | 악성코드 작성, 위험물 합성 안내, 자해 방법 |
| 프라이버시 침해 | 학습 데이터의 개인정보 재현·추론(9.3) | PII 유출, 재식별, 민감정보 추론 |
| 오남용·자동화 악용 | 정상 기능을 나쁜 목적에 대량 사용 | 대량 사기·괴롭힘·비동의 콘텐츠 생성 |
이 목록에서 완화가 가장 어려운 것은 듀얼유즈(dual-use) 다. 같은 능력이 선악 양쪽에 쓰인다. "화학 반응을 설명"하는 능력은 화학 교육에도 위험물 제조에도 쓰이고, "설득력 있는 글을 쓴다"는 능력은 마케팅에도 사기에도 쓰인다. 그래서 유해성은 능력 그 자체의 성질이 아니라 맥락·의도·구체성의 함수다 — 위험한 것은 "화학을 안다"가 아니라 "특정 유해 목적을 실행 가능한 수준으로 상세히 안내한다"이다. 완화가 어려운 근본 이유가 여기 있다. 유해 요청과 정당한 요청의 경계가 흐리고, 경계를 안전하게 넓게 설정해 많이 막을수록 정당한 사용자의 유용성이 사라진다. 이것이 3.1.3의 유용성↔무해성 긴장이 산출 안전에서 드러나는 측면이다. 오정보도 비슷한 성질을 갖는다. 환각(1.1)은 버그가 아니라 확률적 생성의 본질적 부산물이라 완전히 없앨 수 없고, 근거 제시(RAG, 6.3)나 불확실성 표기로 낮출 수 있을 뿐이다 — "RAG를 붙였으니 환각이 사라졌다"는 흔한 통념은 틀렸다. 검색이 틀린 문서를 물어 오거나 모델이 문서를 잘못 종합하면 환각은 그대로 나온다.
9.4.7 다층 방어 — 어느 한 층도 충분하지 않다
유해 산출은 하나의 방어로 못 막는다. 정렬·가드레일·레드팀·모니터링을 겹친 심층 방어(defense in depth)가 표준인데, 이것은 여러 장치를 쌓으면 안심이라는 뜻이 아니라 반대로 각 층이 반드시 누락을 남긴다는 것을 전제로 층을 겹친다는 뜻이다.
첫 층은 정렬이다(3.1). 모델이 유해 요청을 거절하도록 학습된다. 이것이 가장 근본적이지만, 정렬은 보증이 아니라 학습된 경향일 뿐이라 탈옥과 프롬프트 인젝션에 우회된다(3.1.7, 7.4). 정렬만으로 안전이 완성된다고 믿는 것이 이 분야의 가장 흔한 착각이다. 둘째·셋째 층은 가드레일이다(7.3). 입력과 출력을 모델과 독립된 분류기·규칙으로 검사하므로, 정렬이 우회돼도 여기서 차단할 수 있다. 대신 오탐(정상을 차단)과 미탐(유해를 통과)의 트레이드오프를 피할 수 없고, 새로운 공격 패턴에는 항상 한발 늦는다. 레드팀(4.3)은 이 방어들을 능동적으로 검증한다 — 배포 전에 취약점을 찾고 배포 후에도 지속적으로 공격한다. 모니터링(7.6)은 실사용에서 사건을 탐지·집계해 앞의 층들로 환류시키는데, 이것이 다음 절들에서 볼 사건 대응의 입구다.
이 그림의 정직한 결론은 "필터를 넣었으니 안전하다"가 틀렸다는 것이다. 각 층은 확률적이고 우회 가능하다. 정렬은 경향이지 규칙이 아니고, 가드레일 분류기는 처음 보는 공격에 뒤처지며, 레드팀은 존재하는 모든 공격을 다 찾지 못한다. 안전은 달성해서 걸어 두는 상태가 아니라 공격자와 계속 겨루는 과정이다. 그리고 모든 완화는 유용성을 깎는다 — 어디서 균형점을 맞출지는 조직의 위험 감수도에 따른 선택이지 계산된 정답이 없다.
9.4.8 왜 LLM은 설명하기 어렵나 — 투명성의 한계
윤리적 시스템은 "왜 그렇게 답했는지"를 설명할 수 있어야 한다는 요구가 강하고, 규제도 종종 이를 요구한다(9.3). 그러나 LLM은 근본적으로 설명하기 어렵다. 이 한계를 정직하게 인정하는 것이 첫걸음이고, 인정하지 않은 채 그럴듯한 설명을 제공하는 것이 오히려 더 위험하다.
세 가지 이유가 겹친다. 첫째, 결정이 수십억에서 수천억 개 파라미터에 걸친 분산 표현에서 나온다. "이 규칙 때문에 이 답"이라고 지목할 상징적 결정 경로가 없다 — 규칙 기반 시스템이나 결정 트리와 근본적으로 다르다. 잔차 스트림(1.4) 위에서 수많은 특징이 중첩·간섭하며 만들어 낸 결과라, 하나의 원인으로 환원되지 않는다. 둘째, 사후 설명이 충실하지 않을 수 있다. 모델에게 "왜 그렇게 답했어?"라고 물으면 그럴듯한 사고사슬(chain-of-thought)을 내놓지만, 그 설명이 실제 내부 계산을 반영한다는 보장이 없다. 모델은 "정답에 이르는 그럴듯한 이야기"를 사후에 생성할 뿐, 그 이야기가 실제 원인과 다를 수 있다는 것이 여러 연구에서 관찰됐다(사고사슬 비충실성, chain-of-thought unfaithfulness). 설명처럼 보이는 것과 실제 설명은 다르다. 셋째, 이를 내부에서 밝히려는 기계적 해석가능성(mechanistic interpretability) 연구 — 모델 안의 회로·특징을 역공학하는 시도 — 는 유망하지만, 프런티어 모델의 임의의 결정을 실무에서 신뢰 있게 설명할 수준에는 아직 이르지 못했다. 요컨대 "설명가능한 LLM"은 대체로 미해결 과제이고, 이 사실을 숨기면 안 된다.
내부 설명이 어렵다면 외부 투명성으로 벌충한다 — 시스템을 어떻게 만들었고 무엇을 검증했는지 문서화·공개하는 것이다. 모델 카드(model card) 는 모델의 의도된·금지된 용도, 학습 개요, 평가 결과, 알려진 한계와 편향을 담는다(Mitchell 등 2019이 제안한 프레임). 시스템 카드(system card) 는 모델을 넘어 전체 시스템 — 가드레일, 완화, 레드팀 결과, 남은 잔여 위험 — 을 서술한다. 여기에 학습 데이터의 출처·구성을 밝히는 데이터시트나, 사용 제한·사건 통계를 담는 투명성 보고서가 더해진다. 다만 이 문서들의 한계도 분명히 해야 한다. 대부분 자기보고라 벤더가 검증 주체이면 신뢰에 한계가 있고, 아무리 잘 만들어도 "왜 이 특정 답이 나왔는가"는 여전히 못 밝히며, 프런티어 모델은 학습 데이터를 대개 비공개로 둔다. 그래서 좋은 카드와 나쁜 카드를 가르는 기준은 하나다 — 한계와 실패를 정직하게 적었는가. 완벽한 성능만 나열한 카드는 투명성이 아니라 마케팅이고, 재현·검증에 부족한 정보를 "공개"라 포장하는 것은 오픈워싱(open-washing)이다.
9.4.9 누구의 가치인가 — 정렬의 정치성
"정렬됐다"는 "누군가의 기준에 정렬됐다"의 줄임말이다(3.1.7). 이 절은 그 함의를 윤리·거버넌스의 렌즈로 펼친다.
무엇을 거절할지, 어떤 주제에 어떤 관점을 취할지, 무엇을 "유해"·"논쟁적"·"부적절"로 볼지는 전부 가치 판단이고, 이 판단은 특정 주체가 내린다. 선호 데이터의 라벨러(3.3)는 무엇이 "더 나은 응답"인지를 자기 문화와 관점 위에서 고르고, 그 선택이 모델에 각인된다. 헌법적 AI의 원칙(3.6)은 보편에서 내려온 것이 아니라 특정 조직이 쓴 문서다. 심지어 논쟁적 주제에 "중립"이나 "양측 병기"를 택하는 것도 가치 선택이다 — 어떤 사안에서는 "중립"이 부정의를 방조하는 것으로 읽히고, 중립의 위치를 어디에 둘지가 이미 정치적이다. 그래서 정렬은 기술 문제인 동시에 거버넌스 문제다. 누가 이 가치를 정하는가, 어떻게 다원성을 반영하는가, 이의는 어떻게 제기하는가, 책임은 누구에게 있는가.
이 추상적인 정치성은 문화·언어 편향으로 매우 구체적으로 드러난다. 학습 데이터가 영어와 소수 고자원 언어에 압도적으로 쏠려 있어, 저자원 언어와 방언은 애초에 품질이 낮다 — 같은 과제가 언어에 따라 정확도·유창성·안전성이 크게 갈린다. "글로벌 AI"가 실제로는 특정 언어권을 위해 훨씬 잘 작동하는 것이다. 예의·금기·유머·가족·종교에 대한 암묵적 기본값도 학습 데이터와 라벨러의 문화를 반영해서, 한 문화의 정상이 다른 문화엔 무례하거나 부적절할 수 있다. 무엇이 "유해"한지조차 문화·법역마다 달라, 한 지역 기준으로 설계한 거절 정책이 다른 지역엔 과도하거나 부족하다. 여기서 더 긴 시야의 우려가 하나 나온다 — 소수 조직이 만든 프런티어 모델이 전 세계에 쓰이면 그들의 가치가 사실상의 표준이 되고, 이는 문화 다양성에 대한 장기적 압력이 된다(다만 이 우려의 크기가 얼마나 큰지는 논쟁적이라 단정하지 않는다).
정직하게 말하면 다원성은 기술로 "풀리지" 않는다. "모두를 위해 공정하고 중립한 하나의 모델"은 불가능하다 — 9.4.1의 다원성이 여기서 되돌아온다. 지역·문화별 설정, 헌법·시스템 프롬프트의 지역화(3.6), 사용자·배포자에게 일부 통제를 위임하는 것은 부분적 완화이지 해결이 아니다. 게다가 통제를 위임하면 또 다른 남용의 문이 열린다 — 각 지역이 자기 검열이나 편향을 심을 수 있다. 그러니 정직한 태도는 획일적 중립을 참칭하지 않고 "우리 모델은 이런 가치를 담았고, 이런 집단·언어에서 이렇게 덜 작동하며, 이 선택은 우리가 내렸고 책임진다"고 명시하는 것이다.
9.4.10 보이지 않는 비용 — 라벨러 노동과 에너지·탄소
윤리 논의는 모델의 산출에 쏠리지만, 모델을 만들고 운용하는 과정 자체에 사람과 지구가 든다. 둘 다 실무 리스크다.
LLM은 대량의 인간 노동 위에 선다 — 시연 데이터 작성(SFT, 3.2), 선호 비교(RLHF, 3.3), 유해 콘텐츠 라벨링(안전, 4.3), 레드팀. 이 중 안전 라벨링과 필터 학습은 특히 부담이 크다. 사람이 폭력·학대·혐오 콘텐츠에 반복 노출되어야 하고, 이는 실질적인 정신적 외상을 낳을 수 있다. 이런 데이터·모더레이션 노동은 종종 저임금 지역에 외주되며 보상·심리 지원·고용 안정이 부족하다는 보고가 있는데, 구체적 사례와 규모는 보도·연구마다 달라 단정하기 어렵다((확인 필요)). 이 노동의 특징 하나는 최종 제품에서 보이지 않는다는 것이다. "AI가 스스로 배웠다"는 서사가 그 뒤의 인간 노동을 지운다. 실무 함의는 분명하다. 자체 데이터·모더레이션 파이프라인을 운영하거나 외주할 때 노동 조건, 심리 지원, 노출 최소화(사전 자동 필터로 인간이 봐야 하는 양을 줄이기), 공정 보상은 공급망 윤리의 일부다. 그리고 이것은 자선이 아니라 평판·법·품질 리스크이기도 하다 — 피로와 트라우마는 라벨 품질을 저하시켜 모델에 직접 되돌아온다.
에너지와 탄소는 다루기가 더 까다롭다. 수치의 불확실성이 크고 선택적으로 보고되기 쉬워서, 정직하게 다루려면 절대값보다 구조를 봐야 한다. 두 가지 통념을 숫자로 깨 보자(모든 값은 개략 규모를 위한 설명용 개략치이고, 실제 공개값은 하드웨어·데이터센터 효율·전력망 구성에 따라 자릿수로 크게 변동한다).
먼저 학습이다. 프런티어급 학습 1회가 가속기 약 10,000장을 30일 가동한다 하고, 장당 소비 전력을 약 700 W로 가정하면 가속기단 전력이 약 7 MW다. 30일은 720시간이므로 가속기단 에너지는 $7\ \text{MW}\times720\ \text{h}=5{,}040\ \text{MWh}\approx 5\ \text{GWh}$ 이고, 냉각·전원 등 데이터센터 오버헤드(PUE 약 1.2)를 추가하면 대략 6 GWh다. 전력망 탄소집약도를 0.4 kg CO₂/kWh로 가정하면 $6\times10^6\ \text{kWh}\times0.4\approx 2{,}400$ 톤 CO₂. 이것은 일회성 비용이다.
이제 추론이다. 흔한 통념은 "환경 비용의 대부분은 학습"이라는 것인데, 대규모 서비스에서는 대개 틀렸다. 쿼리 하나가 쓰는 에너지를 약 0.3 Wh(=1,080 J)로 가정하자 — 응답 길이·모델 크기·배칭에 따라 자릿수로 달라지는 값이지만 개략치로 쓴다. 하루 3억 쿼리를 처리하면 하루 추론 에너지는 $3\times10^8\times0.3\ \text{Wh}=9\times10^7\ \text{Wh}=90\ \text{MWh}$ 이고, 연간으로는 $90\ \text{MWh}\times365\approx 33\ \text{GWh}$ 다. 학습이 일회성 6 GWh인데 추론이 연간 33 GWh인 것이다. 추론 누적이 학습 1회를 따라잡는 데 걸리는 시간은 $6{,}000\ \text{MWh} \div 90\ \text{MWh/day}\approx 67\ \text{일}$, 즉 두 달 남짓이다. 모델이 2~3년 서비스되면 그 수명 동안 추론이 소비하는 에너지는 학습의 십수 배가 된다. 학습은 한 번이지만 추론은 매일 반복되기 때문이다 — 이 구조가 "추론 누적이 학습을 넘는다"의 핵심이고, 절대값이 아무리 불확실해도 이 방향성은 견고하다.
| 통념 | 교정 |
|---|---|
| "학습만 에너지를 많이 쓴다" | 대규모 서비스는 추론 누적이 학습을 넘는다(위 예: 두 달 남짓이면 역전). |
| "탄소 수치는 정해져 있다" | 하드웨어·PUE·전력망·경계 정의(운영 탄소 vs 내재 탄소)에 따라 자릿수로 변동. 대부분 추정. |
| "효율이 좋아지니 총량도 준다" | 효율 향상이 사용량 증가로 상쇄되는 반동 효과(Jevons 역설) 가능. 단위 효율과 총량은 별개다. |
실무 함의는 다행히 비용 최적화와 겹친다(7.5). 양자화(5.2)·연속 배칭(5.3)·모델 라우팅(5.6)·적정 크기 모델 선택은 전력과 요금을 함께 줄인다. 재생에너지 조달, 저탄소 시간대 스케줄링, 효율적 하드웨어도 수단이다. 다만 워싱의 양쪽 함정을 다 피해야 한다. "우리 AI는 친환경"·"탄소중립"이라는 주장은 경계 정의(어디까지 셈했나)와 상쇄(offset)의 질을 따지지 않으면 그린워싱이다. 반대로 "AI가 지구를 망친다"는 단정도 비교 대상, 지역 전력망, 절대 규모 없이는 과장이다. 정직한 태도는 경계와 가정과 불확실성을 밝히고 추정으로 제시하는 것 — 방금 한 계산이 그 예시다.
9.4.11 양심을 절차로 — 책임 있는 AI 거버넌스
지금까지의 리스크 — 편향·유해성·불투명성·가치 선택·노동·환경 — 를 한 사람의 판단이 아니라 조직의 반복 가능한 절차로 다루는 것이 거버넌스다. 개인의 선의는 그 사람이 이직하면 사라지지만, 절차는 남는다. 거버넌스를 하나의 흐름으로 그리면 아래와 같다. 이는 널리 쓰이는 위험관리 프레임 — 예컨대 NIST AI RMF의 Govern·Map·Measure·Manage 네 기능 — 의 정신을 따르되, 특정 표준의 준수를 주장하지는 않는다(세부는 (확인 필요)).
핵심은 게이트와 루프다. 출시는 자동이 아니라 사전 정의된 기준을 통과해야 하는 게이트를 지나고, 배포 후에도 모니터링과 사건 대응이 다시 식별로 환류시킨다. 윤리가 정답 없는 과정이므로 거버넌스도 일회성 승인이 아니라 순환이다.
출시 결정부터 보자. "출시할까?"는 예/아니오의 이진이 아니다. 성숙한 조직은 게이트 기준과 단계적 출시(staged release)를 쓴다. 평가·레드팀·편향 감사·문서화가 사전 정의된 임계를 넘어야 다음 단계로 가고, 그 임계는 위험 등급에 비례한다 — 고위험 용도일수록 문턱을 높인다. 그리고 한 번에 전면 공개하는 대신 내부 → 제한 베타 → 점진 확대로 노출을 늘리며 각 단계에서 사건을 관찰하고, 문제가 나오면 확대를 멈추거나 되돌린다. 여기서 자주 잊는 것 하나 — "출시 안 함", "특정 용도 금지", "능력 제한 배포"도 정당한 결과다. 게이트가 통과만을 위한 요식이라면 아무 의미가 없다. 막을 힘이 실제로 있어야 게이트다.
안전 사건은 일어날 것이다(9.4.1의 불확실성이 이것을 보장한다). 대비 없는 조직은 사건 한 번에 우왕좌왕하므로, 보안 사고 대응(7.4)과 비슷한 흐름을 안전·윤리 사건에도 미리 갖춘다.
| 단계 | 할 일 | 실무 |
|---|---|---|
| 탐지 | 모니터링·사용자 신고·레드팀으로 사건 인지(7.6) | 신고 채널·이상 탐지·심각도 자동 분류 |
| 분류(triage) | 심각도·범위·영향 집단 판단 | 심각도 등급·에스컬레이션 기준·담당(on-call) |
| 완화 | 즉시 조치 — 기능 차단·필터 강화·롤백 | 킬 스위치·핫픽스 가드레일·모델 롤백(8.2) |
| 공개·소통 | 영향받는 이해관계자·규제기관에 통지 | 통지 의무 확인(9.3)·투명한 커뮤니케이션 |
| 사후분석(postmortem) | 근본 원인·재발 방지·프로세스 개선 | 비난 없는 회고·게이트/모니터링 보강·재학습 |
거버넌스의 마지막 기둥은 책임 소재다. 감사(audit)는 내부 정기 재평가와, 가능하면 독립적 제3자 감사를 포함하는데, 감사가 의미 있으려면 감사자에게 접근권과 독립성이 있어야 한다 — 감사 대상이 감사 범위를 정하면 감사가 아니다. 각 결정(데이터·정책·출시·완화)에는 책임자를 명시한다(RACI 등). "AI가 그랬다"는 책임 회피는 통하지 않는다. 시스템을 만들고 배포한 사람과 조직이 책임진다. 그리고 결정·근거·평가 결과를 문서로 남겨 나중에 "왜 이렇게 결정했나"를 재구성할 수 있게 한다(모델 라이프사이클 거버넌스, 8.3). 윤리 위원회나 검토 체가 권한 없는 장식이면 그것은 거버넌스가 아니라 워싱이다 — 출시를 막을 실권과 자원이 있어야 한다.
9.4.12 위험을 조직에 심기 — 실무 프레임워크와 규제 연계
원리를 조직의 일상 절차로 바꾸는 다리가 이 절이다. 9.3(법·규제)가 "무엇을 지켜야 하나"의 외부 요구라면, 여기서는 그것을 내부 프로세스로 번역한다. 방법의 골격은 위험을 가능성 × 영향으로 등급화하고, 각각에 완화·소유자·모니터링을 붙인 위험 표(risk register)다. 아래는 축소 예시이고, 실제는 용도·조직에 맞춰 확장한다.
| 위험 | 가능성 | 영향 | 1차 완화 | 탐지·모니터링 | 소유자 |
|---|---|---|---|---|---|
| 집단별 품질·거절 격차 | 중 | 고 | 편향 감사·데이터 보강·정렬(3.1) | 집단별 지표 대시보드(7.6) | ML 리드 |
| 유해 조력(듀얼유즈) | 중 | 고 | 정렬·가드레일(7.3)·레드팀(4.3) | 거절 우회 탐지·신고 | 안전 리드 |
| 오정보·환각 | 고 | 중~고 | 근거 제시·RAG(6.3)·불확실성 표기 | 사실성 샘플 평가·신고 | 제품 리드 |
| 프롬프트 인젝션·탈옥 | 고 | 고 | 다층 방어·권한 분리(7.4) | 공격 탐지·이상 로그 | 보안 리드 |
| 프라이버시 유출 | 중 | 고 | PII 필터·데이터 최소화(9.3) | 유출 탐지·감사 로그 | DPO/법무 |
| 라벨러 노동 위해 | 중 | 중~고 | 노출 최소화·심리 지원·공정 보상 | 공급망 점검·품질 신호 | 운영 리드 |
| 환경 비용 | 중 | 중 | 효율화(양자화·배칭·라우팅, 5.2·5.3·5.6) | 전력·비용 추적(7.5) | 인프라 리드 |
이 표의 값은 예시일 뿐이다. 요점은 형식이 아니라 규율이다 — 위험을 명시적으로 나열하고, 각각에 완화·탐지·책임자를 붙이고, 주기적으로 갱신한다. 표가 있으면 "몰랐다"가 "알고 감수하기로 결정했다"로 바뀐다.
규제와의 연계는 이 표를 규제 티어에 정렬하는 것으로 자연스럽게 이뤄진다. 9.3에서 다루는 규제(예: EU AI Act의 위험 티어 — (확인 필요))는 대개 위험 기반이다. 먼저 우리 시스템이 어떤 등급(금지·고위험·제한적·최소)에 해당하는지 판별하고, 각 등급의 규제 요구(위험관리·데이터 거버넌스·문서화·인간 감독·투명성)를 내부 절차(9.4.11)에 매핑한 뒤, 감사·규제 대응에 대비해 평가·완화·결정의 증거를 문서로 남긴다. 이렇게 해 두면 외부 규제 요구가 곧바로 내부 게이트 기준으로 번역된다.
내 견해로는, 작은 팀이 처음부터 완전한 거버넌스 기구를 세우려다 아무것도 못 하는 경우가 많다. 실무적으로는 위험 표 한 장, 출시 전 체크리스트 하나(다음 절), 사건 신고 채널 하나부터 시작해 사건과 규제 요구에 따라 키우는 편이 현실적이다. 핵심은 규모가 아니라 두 가지의 존재다 — 막을 힘, 그리고 피드백 루프. 이 둘이 없으면 아무리 두꺼운 거버넌스 문서도 장식이다.
9.4.13 워크스루 — 출시 전 책임성 게이트
추상을 구체로 내리자. 어떤 팀이 고객 지원 챗봇(개인정보·결제 문의 포함)을 출시하려 한다. 출시 게이트를 통과하려면 아래 체크리스트를 채우고, 그 결과로 출시·보류·제한·거부를 결정한다. 이는 9.4.11의 게이트를 한 사례로 실연한 것이다.
# 출시 전 책임성 검토 게이트 — 예시 (고객 지원 챗봇)
용도_정의:
의도된_용도: "결제·배송·계정 문의 응대"
금지된_용도: "의료·법률·재정 조언, 신원확인 대체"
영향받는_집단: "다국어 고객, 접근성 요구 사용자"
규제_등급: "제한적~고위험(개인정보 처리) — 9.3 확인 필요"
편향_공정성: # 9.4.2·9.4.3·9.4.4
- [ ] 언어·방언별 응답 품질·거절률 격차 측정, 임계 이내
- [ ] 이름·성별 반사실 테스트로 대우 차이 없음 확인
- [ ] 어떤 공정성 정의를 택했는지 명시(단일 정의 아님을 인지)
유해성_안전: # 9.4.6·9.4.7
- [ ] 레드팀(4.3): 탈옥·유해 조력·PII 유출 시도, 임계 이내
- [ ] 입력·출력 가드레일(7.3) 배치·검증
- [ ] 정렬(3.1) 거절 동작 확인, 과잉거절률도 측정
프라이버시_보안: # 9.3·7.4
- [ ] PII 마스킹·데이터 최소화·보존정책 확인
- [ ] 프롬프트 인젝션·권한 분리 점검(7.4)
투명성_문서: # 9.4.8
- [ ] 시스템 카드 작성(용도·한계·잔여위험·평가결과)
- [ ] 사용자에게 "AI임"·한계·에스컬레이션 경로 고지
운영_거버넌스: # 9.4.11
- [ ] 모니터링·사건 신고 채널·on-call 지정(7.6)
- [ ] 롤백·킬스위치·핫픽스 경로 검증(8.2)
- [ ] 각 위험에 소유자 지정, 사후분석 절차 합의
노동_환경: # 9.4.10
- [ ] (데이터·모더레이션 외주 시) 노동 조건·노출 최소화 점검
- [ ] 모델 크기·배칭·라우팅으로 비용·전력 적정화(7.5)
결정:
가능한_결과: [출시, 단계적_출시, 제한_출시, 보류_보완, 거부]
기준: "고영향 항목에 미충족 잔류 시 단계적/제한 출시 또는 보류"
책임자: "안전 리드 승인 + 제품·법무 서명"
이 게이트를 실제로 통과시켜 보자. 편향 항목에서 "특정 방언에서 거절률이 표준어의 2배"가 나오고, 레드팀에서 "결제 정보를 유도하는 특정 공격에 가끔 다른 사용자의 PII를 노출"이 나왔다 하자. 두 항목은 모두 고영향이다 — 방언 격차는 집단 차별(9.4.2)이고 PII 유출은 프라이버시·법 리스크(9.3)다. 그러면 전면 출시는 게이트에서 막힌다. 선택지는 셋이다. (a) 보완 후 재심사 — 방언 데이터를 보강하고 출력 가드레일을 강화한 뒤 다시 잰다. (b) 제한 출시 — 고위험인 결제 문의는 사람에게 에스컬레이션하고 저위험인 배송 문의만 자동화한다. (c) 단계적 출시 — 제한 베타에서 실사용을 모니터링하며 두 지표를 지켜본다. 어느 쪽을 택하든 결정과 근거를 문서로 남기고 책임자가 서명한다. 나중에 사건이 나면 이 기록이 사후분석의 출발점이 된다.
여기서 요점은 이렇다. 게이트는 완벽을 요구하지 않는다 — 완벽은 불가능하다(9.4.1). 게이트가 하는 일은 잔여 위험을 드러내고, 그것을 감수할지·완화할지·범위를 좁힐지를 책임 있게 결정하게 하는 것이다. "몰랐다"를 "알고 결정했다"로 바꾸는 장치, 그것이 게이트의 전부이자 핵심이다.
9.4.14 워싱을 가르는 시금석 — 실권과 검증가능성
윤리·안전이 평판 자산이 되면서, 실질 없이 외형만 두르는 워싱(washing)이 흔해졌다. 정직성을 위해 그 패턴을 이름 붙여 경계한다.
| 워싱 유형 | 겉모습 | 실질 결핍 |
|---|---|---|
| 윤리 워싱(ethics washing) | 화려한 AI 윤리 원칙·선언 | 원칙이 결정에 구속력이 없음. 위반해도 제품이 나감. |
| 안전 워싱(safety washing) | "레드팀 했다·안전 필터 있다" 홍보 | 범위·기준·잔여위험 비공개. 통과 못 할 테스트는 안 함. |
| 오픈 워싱(open-washing) | "공개·투명" 표방 | 재현·검증에 부족한 정보만 공개(9.4.8). |
| 그린 워싱(green-washing) | "친환경·탄소중립 AI" | 경계·상쇄 질 불투명(9.4.10). |
| 거버넌스 워싱 | 윤리 위원회·검토 체 존재 | 권한·자원·독립성 없음. 막을 힘이 없음. |
이름은 다섯 개지만 워싱을 가르는 시금석은 하나다 — 실권과 검증가능성. 원칙에 실제로 출시를 막을 힘이 있는가? 주장에 검증 가능한 증거가 있는가? 실패와 한계를 정직하게 공개하는가? 이 셋이 없으면 아무리 좋은 말도 마케팅이다. 거꾸로 이 셋이 있으면 화려한 원칙 선언이 없어도 실질적 거버넌스다.
이 책도 이 유혹에서 자유롭지 않다는 점을 마지막으로 인정해야 공정하다. "정직성을 강조한다"는 선언 자체가 워싱이 될 수 있다. 이 책이 그에 맞서는 방어는 구체성이었다 — 편향이 어느 단계에서 오는지, 공정성 정의가 왜 수학적으로 충돌하는지, 추론 에너지가 왜 학습을 넘는지, 무엇이 측정되지 않았는지를 추상적 구호가 아니라 계산과 사례로 다루는 것. "책임 있는 AI"라는 구호가 아니라 게이트·체크리스트·측정·피드백이라는 실행 가능한 절차로 내려올 때에만 윤리가 실질이 된다.
9.4.15 제9부와 이 책을 닫으며
제9부는 기술을 벗어나 사업·전략·법·윤리를 다뤘다. build vs buy의 갈림에서 시작해(9.1), 오픈소스와 라이선스의 지형을 지나(9.2), 법·규제·프라이버시라는 하한선을 밟고(9.3), 그 위에서 "해야 하는가"를 묻는 이 장에 이르렀다. 이 부의 저류는 하나였다. 가장 좋은 기술적 결정도 전략·법·윤리의 맥락 안에서만 좋다는 것. 모델을 잘 만들고 잘 서빙해도, 누구의 가치를 담을지와 누가 책임질지를 정하지 못하면 그 시스템은 미완이다. 윤리 장을 책의 부록이 아니라 본문의 마지막에 둔 이유가 이것이다 — 그것은 잘 만든 시스템에 나중에 바르는 도료가 아니라, 시스템이 무엇을 위해 존재하는지를 정하는 첫 질문이면서 동시에 마지막 질문이다.
그리고 이 책 전체를 닫는다. 우리는 긴 스택을 처음부터 끝까지 관통했다. 언어를 확률로 보는 원리에서 출발해(제1부), 거대한 코퍼스로 엔진을 기르고(제2부), 그 엔진을 유용·정직·무해한 조수로 정렬하고(제3부), 그것을 재고(제4부), 저렴하고 빠르게 서빙하고(제5부), 프롬프트·RAG·에이전트로 응용하고(제6부), 제품·API·안전으로 감쌌으며(제7부), 운영으로 운용하고(제8부), 마침내 전략·법·윤리로 그 전체를 둘러쌌다(제9부). ChatGPT 같은 시스템은 이 층들이 함께 서 있을 때만 작동한다. 그것은 어느 한 층의 영웅적 기술이 아니라 원리부터 거버넌스까지의 정렬된 총합이며, 이 책이 각 층을 따로 떼지 않고 서로가 서로에게 어떻게 비용을 전가하는지 — 어텐션의 제곱 비용이 서빙의 KV 장벽으로, 정렬의 가치 선택이 거버넌스의 책임 문제로 — 를 계속 이어 붙이려 한 이유가 여기 있다.
이 책이 끝까지 지키려 한 것은 정직성이었다. 이 분야는 몇 달 단위로 모델·기법·가격·SOTA가 바뀌고, 연구가 재현되거나 반박되며, 통념이 사실처럼 받아들여진다. 그래서 우리는 특정 모델이나 이번 분기의 벤치마크 1위를 골격으로 삼지 않고 원리와 방법론, 그리고 그 트레이드오프에 무게를 실었다. 변동하는 것은 (확인 필요)로 표시했고, 연구 주장과 검증된 공학과 마케팅을 문장 안에서 구분하려 애썼다. 부디 이 책이 "지금 무엇이 1등인가"의 답이 아니라, 바뀌는 지형에서 스스로 결정하는 법을 남겼기를 바란다. 구체적 수치는 노후화돼도, 왜 그런지·무엇을 내주고 무엇을 얻는지를 묻는 습관은 노후화되지 않는다. 남은 판단은 — 언제나 그랬듯, 그리고 이 마지막 장이 유난히 강조했듯 — 읽는 사람의 몫이다.
본문 뒤에는 부록이 이 여정을 뒷받침한다. 필요한 만큼의 수학·배경 복습(A.1), 손을 더럽힐 실습 환경(A.2), 데이터에서 파인튜닝·서빙·제품까지를 하나로 잇는 엔드투엔드 워크드 예제(A.3), 용어집(A.4), 그리고 핵심 논문과 출처(A.5)다. 원리를 직접 확인하고 싶다면 A.3에서 작은 시스템 하나를 처음부터 만들어 보라 — 이 책 전체가 거기서 한 번 더, 이번엔 코드로 반복된다.