رفتن به محتوای اصلی
ابزارهای هوش مصنوعیانتشار متن‌باز۲۷ مرداد ۱۴۰۵، ۲۰:۲۲· 4 دقیقه مطالعه· #2 از 5 در فناوری

شرکت ماژولار کل زبان برنامه‌نویسی هوش مصنوعی Mojo را تحت مجوز آپاچی ۲.۰ متن‌باز کرد

شرکت ماژولار (Modular) کامپایلر و مجموعه ابزار (toolchain) زبان برنامه‌نویسی Mojo را به طور کامل تحت مجوز آپاچی ۲.۰ (Apache 2.0) متن‌باز کرده و به وعده دیرینه خود به جامعه توسعه‌دهندگان هوش مصنوعی عمل کرد. این اقدام خطر وابستگی به یک فروشنده خاص (vendor lock-in) را برای این زبان با کارایی بالا از بین می‌برد؛ زبانی که هدفش ترکیب سادگی استفاده از پایتون با سرعت اجرای در سطح زبان C است.

به قلم کاوان رامین

توسعه‌دهندگان زیرساخت هوش مصنوعی 40%حامیان متن‌باز 35%وفاداران اکوسیستم پایتون 25%
توسعه‌دهندگان زیرساخت هوش مصنوعی
استدلال می‌کنند که یک زبان یکپارچه که برای شتاب‌دهنده‌های سخت‌افزاری متنوع کامپایل می‌شود، برای شکستن گلوگاه بازنویسی نمونه‌های اولیه پایتون ضروری است.
حامیان متن‌باز
تأکید می‌کنند که انتشار کامپایلر اصلی تحت یک مجوز آزاد، پیش‌نیاز اجباری برای اعتماد سازمان‌ها و جلوگیری از وابستگی به یک فروشنده خاص است.
وفاداران اکوسیستم پایتون
معتقدند که اگرچه سینتکس آشناست، اما کاربرد واقعی Mojo به تلاش عظیمی بستگی دارد که برای بازسازی بومی اکوسیستم عمیق کتابخانه‌های پایتون مورد نیاز است.

سال‌هاست که توسعه‌دهندگان هوش مصنوعی درگیر چیزی هستند که در این صنعت «مشکل دو زبانه» نامیده می‌شود. محققان مدل‌های خود را در پایتون نمونه‌سازی می‌کنند، زبانی که به دلیل خوانایی و اکوسیستم عظیمش ارزشمند است، اما تفسیر زمان اجرای پایتون به طرز مشهوری کند است. برای دستیابی به سرعت‌های مورد نیاز برای استقرار در محیط عملیاتی، تیم‌های مهندسی باید با زحمت فراوان، گلوگاه‌های حیاتی عملکرد را در زبان‌های پیچیده و سطح پایین مانند ++C یا CUDA بازنویسی کنند. این یک انتقال پرهزینه و زمان‌بر است که سرعت توسعه هوش مصنوعی را کاهش می‌دهد.[4][5]

این گلوگاه دقیقاً هدف زبان برنامه‌نویسی Mojo است؛ زبانی که برای اجرای سینتکس پایتون با سرعت‌های سطح سیستمی طراحی شده است. روز سه‌شنبه، شرکت ماژولار (Modular) – خالق این زبان – با متن‌باز کردن کامل کامپایلر و مجموعه ابزار Mojo تحت مجوز آزاد آپاچی ۲.۰، به وعده دیرینه خود به جامعه توسعه‌دهندگان عمل کرد.[1][5]

این انتشار نقطه عطفی حیاتی برای دوام این زبان در محیط‌های سازمانی محسوب می‌شود. در حالی که ماژولار پیش از این در مارس ۲۰۲۴ کتابخانه استاندارد Mojo را متن‌باز کرده بود، کامپایلر اصلی همچنان انحصاری باقی مانده بود. این وضعیت سورس بسته، بسیاری از سازمان‌ها را نسبت به پذیرش این زبان مردد کرده بود، زیرا نگران بودند که زیرساخت‌های حیاتی خود را بر روی ابزاری که توسط یک فروشنده واحد کنترل می‌شود، بنا کنند. ماژولار با انتشار کد منبع کامپایلر در گیت‌هاب، عملاً خطر وابستگی به یک فروشنده خاص را از بین برده است.[1][2][3]

این نقطه عطف متن‌باز بلافاصله پس از انتشار Mojo 1.0 در ۱۱ آگوست رخ می‌دهد، که رابط‌های برنامه‌نویسی کاربردی (API) اصلی زبان را تثبیت کرد و سازگاری رو به عقب را برای به‌روزرسانی‌های آتی ۱.x تضمین نمود. Mojo که توسط کریس لتنر (Chris Lattner) – معمار اصلی زبان برنامه‌نویسی سوئیفت (Swift) و چارچوب کامپایلر LLVM – خلق شده است، بر اساس چارچوب نمایش میانی چند سطحی (MLIR) ساخته شده است.[2][4]

Mojo از چارچوب MLIR برای کامپایل کد در سخت‌افزارهای متنوع، از CPUهای استاندارد گرفته تا شتاب‌دهنده‌های تخصصی هوش مصنوعی، استفاده می‌کند.

ماژولار به شدت Mojo را با ادعای حیرت‌انگیز «۶۸,۰۰۰ برابر سریع‌تر از پایتون» تبلیغ می‌کند. با این حال، آن معیار خاص نیازمند درک زمینه است: این مقایسه، کد Mojo به شدت بهینه‌سازی شده و چند رشته‌ای را در مقابل پایتون خالص تک رشته‌ای که روی یک سرور ۸۸ هسته‌ای اجرا می‌شود، قرار می‌دهد. در کاربردهای دنیای واقعی، توسعه‌دهندگان معمولاً افزایش عملکردی بین ۱۲ تا ۱۰۰ برابر را مشاهده می‌کنند. اگرچه این رقم جادویی ۶۸,۰۰۰ برابری که در مواد بازاریابی آمده نیست، اما افزایش سرعت ۱۰۰ برابری همچنان یک جهش تحول‌آفرین برای حجم کاری سنگین محاسباتی محسوب می‌شود.

ماژولار به شدت Mojo را با ادعای حیرت‌انگیز «۶۸,۰۰۰ برابر سریع‌تر از پایتون» تبلیغ می‌کند.

Mojo این مزایا را با تغییر اساسی در نحوه اجرای کد به دست می‌آورد. برخلاف پایتون که کد را خط به خط از طریق یک مفسر می‌خواند و اجرا می‌کند، Mojo مستقیماً و از قبل به کد ماشین بومی کامپایل می‌شود. این زبان شامل تایپ استاتیک، یک بررسی‌کننده قرض‌گیری (borrow checker) الهام گرفته از زبان Rust برای کنترل دستی حافظه، و دسترسی مستقیم به سخت‌افزار برای عملیات تک دستورالعمل، چند داده (SIMD) است.[2]

فراتر از سرعت خام، معماری Mojo به پراکندگی فزاینده سخت‌افزار هوش مصنوعی می‌پردازد. امروزه، بهینه‌سازی یک مدل برای پردازنده‌های گرافیکی انویدیا (Nvidia GPU) به پایگاه کدی متفاوت از بهینه‌سازی برای شتاب‌دهنده‌های AMD یا واحدهای پردازش تنسور (TPU) سفارشی گوگل نیاز دارد. از آنجا که Mojo بر روی MLIR ساخته شده است، می‌تواند همان کد سطح بالا را برای هدف قرار دادن سخت‌افزارهای ناهمگون متنوع کامپایل کند و پیچیدگی‌های سیلیکونی زیرین را انتزاعی سازد.[2][5]

هدف از انتشار متن‌باز، تشویق جامعه پایتون برای شروع انتقال بومی کتابخانه‌های علمی حیاتی به Mojo است.

با وجود پیشینه فنی قوی، Mojo برای برکناری سلطه پایتون با چالش بزرگی روبرو است. سنگر واقعی پایتون، سینتکس آن نیست، بلکه اکوسیستم ده‌ها ساله آن از کتابخانه‌ها و چارچوب‌های تخصصی است. در حالی که Mojo می‌تواند ماژول‌های موجود پایتون را از طریق زمان اجرای CPython وارد کرده و اجرا کند، دستیابی به عملکرد واقعی در سطح C مستلزم آن است که این کتابخانه‌ها به صورت بومی در Mojo بازنویسی شوند.[2][4]

متن‌باز شدن کامپایلر دقیقاً برای تسریع این فرآیند طراحی شده است. ماژولار با اجازه دادن به جامعه برای بازرسی، اصلاح و گسترش کامپایلر، شرط می‌بندد که توسعه‌دهندگان شروع به انتقال کتابخانه‌های حیاتی محاسبات علمی و هوش مصنوعی به این استاندارد جدید خواهند کرد.[1][3]

در آینده، ماژولار قصد دارد مشارکت‌های جامعه را در کامپایلر بپذیرد و قابلیت‌های Mojo را با ویژگی‌هایی مانند برنامه‌نویسی ناهمگام (asynchronous programming) و تطبیق الگو (pattern matching) گسترش دهد. برای صنعت هوش مصنوعی، انتشار متن‌باز Mojo را از یک آزمایش انحصاری امیدوارکننده به یک زیربنای عملی و جامعه‌محور برای نسل بعدی زیرساخت یادگیری ماشین تبدیل می‌کند.[1][2]

نکات کلیدی

  • شرکت ماژولار کامپایلر و مجموعه ابزار Mojo را به طور کامل تحت مجوز آزاد آپاچی ۲.۰ متن‌باز کرده است.
  • این انتشار خطر وابستگی به یک فروشنده خاص (vendor lock-in) را که قبلاً مانع بزرگی برای پذیرش سازمانی بود، از بین می‌برد.
  • Mojo قصد دارد «مشکل دو زبانه» هوش مصنوعی را با ترکیب سینتکس خوانای پایتون با سرعت اجرای در سطح زبان C حل کند.
  • این زبان که بر اساس چارچوب MLIR ساخته شده است، به توسعه‌دهندگان اجازه می‌دهد کد را یک بار بنویسند و آن را در شتاب‌دهنده‌های سخت‌افزاری متنوع مستقر کنند.

چرا مهم است

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

منابع

پوشش منابع

5 منبع

3 دیدگاه شناسایی‌شده

توسعه‌دهندگان زیرساخت هوش مصنوعی 40%حامیان متن‌باز 35%وفاداران اکوسیستم پایتون 25%
  1. [1]Mojo Official Siteحامیان متن‌باز

    Mojo is now open source!

    مطالعه در Mojo Official Site
  2. [2]Wikipediaوفاداران اکوسیستم پایتون

    Mojo (programming language)

    مطالعه در Wikipedia
  3. [3]GitHubحامیان متن‌باز

    modularml/mojo: The Mojo Programming Language

    مطالعه در GitHub
  4. [4]DataCampوفاداران اکوسیستم پایتون

    Mojo Language: The New Programming Language for AI

    مطالعه در DataCamp
  5. [5]fast.aiتوسعه‌دهندگان زیرساخت هوش مصنوعی

    Mojo may be the biggest programming language advance in decades

    مطالعه در fast.ai

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

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