모델의 탄소 배출량 표시하기
모델의 탄소 배출량 표시하기
모델 학습은 에너지 집약적인 경우가 많고 상당한 탄소 발자국을 남길 수 있어요. 모델의 배출량을 추적·보고해서 우리 분야의 환경 영향을 더 잘 파악하는 게 중요해요.
코드 카본(Code Carbon) 같은 패키지로 학습 중 실시간으로 탄소 발자국을 계산해 모델 카드에 넣을 수 있어요.
출처: 문서
본문
모델의 탄소 발자국을 계산하는 게 왜 좋을까?
ML 모델 학습은 에너지 집약적이고 상당한 탄소 발자국을 만들 수 있어요. Strubell et al.이 이 문제를 설명했어요. 따라서 모델의 배출량을 추적하고 보고해서 우리 분야의 환경 영향을 더 잘 파악하는 게 중요해요.
모델의 탄소 발자국에 어떤 정보를 넣어야 할까?
가능하다면 다음 정보를 넣어야 해요:
- 모델이 학습된 위치 (지리적 위치)
- 사용된 하드웨어 -- 예: GPU, TPU 또는 CPU와 그 개수
- 학습 유형: 사전학습(pre-training) 또는 파인튜닝(fine-tuning)
- Code Carbon 패키지로 실시간 계산하거나 학습 후 ML CO2 Calculator를 사용해 계산한 모델의 예상 탄소 발자국.
탄소 발자국 메타데이터
탄소 발자국 데이터를 모델 카드 메타데이터(README.md 파일)에 추가할 수 있어요. 메타데이터 구조는 다음과 같아야 해요:
---
co2_eq_emissions:
emissions: number (in grams of CO2)
source: "source of the information, either directly from AutoTrain, code carbon or from a scientific article documenting the model"
training_type: "pre-training or fine-tuning"
geographical_location: "as granular as possible, for instance Quebec, Canada or Brooklyn, NY, USA. To check your compute's electricity grid, you can check out https://app.electricitymap.org."
hardware_used: "how much compute and what kind, e.g. 8 v100 GPUs"
---
모델의 탄소 발자국은 어떻게 계산될까? 🌎
컴퓨팅 하드웨어, 위치, 사용량, 학습 시간을 고려해서 모델이 만들어낸 CO2 양을 추정할 수 있어요.
계산은 꽤 간단해요! ➕
먼저 학습에 사용된 전력망의 *탄소 집약도(carbon intensity)*를 구해요 — 이는 사용된 전기 kWh당 생성되는 CO2 양이에요. 탄소 집약도는 하드웨어의 위치와 그 위치에서 사용되는 에너지 믹스에 따라 달라져요 — 태양광 🌞, 풍력 🌬️, 수력 💧 같은 재생에너지인지, 석탄 ⚫, 천연가스 💨 같은 비재생에너지인지에 따라요. 학습에 재생에너지를 많이 쓸수록 탄소 집약도가 낮아져요!
그 다음 pynvml 라이브러리로 학습 중 GPU의 전력 소비량을 구해요.
마지막으로 전력 소비량과 탄소 집약도를 모델 학습 시간으로 곱하면 CO2 배출량 추정치가 나와요.
이건 정확한 숫자가 아니라는 점을 명심해요. 데이터센터 냉난방에 쓰이는 에너지 같은 다른 요소들이 탄소 배출을 늘리기 때문이에요. 하지만 모델이 내뿜는 CO2 배출의 규모를 감 잡는 데는 좋아요!
모델에 Carbon Emissions 메타데이터를 추가하려면:
- AutoTrain을 사용한다면 자동으로 추적돼요 🔥
- 그 외에는 학습 코드에서 Code Carbon 같은 추적기를 사용하고, 모델 카드 메타데이터에 다음을 지정해요.
co2_eq_emissions:
emissions: 1.2345
1.2345는 그램(g) 단위의 배출 값이에요.
Transformers의 탄소 발자국에 대해 더 알아보려면 Hugging Face Course의 일부인 비디오를 확인해 보세요.
더 알아보기 (Learn more)
co2_eq_emissions메타데이터로 모델 카드에 탄소 배출을 표시해요.- Code Carbon으로 학습 중 실시간 배출을 추적해요.
- 모델 카드 문서에서 카드에 넣는 다른 메타데이터도 확인해 보세요.