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

Techboy

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

تکینگی هوش مصنوعی اینجاست

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

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

Mea culpa: اشتباه کردم. تکینگی هوش مصنوعی (AI) در واقع اینجاست. چه بخواهیم چه نخواهیم، ​​هوش مصنوعی چیزی نیست که احتمالاً در آینده دور بر توسعه نرم افزار تأثیر بگذارد. در حال حاضر اتفاق می افتد. امروز.

خیر، هر برنامه‌نویسی از مدل‌های زبان بزرگ (LLM) برای ساخت یا آزمایش کد استفاده نمی‌کند. در واقع، بیشتر اینطور نیستند. اما برای کسانی که اینطور هستند، هوش مصنوعی به طرز چشمگیری روش ساخت نرم افزار را تغییر می دهد. ارزش آن را دارد که نحوه استفاده از LLM‌هایی مانند ChatGPT را بررسی کنید تا درک کنید که چگونه می‌توانید از چنین ابزارهایی برای کارآمدتر کردن خود یا تیم‌های توسعه‌تان استفاده کنید.

جاه طلبی مبتنی بر هوش مصنوعی

یکی از صراحتاً حامیان توسعه پیشرفته LLM سایمون ویلیسون، بنیانگذار پروژه منبع باز Datasette. همان‌طور که ویلیسون می‌گوید، هوش مصنوعی به من اجازه می‌دهد تا جاه‌طلبانه‌تر باشم. پروژه های من.” چطور؟ «ChatGPT (و GitHub Copilot) مقدار زیادی از زمان «پیدا کردن چیزها» را در من صرفه‌جویی می‌کند. برای همه چیز، از نوشتن یک حلقه for در Bash تا به خاطر سپردن نحوه ایجاد یک درخواست CORS متقابل دامنه در جاوا اسکریپت – دیگر نیازی به جستجوی چیزها نیست، فقط می توانم آن را درخواست کنم و در ۸۰٪ مواقع پاسخ درست را دریافت کنم. “

برای ویلیسون و سایر توسعه‌دهندگان، کوتاه کردن چشمگیر فرآیند «پیدا کردن» به این معنی است که می‌توانند توجه بیشتری را به توسعه با ارزش بالاتر به جای آزمون و خطای درجه پایین متمرکز کنند.

درس های آموخته شده از ایمن سازی Kubernetes در ابر

برای کسانی که نگران کد ناقصی هستند که LLM می‌تواند ایجاد کند (یا دروغ‌های آشکار)، ویلیسون در پادکست می گوید نگران نباشید. به هر حال، حداقل اجازه ندهید که این نگرانی بر تمام دستاوردهای بهره وری که توسعه دهندگان می توانند به دست آورند، غلبه کند. با وجود این مشکلات غیر پیش پا افتاده، او می‌گوید: «شما می‌توانید جهش‌های عظیمی در بهره‌وری و جاه‌طلبی انواع پروژه‌هایی که به عهده می‌گیرید، داشته باشید، اگر بتوانید هر دو چیز را به‌طور همزمان بپذیرید: می‌تواند ناقص و دروغ باشد. همه این مشکلات را دارید … و همچنین می تواند بهره وری گسترده ای را افزایش دهد.”

ترفند این است که برای یادگیری نحوه دستکاری LLMها وقت بگذارید تا آنها را به آنچه نیاز دارید تبدیل کنید. ویلیسون تأکید می‌کند: «برای اینکه بیشترین ارزش را از آن‌ها به دست آورید – و برای جلوگیری از تله‌های زیادی که برای کاربر بی‌احتیاط می‌گذارند – باید با آن‌ها وقت بگذرانید و برای ساختن یک مدل ذهنی دقیق از نحوه کار و چیستی آن‌ها تلاش کنید. قادر به انجام این کار هستند، و در کجا احتمال اشتباه وجود دارد.”

به عنوان مثال، LLM هایی مانند ChatGPT می توانند برای تولید کد مفید باشند، اما شاید حتی برای آزمایش کد (از جمله کد ایجاد شده توسط LLM) مفیدتر باشند. این نکته ای است که جانا دوگان توسعه دهنده GitHub مطرح کرده است. باز هم، ترفند این است که از LLM ها استفاده کنید، نه اینکه فقط از هوش مصنوعی بخواهید کار شما را انجام دهد و در ساحل منتظر بمانید تا کار را کامل کند. LLM می تواند به یک برنامه نویس در انجام کارش کمک کند، نه اینکه جایگزین توسعه دهنده در آن شغل شود.

پلتفرم جدید تانزو VMware قصد دارد تا توسعه Kubernetes را متحد کند

“بزرگترین چیز از زمان وب جهانی”

توسعه‌دهنده سورسگراف استیو یگ مایل است که اعلام کند، ” LLM ها تنها بزرگترین تغییر از زمان شبکه اجتماعی، تلفن همراه یا ابری نیستند – آنها بزرگترین چیز از زمان شبکه جهانی وب هستند. و در بخش کدنویسی، آنها بزرگترین چیز از زمان IDE ها و Stack Overflow هستند و ممکن است هر دو را تحت الشعاع قرار دهند.” Yegge یک توسعه‌دهنده استثنایی است، بنابراین وقتی می‌گوید: «اگر هنوز در مورد این موضوع هیجان‌زده و نگران نیستید، خوب… باید باشید»، وقت آن است که LLM را جدی بگیریم و بفهمیم که چگونه آنها را برای خودمان مفید کنیم. و شرکت های ما.

برای Yegge، یکی از بزرگ‌ترین دغدغه‌های LLM و نرم‌افزار نیز کمترین قانع‌کننده بودن را دارد. به عنوان مثال، من دستم را به این موضوع رساندم که توسعه دهندگان متکی به LLM هنوز باید مسئولیت کد را بر عهده بگیرند، که با توجه به ناقص بودن کدی که از LLM ها بیرون می آید، مشکل به نظر می رسد.

به جز اینکه، یگی می‌گوید، این یک نگرانی مضحک است، و او درست می‌گوید:

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

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

Yegge خلاصه می‌کند، “شما LLM را دریافت می‌کنید تا کدی را برای شما پیش‌نویس کند که ۸۰٪ کامل/درست است [و] ۲۰٪ آخر را با دست تغییر می‌دهید.” این یک افزایش پنج برابری بهره وری است. چه کسی آن را نمی خواهد؟

مسابقه توسعه دهندگان برای یادگیری نحوه پرس و جو از LLM برای ساخت و آزمایش کد و همچنین یادگیری نحوه آموزش LLM با زمینه (مانند نمونه کد) برای دریافت بهترین خروجی ممکن در جریان است. وقتی درست متوجه شدید، صدایی شبیه به مت بیتمن از Higher Ground در حال جوشیدن خواهید داشت: “من احساس می کنم من ارتش کوچکی از هکرهای توانمند دارم تا هم دستورات من را انجام دهند و هم در حین رفتن به من آموزش دهند. این فقط لذت و جادوی خالص است.» به همین دلیل است که AWS و سایر شرکت‌ها در حال تلاش برای ابداع راه‌هایی هستند که به توسعه‌دهندگان امکان می‌دهند با استفاده از آنها بهره‌ورتر باشند. پلت فرم ها (تغذیه مواد آموزشی به LLM ها).

تصور آینده‌ای را بدون توسعه نرم‌افزار دارای LLM متوقف کنید و در عوض همین امروز شروع کنید.