استارتاپ هوش مصنوعی Hugging Face، با همکاری ServiceNow پلتفرم اتوماسیون جریان کار، StarCoder را ایجاد کرد. StarCoder یک ژنراتور کد متن باز است که مجوزهای محدود کننده کمتری نسبت به برخی از ژنراتورهای دیگر دارد. نسخه اول StarCoder در سال گذشته به صورت آنلاین راه اندازی شد و از آن زمان بر روی نسخه دوم، ژنراتور کد StarCoder 2، کار شده است.
نسخه های ژنراتور کد StarCoder 2
ژنراتور کد StarCoder 2 یک مجموعه از مدل های تولید کد است و تا به امروز با سه نسخه منتشر شده است. این سه نسخه عبارتند از:
- مدل ۳ میلیارد پارامتر (3B) که توسط ServiceNow آموزش دیده است.
- مدل ۷ میلیارد پارامتر (7B) که توسط Hugging Face آموزش دیده است.
- مدل ۱۵ میلیارد پارامتر (15B) که توسط Nvidia، جدیدترین حامی پروژه StarCoder، آموزش دیده است.
دو نسخه اول می توانند بر روی اکثر پردازنده های گرافیکی مدرن اجرا شوند.
(توجه کنید که “پارامترها” بخش هایی از مدل هستند که از داده های آموزشی، یاد گرفته شده اند و در واقع مهارت مدل در حل یک مشکل را تعریف می کنند، در این مورد تولید کد.)
قابلیت های ژنراتور کد StarCoder 2
مانند اکثر ژنراتورهای کد دیگر ،تولید کننده کد StarCoder 2 می تواند راه هایی برای تکمیل خطوط ناتمام کد پیشنهاد دهد و همچنین خلاصه سازی کنند و قطعات کد را با استفاده از زبان طبیعی بازیابی کنند.
StarCoder 2 با دادههای آموزشی ۴ برابر بیشتر از StarCoder اصلی (۶۷.۵ ترابایت در مقابل ۶.۴ ترابایت) آموزش دیده است و نتیجهای با عملکرد بهبود یافته و هزینههای عملیاتی کمتر ارائه می دهد.
StarCoder 2 می تواند با استفاده از یک GPU مانند Nvidia A100 در چند ساعت تنظیم شود تا برنامه هایی مانند چت بات ها و دستیارهای کد نویسی شخصی ایجاد کند و به دلیل آموزش بر روی مجموعه داده های بزرگتر و متنوع تر از StarCoder اصلی (حدود ۶۱۹ زبان برنامهنویسی)، StarCoder 2 می تواند پیشبینی های دقیق تر و آگاهانه تری از متن را انجام دهد.
Harm de Vries ، رئیس تیم توسعه StarCoder 2 ، در یک مصاحبه به TechCrunch گفت: “StarCoder 2 به ویژه برای توسعه دهندگانی که نیاز به ساخت سریع برنامه ها را دارند، ایجاد شده است و توسعه دهندگان می توانند از قابلیت های آن برای افزایش کارایی کد نویسی بدون از دست دادن سرعت یا کیفیت استفاده کنند.”
با در نظر گرفتن همه این موارد ، آیا ژنراتور کد StarCoder 2 واقعاً از دیگر ژنراتورهای کد موجود – رایگان یا پرداختی -برتر است؟ با توجه به معیارها، به نظر می رسد که StarCoder 2 نسبت به یکی از نسخه های Code Llama، به نام Code Llama 33B، کارآیی بیشتری دارد و در یک زیر مجموعه از وظایف تکمیل کد، دو برابر Code Llama 33B سرعت دارد.
امنیت ژنراتور کد StarCoder 2
StarCoder 2 به عنوان مجموعه ای از مدل های متن باز، دارای مزیتی است که قابلیت استقرار محلی و یادگیری کد منبع یا پایگاه کد توسعه دهنده را دارد – یک چشم انداز جذاب برای توسعه دهندگان و شرکت ها که از افشای کد به یک هوش مصنوعی میزبان در ابر می ترسند.
در یک نظرسنجی انجام شده توسط Portal26 و CensusWide در سال ۲۰۲۳، ۸۵٪ از کسب و کارها اعلام کردند که به دلیل مخاطرات حریم خصوصی و امنیتی – مانند به اشتراک گذاری اطلاعات حساس توسط کارمندان یا آموزش تامین کنندگان بر روی داده های انحصاری _ از پذیرش ژنراتورهای کد مانند GenAI می ترسند.
تمام مدل های GenAI نسخه هایی از داده هایی که بر روی آن ها آموزش دیدهاند، تولید می کنند و این ممکن است توسعه دهندگان را دچار مشکل کند.
در استفاده از ژنراتورهای کدی که بر روی کدهای کپی رایت آموزش دیده اند، کاملاً احتمال دارد که حتی با فیلترها و تدابیر اضافی، ژنراتورها به طور ناخواسته کدهای کپی رایت را توصیه کنند و آن ها را به عنوان کدهای دارای کپی رایت لیبل گذاری نکنند.
برخلاف ژنراتورهای کد که با استفاده از کدهای کپی رایت آموزش داده شدهاند (به عنوان مثال GitHub Copilot (، StarCoder 2 تنها با استفاده از داده های تحت لیسانس از Software Heritage، سازمان غیرانتفاعی ارائه دهنده خدمات آرشیوی برای کد، آموزش دیده است. قبل از آموزش StarCoder 2، BigCode تیم برنامه ریزی StarCoder 2، به صاحبان کد فرصت داد که اگر مایلند از مجموعه آموزشی خارج شوند.
Leandro von Werra ، مهندس یادگیری ماشین Hugging Face و مدیر مشترک BigCode ، اشاره کرد در حالی که اخیراً تعداد زیادی ژنراتور کد باز در دسترس است، تعداد کمی از آن ها همراه با اطلاعاتی در مورد دادههایی که در آموزش آن ها استفاده شده است و چگونگی آموزش آنها ، عرضه شدهاند.
von Werra در یک مصاحبه گفت: “یک مشکل علمی این است که به عنوان یک تولید کننده داده (یعنی کسی که کد خود را به GitHub آپلود می کند)، نمیدانید که دادههای شما چگونه و به چه شکلی استفاده شدهاند.”
StarCoder 2 این مشکل را با شفافیت کامل در کلیه مراحل آموزش از جمع آوری داده های پیش آموزش تا خود آموزش حل می کند.
محدودیت های ژنراتور کد StarCoder 2
با این حال، مانند سایر مدل های هوش مصنوعی، StarCoder 2 با محدودیت هایی همراه است . در ادامه به برخی محدودیت های کلیدی اشاره میکنیم:
تعصب
همانند مدل های مشابه، تولید کننده کد StarCoder 2 ممکن است تعصب های موجود در داده های آموزشی را نمایش دهد. به عنوان مثال، ممکن است کدی تولید کند که شامل تبعیض های مرتبط با جنسیت یا نژاد باشد.
وابستگی به زبان
از آنجایی که این مدل اصولاً بر روی توضیحات به زبان انگلیسی و کد Python و Java آموزش دیده است، در مواقعی که با زبان های غیر انگلیسی و کدهای با منابع کمتر مانند Fortran و Haskell سروکار دارد، عملکرد ضعیف تری دارد .
با این محدودیتها، StarCoder 2 یک گام مهم در جهت ایجاد اعتماد و پاسخگویی در مدل های هوش مصنوعی است. این مدل نمونه ای از مدل های کاملاً باز و شفاف را به نمایش می گذارد، که اهمیت شفافیت و قابلیت حسابرسی در سراسر فرآیند مدل، از جمله داده های آموزشی و دستورالعمل آموزش، را تأکید می کند .
توسعه دهندگانی که علاقه مند به تجربه آفلاین و رایگان StarCoder ۲ هستند، می توانند مدل ها، کد منبع و موارد دیگر را از صفحه پروژه GitHub دانلود کنند.
اگر مایلید در زمینه ی هوش مصنوعی مولد بیشتر بدانید پیشنهاد میکنیم مقاله زیر را مطالعه بفرمایید:
هوش مصنوعی مولد (Generative AI) چیست؟