พื้นฐาน AI

การวัดและลดรอยเท้าคาร์บอนของ AI ด้วย CodeCarbon

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
ระบุขอบเขตและความไม่แน่นอน; ใช้การประมาณการเพื่อเปรียบเทียบและลด

พลังงาน, กำลังไฟและความเข้มข้นคาร์บอน

กำลังไฟคืออัตราการใช้พลังงาน ซึ่งมักวัดเป็นวัตต์ พลังงานสะสมตามเวลา ซึ่งมักวัดเป็นกิโลวัตต์-ชั่วโมง ปริมาณเทียบเท่าคาร์บอนไดออกไซด์ในการดำเนินงานประมาณโดยการคูณพลังงานกับปัจจัยการปล่อย เช่น กรัมของ CO₂e ต่อกิโลวัตต์-ชั่วโมง

งานเดียวกันอาจมีการปล่อยที่แตกต่างกันเมื่อทำงานบนกริดที่สะอาดกว่า หรือในช่วงเวลาที่คาร์บอนต่ำกว่า ตัวเร่งความเร็วที่เร็วกว่าอาจใช้กำลังไฟทันทีมากกว่า แต่ใช้พลังงานรวมน้อยลงหากทำงานเสร็จเร็วกว่า

สิ่งที่ CodeCarbon วัด

CodeCarbon ตรวจสอบหรือประมาณการพลังงานสำหรับส่วนประกอบการคำนวณและบันทึกข้อมูลเมตาเช่น ระยะเวลาและตำแหน่ง เมื่อฮาร์ดแวร์เปิดเผยข้อมูลการวัดกำลังไฟโดยตรง การประมาณการจะเฉพาะเจาะจงมากขึ้น; หากไม่เช่นนั้น เครื่องมือจะใช้โมเดลฮาร์ดแวร์และสมมติฐานการใช้ทรัพยากร

โหมดออนไลน์สามารถใช้ความเข้มข้นคาร์บอนที่รับรู้ตำแหน่งได้ ในขณะที่การตั้งค่าออฟไลน์พึ่งพาปัจจัยที่กำหนดไว้ ผลลัพธ์เป็นการประมาณการซึ่งวิธีการ, เวอร์ชันซอฟต์แวร์และการกำหนดค่าควรบันทึกไว้พร้อมกับการทดลอง

เลือกขอบเขตการรายงาน

ขอบเขตระดับการรันอาจครอบคลุมงานฝึกหนึ่งงาน ขอบเขตระดับโครงการอาจรวมการค้นหาไฮเปอร์พารามิเตอร์, การรันที่ล้มเหลว, การเตรียมข้อมูลและการสรุปผล ขอบเขตระดับบริการอาจรวมเครือข่าย, การจัดเก็บและการปรับใช้ต่อเนื่อง

ประสิทธิภาพการใช้พลังงานของศูนย์ข้อมูล (PUE) คำนึงถึงภาระของสิ่งอำนวยความสะดวกที่เกินอุปกรณ์ไอที การปล่อยคาร์บอนที่ฝังอยู่จากการผลิตและการก่อสร้างต้องการข้อมูลวงจรชีวิตซึ่งตัวติดตามการทำงานมักไม่ได้ให้ รายงานควรระบุการยกเว้นแทนการผสานรวมผลรวมที่ไม่สามารถเปรียบเทียบได้

ลดก่อนการชดเชย

เริ่มจากการประเมินคุณค่าของงานประมวลผล: ลบการทดลองที่ซ้ำซ้อน, ใช้การหยุดก่อนกำหนด, ใช้เช็คพอยต์ซ้ำและเลือกฐานที่มีประสิทธิภาพ ปรับปรุงการใช้ทรัพยากร, จัดกลุ่มอย่างเหมาะสมและให้ขนาดโมเดลสอดคล้องกับงาน การเรียนรู้แบบถ่ายโอน สามารถหลีกเลี่ยงการฝึกจากศูนย์ได้

กำหนดเวลางานที่ยืดหยุ่นในภูมิภาคหรือช่วงเวลาที่คาร์บอนต่ำกว่าเมื่อเป็นไปได้ตามกฎหมายและการปฏิบัติการ บีบอัดโมเดลและเลือกฮาร์ดแวร์ให้บริการที่มีประสิทธิภาพ; edge AI อาจลดการถ่ายโอนข้อมูลแต่ก็อาจทำให้ฮาร์ดแวร์ที่ไม่ได้ใช้เต็มที่ซ้ำซ้อน ดังนั้นควรวัดระบบทั้งหมด

รายงานความไม่แน่นอนและเปรียบเทียบอย่างเป็นธรรม

เผยแพร่ข้อมูลฮาร์ดแวร์, ตำแหน่ง, ระยะเวลาการทำงาน, พลังงาน, ปัจจัยการปล่อย, จำนวนการรันและว่าค่าดังกล่าวเป็นการวัดหรือการประมาณ การคำนวณสำรวจควรแยกออกจากการฝึกขั้นสุดท้าย หลีกเลี่ยงการรายงานทศนิยมหลายตำแหน่งเมื่อสมมติฐานมีอิทธิพลต่อความแม่นยำ

เปรียบเทียบระบบที่มีคุณภาพงานและขอบเขตเท่าเดิม โมเดลที่ใช้พลังงานต่ำแต่ทำงานไม่สำเร็จไม่ถือว่ามีประสิทธิภาพ ในขณะที่การเพิ่มความแม่นยำเล็กน้อยอาจไม่คุ้มกับการเพิ่มทรัพยากรอย่างมาก คาร์บอนเป็นหนึ่งในผลกระทบร่วมกับต้นทุน, น้ำ, วงจรชีวิตฮาร์ดแวร์และประโยชน์ทางสังคม

สิ่งที่ CodeCarbon ประมาณการ

CodeCarbon ประมาณการการใช้พลังงานและการปล่อยคาร์บอนที่เกี่ยวข้องกับการคำนวณ ขึ้นอยู่กับสภาพแวดล้อมและข้อมูลการวัดที่มีอยู่ มันอาจอ่านค่าพลังงานของ CPU, GPU, RAM หรือระบบ, รวมพลังงานตามเวลา, แล้วคูณด้วยการประมาณความเข้มข้นคาร์บอนของพื้นที่ไฟฟ้า ผลลัพธ์เป็นการประมาณการที่ขึ้นกับการครอบคลุมฮาร์ดแวร์, ช่วงเวลาการสุ่มตัวอย่าง, การอ้างอิงกระบวนการ, โมเดลกำลังไฟ, ตำแหน่งและข้อมูลกริด ควรระบุหน่วย, เวอร์ชัน, วิธีวิจัยและความไม่แน่นอน แทนการรายงานเป็นการวัดทางกายภาพที่แม่นยำ

การปล่อยคาร์บอนในการดำเนินงานมาจากไฟฟ้าระหว่างการฝึกและการสรุปผล; การปล่อยที่ฝังอยู่มาจากการผลิต, การขนส่งและการกำจัดฮาร์ดแวร์และโดยทั่วไปอยู่นอกตัวติดตามการทำงาน เซิร์ฟเวอร์ที่ใช้ร่วมกันทำให้การจัดสรรซับซ้อน ในขณะที่อินสแตนซ์คลาวด์อาจให้ข้อมูลการวัดจำกัด ความเข้มข้นกริดเฉลี่ยต่างจากความเข้มข้นมาร์จินัลและเปลี่ยนแปลงตามเวลา สัญญาพลังงานทดแทนและการชดเชยเป็นเครื่องมือบัญชี ไม่ใช่หลักฐานว่างานประมวลผลทำให้ไม่มีการปล่อยใด ๆ ระบุขอบเขตอย่างชัดเจนก่อนเปรียบเทียบการรันหรือผู้ให้บริการ

การออกแบบการทดลองวัดที่มีความหมาย

บันทึกงาน, โมเดล, ข้อมูล, ฮาร์ดแวร์, ภูมิภาค, ระยะเวลา, การใช้ทรัพยากร, พลังงาน, การประมาณคาร์บอน, คุณภาพ, และจำนวนผลลัพธ์ที่สำเร็จ ผลกระทบจากการอุ่นเครื่องและแคชอาจบิดเบือนการรันสั้น ๆ ดังนั้นให้ทำการวัดซ้ำภายใต้โหลดที่ควบคุม เปรียบเทียบโมเดลที่มีคุณภาพและวัตถุประสงค์การให้บริการเท่าเทียมกัน ไม่ใช่เพียงหนึ่ง epoch การฝึกหรือจำนวนโทเคน รวมการเตรียมข้อมูล, การค้นหาไฮเปอร์พารามิเตอร์, การทดลองที่ล้มเหลว, ทรัพยากรที่ไม่ได้ใช้, และการสรุปผลซ้ำที่สำคัญ รอยเท้าการฝึกที่เล็กลงอาจถูกครอบงำโดยการให้บริการที่มีปริมาณสูง

ใช้เครื่องมือเพื่อค้นหาตัวคันของวิศวกรรม: ลดการรันที่ไม่จำเป็น, ใช้การหยุดก่อนกำหนด, ปรับขนาดตัวเร่งให้เหมาะสม, ปรับปรุงการใช้ทรัพยากรและการจัดกลุ่ม, เลือกโมเดลที่มีประสิทธิภาพ, ทำการควอนติฟายหรือดิสทิล, แคชผลลัพธ์, กำหนดเวลางานที่ยืดหยุ่นในช่วงหรือภูมิภาคที่คาร์บอนต่ำ, และยกเลิกทรัพยากรที่ไม่ได้ใช้ ทุกการปรับปรุงต้องรักษาความแม่นยำ, ความหน่วง, ความปลอดภัยและความเชื่อถือได้ การย้ายการคำนวณโดยไม่คำนึงถึงการถ่ายโอนข้อมูลหรือข้อจำกัดภูมิภาคอาจทำให้ผลกระทบย้ายไปแทนที่จะลดลง

การรายงานและการกำกับดูแล

เผยแพร่วิธีวิจัย, เวอร์ชันซอฟต์แวร์, ฮาร์ดแวร์, สมมติฐานทางภูมิศาสตร์, ตัวชี้วัดคุณภาพ, และความไม่แน่นอันคู่กับการประมาณค่า หลีกเลี่ยงการเปรียบเทียบองค์กรที่ใช้ขอบเขตต่างกัน กำหนดงบประมาณและตรวจสอบการทดลองขนาดใหญ่ก่อนการรัน, แต่ไม่ให้รางวัลแก่ทีมที่ซ่อนการคำนวณนอกสภาพแวดล้อมที่วัดได้ ปกป้องเมตาดาต้าการทดลองและหลีกเลี่ยงการบันทึกพรอมต์หรือข้อมูลส่วนตัว CodeCarbon ทำให้ต้นทุนด้านสิ่งแวดล้อมเป็นที่มองเห็นและเปรียบเทียบได้ภายในวิธีการที่มีระเบียบ; มันไม่สามารถให้การประเมินวงจรชีวิตครบถ้วนหรือทดแทนการบัญชีพลังงานและคาร์บอนที่ตรวจสอบโดยอิสระ

ตัวอย่างการทำงาน: การเปรียบเทียบการฝึกโมเดลสองแบบ

ทีมหนึ่งฝึกโมเดลภาพเดียวกันบนตัวเร่งสองประเภทและใช้ CodeCarbon ด้วยข้อมูล, เป้าหมายคุณภาพ, ลอจิกการจัดกลุ่ม, และกฎการหยุดที่เหมือนกัน บันทึกเวอร์ชันของเครื่องมือ, ฮาร์ดแวร์, ภูมิภาค, การสุ่มตัวอย่าง, การใช้ทรัพยากร, ระยะเวลา, พลังงาน, แหล่งความเข้มข้นคาร์บอน, และความไม่แน่นอน การเปรียบเทียบรวมการทดลองที่ล้มเหลวและการเตรียมข้อมูลล่วงหน้า ในขณะที่การปล่อยคาร์บอนที่ฝังอยู่ของฮาร์ดแวร์ถูกระบุอย่างชัดเจนว่าอยู่นอกการประมาณการการทำงาน ผลลัพธ์ถูกทำให้เป็นมาตรฐานต่อการฝึกที่ผ่านคุณภาพ

การกำหนดค่าที่มีประสิทธิภาพมากขึ้นจึงถูกทดสอบสำหรับความหน่วงของการสรุปผล, ความเชื่อถือได้, และความแม่นยำต่อเนื่อง วิศวกรลดเวลาที่ไม่ได้ใช้งานและการรันไฮเปอร์พารามิเตอร์, ปรับปรุงการจัดกลุ่ม, และกำหนดเวลางานที่ยืดหยุ่นในพื้นที่ที่ความเข้มข้นกริดต่ำโดยไม่ย้ายข้อมูลที่ควบคุม รายงานเผยแพร่สมมติฐานและหลีกเลี่ยงการอ้างว่าไม่มีผลกระทบจากสัญญาพลังงานทดแทน การประมาณการกลายเป็นสัญญาณงบประมาณและการออกแบบ ไม่ใช่ตราสินค้าการตลาด การวัดซ้ำตรวจสอบว่าการปรับปรุงลดภาระงานตลอดวงจรชีวิตทั้งหมดหรือไม่ แทนการรันที่มองเห็นได้เพียงหนึ่งครั้ง

หลักฐานการนำไปใช้และความพร้อมในการดำเนินงาน

การตัดสินใจผลิตต้องการมากกว่าการสาธิตที่ประสบความสำเร็จ กำหนดผู้ใช้เป้าหมาย, สภาพแวดล้อมการทำงาน, อินพุต, เอาต์พุต, ขึ้นต่อ, เจ้าของ, และผลของความล้มเหลวสำคัญแต่ละประการ สร้างฐานข้อมูลที่ทำซ้ำได้และชุดประเมินที่มีเวอร์ชันก่อนการปรับแต่ง ทดสอบกรณีทั่วไป, เงื่อนไขขอบเขต, อินพุตที่ผิดรูปหรือหายไป, การเปลี่ยนแปลงการกระจาย, การขัดข้องของการพึ่งพา, การใช้ผิดวิธี, และกลุ่มหรือสภาพแวดล้อมที่อาจไม่ได้รับการบริการอย่างเพียงพอ วัดคุณภาพงานพร้อมกับการสอบเทียบหรือความไม่แน่นอน, ความหน่วง, ปริมาณการทำงาน, ต้นทุนทรัพยากร, การเข้าถึง, ความเป็นส่วนตัว, และความปลอดภัย บันทึกการแปลงทุกขั้นตอนและเกณฑ์เพื่อให้ผู้ตรวจสอบอิสระสามารถทำซ้ำผลลัพธ์และแยกแยะหลักฐานจากต้นแบบที่ดึงดูด

ก่อนเปิดใช้งาน ให้มอบอำนาจสำหรับการปล่อย, ข้อยกเว้น, การเปลี่ยนแปลง, การย้อนกลับ, และการยกเลิก ใช้การปล่อยแบบขั้นตอน, เก็บสำรองที่ปลอดภัย, และตรวจสอบการเฝ้าระวังด้วยการใส่ความล้มเหลวโดยเจตนา การวัดข้อมูลการทำงานควรเปิดเผยคุณภาพอินพุต, พฤติกรรมเอาต์พุต, เวอร์ชันโมเดลหรือกฎ, สถานะการพึ่งพา, การแทรกแซงของมนุษย์, และผลลัพธ์ที่ยืนยันโดยไม่เก็บข้อมูลที่ละเอียดอ่อนที่ไม่จำเป็น กำหนดเกณฑ์การแจ้งเตือนและผู้รับผิดชอบการตอบสนอง, จากนั้นตรวจสอบหลักฐานจากโลกจริงหลังการปรับใช้แทนการสันนิษฐานว่าประสิทธิภาพออฟไลน์จะคงอยู่ ประเมินใหม่เมื่อแหล่งข้อมูล, ผู้ใช้, โมเดล, ผู้จำหน่าย, นโยบาย, ฮาร์ดแวร์, หรือวัตถุประสงค์เปลี่ยนแปลง ระบบที่ดูแลต้องมีขั้นตอนการกู้คืนที่บันทึกไว้, การเรียนรู้จากเหตุการณ์, การลบและการเก็บรักษา, และจุดชัดเจนที่ควรปิดหรือแทนที่

คำถามที่พบบ่อย

CodeCarbon วัด CO₂ ที่มาจากคอมพิวเตอร์โดยตรงหรือไม่?

ไม่ใช่ มันประมาณการการปล่อยก๊าซจากการใช้พลังงานและความเข้มข้นคาร์บอนของไฟฟ้า; คอมพิวเตอร์ไม่ได้ปล่อยก๊าซเรือนกระจกของกริดโดยตรง

การคอมพิวเตอร์คลาวด์มีคาร์บอนต่ำเสมอหรือไม่?

ไม่ ผลลัพธ์ขึ้นอยู่กับประสิทธิภาพของฮาร์ดแวร์, การใช้ทรัพยากร, ภาระของศูนย์ข้อมูล, ส่วนผสมของกริด, ภูมิภาค, เวลาและการเคลื่อนย้ายข้อมูล

อ้างอิงหลัก

นักบล็อกและโปรแกรมเมอร์ที่มีความเชี่ยวชาญใน Machine Learning และ Deep Learning หัวข้อ Daniel หวังที่จะช่วยให้ผู้อื่นใช้พลังของ AI สำหรับสิ่งที่ดี