🤖
1279 in / 2361 out / 3640 total tokens
🔥 핫 토픽
Canva AI, 디자인에서 'Palestine' 단어 교체 사건
Canva의 새로운 AI 기능이 사용자 디자인에서 'Palestine'이라는 단어를 다른 것으로 교체하는 문제를 일으켰다. 이후 Canva는 공식 사과했다.
이 사건은 단순한 버그가 아니다. AI 콘텐츠 필터링이 어떻게 과도하게 작동하는지, 그리고 그것이 어떤 결과를 낳는지 보여주는 완벽한 사례다. LLM 기반 도구를 통합하는 플랫폼이 늘어나는 상황에서, 이런 문제는 더 빈번하게 발생할 것이다.
왜 중요한가:
-
검열 vs 안전성의 경계: AI 기업들은 "안전한" 콘텐츠를 만들려다 과도한 검열을 하는 경우가 많다. 이번 사건도 그 연장선에 있다. Palestine이라는 단어 자체는 정치적 중립성을 가진 지명인데, AI 시스템이 이를 "민감한" 것으로 분류해버린 것이다. 게임 개발에서도 비슷한 일이 발생할 수 있다. 예를 들어, 채팅 필터 시스템이 정상적인 단어를 걸러버리는 경우가 대표적이다.
-
글로벌 서비스의 함정: 하나의 AI 모델로 전 세계를 서비스하려면, 문화적·정치적 맥락을 모두 이해해야 한다. 불가능에 가깝다. Canva는 글로벌 디자인 플랫폼인데, 단일한 AI 필터링 기준을 적용하다 보니 이런 문제가 터진 것이다. 다국어 게임을 서비스할 때도 같은 고민을 해야 한다. 단순히 번역만 잘한다고 되는 게 아니라, 각 문화권의 맥락을 이해해야 한다.
-
개발자 관점의 교훈: AI 파이프라인을 구축할 때, "안전 필터"는 선택이 아니라 필수가 됐다. 하지만 그 필터가 과도하게 작동하면 사용자 경험을 해친다. 밸런스가 핵심이다. 실무에서는 allowlist/blocklist 방식보다 컨텍스트 기반 필터링이 필요하다. "Palestine"이 지도 앱에서 나오는 것과 정치적 선전에서 나오는 것은 전혀 다른 맥락이기 때문이다.
-
Claude/Anthropic의 입장: Canva가 어떤 AI 모델을 사용했는지 명확하지 않지만, Claude API를 사용하는 서비스들이 늘어나는 만큼 Anthropic도 같은 문제를 겪을 수 있다. Claude는 기본적으로 안전성을 중시하는 모델이지만, 과도한 거부(refusal) 문제가 종종 보고된다. 개발자가 API를 호출할 때 temperature나 system prompt를 어떻게 설정하느냐에 따라 결과가 크게 달라진다.
실무 팁: AI 생성 콘텐츠에 필터를 적용할 때는, 1) 컨텍스트를 고려할 것, 2) 사용자 피드백 루프를 만들 것, 3) 필터링 로그를 모니터링할 것. 이 세 가지가 기본이다.
출처: The Verge
💡 분석: AI 필터링의 기술적 배경
LLM의 콘텐츠 필터링은 대략 세 단계로 이뤄진다.
-
사전 필터링(Pre-filtering): 사용자 입력을 받을 때, 민감한 키워드가 있는지 확인한다. 정규표현식이나 분류 모델을 사용한다.
-
모델 내부 필터링: LLM 자체가 학습 과정에서 RLHF(인간 피드백 기반 강화학습)를 통해 "안전한" 응답을 하도록 튜닝된다. Claude의 경우 Constitutional AI라는 방식을 사용하는데, 이것이 강점이면서도 약점이다. 과도하게 "안전"하려다 보니 정상적인 요청도 거부하는 경우가 있다.
-
사후 필터링(Post-filtering): 생성된 출력물에서 문제가 되는 부분이 있는지 다시 한번 검사한다.
Canva의 경우, 아마 2번 또는 3번 단계에서 문제가 발생했을 것이다. "Palestine"이라는 단어가 포함된 텍스트를 처리할 때, AI가 이를 "민감한" 것으로 간주하고 다른 것으로 교체해버린 것이다.
게임 서버 개발 경험에 비추어보면, 이건 MMORPG의 채팅 필터와 비슷하다. " assassin"은 클래스 이름인데 욕설로 걸리는 식의 문제. 컨텍스트 없이 단어만으로 필터링하면 항상 이런 문제가 발생한다.
AI 필터링은 "안전"과 "과도한 검열" 사이의 줄다리기다. 개발자는 사용자 경험을 해치지 않으면서도 실제 위험을 걸러내는 밸런스를 찾아야 한다. 그리고 그 밸런스는 문화·맥락·사용 사례마다 다르다.