پایتون، Mojo خود را برای هوش مصنوعی به کار می‌گیرد

شکل ۱. موجو، طراحی شده ی ای برای توسعه‌دهندگان هوش مصنوعی
شکل ۱. موجو، طراحی شده ی ای برای توسعه‌دهندگان هوش مصنوعی
منتشر شده در thenewstack به تاریخ ۳ جولای ۲۰۲۳
لینک منبع: Python Gets Its Mojo Working for AI

آیا موجو واقعا می‌تواند سرعت کد پایتون را با ضریب ۳۵۰۰ افزایش دهد؟

این ادعایی است که در مورد این ابرمجموعه جدید پایتون، یکی برای عملکرد در فضای هوش مصنوعی (AI) بهینه‌سازی شده‌است.

پایتون، مانند همه چیزهای مرتبط با نرم‌افزار، خطاپذیر است. اما اکنون، با داده‌های باز و سیستم‌های توسعه هوش مصنوعی که از نظر اندازه گسترده شده‌اند، تلاش برای حل مشکلات عملکرد پایتون تشدید می‌شود.

در حال حاضر، روش کار نوشتن هرچه بیش‌تر کد در پایتون و تکیه بر زبان‌های C،Rust یا سایر زبان‌های کاربردی برای بخش‌های خاص کد (یعنی حلقه‌های داخلی) است. حتی کتاب‌خانه‌هایی مانند Numpy یاPyTorch فقط به پایتون تکیه نمی‌کنند. در عوض، آن‌ها رابط‌های «پایتونیک» را ارائه می‌دهند که به توسعه‌دهنده اجازه می‌دهد پایتون بنویسد اما به کتاب‌خانه‌های عددی بسیار بهینه‌شده متصل شود.

افسوس که همیشه نیاز به دو زبان -به نام مشکل دو جهان یا کتاب‌خانه‌های ترکیبی- لایه ضخیمی از پیچیدگی را به اشکال‌زدایی اضافه می‌کند. هم‌چنین استفاده از چارچوب‌های بزرگ را بسیار دشوارتر می‌کند.

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

در نهایت، استقرار تلفن همراه و سرور وجود دارد که هم‌چنین یک دسته بزرگ است. چالش‌های این حوزه شامل نحوه کنترل وابستگی‌ها، نحوه استقرار «a.out» کامپایل‌شده هرمتیک و بهبود چند رشته‌ای و عملکرد است.

معرفی موجو، یک سوپرست سریع پایتون

تیم توسعه Mojo نمی‌خواست اکوسیستم پراکنده دیگری اضافه یا ایجاد کند. بلکه هدف آن‌ها ایجاد یک ابر مجموعه دقیق از پایتون به معنای سازگاری کامل با اکوسیستم پایتون بود. آن‌ها به‌طور خاص نمی‌خواهند آسیب ناشی از مهاجرت پایتون ۲ به ۳ را بکشند.

اگرچه موجو یک ابرمجموعه است، اما به‌عنوان یک زبان درجه یک نیز در حال توسعه است. تیم توسعه‌دهنده عملکرد قابل پیش‌بینی، اجرا و کنترل سطح پایین را می‌خواست. آن‌ها هم‌چنین به توانایی استقرار زیرمجموعه‌های کد برای شتاب‌دهند‌ه‌ها (CPU میزبان) نیاز دارند. توسعه‌دهندگان موجو از اجرای CPython برای پشتیبانی از اکوسیستم بلندمدت استقبال می‌کنند. موجو برای برنامه‌نویسان پایتون آشنا به نظر می‌رسد. موجو هم‌چنین شامل ابزارهای جدیدی است که به توسعه کدهای ایمن و کارآمد در سطح سیستم کمک می‌کند که در غیر این صورت به کد C و C++ زیر پایتون نیاز دارند.

کریس لاتنر توسعه موجو را چندی‌پیش از طریق یک «نمایش متوسط» (IR) آغاز کرد، یک زبان ویژه که به‌طور خاص برای خواندن و نوشتن ماشین‌ها از طریق ماشین مجازی لینوکس LLVM طراحی شده‌است. این توسعه یک جامعه نرم‌افزاری را قادر ساخت تا با هم کار کنند تا عملکرد زبان برنامه‌نویسی بهتری را در طیف وسیع‌تری از سخت‌افزار ارائه دهند. لاتنر در طول مدتی که در اپل کار می‌کرد، «Syntax sugar for LLVM» را ایجاد کرد که زبانی است که ما آن را به نام سوئیفت می‌شناسیم.

بعدا، زمانی که در گوگل کار می‌کرد، لاتنر یک نمایندگی میانی چند سطحی (MLIR) ایجاد کرد تا جایگزین IR LLVM برای محاسبات چند هسته‌ای و بارهای کاری هوش‌مصنوعی شود. لاتنر کمی بیش‌تر از آن «شکر نحوی» را ایجاد کرد، اما این بار برای MLIR. این شد موجو.

در مورد آن ادعای x۳۵۰۰ چطور؟

مانند هر چیز دیگری در این دنیا، چاپ ریز را بخوانید. بستگی به سخت‌افزار دارد. اسناد «بله» را تأیید می‌کنند، اما به‌طور خاص، «موجو بهینه‌سازی و انعطاف‌پذیری در سطح سیستم را فعال می‌کند که ویژگی‌های هر دستگاه را به گونه‌ای باز می‌کند که پایتون نمی‌تواند،» معیارهایMondelbrot نشان داده شده در سخن‌رانی اصلی راه‌اندازی که این ادعاها را بر روی یک دستگاه AWS r7iz.metal-16xl نشان می‌‌دهد. x۳۵۰۰ خیلی زیاد است. و حتی اگر هر ماشینی نتواند این اعداد را تضمین کند به این معنی نیست که این یک شکست است. تبلیغات، امیریت؟

زمین بازی موجو جایی است که کاربران می‌توانند با کد Mojo بازی کنند. اسناد واضح بود که زمین بازی Mojo روی دستگاه AWS r7iz.metal-16xl اجرا نمی‌شود. زمین بازی بر روی ناوگانی از نمونه‌های AWS EC2 C6i اجرا می‌شود که بین همه کاربران فعال در هر زمان معین تقسیم شده‌است. ۱ هسته vCPU برای هر کاربر تضمین شده‌است، اما اگر در زمان آهسته روشن باشید، ممکن است تعداد بیش‌تری در دسترس باشد.

موجو امروز کجا ایستاده است؟

این دومین مقاله در چند ماه گذشته است که در مورد راه حلی برای مشکلات عملکرد پایتون نوشتم. شاید موجو پیشتاز باشد. شاید تیم توسعه دیگری این کار را بهتر یا سریع‌تر انجام دهد. پایتون احتمالا زبان برنامه‌نویسی پیشرو برای داده‌های بزرگ،ML و هوش‌مصنوعی باقی می‌ماند، اما برای انجام بهتر کار به کمک نیاز دارد. چیزی قرار است به‌عنوان یک راه‌حل واسطه عمل کند.

تیم توسعه این زبان را منبع باز می‌کند اما هنوز تاریخ انتشار آن را منتشر نکرده است. صفحه پرسش‌های متداول هم‌چنین بینش زیادی در مورد جایگزین‌های Mojo،Python و Mojo برای هر کسی که به دنبال راه‌حل فوری است به اشتراک می‌گذارد.

این متن با استفاده از ربات ‌ترجمه مقالات برنامه‌نویسی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.