هوش مصنوعی کوپایلوت
مدتی است که گیت هاب در مورد برنامه نویس جفتی (pair programming) هوش مصنوعی دیدگاه خود را منتشر کرده. بیایید ببینیم آیا کوپایلوت به وعده خود عمل می کند یا خیر.
آیا هوش مصنوعی جایگزین برنامه نویسان می شود؟ زمانی که GPT-3 از OpenAI به وجود آمد، بیشتر به دلیل نوشتن مقالاتی شبیه انسان مورد تحسین قرار گرفت. در همان زمان، بسیاری از برنامه نویسان از GPT-3 برای نوشتن HTML و CSS یا انجام کارهایی مانند برنامه ریزی درخواست های پایگاه داده SQL استفاده کردند.
هیاهوی برنامه نویسی جفتی هوش مصنوعی شروع به افزایش کرد و سپس کوپایلوت گیت هاب ظاهر شد. قلب کوپایلوت موتوری است که کد را پیش بینی می کند. این بر اساس OpenAI Codex ( شاخه ای از GPT-3 با مهارت ویژه در برنامه نویسی) است، روی کد عمومی همه کاربران گیت هاب آموزش دیده است، و این موضوعی چالشی است.
بنیاد نرم افزار آزاد حتی آن را “غیرقابل قبول و ناعادلانه” خواند و بسیاری از مسائل مهم را عنوان کرد. به عنوان مثال، اگر کوپایلوت به شما کدی بدهد که دقیقاً مشابه کد شخص دیگری است، آیا حق انتشار را نقض نمی کنید؟
این یک محیط سخت و از نظر حقوقی غیرقانونی است. گیت هاب به انتقادات بسیار مثبت پاسخ داد و بیان کرد که آنها “مایل هستند در بحث با توسعه دهندگان در مورد این موضوعات شرکت کنند و صنعت را در تنظیم استانداردهای مناسب برای آموزش مدل های هوش مصنوعی رهبری کنند”.
کوپایلوت در ماه ژوئیه منتشر شد، انتقادات FSF در ماه آگوست شده بود، و اکنون به پایان سال 2021 نزدیک شده ایم. وضعیت کوپایلوت چطور است و آیا گیت هاب به وعده های خود عمل کرده است؟ برای پی بردن به این موضوع، ما چندین بررسی را که به صورت آنلاین توسط متخصصان مختلف فناوری منتشر شده است، مرور می کنیم.
محدودیت های گیت هاب کوپایلوت
کوپایلوت راه را برای برنامه نویسان هوش مصنوعی هموار می کند. حداقل ده جایگزین دیگری هم وجود دارد، اما در حال حاضر، محصول گیت هاب بیشترین تبلیغات را دارد.
با این وجود، کوپایلوت محدودیت هایی هم دارد:
- به عنوان یک افزونه برای تنها چند ویرایشگر کد محبوب ارائه می شود.
- رایگان است، اما یک لیست انتظار برای دسترسی وجود دارد.
- هنوز یک نسخه پیش نمایش فنی است، نه یک محصول کامل.
در حال حاضر، کوپایلوت به خودی خود یک برنامه نویس عالی و کامل نیست. بیشتر کمک کننده است کاری است که شما انجام میدهید را تماشا میکند و گزینههای مختلفی را برای پیشبرد کدنویسی به شما پیشنهاد میدهد.
گاهی اوقات برای شما کد مناسبی می نویسد. مواقع دیگر کد بدی را می نویسد:
«شما باید حتماً کدی را که کوپایلوت تولید میکند مرور کنید. طوری با آن رفتار کنید که انگار توسط یک کارآموز برنامه نویس مبتدی نوشته شده که در جستجوهای گوگل خوب است اما نیاز به نظارت دقیق دارد. – مارتین هلر، InfoWorld
(https://www.infoworld.com/article/3639552/review-github-copilot-preview-gives-me-hope.html)
وعده اصلی موتورهای هوش مصنوعی، مانند موتوری که کوپایلوت را ساخته، این است که با گذشت زمان بهتر می شوند. همانطور که کاربران به تولید داده های جدید ادامه می دهند، کوپایلوت هم هوشمندتر می شود.
در حال حاضر، نمیتوانید کوپایلوت را روی کد خود رها کنید و اجازه دهید آن را خراب کند. بازبینی انسانی هنوز یک عنصر حیاتی برای اطمینان از صحیح بودن کد تولید شده توسط هوش مصنوعی است:
«این مرحله بازبینی «نظارت انسانی – human in the loop » برای استفاده مسئولانه از مدلهای زبانی بزرگ مهم است، زیرا راهی برای حل مشکل قبل از اینکه کد وارد تولید شود. مجوزهای کد یکی از مسائل مربوط به نوشتن کد هستند، اما متن تولید شده با هوش مصنوعی می تواند انواع سردرد ایجاد کند، برخی شرم آور و برخی جدی تر. – مری برانسکوم، ZDNet
(https://www.zdnet.com/article/why-ai-still-needs-humans-in-the-loop-at-least-for-now/)
بررسی تخصصی برنامه نویسی جفتی کوپایلوت و هوش مصنوعی
هر زمان که در مورد چیزی تبلیغات زیادی وجود دارد، خوب است که به دنبال افراد سطحی باشید که بتوانند دیدگاهی در مورد موضوع بدهند.
فقط با نگاه کردن به آمار، به نظر می رسد که کوپایلوت عالی عمل می کند. طبق گزارشها، گیت هاب در پلتفرم خود دریافت که «حدود 30 درصد از کدهای جدید نوشته شده توسط کوپایلوت پیشنهاد میشود». به علاوه، نیمی از توسعه دهندگانی که کوپایلوت را امتحان کردند، به طور منظم از آن استفاده کردند.
https://www.axios.com/copilot-artificial-intelligence-coding-github-9a202f40-9af7-4786-9dcb-b678683b360f.html
برای درک بیشتر اینکه چرا صنعت، برنامه نویسی جفتی هوش مصنوعی و گیت هاب کوپایلوت را دوست دارد، بیایید ببینیم کارشناسان فناوری در مورد آن در فضای آنلاین چه گفته اند.
«استفاده از آن کاملاً جادویی است» 🔮
جرمی هوارد، محقق موسس سایت fast.ai، کوپایلوت را از یک سو یک نعمت و از سوی دیگر یک نفرین بالقوه می داند.
https://www.fast.ai/2021/07/19/copilot
او خاطرنشان میکند که کوپایلوت اولین برنامهنویس جفتی مجهز به هوش مصنوعی نیست، اما تا کنون قویترین است، زیرا «میتواند کل توابع چند خطی و حتی مستندات و آزمایشها را بر اساس متن کامل یک فایل کد ایجاد کند».
«کدی که کوپایلوت می نویسد، کد خیلی خوبی نیست»، با این حال، «شکایت از کیفیت کد نوشته شده توسط کوپایلوت کمی شبیه برخورد با یک سگ سخنگو و شکایت از دایره واژگان آن است. این واقعیت که همینکه دارد صحبت می کند به اندازه کافی تأثیرگذار است!».
آقای هوارد توضیح می دهد که کوپایلوت به نوعی محکوم به نادرست بودن است. دلیل آن در قلب نحوه عملکرد مانند این مدلهای هوش مصنوعی است. کوپایلوت متوجه نمی شود که آیا کد خوب است یا خیر. اما پایگاههای کد بیپایانی شبیه به کد شما را تحلیل کرده، بنابراین میتواند پیشبینی کند که کد شما چگونه باید باشد.
با این حال، باید کد کوپایلوت را ویرایش کنید: “کد کوپایلوت پرمخاطب است، و تولید تعداد زیادی از آن ها به قدری آسان است که احتمالاً کدهای زیادی را در اختیار خواهید داشت!”.
کوپایلوت ممکن است چیز خوبی باشد، اما این احتمال وجود دارد که بتواند پروژه شما را با یک جور مرگ با هزار تکه خراب کند: “برای کسانی که برای آنها بلاست، ممکن است سال ها متوجه این موضوع نشوند.
، زیرا بلا این است که آنها کمتر یاد می گیرند، آهسته تر یاد می گیرند، بدهی های فنی را افزایش می دهند، و اشکالات ظریفی را معرفی می کنند – همه چیزهایی هستند که ممکن است متوجه آنها نشوید، به ویژه برای توسعه دهندگان جدیدتر.
در نهایت، برای آقای هوارد، کوپایلوت به وعده برنامه نویس جفتی هوش مصنوعی که قول داده بود پس از راه اندازی عمل نکرد (بررسی او تا ماه جولای). اما هنوز گام بزرگی برای مدلهای زبان تولید کد بود. بعلاوه، قبلاً در برخی از زمینههای خاص مفید بود، مانند کمک به کدنویسها با یک زبان برنامهنویسی جدید.
اگر میخواهیم هوش مصنوعی به تنهایی کد را بنویسد، «باید از مدلهای زبانی فراتر برویم و به راهحلی جامعتر برویم که بهترین شیوهها را در مورد تعامل انسان و رایانه، مهندسی نرمافزار، آزمایش و بسیاری از رشتههای دیگر در خود جای دهد».
“به این زودی جای ما را نمی گیرد” 🙅♀️
در بررسی گروه Stack Overflow Podcast، می شنویم که کوپایلوت برای کد boilerplate (چیزهای تکراری و غیر خلاقانه که باید بنویسید تا عملکردهای استاندارد را فعال کنید) عالی است، اما «اگر شروع به انجام کاری پیچیده تر از آن کنید، آن موقع است که شروع می کنی که بگی، باشه حالا، یک کم یواش تر کمک خلبان.
https://the-stack-overflow-podcast.simplecast.com/episodes/github-copilot-can-write-code-for-you-we-put-it-to-the-test
یکی دیگر از منتقدان در پادکست فکر می کند “در واقع به درستی کوپایلوت نامگذاری شده است، زیرا شما قرار است خلبان باشید، و قرار است بیشتر کدها را بنویسید”.
در طول اپیزود، نظرات دیگران این احساس را تکرار میکنند که کوپایلوت برای موارد استانداردی که برنامه نویسان همیشه در گوگل دارند عالی است. چیزهای کوچکی که برنامه نویسان میلیون ها بار به همین روش نوشته اند، بنابراین کوپایلوت هیچ مشکلی در دانستن بهترین گزینه ندارد.
یکی از بازبینان متقاعد شده است که کوپایلوت “بسیار شبیه تکمیل خودکار Gmail” است. درست مانند Gmail که عباراتی مانند “All the best” در جمله پایانی، کوپایلوت به عنوان یک مکمل خودکار برای توسعه دهندگان عالی است.
به نظر می رسد که کوپایلوت افراد پادکست Stack Overflow را با قابلیت های خود شگفت زده نکرده است، اما قطعاً یک پیش درآمد چشمگیر برای آینده برنامه نویسی جفتی هوش مصنوعی بود.
درست مانند مورد اولی، این بررسی مربوط به جولای است. بنابراین حالا اجازه بدهید یک نگاهی به بررسی جدید از 13 نوامبر 2021 بیندازیم.
“افزایش بهره وری که به احتمال زیاد مشاغل بیشتری ایجاد می کند” 💪
سندکس، برنامه نویس و یوتیوبر خاطرنشان می کند که موتور کوپایلوت بسیار سبک تر از GPT-3 است (12 میلیارد پارامتر در مقایسه با 175 میلیارد پارامتر)، بنابراین کارکرد آن بسیار سریعتر است.
https://www.youtube.com/watch?v=PDNt07UePvk
GPT-3 دارای محدودیت 4 کیلوبایت برای وزن فایل متنی بود. کوپایلوت دارای محدودیت 14kb است که همانطور که سنتدکس نشان می دهد حدود 400 خط کد است. برای روشن بودن، کوپایلوت همچنان روی فایلهای بزرگتر از آن کار میکند، اما فقط میتواند آن 400 خط کد را به عنوان زمینهای برای پیشبینی کد در نظر بگیرد.
او در ادامه شواهدی را نشان میدهد که کوپایلوت درک عمیقتری از کد دارد، این فقط تطبیق خطوط کد با یکدیگر نیست، زیرا میتواند خروجیهای توابع را با دقت کامل پیشبینی کند.
در نهایت، سنتدکس کوپایلوت را به عنوان لایه دیگری از انتزاع کد می بیند. او آن را با استفاده از Python به جای C++ مقایسه می کند:
- با پایتون، می توانید چیزهای بزرگتر را سریعتر بسازید زیرا از بلوک های بزرگتر و آماده استفاده می کنید.
- با C++، شما باید تمام جزئیات کوچک را در کد خود مشخص کنید و بلوک های خود را بسازید، بنابراین ساختن چیزهای بزرگ بیشتر طول می کشد.
این باعث می شود که کوپایلوت بهره وری فوق العاده ای را تقویت کند. سنتدکس چشم انداز تازه ای دارد و می گوید که ابزارهایی مانند کوپایلوت برنامه نویسان را از کارشان بیرون نمی کنند. در عوض، برنامه نویسان جفتی هوش مصنوعی راهی برای توسعه دهندگان نرم افزار خواهند بود تا چیزهای بیشتری بسازند، تجربه بیشتری کسب کنند و ارزش خود را در بازار افزایش دهند.
نکته مهم دیگری که سنتدکس در بررسی خود یافت این است که کوپایلوت یادگیری سریع را تقویت می کند. وقتی سنتدکس میخواست کتابخانه کد جدیدی را بررسی کند، فقط یک درخواست نوشت و کوپایلوت او را در استفاده از آن کتابخانه راهنمایی کرد. حتی روش هایی را به او نشان داد که نمی دانست وجود دارند.
معمولاً توسعهدهندگان هنگام شروع به استفاده از یک ابزار جدید، باید صفحات اسناد و چندین رشته Stack Overflow را مرور کنند. داشتن یک دوست هوش مصنوعی به جای انجام تمام این تحقیقات، راهنمای شروع سریع به شما باید بسیار راحت باشد.
وقتی صحبت از محدودیت ها می شود، سنتدکس متوجه شد که کوپایلوت اشتباه می کند. همیشه قصد شما را درک نمی کند. درست مانند گوگلینگ، نوشتن اعلانهایی که کوپایلوت را وادار میکند دقیقاً آنچه را که میخواهید انجام دهد، مهارتی است که یادگیری آن زمان میبرد.
در نهایت، سنتدکس اعتراف میکند که معمولاً ابزارهایی مانند این را دوست دارد، بنابراین انتظار نداشت که کوپایلوت را هم دوست داشته باشد. با این حال، او بسیار شگفت زده شد و کوپایلوت را بسیار مفید و عالی برای افزایش بهره وری به عنوان یک توسعه دهنده نرم افزار می داند.
دستیار شایسته، فاصله زیادی با جایگزینی دارد 🚧
به نظر میرسد که توافق عمومی این است که کوپایلوت ابزاری عالی است که میتواند بهرهوری شما را افزایش دهد، اما همه مشکلات شما را حل نمیکند و احتمالاً باید کد کوپایلوت را کمی ویرایش کنید.
اما، اگر توسعهدهنده نرمافزاری هستید که مایل به مشاوره از دستیار ربات هستید، ممکن است فقط:
- سریعتر از گذشته چیزهای جدید یاد بگیرید
- بهره وری خود را افزایش دهید،
- ارزش خود را در بازار توسعه نرم افزار افزایش دهید.
کوپایلوت، همراه با بزرگترین رقبای خود، راه را به سوی پذیرش گسترده دستیارهای برنامه نویسی هوش مصنوعی باز کرد. بعید است که این سیستم ها کار برنامه نویسان را منسوخ کنند. به علاوه، این فناوری هنوز محدود است. برای جایگزینی برنامه نویسان، به هوش عمومی مصنوعی قدرتمند (AGI) نیاز داریم، یعنی سیستم هایی که مانند انسان فکر می کنند.
ما هنوز با توسعه فناوری مانند این فاصله داریم. و اگر تقریباً تمام داستان های علمی-تخیلی باور شوند، توسعه AGI مشکلاتی بسیار بزرگتر از بیکاری در بین برنامه نویسان ایجاد می کند – و دلایل کمتری برای نگرانی در مورد آن باقی می گذارد.
مقالات مرتبط با هوش مصنوعی :
- دانشگاه کنکوردیا و شرکت اریکسون کانادا در هوش مصنوعی همکاری می کنند
- سما، شرکت داده آموزشی هوش مصنوعی تا 2023 در مونترال 300 کارمند می گیرد
- 51 میلیون دلار سرمایه گذاری در هوش مصنوعی IVADO مونترال
کوپایلوت جایگزین برنامه نویس می شود؟
کوپایلوت ابزاری عالی است که میتواند بهرهوری برنامه نویسان را افزایش دهد ولی بعید است که این سیستم ها کار برنامه نویسان را منسوخ کنند
محدودیت های کوپایلوت چیست؟
- به عنوان یک افزونه برای تنها چند ویرایشگر کد محبوب ارائه می شود. - رایگان است، اما یک لیست انتظار برای دسترسی وجود دارد. - هنوز یک نسخه پیش نمایش فنی است، نه یک محصول کامل.