AI 기초

CodeCarbon을 사용한 AI 탄소 발자국 측정 및 감소

mm
Unite.AI를 Google의 선호 소스에 추가

AI 작업은 전력을 소비하며, 해당 전력과 연관된 온실가스 배출량은 계산이 수행되는 위치와 시기에 따라 달라집니다. CodeCarbon은 작업 에너지 추정치와 전력 탄소 집약도를 결합하여 운영 배출량을 추정하는 오픈소스 도구입니다.

추정치는 그 경계와 불확실성이 명확할 때 유용합니다. 이는 하드웨어 제조, 데이터센터 구축, 네트워킹, 스토리지 또는 모델 배포에 따른 하류 효과를 자동으로 포함하지 않습니다.

핵심 요점

  • 에너지 사용과 탄소 배출은 연관되어 있지만 동일하지 않으며, 전력망 탄소 집약도는 지역과 시간에 따라 달라집니다.
  • CodeCarbon은 CPU, GPU 및 메모리 에너지를 추정한 뒤, 위치에 따라 달라지는 배출 계수를 적용합니다.
  • 하드웨어 활용도, 실행 시간, 데이터센터 오버헤드 및 측정 소스가 정확도에 영향을 미칩니다.
  • 실용적인 목표는 비교 가능한 보고와 감축이며, 허위 정밀성을 추구하는 것이 아닙니다.
Measuring and Reducing AI’s Carbon Footprint with CodeCarbon diagram showing workload, power telemetry, energy, grid intensity, co₂e estimate, reduce + report
경계와 불확실성을 명시하고, 추정치를 활용해 비교 및 감축합니다.

에너지, 전력 및 탄소 집약도

전력은 에너지 사용 속도를 의미하며 보통 와트(W)로 측정합니다. 에너지는 시간에 따라 누적되며 일반적으로 킬로와트시(kWh)로 표시합니다. 운영 중 이산화탄소 등가량은 에너지에 kWh당 CO₂e 그램과 같은 배출 계수를 곱해 추정합니다.

같은 작업이라도 더 청정한 전력망이나 저탄소 시간이면 배출량이 달라질 수 있습니다. 더 빠른 가속기는 순간 전력 소비가 더 높을 수 있지만, 작업이 훨씬 빨리 끝나면 총 에너지 소비는 적을 수 있습니다.

CodeCarbon이 측정하는 항목

CodeCarbon은 컴퓨팅 구성 요소의 에너지를 관찰하거나 추정하고, 실행 시간 및 위치와 같은 메타데이터를 기록합니다. 하드웨어가 직접 전력 텔레메트리를 제공하면 보다 구체적인 추정이 가능하지만, 그렇지 않을 경우 도구는 하드웨어 모델과 활용 가정을 사용합니다.

온라인 모드에서는 위치 기반 탄소 집약도를 활용할 수 있으며, 오프라인 설정에서는 사전 구성된 계수를 사용합니다. 출력은 추정치이며, 그 방법, 소프트웨어 버전 및 설정은 실험과 함께 보관해야 합니다.

보고 경계 선택

런 수준 경계는 하나의 학습 작업을 포함할 수 있습니다. 프로젝트 경계는 하이퍼파라미터 탐색, 실패한 실행, 전처리 및 추론을 포함할 수 있습니다. 서비스 경계는 네트워킹, 스토리지 및 지속적인 배포를 포함할 수 있습니다.

데이터센터 전력 사용 효율(PUE)은 IT 장비 외의 시설 오버헤드를 고려합니다. 제조 및 건설에서 발생하는 내재 배출량은 일반적인 런타임 트래커가 제공하지 않는 수명 주기 데이터가 필요합니다. 보고서에서는 비교가 불가능한 총합을 혼합하기보다 제외 항목을 명시해야 합니다.

상쇄하기 전에 감축

작업의 가치를 먼저 평가하십시오: 중복 실험을 제거하고, 조기 종료를 사용하며, 체크포인트를 재사용하고 효율적인 기준 모델을 선택합니다. 활용도를 높이고, 적절히 배치를 구성하며, 모델 크기를 작업에 맞추세요. 전이 학습은 처음부터 학습하는 것을 피할 수 있습니다.

법적·운영적으로 가능한 경우, 저탄소 지역이나 시간대에 유연하게 작업을 스케줄링하십시오. 모델을 압축하고 효율적인 서빙 하드웨어를 선택하세요; 엣지 AI는 데이터 전송을 줄일 수 있지만, 사용되지 않는 하드웨어를 중복시킬 수도 있으므로 전체 시스템을 측정해야 합니다.

불확실성을 보고하고 공정하게 비교

하드웨어, 위치, 런타임, 에너지, 배출 계수, 실행 횟수 및 값이 측정된 것인지 추정된 것인지 등을 공개하십시오. 탐색적 컴퓨팅과 최종 학습 실행을 구분하고, 가정이 정밀도를 좌우할 때는 소수점 이하 많은 자리수를 보고하지 마세요.

동일한 작업 품질과 경계에서 시스템을 비교하십시오. 작업을 수행하지 못하는 저에너지 모델은 효율적이지 않으며, 작은 정확도 향상이 큰 자원 증가를 정당화하지 않을 수도 있습니다. 탄소는 비용, 물 사용량, 하드웨어 수명 주기, 사회적 혜택과 함께 고려해야 할 하나의 영향입니다.

CodeCarbon이 추정하는 항목

CodeCarbon은 계산과 관련된 에너지 사용량과 탄소 배출량을 추정합니다. 환경 및 사용 가능한 텔레메트리에 따라 CPU, GPU, RAM 또는 시스템 전력을 읽고, 시간에 따라 에너지를 통합한 뒤 해당 전력 지역의 탄소 집약도 추정값과 곱합니다. 결과는 하드웨어 커버리지, 샘플링 간격, 프로세스 귀속, 전력 모델, 위치 및 전력망 데이터에 따라 달라지는 추정치이며, 단위, 버전, 방법론 및 불확실성을 포함해야 하며 정확한 물리적 측정값으로 보고해서는 안 됩니다.

운영 배출은 학습 및 추론 중 사용된 전력에서 발생하고, 내재 배출은 하드웨어 제조, 운송 및 폐기 과정에서 발생하며 일반적으로 런타임 트래커의 범위 밖에 있습니다. 공유 서버는 할당을 복잡하게 만들고, 클라우드 인스턴스는 제한된 텔레메트리만 제공할 수 있습니다. 평균 전력망 집약도는 한계 집약도와 다르며 시간에 따라 변합니다. 재생 가능 계약 및 상쇄는 회계 수단일 뿐, 작업이 배출을 전혀 하지 않았다는 증거는 아닙니다. 실행이나 제공자를 비교하기 전에 경계를 명확히 명시하십시오.

의미 있는 측정 실험 설계

작업, 모델, 데이터, 하드웨어, 지역, 실행 시간, 활용도, 에너지, 탄소 추정치, 품질 및 성공적인 출력 수를 추적하십시오. 워밍업 및 캐시 효과가 짧은 실행을 왜곡할 수 있으므로 제어된 부하 하에서 측정을 반복합니다. 하나의 학습 에포크나 토큰 수가 아니라 동일한 품질 및 서비스 목표를 기준으로 모델을 비교하십시오. 데이터 준비, 하이퍼파라미터 탐색, 실패 실험, 유휴 자원 및 반복적인 추론을 포함시킵니다. 작은 학습 발자국도 대량 서빙에 의해 압도될 수 있습니다.

도구를 활용해 엔지니어링 레버를 찾으세요: 불필요한 실행을 줄이고, 조기 종료를 사용하며, 가속기를 적정 규모로 맞추고, 활용도와 배치를 개선하고, 효율적인 모델을 선택하며, 양자화 또는 지식을 증류하고, 결과를 캐시하고, 저탄소 기간이나 지역에 유연하게 작업을 스케줄링하며, 유휴 자원을 폐기합니다. 모든 최적화는 필요한 정확도, 지연 시간, 안전성 및 신뢰성을 유지해야 합니다. 데이터 전송이나 지역 제약을 고려하지 않고 계산을 이동하면 영향을 감소시키기보다 이동시킬 뿐입니다.

보고 및 거버넌스

추정치와 함께 방법론, 소프트웨어 버전, 하드웨어, 지리적 가정, 품질 지표 및 불확실성을 공개하십시오. 서로 다른 경계를 사용하는 조직을 비교하지 않도록 주의하고, 예산을 설정하고 대규모 실험을 실행 전에 검토하되, 측정 환경 밖에서 컴퓨팅을 숨긴 팀을 보상하지 마세요. 실험 메타데이터를 안전하게 보관하고 개인 프롬프트나 데이터를 로그에 남기지 않도록 합니다. CodeCarbon은 환경 비용을 가시화하고 체계적인 방법 내에서 비교 가능하게 만들지만, 완전한 수명 주기 평가를 제공하거나 독립적으로 검증된 에너지·탄소 회계를 대체할 수는 없습니다.

실제 예시: 두 모델 학습 실행 비교

한 팀이 동일한 이미지 모델을 두 종류의 가속기에서 학습하고, 동일한 데이터, 품질 목표, 배치 로직 및 중단 규칙을 적용해 CodeCarbon을 사용합니다. 도구 버전, 하드웨어, 지역, 샘플링, 활용도, 실행 시간, 에너지, 탄소 집약도 출처 및 불확실성을 기록합니다. 비교에는 실패한 시도와 전처리가 포함되며, 내재된 하드웨어 배출은 런타임 추정치에서 명시적으로 제외됩니다. 결과는 품질이 검증된 학습 실행당 정규화됩니다.

그 후 보다 효율적인 구성은 추론 지연 시간, 신뢰성 및 하위 정확도를 테스트합니다. 엔지니어는 유휴 시간과 하이퍼파라미터 실행을 줄이고, 배치를 개선하며, 규제 데이터를 이동하지 않고 전력망 집약도가 낮은 시점에 유연하게 작업을 스케줄링합니다. 보고서에서는 가정을 공개하고 재생 가능 계약으로 인해 영향을 0이라고 주장하지 않습니다. 이 추정치는 예산 및 설계 신호가 되며, 마케팅 배지가 아닙니다. 반복 측정을 통해 최적화가 눈에 보이는 한 번의 실행이 아니라 전체 수명 주기 작업량을 감소시켰는지 확인합니다.

구현 증거 및 운영 준비성

프로덕션 결정을 내리려면 성공적인 시연 이상이 필요합니다. 의도된 사용자, 운영 환경, 입력·출력, 의존성, 소유자 및 각 중요한 실패의 결과를 정의하십시오. 튜닝 전에 재현 가능한 기준선과 버전 관리된 평가 세트를 마련합니다. 일반적인 경우, 경계 조건, 형식이 잘못되었거나 누락된 입력, 데이터 분포 변화, 의존성 장애, 오용 및 소외될 가능성이 높은 그룹이나 환경을 테스트합니다. 작업 품질을 보정 또는 불확실성, 지연 시간, 처리량, 자원 비용, 접근성, 프라이버시 및 보안과 함께 측정합니다. 모든 변환 및 임계값을 기록해 독립적인 검토자가 결과를 재현하고 매력적인 프로토타입과 증거를 구분할 수 있도록 합니다.

출시 전에는 릴리스, 예외, 변경, 롤백 및 폐기에 대한 권한을 지정합니다. 단계적 롤아웃을 사용하고 안전한 폴백을 유지하며, 의도적으로 주입한 장애를 통해 모니터링을 검증합니다. 운영 텔레메트리는 불필요한 민감 데이터를 수집하지 않으면서 입력 품질, 출력 동작, 모델·규칙 버전, 의존성 상태, 인간 개입 및 확인된 결과를 보여줘야 합니다. 알림 임계값과 대응 담당자를 정의하고, 배포 후 실제 증거를 검토하며 오프라인 성능이 지속될 것이라고 가정하지 마세요. 데이터 소스, 사용자, 모델, 공급업체, 정책, 하드웨어 또는 목표가 변경될 때마다 재평가합니다. 유지되는 시스템은 문서화된 복구, 사고 학습, 삭제·보존 절차 및 비활성화·교체 시점을 명확히 해야 합니다.

자주 묻는 질문

CodeCarbon은 컴퓨터에서 직접 발생하는 CO₂를 측정합니까?

아니요. CodeCarbon은 에너지 사용량과 전력 탄소 집약도를 기반으로 배출량을 추정합니다; 컴퓨터 자체가 전력망의 온실가스를 직접 배출하지는 않습니다.

클라우드 컴퓨팅이 항상 탄소 배출이 낮습니까?

아니요. 결과는 하드웨어 효율성, 활용도, 데이터센터 오버헤드, 전력망 구성, 지역, 시간 및 데이터 이동에 따라 달라집니다.

주요 참고문헌

블로거이자 프로그래머로 Machine Learning Deep Learning 주제에 전문가입니다. 다니엘은 다른 사람들이 AI의 힘을 사회적善으로 사용하는 것을 돕기를 희망합니다.