GitHub از تکمیل آزمایش دستیار هوشمند GitHub Copilot خبر داد که قادر به تولید ساختارهای استاندارد هنگام نوشتن کد است. این سیستم به طور مشترک با پروژه OpenAI توسعه یافته است و از پلتفرم یادگیری ماشین OpenAI Codex استفاده می کند که بر روی مجموعه بزرگی از کدهای منبع میزبانی شده در مخازن عمومی GitHub آموزش داده شده است. این سرویس برای نگهبانان پروژه های منبع باز محبوب و دانش آموزان رایگان است. برای دستههای دیگر کاربران، دسترسی به GitHub Copilot پولی است (10 دلار در ماه یا 100 دلار در سال)، اما دسترسی آزمایشی رایگان به مدت 60 روز ارائه میشود.
تولید کد در زبان های برنامه نویسی Python، JavaScript، TypeScript، Ruby، Go، C# و C++ با استفاده از فریمورک های مختلف پشتیبانی می شود. ماژولهایی برای ادغام GitHub Copilot با Neovim، JetBrains IDEs، Visual Studio و Visual Studio Code در دسترس هستند. با قضاوت بر اساس تله متری جمع آوری شده در طول آزمایش، این سرویس به شما امکان می دهد کدی با کیفیت نسبتاً بالا تولید کنید - به عنوان مثال، 26٪ از توصیه های ارائه شده در GitHub Copilot توسط توسعه دهندگان پذیرفته شد.
GitHub Copilot با سیستمهای تکمیل کد سنتی در توانایی آن برای تولید بلوکهای کد نسبتاً پیچیده، تا توابع آماده که با در نظر گرفتن شرایط فعلی ترکیب میشوند، متفاوت است. GitHub Copilot با روشی که توسعه دهنده کد می نویسد وفق می دهد و API ها و چارچوب های مورد استفاده در برنامه را در نظر می گیرد. به عنوان مثال، اگر نمونه ای از ساختار JSON در یک نظر وجود داشته باشد، زمانی که شما شروع به نوشتن یک تابع برای تجزیه این ساختار می کنید، GitHub Copilot کد آماده ارائه می دهد و هنگام نوشتن لیست های معمول از توضیحات تکراری، بقیه را تولید می کند. موقعیت ها
توانایی GitHub Copilot برای تولید بلوکهای کد آماده منجر به بحثهایی در رابطه با نقض احتمالی مجوزهای کپیلفت شده است. هنگام شکلگیری مدل یادگیری ماشین، متون منبع واقعی از مخازن پروژه منبع باز واقع در GitHub استفاده شد. بسیاری از این پروژهها تحت مجوزهای کپیلفت ارائه میشوند، مانند GPL، که نیاز به توزیع کد آثار مشتق تحت یک مجوز سازگار دارد. با درج کد موجود طبق پیشنهاد Copilot، توسعه دهندگان ممکن است ناخواسته مجوز پروژه ای را که کد از آن قرض گرفته شده است، نقض کنند.
هنوز مشخص نیست که آیا کار ایجاد شده توسط یک سیستم یادگیری ماشینی را می توان مشتق در نظر گرفت یا خیر. همچنین سوالاتی در مورد اینکه آیا یک مدل یادگیری ماشین مشمول حق چاپ است و اگر چنین است، این حقوق متعلق به چه کسی است و چگونه به حقوق مربوط به کدی که مدل بر اساس آن استوار است، وجود دارد.
از یک طرف، بلوک های تولید شده می توانند متنی را از پروژه های موجود تکرار کنند، اما از سوی دیگر، سیستم به جای کپی کردن خود کد، ساختار کد را بازسازی می کند. طبق یک مطالعه GitHub، تنها 1٪ از مواقع یک توصیه Copilot ممکن است شامل قطعه کدهایی از پروژه های موجود باشد که بیش از 150 کاراکتر دارند. در بیشتر موقعیتها، زمانی که Copilot نمیتواند زمینه را به درستی تعیین کند یا راهحلهای استانداردی برای یک مشکل ارائه میکند، تکرار میشود.
برای جلوگیری از جایگزینی کد موجود، یک فیلتر ویژه به Copilot اضافه شده است که اجازه تقاطع با پروژه های موجود را نمی دهد. هنگام راهاندازی، توسعهدهنده میتواند به صلاحدید خود این فیلتر را فعال یا غیرفعال کند. در میان مشکلات دیگر، این احتمال وجود دارد که کد سنتز شده ممکن است خطاها و آسیب پذیری های موجود در کد مورد استفاده برای آموزش مدل را تکرار کند.
منبع: opennet.ru