۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

چگونه هوش مصنوعی قبلاً کدنویسی را برای همیشه تغییر داده است

ابزارهای کدنویسی هوش مصنوعی مانند Amazon CodeWhisperer و GitHub Copilot بهره وری توسعه دهندگان حرفه ای و مبتدی را به طور یکسان افزایش می دهند. آنها فقط آغاز هستند

ابزارهای کدنویسی هوش مصنوعی مانند Amazon CodeWhisperer و GitHub Copilot بهره وری توسعه دهندگان حرفه ای و مبتدی را به طور یکسان افزایش می دهند. آنها فقط آغاز هستند

هفته گذشته مدیر عامل MongoDB Dev Ittycheria هوش مصنوعی امروزی را به “مرحله شماره گیری عصر اینترنت” تشبیه کرد. او اشتباه نمی کند. من اخیراً پیشنهاد دادم ما در “مرحله کودک نوپا ناجور” هوش مصنوعی مولد (genAI) هستیم. این پر از هیجان است («اولین قدم او!»)، اما وظایف ساده، مثل ریاضیات پایه، دست و پا چلفتی هستند. با این حال، در برخی مناطق، آینده هوش مصنوعی مولد در حال حاضر اتفاق می افتد. یکی از حوزه‌ها دستیارهای کدنویسی مانند Amazon CodeWhisperer است.

مطمئناً، داستان‌های حکایتی شنیده‌اید که نشان می‌دهد شخصی یک برنامه بانکی پیچیده برای بانک Fortune 100 خود در دو دقیقه با یک خط فرمان ساخته است، اما این نوع هایپ به هیچ‌کس کمک نمی‌کند. توسعه دهندگان واقعی امروز برای استفاده از genAI برای بهبود بهره وری خود چه می کنند؟

این سوالی است که من از داگ سون، مدیر کل Amazon CodeWhisperer و مدیر توسعه نرم افزار برای Amazon CodeWhisperer پرسیدم. یک href=”https://aws.amazon.com/q/” rel=”nofollow”>Amazon Q، در AWS. همانطور که Seven می گوید، توسعه دهندگان در هر مرحله از حرفه خود می توانند (و قطعاً انجام می دهند) امروز به خوبی از هوش مصنوعی مولد استفاده کنند. نکته کلیدی AWS این است که به توسعه دهندگان اجازه می دهد بیشتر بر روی کد خود تمرکز کنند و کمتر بر روی همه کلمات کلیدی که چشم انداز هوش مصنوعی را آلوده می کنند، تمرکز کنند.

اثر آمازون

ابتدا، ابزارهایی مانند CodeWhisperer و Amazon Q (دستیار چت ربات مجهز به ژن AI) دقیقاً چه کاری انجام می دهند؟ در ابتدایی ترین حالت، CodeWhisperer با ارائه پیشنهادهای کدنویسی متنی به فرآیند توسعه نرم افزار کمک می کند. همانطور که یک توسعه دهنده نظرات را به کد اضافه می کند، CodeWhisperer از آن نظرات استنباط می کند که توسعه دهنده چه کاری انجام می دهد و کد پیشنهادی را ارائه می دهد. CodeWhisperer همچنین می‌تواند کد را اسکن کند تا آسیب‌پذیری‌های امنیتی را شناسایی کند، آنها را به شما اطلاع دهد و سپس آنها را برطرف کند.

RHEL 9 دارای مدیریت لبه، بازگشت کانتینر است

در طول سال گذشته از زمان AWS GA’d CodeWhisperer، این شرکت توانایی تنظیم دقیق پیشنهادهای کدنویسی را با سفارشی‌سازی اضافه کرده است. به عنوان مثال، یک شرکت می‌تواند CodeWhisperer را به چارچوب‌های داخلی، کتابخانه‌های خصوصی یا حتی فقط قراردادهای کدنویسی اشاره کند، و CodeWhisperer آن قراردادها و ترجیحات شرکتی را منعکس می‌کند. همانطور که Seven توضیح می دهد، “شما کد را بیشتر شبیه به کد خود دریافت می کنید، به جای اینکه بیشتر شبیه کدهای همه منظوره باشد”.

Amazon Q به نوبه خود به عنوان دستیار عمل می کند. آیا نیاز به یک کد برای شما توضیح داده شده است؟ سوال بپرسید. از Q بپرسید. با Q، یک توسعه‌دهنده می‌تواند به کدنویسی ادامه دهد تا زمانی که Q برای انجام «کارها» پایان می‌یابد.

همه چیز خوب و جالب است. در واقع، این روزها “همه این کار را انجام می دهند”: GitHub Copilot، Google Codey، ChatGPT، و بیشتر. اما چیزی در مورد رویکرد AWS متفاوت است – چیزی بسیار آمازونی.

نه فقط برای خدمات AWS

AWS از زمان آغاز به کار خود همواره در تلاش بوده است تا “حمله سنگین غیرمتمایز” را که توسعه دهندگان برای ایستادن سرورها، مدیریت پایگاه داده ها و موارد دیگر باید انجام دهند، کاهش دهد. رویکرد این شرکت به هوش مصنوعی مولد تقریباً یکسان است. بازار با هیپ هوش مصنوعی بیش از حد اشباع شده است و جدا کردن سیگنال از نویز را دشوار می کند، همانطور که اخیراً نوشتم. از Seven پرسیدم که چگونه AWS قصد دارد به این مشکل کمک کند. او پاسخ داد: “یکی از مزایای CodeWhisperer این است که ما تمام آن علم مولد هوش مصنوعی را انتزاعی می کنیم.”

به عبارت دیگر، توسعه‌دهندگان نیازی به استرس ندارند در مورد مدل‌های زبان بزرگ (LLM)، نسل تقویت‌شده با بازیابی (RAG)، یا هر چیزی که منتشر می‌شود. امروز. CodeWhisperer به آن‌ها کمک می‌کند بدون نگرانی در مورد مدل‌هایی که در پشت صحنه اجرا می‌شوند، کد بنویسند. این یک خبر عالی برای توسعه دهندگان است. برای مثال، آنها ممکن است متوجه شوند که برای خروجی بهتر باید آموزش دستیار برنامه نویسی خود را اصلاح کنند، اما هیچ ایده ای برای رسیدن به این هدف از طریق روش های دیگر ندارند. Seven می‌گوید AWS از CodeWhisperer و ابزارهای مرتبط می‌خواهد تا این را «نسبتاً کلید در دست» برای شما بسازند. بنابراین شما فقط می توانید بگویید “اینجا مخزن من است، کار خود را انجام دهید” و سپس [AWS] از تکنیک های مختلفی در پشت صحنه استفاده خواهد کرد.”

مایکروسافت Hot Reload را به .NET SDK برمی گرداند

و همچنین AWS روی سرویس‌های خود برای CodeWhisperer تثبیت نمی‌کند، البته هدف این شرکت تجربه‌ای درجه یک با خدمات شخص اول خود مانند Aurora برای MySQL است. همانطور که Seven می گوید، “یکی از … اصول [برای] CodeWhisperer این است که ما باید بتوانیم به توسعه دهندگان کمک کنیم تا هر کاری که انجام می دهند انجام دهند.” این به معنای کمک به توسعه دهندگانی است که ممکن است خدمات را در ابرهای مختلف (یا در محل) اجرا کنند. ما نمی‌خواهیم CodeWhisperer را محدود کنیم تا فقط در [سرویس‌های] AWS خوب باشد. ما می‌خواهیم در هر کاری که یک مهندس نرم‌افزار می‌خواهد انجام دهد، آن را خوب کنیم.

آیا GitHub Copilot یا سایر دستیاران برنامه نویسی شخص ثالث در نهایت با خدمات AWS بهتر از CodeWhisperer کار خواهند کرد؟ نه اگر AWS بتواند به آن کمک کند. Seven می‌گوید: «ما کارهای زیادی انجام می‌دهیم تا مطمئن شویم که در انجام کارهای AWS بهتر از دیگران هستیم.

کدنویسی با CodeWhisperer

یک برنامه نویس چگونه باید شروع به کار کند؟ علیرغم تمام تلاش‌های AWS برای “انتزاعی از علم داده”، به قول Seven، “گاهی اوقات ممکن است منحنی یادگیری از نظر نحوه بیان خود وجود داشته باشد” تا CodeWhisperer (یا هر یک از این ابزارهای genAI) را به نتیجه برساند. خواستن با این حال، او ادامه می‌دهد: «شروع کردن واقعاً سریع است، و در حین حرکت یاد می‌گیرید.

این امر صادق است چه برنامه‌نویسی که از CodeWhisperer استفاده می‌کند، باتجربه باشد یا در این زمینه تازه کار باشد.

Seven می‌گوید که شرکت یک چالش بهره‌وری داخلی را اجرا کرد و شرکت‌کنندگانی که از CodeWhisperer استفاده می‌کردند ۲۷ درصد بیشتر احتمال داشت که مجموعه‌ای از وظایف را با موفقیت انجام دهند. حتی بهتر از آن، آنها این کار را ۵۷٪ سریعتر از کسانی که از CodeWhisperer استفاده نمی کردند، انجام دادند. این بدون توجه به سطح تجربه درست بود.

نحوه استفاده از کلیدهای API برای ایمن سازی API های وب در ASP.NET Core

چرا؟ ممکن است یک توسعه‌دهنده با یک SDK خاص آشنا نباشد و پیشنهادات کد CodeWhisperer به توسعه‌دهنده کمک می‌کند بدون نیاز به آهسته خواندن اسناد، از مانع عبور کند. برای توسعه دهندگان باتجربه ای که از قبل می دانند چه کاری انجام می دهند، CodeWhisperer کمک می کند تا سرعت گیرهایی مانند این را هموارتر کند تا سریعتر کار کنند، در حالی که به آنها امکان می دهد کدهای دیگ بخار را با سرعت بیشتری شخم بزنند. برای توسعه‌دهندگان کم‌تجربه، CodeWhisperer کدهایی را پیشنهاد می‌کند که از گیر کردنشان جلوگیری می‌کند. همانطور که سون می گوید، “آنها می توانند پیشنهادهایی دریافت کنند که به آنها کمک می کند بفهمند به کجا می روند و در نهایت مجبور می شوند حرف دیگران را کمتر قطع کنند [مثلاً کمک بخواهند].” همه برنده می شوند.

حرکت فراتر از سن ابزار هوش مصنوعی

سون می‌گوید که هم رویکردهای پایین به بالا (یک توسعه‌دهنده یا تیم موفق است و همه چیز را منتشر می‌کند) و هم رویکردهای از بالا به پایین (حکم اجرایی) را برای پذیرش می‌بیند. چیزی که او نمی بیند، هر نوع کاهش سرعت نوآوری مولد هوش مصنوعی است.

امروزه ما از چیزهایی مانند CodeWhisper تقریباً به عنوان ابزار استفاده می‌کنیم، او پیشنهاد می‌کند مانند ماشین‌حساب. اما چند سال بعد، او ادامه می دهد، ما بیشتر شاهد “همکاری بین یک تیم مهندسی نرم افزار و هوش مصنوعی خواهیم بود که در تمام بخش های چرخه عمر توسعه نرم افزار یکپارچه شده است.” در این آینده نزدیک، «انسانها شروع به تغییر بیشتر به نقش [کارگردانی] می کنند، ایده ها و جهت گیری برای انجام کارها و نظارت را برای اطمینان از اینکه آنچه به ما برمی گردد همان چیزی است که انتظارش را داشتیم یا می خواستیم. “

به همان اندازه که آینده برای توسعه دهندگان وعده داده می شود هیجان انگیز باشد، زمان حال نیز بسیار خوب است. توسعه دهندگان با هر سطح تجربه می توانند از ابزارهایی مانند Amazon CodeWhisperer بهره مند شوند. نحوه استفاده توسعه دهندگان از آنها بر اساس سطح تجربه آنها متفاوت است، اما اینکه آیا آنها باید از آنها استفاده کنند یک سوال حل شده است و پاسخ مثبت است.