هوش مصنوعی بهکمک برنامهنویسان میآید
طبق گزارش Wired، سالها طول میکشد انسان بتواند به زبان برنامهنویسی مسلط شود و کدهای کامپیوتری را بهخوبی و بدون مشکل بنویسد. بااینحال، استارتاپ فرانسوی SourceAI وارد عمل شده است که اعتقاد دارد برنامهنویسی نباید آنچنان هم کار سختی باشد. SourceAI مشغول کار روی ابزاری است که میتواند با استفاده از هوش مصنوعی برنامهنویسی کند؛ تنها کافی است در قالب متنی کوتاه هدف کد را مشخص کنید. برای مثال برای داشتن کدی که بتواند اعداد را ضرب کند، کافی است به این ابزار بگویید «دو عدد دادهشدهی کابر ضرب شود». سپس هوش مصنوعی نوشتن کدی ۱۲ خطی را در پایتون شروع میکند که میتواند این کار را انجام دهد.
وجود این فناوری بدینمعنا است که شاید در آیندهای نزدیک بتوان برنامهنویسیهای پیچیده را نیز با استفاده از هوش مصنوعی انجام داد. جاهطلبیهای SourceAI نشانه انقلابی گستردهتر در توسعه نرمافزار است. پیشرفت در یادگیری ماشینی امکان خودکارکردن مجموعهای از وظایف برنامهنویسی را فراهم کرده است؛ از تکمیل خودکار بعضی بخشهای کد تایپشده و بهبود بخشیدن الگورتیم کلی گرفته تا جستوجوی کد منبع و یافتن باگهای مزاحم.
کدنویسی خودکار میتواند فرایند توسعه نرمافزار را تغییر دهد؛ اما محدودیتها و نقاط کور هوش مصنوعی مدرن ممکن است مشکلات جدیدی ایجاد کند. الگوریتمهای یادگیری ماشینی میتوانند پیشبینینشدنی رفتار کنند و ممکن است کدهای تولیدشدهی دستگاه اشکالاتی در خود جای دهند؛ مگر اینکه با دقت دقیق بررسی شود.
استارتاپ SourceAI و دیگر شرکتهای مشابه قصد دارند از GPT-3، برنامهی قدرتمند زبان هوش مصنوعی، بهره ببرند. می ۲۰۲۰، شرکت OpenAI، شرکت واقع در سانفرانسیسکو و متمرکز بر پیشرفت اساسی در این زمینه، برنامهی مذکور را معرفی کرد. بنیانگذاران SourceAI از اولین نفراتی بودند که به GPT-3 دسترسی پیدا کردند. OpenAI کد GPT-3 را منتشر نکرده است؛ اما به برخی از کاربران اجازه میدهد ازطریق API به مدل دسترسی پیدا کنند.
GPT-3 شبکهی عصبی مصنوعی بسیار بزرگی است که با شبکههای عظیمی از متون بهدستآمده از وب آموزش دیده است. درواقع، این ابزار مفهوم متون را نمیتواند درک کند؛ اما میتواند الگوهای موجود در آنها را بهخوبی حفظ کند. با بررسی این الگوها، GPT-3 میتواند دربارهی موضوعی خاص مقاله تولید کند یا متنی را بهصورت خلاصه بنویسد یا به پرسشهای مربوط به محتوای مقالههای مختلف پاسخ دهد.
فورکان بکتس، بنیانگذار و مدیرعامل شرکت SourceAI، اعتقاد دارد: «هنگام آزمایش این ابزار، متوجه شدیم میتواند کد تولید کند. آن زمان بود که ایدهی توسعه SourceAI شکل گرفت.» البته او اولین نفری نبود که متوجه قابلیت این ابزار شد؛ چراکه اندکی پس از انتشار GPT-3، یکی از برنامهنویسان نشان داد که میتواند با کمک این ابزار، برنامههای وب سفارشی ازجمله دکمهها و فیلدهای ورودی متن و رنگها را با ترکیب مجدد کدهایی ایجاد کند که پیشتر به آن داده شده بود. شرکت دیگری به نام Debuild نیز میخواهد این فناوری را تجاری کند.
SourceAI قصد دارد به کاربرانش اجازه دهد طیف گستردهتری از برنامهها را به زبانهای مختلف تولید کنند؛ درنتیجه، اقدامات این شرکت نوپا به ایجاد خودکار نرمافزارهای بیشتر کمک میکند. بکتس گفت:
توسعهدهندگان میتوانند با استفاده از این ابزار، در زمان کدنویسی صرفهجویی کنند. این در حالی است که افراد بدون هیچ دانش برنامهنویسی نیز میتوانند با کمک SourceAI برنامههای مختلفی تولید کنند.
شرکت دیگری به نام TabNine از نسخهی قبلی مدل زبانی OpenAI موسوم به GPT-2 برای ساخت ابزاری استفاده کرده است که میتواند خط کدی را خودکار تکمیل کند که توسعهدهنده در حال تایپش است. چنین قابلیتی میتواند به صرفهجویی در زمان توسعهدهندگان و برنامهنویسان کمک بسیاری کند.
بهنظر میرسد برخی از غولهای نرمافزاری نیز به این ابزار و توسعهی موارد مشابه آن علاقهمند هستند. برای مثال، مایکروسافت سال ۲۰۱۹ یکمیلیارد دلار در OpenAI سرمایهگذاری و با صدور مجوز برای GPT-3 موافقت کرد. در کنفرانس Build این غول دنیای نرمافزار که ماه می برگزار شد، سام آلتمن، یکی از بنیانگذاران OpenAI، نشان داد چگونه GPT-3 میتواند کد توسعهدهنده را خودکار تکمیل کند. البته تاکنون مایکروسافت از توضیح دربارهی چگونگی استفاده از هوش مصنوعی در ابزارهای توسعه نرمافزار خودداری کرده است.
برندان دولانگاویت، استادیار گروه علوم و مهندسی کامپیوتر در دانشگاه نیویورک، میگوید بهاحتمال زیاد از مدلهای زبانی مانند GPT-3 برای کمک به برنامهنویسان انسانی استفاده خواهد شد. سایر ابزارها از این مدلها برای شناسایی اشکالات احتمالی کد شما هنگام برنامهنویسی استفاده میکنند.
استفاده از هوش مصنوعی برای تولید و تحلیل کد ممکن است مشکلساز باشد. در مقالهای که ماه مارس آنلاین منتشر شد، محققان دانشگاه MIT نشان دادند با ایجاد چند تغییر دقیق مانند جایگزینی برخی متغیرها برای ایجاد برنامهای مضر، میتوان ابزار هوش مصنوعی آموزشدیده را برای تأیید ایمنی آن فریب داد؛ درنتیجه یکی از مشکلات پیش روی این ابزارها، ناتوانی در تشخیص میزان امنبودن برنامههای مختلف است.
بهگفتهی یکی از دانشجویان دکتری که مشغول کار روی این موضوع است، نباید خیلی به مدلهای هوش مصنوعی اعتماد کرد. وی دراینباره گفت: «بهمحض اینکه این مدلها به مرحلهی تولید برسند، اتفاقات ناخوشایندی رخ میدهد.» دولانگاویت، استاد دانشگاه نیویورک، نیز معتقد است ماهیت مدلهای زبانی که برای تولید ابزار برنامهنویسی استفاده میشود، مشکلاتی ایجاد میکند. او افزود:
فکر میکنم استفاده مستقیم از مدلهای زبانی احتمالا به تولید کدهای باگدار و حتی ناامن منجر میشود. نباید فراموش کنیم آنها با کدهای نوشتهشدهی انسان آموزش دیدهاند که اغلب باگ دارند و امنیت کافی را ندارند.
دولانگاویت مدتی پیش وبسایت This Code Does Not Exist را راهاندازی کرد. در این وبسایت بخشی از کد به بازدیدکنندگان نشان داده میشود و آنان باید تصمیم بگیرند برنامهنویسش انسان بوده یا از ابزار GPT-2 برای این کار استفاده شده است. وی اکنون در حال توسعهی کدی است که با هوش مصنوعی نوشته شده و وظیفهاش تولید باگ برای آزمایش نرمافزارهای امنیتی است.
مقالههای مرتبط:
دانشمندان علوم رایانهای چندین دهه روشهای تولید خودکار کد برنامهنویسی را بررسی کردهاند؛ اما هوش مصنوعی مدرن توانسته با تواناییهایش هیجان بیشتری به تحقیقات اضافه کند. محققان فیسبوک آوریل ۲۰۱۹ جزئیات Aroma را منتشر کردند. Aroma ابزاری است که میتواند با استفاده از یادگیری ماشینی قسمتهای مختلف کدهای مشابه ازلحاظ عملکرد را شناسایی کند. این فناوری به توسعهدهندگان کمک میکند برنامهها را سریعتر بنویسند و از اشکالات جلوگیری کنند.
اکتبر ۲۰۲۰، گروهی در DeepMind برنامهای هوش مصنوعی را بهنمایش گذاشتند که میتواند نسخههای کارآمدتری از الگوریتمهای نوشتهشدهی انسان را ابداع کند. اینتل پروژهای به نام Machine Inferred Code Similarity دارد که میتواند با استفاده از هوش مصنوعی کاری را تقلید کند که بخشی از کد انجام میدهد. توانایی اینچنینی به ساخت خودکار برنامههای پیچیده کمک بسیاری میکند. یادگیری ماشینی نیز بهعنوان روشی برای خودکارسازی برخی از کارهای موردنیاز بهمنظور ساخت و تنظیم دقیق الگوریتمهای مختلف بهکار گرفته شده است.
درنهایت، باید دید ابزار SourceAI در عمل چقدر خوب کار میکند. هنوز نسخهی نمایشی عمومی از این فناوری وجود ندارد؛ اما بکتس گفت این ابزار ۸۰ تا ۹۰ درصد مواقع هنگام انجام دستورها ساده درست کار میکند. بهنظر میرسد او مطمئن است که میتواند برخی از جنبههای توسعهی نرمافزار را دگرگون کند. شرکت نوپای وی در حال کار روی ابزاری هوش مصنوعی است. او دربارهی این ابزار گفت: «روزی دانشجویان برای انجام سریع تکالیفشان از آن استفاده خواهند کرد.»
دیدگاه شما کاربران زومیت دربارهی SourceAI و بهطور کلی برنامهنویسی هوش مصنوعی چیست؟ فکر میکنید روزی این ابزار میتواند جای برنامهنویسان انسان را بگیرد؟