간단히 말하자면, AI 전처리란 원시의 변동성이 큰 데이터를 일관된 모델 입력값으로 변환하는 반복 가능한 단계들을 말합니다. 여기에는 데이터 정제, 인코딩, 스케일링, 토큰화, 이미지 변환 등이 포함됩니다. 전처리가 중요한 이유는 학습 데이터와 실제 운영 환경의 데이터가 다르면 모델이 오류 없이 제대로 작동하지 않을 수 있기 때문입니다. 만약 특정 단계에서 매개변수를 "학습"한다면, 데이터 유출을 방지하기 위해 학습 데이터에만 적용해야 합니다.
AI 전처리란 모델이 실제로 학습할 수 있도록 훈련이나 추론 전(그리고 때로는 도중)에 원시 데이터에 대해 수행하는 모든 작업을 의미합니다. 단순히 "정리"하는 것이 아닙니다. 이는 나중에 모델이 조용히 오류를 일으키지 않도록 데이터를 일관된 표현으로 정리, 형태 변경, 크기 조정, 인코딩, 증강 및 패키징하는 작업입니다. [1]
핵심 요약:
정의 : 전처리는 원시 테이블, 텍스트, 이미지 및 로그를 모델에서 사용할 수 있는 특징으로 변환합니다.
일관성 : 불일치로 인한 오류를 방지하기 위해 학습과 추론 과정에서 동일한 변환을 적용합니다.
누출 방지 : 스케일러, 인코더 및 토크나이저를 훈련 데이터에만 적용합니다.
재현성 : 임시방편적인 노트북 셀 시퀀스가 아닌, 검증 가능한 통계를 포함하는 파이프라인을 구축하세요.
생산 모니터링 : 입력값이 점진적으로 성능을 저하시키지 않도록 편차와 변동을 추적합니다.
이 글을 읽고 나서 읽어보시면 좋을 만한 글들:
🔗 실제 환경에서 AI 모델의 성능을 테스트하는 방법
정확도, 견고성 및 편향을 신속하게 평가하는 실용적인 방법.
🔗 텍스트 음성 변환은 인공지능인가요? 그리고 어떻게 작동하나요?
TTS의 기본 사항, 주요 활용 사례 및 현재 일반적인 한계점을 설명합니다.
🔗 오늘날 인공지능은 필기체를 정확하게 읽을 수 있을까요?
인식 관련 어려움, 최적의 도구 및 정확도 향상 팁을 다룹니다.
🔗 일반적인 작업에서 AI의 정확도는 어느 정도일까요?
정확도 요소, 벤치마크 및 실제 신뢰성을 분석합니다.
AI 전처리란 무엇인지, 그리고 무엇이 아닌지 쉽게 설명해 드릴게요 🤝
AI 전처리 란 원시 입력 데이터(표, 텍스트, 이미지, 로그)를 모델에서 바로 사용할 수 있는 특징으로 변환하는 과정입니다. 원시 데이터를 어수선한 차고에 비유하자면, 전처리는 상자에 라벨을 붙이고, 쓸모없는 물건을 버리고, 물건들을 정리해서 다치지 않고 걸어 다닐 수 있도록 만드는 작업과 같습니다.
모델 자체가 문제가 아니라, 모델을 가능하게 하는 요소들이 문제입니다
-
범주를 숫자로 변환(원핫, 서수 등) [1]
-
큰 수치 범위를 적절한 범위로 조정(표준화, 최소-최대 등)[1]
-
텍스트를 입력 ID(및 일반적으로 주의 마스크)로 토큰화[3]
-
이미지 크기 조정/자르기 및 결정론적 변환과 무작위 변환을 적절하게 적용[4]
-
반복 가능한 파이프라인을 구축하여 훈련과 "실생활" 입력이 미묘한 방식으로 달라지지 않도록 합니다.[2]
실용적인 팁 하나 드리자면, "전처리"는 모델이 입력값을 보기 전에 항상 일어나는 모든 과정을 . 어떤 팀들은 이를 "특징 엔지니어링"과 "데이터 클리닝"으로 구분하기도 하지만, 실제로는 그 경계가 모호합니다.

AI 전처리 과정이 사람들이 생각하는 것보다 훨씬 중요한 이유 😬
모델은 패턴을 찾아내는 도구이지, 마음을 읽는 도구가 아닙니다. 입력값이 일관성이 없으면 모델은 일관성 없는 규칙을 학습합니다. 이는 철학적인 이야기가 아니라, 아주 문자 그대로의 사실입니다.
전처리 과정을 통해 다음과 같은 이점을 얻을 수 있습니다
-
추정기가 안정적으로 사용할 수 있는 표현에 특징을 넣어 학습 안정성을 향상시킵니다
-
혼란스러운 현실을 모델이 일반화할 수 있는 형태로 만들어 노이즈를 줄입니다
-
누출 및 훈련/서비스 불일치(검증에서는 "놀랍게" 보이지만 프로덕션에서는 완전히 실패하는 유형)와 같은 조용한 실패 모드를 방지합니다
-
반복 가능한 변환이 노트에 복잡하게 얽힌 코드를 작성하는 것보다 , 반복 작업을 가속화하세요
또한, 모델 성능의 상당 부분이 바로 이 부분에서 비롯됩니다. 생각보다 훨씬 더요. 때로는 불공평하게 느껴지지만, 그게 현실입니다 🙃
훌륭한 AI 전처리 파이프라인을 만드는 요소는 무엇일까요? ✅
일반적으로 "좋은" 전처리 방법은 다음과 같은 특징을 가지고 있습니다
-
재현 가능성 : 동일한 입력 → 동일한 출력 (의도적인 조작이 아닌 이상 알 수 없는 무작위성 없음).
-
훈련-서비스 일관성 : 훈련 시간에 수행하는 모든 작업은 추론 시간에도 동일한 방식으로 적용됩니다(동일한 적합 매개변수, 동일한 범주 맵, 동일한 토크나이저 구성 등). [2]
-
누출 방지 : 평가/테스트의 어떤 것도
적합단계에 영향을 미치지 않습니다. (이 함정에 대해서는 잠시 후에 자세히 설명하겠습니다.) [2] -
관찰 가능 : 변경된 사항(특징 통계, 결측치, 범주 개수)을 검사할 수 있으므로 디버깅이 직감에 의존하는 엔지니어링 작업이 아닙니다.
final_v7_really_final_ok 같은 이름으로 된 노트북 셀들의 덩어리라면 … 어떤 느낌인지 아시죠? 잘 작동하다가 갑자기 고장 나는 그런 상황 말이에요 😬
AI 전처리 핵심 구성 요소 🧱
전처리 과정을 파이프라인으로 구성하는 여러 개의 빌딩 블록으로 생각하십시오.
1) 세척 및 검증 🧼
일반적인 업무:
-
중복 제거
-
결측값 처리 (삭제, 대체 또는 결측값 명시적 표시)
-
유형, 단위 및 범위를 적용합니다
-
잘못된 입력을 감지합니다
-
텍스트 형식 표준화(공백, 대소문자 규칙, 유니코드 특성)
이 부분이 화려하진 않지만, 정말 어처구니없는 실수를 막아줍니다. 진심으로 하는 말이에요.
2) 범주형 데이터 인코딩 🔤
"red" 또는 "premium_user" 와 같은 원시 문자열을 직접 사용할 수 없습니다 .
일반적인 접근 방식:
-
원핫 인코딩 (범주 → 이진 열) [1]
-
순서 인코딩 (범주 → 정수 ID) [1]
핵심은 어떤 인코더를 선택하느냐가 아니라 매핑이 일관성을 유지하고 학습과 추론 사이에 "형태가 바뀌지" 않는다는 것입니다. 이렇게 하면 오프라인에서는 괜찮아 보이지만 온라인에서는 문제가 있는 것처럼 보이는 모델이 됩니다. [2]
3) 특징 스케일링 및 정규화 📏
기능들이 매우 다양한 범위에 존재할 때 확장성은 중요합니다.
두 가지 고전 작품:
-
표준화 : 평균을 제거하고 단위 분산으로 스케일링합니다[1].
-
최소-최대 스케일링 : 각 기능을 지정된 범위로 스케일링합니다[1].
"대부분의 경우 문제없이 작동하는" 모델을 사용하더라도, 확장성을 확보하면 파이프라인을 더 쉽게 이해하고 실수로 오류를 발생시킬 가능성을 줄일 수 있습니다.
4) 특징 엔지니어링 (일명 유용한 편법) 🧪
여기서는 더 나은 신호를 생성하여 모델의 작업을 더 쉽게 만들어 줍니다
-
비율(클릭수/노출수)
-
이동 창(최근 N일)
-
카운트(사용자당 이벤트 수)
-
두꺼운 꼬리 분포에 대한 로그 변환
여기에는 기술이 필요해요. 어떤 기능을 만들고 나서 뿌듯함을 느낄 때도 있지만, 아무런 효과가 없거나, 심지어 실망스러울 때도 있죠. 그건 지극히 정상이에요. 기능에 감정적으로 너무 집착하지 마세요. 기능은 당신을 사랑해주지 않으니까요. 😅
5) 데이터를 올바르게 분할하는 방법 ✂️
언뜻 당연해 보이지만, 그렇지 않은 경우가 있습니다
-
독립 동일성 데이터에 대한 무작위 분할
-
시계열에 대한 시간 기반 분할
-
개체가 반복될 때 그룹화된 분할(사용자, 장치, 환자)
그리고 중요한 것은 데이터로부터 학습하는 전처리를 적용하기 전에 분할해야 한다는 것 입니다. 전처리 단계에서 매개변수(평균, 어휘, 범주 맵 등)를 "학습"하는 경우, 훈련에서만 학습해야 합니다. [2]
데이터 유형별 AI 전처리: 표, 텍스트, 이미지 🎛️
전처리 과정은 모델에 입력하는 데이터에 따라 형태가 달라집니다.
표 형식 데이터(스프레드시트, 로그, 데이터베이스) 📊
일반적인 단계:
-
누락된 가치 전략
-
범주형 인코딩 [1]
-
숫자 열의 스케일링[1]
-
이상치 처리 (도메인 규칙이 대부분의 경우 "임의 클리핑"보다 우수함)
-
파생 특징(집계, 지연, 이동 통계)
실용적인 조언: 열 그룹을 명확하게 정의하세요(숫자형, 범주형, 식별자). 나중에 분명 도움이 될 겁니다.
텍스트 데이터(자연어 처리) 📝
텍스트 전처리에는 일반적으로 다음이 포함됩니다
-
토큰화(토큰/하위 단어로)
-
입력 ID 로 변환
-
패딩/잘림
-
주의 마스크 구축 [3]
작지만 중요한 규칙: 트랜스포머 기반 학습 환경에서는 모델이 제시하는 토크나이저 설정을 따르고, 특별한 이유가 없는 한 임의로 설정하지 마세요. 임의로 설정하면 "학습은 되지만 결과가 이상하다"는 결과를 초래할 수 있습니다
이미지(컴퓨터 비전) 🖼️
일반적인 전처리 과정:
-
일관된 모양으로 크기 조정/자르기
-
평가를 위한 결정론적 변환
-
훈련 증강을 위한 무작위 변환(예: 무작위 자르기) [4]
사람들이 놓치는 한 가지 세부 사항은 "랜덤 변환"이 단순히 분위기만 있는 것이 아니라 호출될 때마다 매개변수를 실제로 샘플링한다는 것입니다. 훈련 다양성에는 좋지만 무작위성을 끄는 것을 잊으면 평가에는 최악입니다. [4]
모두가 빠지는 함정: 데이터 유출 🕳️🐍
데이터 누출이란 평가 데이터의 정보가 전처리 과정에서 학습 데이터로 새어 들어가는 현상을 말합니다. 이로 인해 검증 단계에서는 모델이 놀라운 성능을 보여주지만, 실제 환경에서는 실망스러운 결과를 초래할 수 있습니다.
일반적인 누출 패턴:
-
전체 데이터셋 통계를 사용한 스케일링(학습만 사용하는 대신) [2]
-
학습과 테스트를 함께 사용하여 카테고리 맵 구축[2]
-
테스트 세트를 "보는" 모든
fit()또는fit_transform()
경험 법칙 (간단하고, 냉혹하고, 효과적):
-
스텝 있는 모든 제품은 훈련 중에만 사용해야 합니다.
-
그런 다음 변환합니다 . [2]
그리고 "얼마나 나쁠 수 있을까?"라는 직감적인 확인을 원한다면 scikit-learn 자체 문서에서 잘못된 전처리 순서로 인해 무작위 대상에 대해 0.76 0.5 . 누출이 얼마나 잘못될 수 있는지 확실합니다. [2]
혼란 없이 전처리 기능을 프로덕션 환경에 적용하기 🏗️
많은 모델이 실제 운영 환경에서 실패하는 이유는 모델 자체가 "나빠서"가 아니라 입력 데이터가 바뀌거나 파이프라인이 변경되기 때문입니다.
생산성을 고려한 전처리에는 일반적으로 다음이 포함됩니다
-
저장된 아티팩트 (인코더 매핑, 스케일러 매개변수, 토크나이저 구성)를 통해 추론은 정확히 동일한 학습된 변환을 사용합니다.[2]
-
엄격한 입력 계약 (예상 열/유형/범위)
-
생산 데이터가 수 있으므로 왜곡 및 드리프트 모니터링 [5]
구체적인 정의를 원하시면 Google의 Vertex AI 모델 모니터링은 훈련-서비스 편향 (생산 분포가 훈련에서 벗어남)과 추론 드리프트 (생산 분포가 시간에 따라 변함)를 구분하고 범주형 및 수치형 특징 모두에 대한 모니터링을 지원합니다.[5]
왜냐하면 놀라움은 비용이 많이 들기 때문입니다. 그것도 즐거운 놀라움이 아니라요.
비교표: 일반적인 전처리 및 모니터링 도구 (및 대상) 🧰
| 도구/라이브러리 | ~에 가장 적합함 | 가격 | 이 방법이 효과적인 이유 (그리고 약간의 솔직함) |
|---|---|---|---|
| scikit-learn 전처리 | 테이블 형식 ML 파이프라인 | 무료 | 견고한 인코더 + 스케일러(OneHotEncoder, StandardScaler 등) 및 예측 가능한 동작[1] |
| 허깅 페이스 토큰화기 | 자연어 처리 입력 준비 | 무료 | 실행/모델 전반에 걸쳐 입력 ID + 주의 마스크를 일관되게 생성합니다[3] |
| 토치비전이 변환합니다 | 비전 변환 + 증강 | 무료 | 하나의 파이프라인에서 결정적 변환과 무작위 변환을 혼합하는 깔끔한 방법[4] |
| Vertex AI 모델 모니터링 | 프로덕션 환경에서의 드리프트/스큐 감지 | 유료(클라우드) | 모니터는 편향/드리프트를 특징으로 하며 임계값이 초과되면 경고합니다[5] |
(네, 이 테이블에는 여전히 의견들이 있어요. 하지만 적어도 솔직한 의견들이죠 😅)
실제로 사용할 수 있는 실용적인 전처리 체크리스트 📌
훈련 전
-
입력 스키마(유형, 단위, 허용 범위)를 정의합니다
-
누락된 값과 중복 값을 감사합니다
-
데이터를 올바른 방식으로 분할하세요 (랜덤 분할 / 시간 기반 분할 / 그룹화 분할)
-
훈련에만 적합 전처리 (
fit/fit_transform은훈련에만 유지됨) [2] -
추론에서 재사용할 수 있도록 전처리 아티팩트를 저장합니다.[2]
훈련 중
-
적절한 경우에만 무작위 증강을 적용합니다(일반적으로 훈련 분할만 해당)[4]
-
평가 전처리를 결정론적으로 유지합니다[4]
-
전처리 변경 사항을 모델 변경 사항과 마찬가지로 추적합니다(실제로 모델 변경 사항이기 때문입니다)
배포 전
-
추론이 동일한 전처리 경로 및 아티팩트를 사용하도록 보장합니다[2]
-
드리프트/스큐 모니터링을 설정하세요(기본적인 기능 분포 검사만으로도 큰 도움이 됩니다)[5]
심층 분석: 흔히 발생하는 전처리 오류 (그리고 이를 피하는 방법) 🧯
실수 1: “모든 걸 순식간에 정상화해야지.” 😵
전체 데이터셋에서 스케일링 매개변수를 계산하면 평가 정보가 유출됩니다. 학습 데이터셋에서 적합시키고 나머지를 변환합니다. [2]
두 번째 실수: 카테고리가 혼란에 빠지는 현상 🧩
학습과 추론 사이에 범주 매핑이 변경되면 모델이 세상을 잘못 읽을 수 있습니다. 저장된 아티팩트를 통해 매핑을 고정하십시오. [2]
세 번째 실수: 평가 과정에 무작위 데이터 증강이 슬며시 개입하는 경우 🎲
랜덤 변환은 훈련에 매우 유용하지만 성능을 측정하려고 할 때는 "몰래 켜짐" 상태가 되어서는 안 됩니다. (랜덤은 말 그대로 랜덤입니다.) [4]
마지막으로 🧠✨
AI 전처리 란 복잡한 현실을 일관된 모델 입력으로 변환하는 체계적인 기술입니다. 여기에는 데이터 정제, 인코딩, 크기 조정, 토큰화, 이미지 변환, 그리고 가장 중요한 반복 가능한 파이프라인 및 결과물 구축이 포함됩니다.
-
전처리를 의도적으로 수행하세요. [2]
-
먼저 분할하고, 훈련에만 변환을 적용하여 누출을 방지합니다. [2]
-
모달리티에 적합한 전처리(텍스트의 경우 토크나이저, 이미지의 경우 변환)를 사용합니다. [3][4]
-
생산 편향/변동을 모니터링하여 모델이 서서히 비정상으로 변질되지 않도록 합니다. [5]
혹시라도 막히는 부분이 있다면, 스스로에게 이렇게 질문해 보세요.
"이 전처리 단계를 내일 완전히 새로운 데이터에 적용했을 때도 여전히 의미가 있을까?"
만약 답이 "음... 글쎄?"라면, 그게 바로 힌트입니다 😬
자주 묻는 질문
AI 전처리란 간단히 말해서 무엇인가요?
AI 전처리란 잡음이 많고 변동성이 큰 원시 데이터를 모델이 학습할 수 있는 일관된 입력값으로 변환하는 반복 가능한 일련의 단계입니다. 여기에는 데이터 정제, 유효성 검사, 범주 인코딩, 숫자 값 스케일링, 텍스트 토큰화, 이미지 변환 등이 포함될 수 있습니다. 목표는 학습과 실제 운영 환경에서의 추론에 "동일한 유형"의 입력값을 사용하도록 하여 모델이 나중에 예측 불가능한 동작을 보이는 것을 방지하는 것입니다.
AI 사전 처리가 실제 운영 환경에서 왜 그렇게 중요한가요?
모델은 입력 표현 방식에 민감하기 때문에 전처리 과정이 중요합니다. 학습 데이터의 스케일링, 인코딩, 토큰화 또는 변환 방식이 프로덕션 데이터와 다르면 오프라인에서는 문제가 없어 보이지만 온라인에서는 조용히 오류를 발생시키는 학습/서비스 불일치 문제가 발생할 수 있습니다. 강력한 전처리 파이프라인은 노이즈를 줄이고 학습 안정성을 향상시키며, 복잡한 노트북 코드를 정리하는 수고를 덜어주기 때문에 반복 작업 속도를 높여줍니다.
전처리 과정에서 데이터 유출을 방지하려면 어떻게 해야 할까요?
간단한 규칙이 있습니다. 적합 화 단계를 거치는 모든 도구는 훈련 데이터에만 적합화해야 합니다. 여기에는 평균, 카테고리 맵, 어휘와 같은 매개변수를 학습하는 스케일러, 인코더, 토크나이저가 포함됩니다. 먼저 데이터를 분할하고, 훈련 분할된 데이터에 적합화한 다음, 적합화된 변환기를 사용하여 검증/테스트 데이터를 변환합니다. 데이터 누출로 인해 검증 데이터는 "마법처럼" 좋아 보이다가 실제 운영 환경에서는 완전히 실패할 수 있습니다.
표 형식 데이터에 대한 가장 일반적인 전처리 단계는 무엇입니까?
표 형식 데이터의 경우, 일반적인 파이프라인은 데이터 정제 및 유효성 검사(데이터 유형, 범위, 결측값 처리), 범주형 인코딩(원핫 인코딩 또는 순서형 인코딩), 그리고 수치형 스케일링(표준화 또는 최소-최대화)을 포함합니다. 많은 파이프라인은 비율, 이동 윈도우, 개수 계산과 같은 도메인별 특징 추출 기법을 추가하기도 합니다. 변환 과정의 일관성을 유지하기 위해 열 그룹(수치형, 범주형, 식별자)을 명시적으로 정의하는 것이 좋습니다.
텍스트 모델에서 전처리 과정은 어떻게 진행되나요?
텍스트 전처리에는 일반적으로 토큰/서브워드로의 토큰화, 이를 입력 ID로 변환, 배치 처리를 위한 패딩/잘림 처리 등이 포함됩니다. 많은 트랜스포머 워크플로는 ID와 함께 어텐션 마스크도 생성합니다. 토크나이저 설정에서 미세한 차이가 "학습은 되지만 예측할 수 없는 동작을 보이는" 결과를 초래할 수 있으므로, 임의로 설정을 변경하기보다는 모델의 예상 토크나이저 구성을 사용하는 것이 일반적입니다.
머신러닝을 위한 이미지 전처리 과정은 무엇이 다를까요?
이미지 전처리는 일반적으로 일관된 형태와 픽셀 처리를 보장합니다. 여기에는 크기 조정/자르기, 정규화, 그리고 결정론적 변환과 무작위 변환의 명확한 구분이 포함됩니다. 평가 시에는 측정 지표의 비교 가능성을 위해 변환은 결정론적이어야 합니다. 학습 시에는 무작위 데이터 증강(예: 무작위 자르기)을 통해 견고성을 향상시킬 수 있지만, 무작위성은 의도적으로 학습 분할에만 적용되어야 하며, 평가 중에 실수로 무작위로 적용되지 않도록 해야 합니다.
전처리 파이프라인이 취약하지 않고 "좋은" 파이프라인이 되려면 무엇이 필요할까요?
훌륭한 AI 전처리 파이프라인은 재현 가능하고, 데이터 누출이 없으며, 관찰 가능해야 합니다. 재현 가능하다는 것은 의도적인 무작위성 증강이 아닌 이상 동일한 입력이 동일한 출력을 생성한다는 것을 의미합니다. 데이터 누출이 없다는 것은 학습 단계가 검증/테스트 단계에 영향을 미치지 않는다는 것을 의미합니다. 관찰 가능하다는 것은 결측치, 범주 빈도, 특징 분포와 같은 통계를 검사하여 디버깅을 직관적인 판단이 아닌 증거에 기반하여 수행할 수 있다는 것을 의미합니다. 파이프라인은 임시방편적인 노트북 작업 방식보다 항상 우수합니다.
학습 및 추론 전처리 과정을 일관성 있게 유지하려면 어떻게 해야 할까요?
핵심은 추론 시 학습된 아티팩트(스케일러 파라미터, 인코더 매핑, 토크나이저 설정)를 정확히 재사용하는 것입니다. 또한 프로덕션 데이터가 의도치 않게 잘못된 형태로 변질되는 것을 방지하기 위해 입력 계약(예상되는 열, 유형 및 범위)을 설정해야 합니다. 일관성은 단순히 "같은 단계를 수행하는 것"이 아니라 "동일한 학습된 파라미터와 매핑을 사용하여 같은 단계를 수행하는 것"을 의미합니다
전처리 과정에서 발생하는 드리프트나 왜곡과 같은 문제를 시간에 따라 어떻게 모니터링할 수 있을까요?
탄탄한 파이프라인을 갖추더라도 프로덕션 데이터는 변할 수밖에 없습니다. 일반적인 접근 방식은 특징 분포 변화를 모니터링하고 학습-실제 데이터 불균형(프로덕션 데이터가 학습 데이터와 차이가 나는 경우) 및 추론 데이터의 변화(프로덕션 데이터가 시간에 따라 변하는 경우)에 대해 알림을 보내는 것입니다. 모니터링은 간단한 분포 검사처럼 가볍게 수행할 수도 있고, Vertex AI 모델 모니터링처럼 관리형으로 수행할 수도 있습니다. 목표는 입력 데이터의 변화를 조기에 감지하여 모델 성능이 서서히 저하되기 전에 해결하는 것입니다.
참고 자료
[1] scikit-learn API:
sklearn.preprocessing (인코더, 스케일러, 정규화) [2] scikit-learn: 일반적인 함정 - 데이터 유출 및 방지 방법
[3] Hugging Face Transformers 문서: 토크나이저(입력 ID, 어텐션 마스크)
[4] PyTorch Torchvision 문서: 변환(크기 조정/정규화 + 임의 변환)
[5] Google Cloud Vertex AI 문서: 모델 모니터링 개요(특징 편향 및 드리프트)