از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ایجاد زبان های برنامه نویسی سفارشی برای سیستم های هوش مصنوعی بصری کارآمد
یک عکس تنها نگاهی اجمالی به دنیای خالق دارد – علایق و احساسات آنها در مورد یک موضوع یا فضا. اما در مورد سازندگانی که پشت فناوریهایی هستند که به امکانپذیر کردن این تصاویر کمک میکنند، چه میگوییم؟
جاناتان راگان-کلی، دانشیار گروه مهندسی برق و علوم کامپیوتر MIT یکی از این افراد است که همه چیز را از ابزارهای جلوه های بصری در فیلم گرفته تا زبان برنامه نویسی Halide که به طور گسترده در صنعت برای ویرایش و پردازش عکس استفاده می شود، طراحی کرده است. Ragan-Kelley به عنوان محققی در آزمایشگاه هوش مصنوعی واتسون MIT-IBM و آزمایشگاه علوم کامپیوتر و هوش مصنوعی، در زبانهای برنامهنویسی با کارایی بالا و مخصوص دامنه و یادگیری ماشینی متخصص است که گرافیکهای دو بعدی و سه بعدی، جلوههای بصری و عکاسی محاسباتی را امکانپذیر میکند. .
“بزرگترین هدف در بسیاری از تحقیقات ما توسعه زبان های برنامه نویسی جدید است که نوشتن برنامه هایی را که واقعا کارآمد هستند آسان تر می کند. روی راگان-کلی میگوید سختافزار پیچیدهتری که امروزه در رایانه شما وجود دارد. اگر بخواهیم به افزایش قدرت محاسباتی که میتوانیم برای برنامههای کاربردی واقعی – از گرافیک و محاسبات بصری گرفته تا هوش مصنوعی – ادامه دهیم، باید روش برنامهنویسی خود را تغییر دهیم.
پیدا کردن حد وسط
در طول دو دهه گذشته، طراحان تراشه و مهندسان برنامه نویسی شاهد کند شدن قانون مور و تغییر قابل توجهی از محاسبات همه منظوره بوده اند. روی پردازندهها به واحدهای پردازشی و محاسباتی متنوعتر و تخصصیتر مانند پردازندههای گرافیکی و شتابدهندهها. با این انتقال یک مبادله به وجود می آید: توانایی اجرای کدهای همه منظوره تا حدودی آهسته روی پردازندهها، برای سختافزاری سریعتر و کارآمدتر که نیاز به کدی دارد که به شدت با آن تطبیق داده شود و با برنامهها و کامپایلرهای متناسب با آن نقشهبرداری شود. سختافزار جدیدتر با برنامهنویسی بهبودیافته میتواند از برنامههایی مانند رابطهای رادیویی سلولی با پهنای باند بالا، رمزگشایی ویدیوهای بسیار فشرده برای پخش، و پردازش گرافیکی و ویدیویی پشتیبانی کند. روی دوربین های تلفن همراه با محدودیت قدرت، برای نام بردن چند برنامه کاربردی.
کار ما تا حد زیادی در مورد باز کردن قدرت بهترین سخت افزاری است که می توانیم بسازیم تا حداکثر عملکرد محاسباتی و کارایی ممکن را برای این نوع برنامه ها ارائه دهیم، به گونه ای که زبان های برنامه نویسی سنتی این کار را نمی کنند.
برای انجام این کار، راگان-کلی کار خود را به دو جهت تقسیم می کند. اول، او کلیت را قربانی می کند تا ساختار مسائل محاسباتی خاص و مهم را به تصویر بکشد و از آن برای بهره وری بهتر محاسباتی بهره برداری می کند. این را می توان در زبان پردازش تصویر Halide مشاهده کرد که او با همکاری او توسعه داد و به تغییر صنعت ویرایش تصویر در برنامه هایی مانند فتوشاپ کمک کرد. علاوه بر این، از آنجایی که به طور ویژه برای کنترل سریع آرایه های متراکم و منظم از اعداد (تانسورها) طراحی شده است، برای محاسبات شبکه عصبی نیز به خوبی کار می کند. تمرکز دوم اتوماسیون را هدف قرار می دهد، به ویژه اینکه چگونه کامپایلرها برنامه ها را به سخت افزار نگاشت می کنند. یکی از این پروژه ها با MIT-IBM Watson AI Lab از Exo استفاده می کند، زبانی که در گروه Ragan-Kelley توسعه یافته است.
در طول سالها، محققان بهطور جدی برای خودکارسازی کدنویسی با کامپایلرها کار کردهاند که میتواند یک جعبه سیاه باشد. با این حال، هنوز نیاز زیادی به کنترل و تنظیم صریح توسط مهندسان عملکرد وجود دارد. راگان-کلی و گروهش در حال توسعه روشهایی هستند که هر تکنیک را در بر میگیرند و تعادلها را برای دستیابی به برنامهریزی مؤثر و کارآمد از نظر منابع متعادل میکنند. هسته اصلی بسیاری از برنامههای با کارایی بالا مانند موتورهای بازیهای ویدیویی یا پردازش دوربین تلفن همراه، سیستمهای پیشرفتهای هستند که تا حد زیادی توسط متخصصان انسانی در زبانهای سطح پایین و دقیق مانند C، C++ و اسمبلی بهینهسازی شدهاند. در اینجا، مهندسان انتخاب های خاصی در مورد روش اجرای برنامه انجام می دهند روی سخت افزار
Ragan-Kelley خاطرنشان می کند که برنامه نویسان می توانند کدهای سطح پایین بسیار پر زحمت، بسیار غیرمولد و بسیار ناامن را انتخاب کنند، که می تواند باگ ها یا رابط های برنامه نویسی سطح بالاتر ایمن تر، سازنده تر، که فاقد توانایی تنظیمات خوبی را در یک کامپایلر در مورد روش اجرای برنامه انجام دهید و معمولاً عملکرد کمتری ارائه می دهد. بنابراین، تیم او در تلاش است تا حد وسطی پیدا کند. راگان-کلی میگوید: «ما در تلاش هستیم تا چگونگی کنترل مسائل کلیدی را که مهندسان عملکرد انسانی میخواهند کنترل کنند، فراهم کنیم. زبانهای قابل زمانبندی توسط کاربر که دستههای ایمنتر و سطح بالاتری را برای کنترل کارهایی که کامپایلر انجام میدهد یا روش بهینهسازی برنامه را کنترل میکنند.
باز کردن قفل سخت افزار: راه های سطح بالا و کم استفاده
Ragan-Kelley و گروه تحقیقاتی او در حال مقابله با این موضوع از طریق دو خط کار هستند: استفاده از یادگیری ماشین و تکنیکهای مدرن هوش مصنوعی برای تولید خودکار زمانبندیهای بهینهشده، یک رابط برای کامپایلر، برای دستیابی به عملکرد بهتر کامپایلر. دیگری از “برون کامپایل” که در حال کار است استفاده می کند روی با آزمایشگاه او این روش را بهعنوان روشی برای «برگرداندن کامپایلر از داخل به بیرون» با اسکلت یک کامپایلر با کنترلهایی برای هدایت و سفارشیسازی انسان توصیف میکند. علاوه بر این، تیم او میتواند زمانبندیهای سفارشی خود را اضافه کند روی بالا، که می تواند به هدف قرار دادن سخت افزارهای تخصصی مانند شتاب دهنده های یادگیری ماشینی از IBM Research کمک کند. برنامه های کاربردی برای این کار طیف گسترده ای را شامل می شوند: بینایی رایانه، تشخیص اشیا، سنتز گفتار، سنتز تصویر، تشخیص گفتار، تولید متن (مدل های زبان بزرگ) و غیره.
پروژه تصویری بزرگ او با آزمایشگاه این را یک گام دیگر فراتر می برد و از طریق یک لنز سیستمی به کار نزدیک می شود. تیم راگان-کلی در کاری که توسط مشاور و کارآموز آزمایشگاهی وی ویلیام براندون، با همکاری دانشمند تحقیقات آزمایشگاهی رامسوار پاندا هدایت میشود، در حال بازنگری در مدلهای زبان بزرگ (LLM) است و راههایی برای تغییر محاسبات و معماری برنامهنویسی مدل بهطور جزئی پیدا میکند تا ترانسفورماتور مدل های مبتنی بر می توانند کارآمدتر اجرا شوند روی سخت افزار هوش مصنوعی بدون به خطر انداختن دقت. راگان-کلی میگوید، کار آنها از روشهای استاندارد تفکر به روشهای قابلتوجهی منحرف میشود و بازدهی بالقوه زیادی برای کاهش هزینهها، بهبود قابلیتها، و/یا کوچک کردن LLM برای نیاز به حافظه کمتر و اجرا دارد. روی کامپیوترهای کوچکتر
وقتی صحبت از راندمان محاسباتی و سخت افزار به میان می آید، این تفکر آوانگاردتر است که Ragan-Kelley در آن برتری دارد و ارزش آن را به ویژه در بلندمدت می بیند. “من فکر می کنم مناطقی وجود دارد [of research] که باید دنبال شوند، اما به خوبی تثبیت شده اند، یا آشکار هستند، یا به اندازه کافی متعارف هستند که بسیاری از مردم یا قبلا آنها را دنبال می کنند یا خواهند داشت.» ما سعی میکنیم ایدههایی را پیدا کنیم که هم اهرمهای زیادی برای تأثیرگذاری عملی بر جهان دارند، و هم در عین حال، چیزهایی هستند که لزوماً اتفاق نمیافتند، یا فکر میکنم نسبت به پتانسیلهایشان توسط بقیه جامعه کمتر مورد استفاده قرار میگیرند. ”
دوره ای که او اکنون تدریس می کند، 6.106 (مهندسی عملکرد نرم افزار)، نمونه ای از این موضوع است. حدود 15 سال پیش، یک تغییر از یک پردازنده به چند پردازنده در دستگاهی رخ داد که باعث شد بسیاری از برنامه های دانشگاهی شروع به آموزش موازی سازی کنند. اما همانطور که Ragan-Kelley توضیح میدهد، MIT متوجه اهمیت دانشآموزان شد که نه تنها موازیسازی را درک کنند، بلکه حافظه را بهینه کنند و از سختافزار تخصصی برای دستیابی به بهترین عملکرد ممکن استفاده کنند.
با تغییر روش برنامهنویسی، میتوانیم پتانسیل محاسباتی ماشینهای جدید را باز کنیم و این امکان را برای افراد فراهم کنیم که به سرعت به توسعه برنامههای کاربردی جدید و ایدههای جدید ادامه دهند که قادر به بهرهبرداری از سختافزار پیچیدهتر و چالشبرانگیزتر هستند.
منبع: https://news.mit.edu/1403/creating-bespoke-programming-languages-efficient-visual-ai-systems-0503
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-05-04 08:50:05