چجوری مصرف انرژی هوش مصنوعی رو تو لبه‌ها کنترل کنیم؟ یه نگاه راحت به داستان LLMها و محیط زیست

Fall Back

حتماً تا حالا شنیدی که مدل‌های زبانی بزرگ (LLMها) مثل ChatGPT کلی داده مصرف می‌کنن. حالا موضوعی که شاید بهش توجه نکرده باشی اینه که همین مدل‌ها، البته غیر از آموزش دادن‌شون که خودش پرخرج و پرمصرفه، وقتی دارن جواب به ما میدن (یعنی مرحله inference یا همون “پاسخ دادن به کوئری‌ها”)، یه عالمه انرژی مصرف می‌کنن و خب، این یعنی کلی ردپای کربنی!

اصلاً این LLMها به خاطر اینکه باید همیشه آماده باشن به سوال همهٔ کاربرای دنیا جواب بدن، تو بخش inference یا همون مرحله‌ی استفاده و تولید جواب، بیشتر باعث فشار به محیط زیست میشن تا خود آموزش اولیه‌شون. این یعنی هر چی تعداد سوالاتی که ازشون پرسیده میشه بالا بره، حجم مصرف انرژی و تولید کربن هم بیشتر میشه.

خیلی از شرکت‌ها برای این که این سیستم‌ها بتونن مقیاس بالا داشته باشن، inference رو توی کلود (cloud) می‌برن. منظور از cloud هم اون سرورهای قوی غول‌پیکریه که شرکت‌هایی مثل آمازون یا گوگل دارن و خدماتشون روی اینترنت ارائه میدن. اما مشکل اینجاست که استفاده از cloud خیلی وقت‌ها باعث میشه هم تأخیر بیاد وسط (یعنی جواب‌ها زمان‌بر بشن) و هم پهنای باند اینترنت اشغال بشه، چون هر دیتایی که رد و بدل میشه باید تا اون سر دنیا رفته و برگشته باشه. تازه، این رفت و آمد دیتا خودش انرژی بیشتری می‌بره.

اینجا بحث edge clusters مطرح میشه؛ Edge یعنی نزدیک کاربر، به جای اینکه همه چیز بره تا کلود و برگرده. مثلاً دستگاه‌های Nvidia Jetson Orin NX (که ۸ گیگ رم داره) یا Nvidia Ada 2000 (۱۶ گیگ رم). اینا رو میشه تو مراکز نزدیک به کاربر قرار داد. اما اینم بی‌دردسر نیست! چون اینجور دستگاه‌ها نسبت به سرورهای بزرگ محدودیت دارن: هم از لحاظ قدرت سخت‌افزار، هم مصرف انرژی و هم ظرفیت حافظه. پس باید همیشه یه جور تعادل بین کارایی (performance)، مصرف انرژی و محدودیت دستگاه‌ها پیدا کنیم.

حالا این مقاله دربارهٔ اینه که چجوری میشه inference مدل‌های زبانی رو روی edge clusters به روشی انجام بدیم که هم تأخیر کم باشه، هم مصرف انرژی پایین بیاد و طبیعتا ردپای کربنش هم کمتر بشه. واسه اینکار چند تا استراتژی مختلف رو بررسی کردن:

۱. استراتژی ساده و حریصانه (Greedy): یعنی سریع‌ترین سخت‌افزار رو انتخاب می‌کنه، بدون اینکه به میزان برق یا تولید کربن فکر کنه.

۲. استراتژی آگاه به کربن (Carbon-aware): این یکی میاد و بسته به این‌که اون لحظه کدوم دستگاه از لحاظ مصرف انرژی بهینه‌تره (یعنی کربن کمتری می‌سوزونه) می‌فرسته روی همون اجرا شه.

۳. استراتژی آگاه به تأخیر (Latency-aware): حالا اینم تمرکزش رو می‌ذاره رو اینکه چقدر زودتر جواب میرسه، ولی با در نظر گرفتن وضعیت واقعی دستگاه‌ها.

یه نکته جالب اینکه آزمایش کردن ببینن اگه کوئری‌ها (مثلاً دسته‌ای از سوالا) رو گروهی (Batch) اجرا کنن چه اتفاقی میفته. منظور از batch اینه که چندتا سوال رو با هم بدی به مدل که یه جور بهینه‌سازی محسوب میشه و اغلب توی یادگیری ماشین کاربرد داره. فهمیدن که اگه اندازه Batch رو روی عدد چهار بذاری (یعنی هر بار چهار تا سوال با هم)، می‌تونی یه تعادل خوب بین سرعت (Throughput) و مصرف انرژی پیدا کنی. ولی اگه Batch رو خیلی بزرگتر کنی، خطر این هست که حافظه GPU پر شه و مدل اصلاً دیگه کار نکنه یا کند شه.

در نهایت این مقاله میگه اگه واقعا دنبال هوش مصنوعیِ دوستدار محیط زیست باشی، باید هم به سرعت توجه کنی، هم به مصرف انرژی و تولید کربن. با استفاده از اطلاعات واقعی سخت‌افزارها موقع اجرا، می‌شه هوشمندانه تصمیم گرفت که چطور کوئری‌ها رو روی دستگاه‌های مختلف توی edge clusters پخش کنی، تا هم جواب سریع بدی و هم هوا رو کمتر آلوده کنی!

اگه خلاصه بخوام بگم: آینده هوش مصنوعی جاییه که مدل‌ها نه فقط هوشمند، بلکه “سبز” هم باشن! یعنی موقع اجرا و استفاده‌شون، تا میشه به محیط زیست احترام بذارن.

منبع: +