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

Techboy

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

آموزش کدنویسی به ماشین ها

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

اسناد عالی برای انسان ها مهم است، اما برای ماشین ها مهم تر است. مفهوم “اسناد لایه ای” به این معنی است که هم توسعه دهندگان و هم LLM ها آنچه را که نیاز دارند دریافت می کنند.

به همان اندازه که کد مهم است، مستندات آن کد مسلماً مهم‌تر است. هیچ توسعه دهنده و هیچ نرم افزاری در خلاء وجود ندارد. مگر اینکه توسعه دهندگان دیگر بتوانند کدی که شما نوشته اید را درک کنند، تأثیر بالقوه خود را از دست می دهد.

اما ماشین‌ها چطور؟ آیا آنها همچنین به اسناد خوب نیاز دارند؟

پاسخ مثبت است، و به آینده‌ای از “مستندات لایه‌ای” اشاره می‌کند، اصطلاحی که برای اولین بار آن را دیدم. توسط ولاد یونسکو. همانطور که جزئیات، اسناد سطحی به معنای “داشتن یک مجموعه از اسناد برای کاربران انسانی و داشتن مجموعه ای دیگر از مستندات ویژه برای آموزش LLM [مدل زبان بزرگ].” اولی باید به راحتی توسط مردم مصرف شود. مورد دوم نیاز به جزئیات دارد تا ابزارهایی مانند Amazon CodeWhisperer یا GitHub Copilot کدهای همیشه در حال بهبود را ارائه دهند. این یک مفهوم جذاب با هدف نهایی بهبود بهره وری توسعه دهندگان است. بنابراین، برای رسیدن به آنجا به چه چیزی نیاز داریم؟

اهمیت اسناد عالی

از یک برنامه‌نویس بپرسید که او به چه چیزی برای بهره‌وری نیاز دارد، و همیشه پاسخ «اسناد عالی» است. در واقع، SlashData سال‌ها این سوال را پرسیده است و اسناد همیشه در صدر فهرست قرار دارند:

نحوه باز کردن پشتیبانی از C-suite برای ابتکارات نوسازی برنامه

developerwants

مستندات خوب مرتباً در لیست علاقه‌مندی‌های توسعه‌دهندگان رتبه اول را دارند.

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

خب، سخت تر شد.

برای توسعه دهنده Jakub Kočí، “بزرگترین مشکل [در نوشتن اسناد] وضوح است.” پس از همه، او ادامه می دهد، “ما ابتدا برای انسان ها کد می نویسیم، نه برای ماشین ها. کارآمد کردن آن تنها نیمی از راه حل است، ساخت آن به خوبی ساختار یافته و قابل نگهداری یکی دیگر از بخش های … اغلب دشوارتر است. این ممکن است در سال ۲۰۲۲ و زمانی که کوچی برای اولین بار این را گفت درست بود، اما در سال ۲۰۲۴، با توجه به ظهور دستیارهای کدنویسی مبتنی بر LLM، مسلماً به همان اندازه مهم است که ماشین ها اسناد شما را به همان اندازه که توسعه دهندگان می دانند، درک کنند. Amazon CodeWhisperer یا GitHub Copilot.

TensorFlow چیست؟ کتابخانه یادگیری ماشین توضیح داد

ماشین‌ها به اسناد متفاوتی نسبت به افراد دیگر نیاز دارند—مثلاً با جزئیات بیشتر.

معرفی مستندات سطحی

همانطور که یونسکو پیشنهاد می‌کند، “مستندات طبقه‌بندی شده چیزی است که چند نفر به عنوان راه‌حل آزمایش می‌کنند. /راهکار برای دستیاران کد LLM… گنگ بودن چون اسناد گنگ هستند. برخی از شرکت های نرم افزاری سعی در حل این مشکل با همکاری مستقیم با شرکا دارند تا کد نمونه، اسناد و غیره را مستقیماً به LLM وارد کنند. کارفرمای من، MongoDB، این کار را با AWS انجام داده است. کار می کند اما مقیاس پذیر نیست. در حالت ایده‌آل، به‌عنوان یک توسعه‌دهنده نرم‌افزار، چه یک فرد یا یک شرکت باشید، می‌خواهید اسنادی بسازید که LLM‌ها به تنهایی می‌خزند.

همچنین باید اطمینان حاصل کنید که LLM ها نرم افزار شما را در سطح عمیقی درک می کنند تا بتوانند بهترین کد ممکن را در صورت درخواست توسعه دهندگان برگردانند. متأسفانه، همانطور که یونسکو ابراز تاسف می کند، “بیشتر اسناد توسعه دهنده (یا حتی اسناد کاربر) معمولاً برای افراد تازه کار نوشته می شود و اکنون یک مسدود کننده است.” برای یک فرد، شروع سریع و نمونه‌های کد اولیه کاملاً مناسب است، اما این نوع داده‌های محدود را به یک دستگاه تغذیه می‌کند، و «در ارائه پیشنهادهای کد جدی و سطح تولید با مشکل مواجه می‌شود».

Yugabyte سرویس مهاجرت Voyager را به به روز رسانی پایگاه داده 2.15 خود اضافه می کند

یونسکو خلاصه می‌کند:

ایده پشت اسناد لایه‌ای این است که «به‌طور پیش‌فرض، ربات‌های خزنده برای LLM‌ها اسناد بسیار دقیق و عمیق‌تری دریافت خواهند کرد، و انسان‌ها اسناد دوستانه‌تری خواهند داشت».

این ایده است. واقعیت چیست؟ خب، واقعیت، حداقل در حال حاضر، می‌خورد. تا آنجا که من می دانم، هیچ کس این کار را با موفقیت انجام نداده است، اما دلیلی وجود ندارد که نتوان آن را انجام داد. ارائه اسنادی که هم انسان‌ها و هم ماشین‌ها را راضی می‌کنند دشوار خواهد بود، اما همانطور که روش‌ها را کشف می‌کنیم، برنده نهایی توسعه‌دهندگان خواهند بود.

ما خیلی فاصله داریم تا LLM ها بتوانند کد را به طور موثر و پیوسته به اندازه کافی برای جایگزینی کامپایلرها منتشر کنند، همانطور که مایک لوکیدس از O’Reilly استدلال می کند. اما ما در حال حاضر در دنیایی زندگی می کنیم که در آن LLM ها می توانند به توسعه دهندگان در نوشتن کد عالی کمک کنند. بهبود اسناد برای توسعه دهندگان و LLMهایی که به طور فزاینده ای به آنها وابسته هستند، برای پیشرفت بهره وری توسعه دهندگان بسیار مهم است.

شاید به این مطالب علاقمند باشید