نرم افزار تکمیل خودکار، دست آورد جدید هوش مصنوعی برای کد نویسان

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

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

 

جیکوب جاکسون، دانشجوی علوم رایانه در دانشگاه واترلو که برنامه DeepTabNine را تولید کرده است، می گوید: این نوع نرم افزارها جدید نیستند، اما ماشین های یادگیری، در ارائه پیشنهادات و آنچه که می توانند ارائه دهند بسیار بهبود یافته اند.  او می گوید: این ماشین ها توانسته اند مشکل مرا حل کنند”.

جکسون کار بر روی نسخه اصلی نرم افزار TabNine، را در ماه فوریه سال گذشته، قبل از راه اندازی آن در ماه نوامبر، آغاز کرد. اما در اوایل ماه جاری، او یک نسخه به روز شده منتشر کرد که از یک الگوریتم نوشتاری یادگیری عمیق به نام GPT-2، که توسط آزمایشگاه تحقیقاتی OpenAI طراحی شده بود، برای بهبود توانایی هایش استفاده کرد.  به روز رسانی این نرم افزار به طور چشم گیری روی کدنویسی تاثیرگذاشته است.

یکی از کاربران این برنامه به نام Franck Nijhof مدیر آی تی که در اوقات فراغتش بر روی نرم افزارهای اتوماسیون های خانگی متن باز کار می کند، گفته است:” از این برنامه شگفت زده نشدم، بلکه ترسیدم! ساعات اولیه ی کار با این نرم افزار، برایم مفید نبود، زیرا نمی توانستم شگفتی ام را پنهان کنم و بیشتر دوست داشتم سر از کار این برنامه دربیاورم. همش با خودم میگفتم: چگونه می تواند بفهمد؟ حدس بزند؟”

Franck Nijhof میگوید: برنامه های تکمیل خودکار جدید نیستند، فقط پیشنهاداتی که DeepTabNine میدهد، بسیار دقیق تر است. من پیش از این چندین برنامه ی هوشمند جهانی را بررسی کرده ام، در بین این برنامه ها هیچکدام به اندازه ی DeepTabNine مفید و دقیق نبوده اند. این برنامه یک چالش واقعی است”.

طبق گفته های جکسون،: این برنامه پیشنهادات بهتری ارائه می دهد زیرا براساس اطلاعات بدست آمده از پیش بینی عمل می کند”. بیشتر برنامه های تکمیل خوکار، براساس آنچه که قبلا کاربر استفاده کرده است پیشنهاداتی ارائه می دهند”، در واقع براساس کدهایی که قبلا نوشته شده است به آنها پیشنهاداتی می دهند، مانند مراحل حل یک فرمول ریاضی عمل می کنند. اما برنامه DeepTabNine یک برنامه ی مقایسه ای است. و در واقع اتکاء آن بر تواناهایی ماشین یادگیری در پیدا کردن الگوهای آماری در داده ها و انجام پیش بینی است.

در واقع این برنامه، همانند دیگر برنامه های مشابه، که الگوریتم های متنی را در دیتاست هایی مانند کتاب، مقاله و حتی قیلم نامه ایجاد می کنند، DeepTabNine نیز حدود 2 میلیون فایل در مخزن گیت هاب کدنویسی کرده است. این برنامه، الگوها را از روی داده ها پیدا می کند و از آن ها برای ارائه پیشنهاداتی مانند اینکه چه چیزی در خط بعدی کد باید گذاشته شود، حرف یا تابع ، استفاده می کند.

طبق گفته ی جکسون استفاده از یادگیری عمیق برای ایجاد نرم افزارهای تکمیل خودکار مزایای بیشتری را ارائه می دهد. این برنامه، پشتیبان هایی برای زبان های جدید ایجاد می کند، که نسبت به دیگر برنامه ها راحت تر است. شما فقط باید اطلاعات آموزشی بیشتری را وارد قیف اطلاعاتی   DeepTabNine کنید، و در نهایت با بررسی این داده ها، به شما الگوهایی را پیشنها می دهد. این بدین معناست که DeepTabNine کد 22 زبان مختلف را برای شما پیشنهاد می دهد، در حالی که دیگر برنامه ها تنها کد یک زبان را به شما می دهد.

(لیست کاملی از زبانهایی که DeepTabNine پشتیبانی می کند: Python، JavaScript، Java، C ++، C، PHP، Go، C #، Ruby، Objective-C، Rust، Swift، TypeScript، Haskell، OCaml، Scala، Kotlin، Perl ، SQL، HTML، CSS، و Bash.)

مهم ترین ویژگی این برنامه این است که به لطف توانایی تحلیلی یادگیری عمیق، پیشنهاداتی که  DeepTabNine ارائه می کند، کیفیت بسار بالاتری دارد. و چون نرم فزار از کدهای خود کاربر برای ارائه پیشنهاد استفاده نمی کند، می تواند خیلی سریعتر خودش پیشنهاداتی را ایجاد کند بدون اینکه بخواهد تلاش کند تا از کدهای نوشته شده توسط کاربر ستفاده کند.

البته این نرم افزار هم کامل نیست. این برنامه هم در ارائه پیشنهادات خود می تواند اشتباه کند و همچنین برای تمام زبان های برنامه نویسی کاربرد ندارد. مثلا، برای کاربرانی که از برنامه هایی مانند Hacker News و یا r-programming استفاده می کنند، پیشنهادات متعددی ارائه میدهد( البته بیشتر آن ها مثبت هستند).

 

منبع:  theverge

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *