مهندسی پرامپت: آیا یک زبان برنامه نویسی جدید است؟

صفحه اصلی InfoQ ارائه ها مهندسی پرامپت: آیا یک زبان برنامه نویسی جدید است؟

خلاصه

هین لوو بلوک های سازنده هوش مصنوعی عامل و اجزای اصلی زیرساختی را بررسی می کند که برای آن ضروری هستند، جایی که عوامل هوش مصنوعی به طور یکپارچه ادغام می شوند و هر جنبه از عملیات را بهبود می بخشند.

بیوگرافی

هین لوو یکی از اعضای تیم موسس Rockset است، جایی که او به عنوان مدیر ارشد محصول و مدیر ارشد بازاریابی خدمت می کرد و این افتخار را داشت که پایگاه داده جستجو، تجزیه و تحلیل و هوش مصنوعی بومی ابری را که برای فهرست‌بندی بی‌درنگ طراحی شده است، شکل دهد. Rockset توسط OpenAI خریداری شد، جایی که اکنون جستجو و بازیابی مبتنی بر هوش مصنوعی را در زمان واقعی تامین می کند.

درباره کنفرانس

نرم افزار در حال تغییر جهان است. QCon San Francisco با تسهیل انتشار دانش و نوآوری در جامعه توسعه دهندگان، توسعه نرم افزار را تقویت می کند. QCon یک کنفرانس مبتنی بر متخصصان است که برای سرپرستان فنی تیم، معماران، مدیران مهندسی و مدیران پروژه که بر نوآوری در تیم های خود تأثیر می گذارند، طراحی شده است.

متن

لوو: ما به عنوان برنامه نویس و مهندس نرم افزار، سال ها را صرف تسلط بر زبان های برنامه نویسی می کنیم. ما می خواهیم نحو، API ها و غیره را یاد بگیریم. اگر به شما بگویم قدرتمندترین زبان برنامه نویسی که باید یاد بگیرید اصلاً یک زبان برنامه نویسی نیست، بلکه صرفاً دانستن نحوه پرسیدن سوالات درست است. در دنیای هوش مصنوعی، توانایی پرسیدن سؤال درست، ساختن یک پرامپت عالی، ممکن است ارزشمندتر از دانستن نحوه پیاده سازی یک درخت باینری یا بهینه سازی یک کوئری پایگاه داده باشد. من می خواهم به دنیای مهندسی پرامپت خوش آمدید، جایی که کلمات به الگوریتم تبدیل می شوند و مکالمات به کد تبدیل می شوند. موضوعی که می‌خواهم برای بحث مطرح کنم این است که آیا مهندسی پرامپت یک زبان برنامه نویسی جدید است، یا این صرفاً ابزاری برای همه ما توسعه‌دهندگان است که از آن در کنار استفاده کنیم؟ درست است، ما قرار است در مورد این سوال بحث کنیم.

سبک بحثی که می خواهم استفاده کنم سبک آکسفورد نام دارد که از انجمن مناظره به نام انجمن اتحادیه آکسفورد الهام گرفته شده است. این انجمن مدت زیادی است که وجود دارد، از انگلستان، حدود 200 سال پیش. این سبک از قالب زیر تشکیل شده است. ما قرار است یک پیشنهاد ارائه کنیم. ما قرار است رای اولیه را بگیریم. اینجاست که همه در این مناظره شرکت خواهند کرد. ما یک بحث در مورد استدلال ها، استدلال پایانی خواهیم داشت و سپس رای نهایی را خواهیم گرفت. نحوه تصمیم گیری در این مناظره بر اساس بیشترین تغییر در آرای مخاطبان است. رای شما مهم است و ما با هم نتیجه این مناظره را تعیین خواهیم کرد.

پیشنهادی که در مقابل ما قرار دارد این است که آیا مهندسی پرامپت واقعاً یک زبان برنامه نویسی بعدی است، یا این فقط واژه پردازی فانتزی برای کسانی است که نمی توانند جاوا اسکریپت بنویسند؟ به نظر می رسد دیلبرت یک سوال دارد، زبان برنامه نویسی چیست؟ ممکن است تصوری از آن داشته باشید، اما هنوز یک سوال مرتبط است. بیایید لحظه ای به این موضوع بپردازیم. زبان برنامه نویسی یک زبان رسمی است که برای انتقال دستورالعمل ها به رایانه ها برای انجام وظایف استفاده می شود. این یک راه برای برقراری ارتباط با رایانه و گفتن اینکه چه کاری انجام دهد، در سطح بالایی است.

دیلبرت یک سوال دیگر دارد که سوال خوبی است، فقط برای اینکه مطمئن شویم در یک صفحه هستیم. به گفته کلود و OpenAI، مهندسی پرامپت عمل ساختن دستورالعمل ها و ورودی های دقیق برای مدل های زبان هوش مصنوعی به منظور بهینه سازی خروجی برای وظایف خاص است. کلمه کلیدی دستورالعمل ها و وظایف است. به طور مشابه، برای OpenAI، این عمل طراحی و اصلاح دستورالعمل های ورودی برای برقراری ارتباط موثر وظایف و اهداف با مدل زبان هوش مصنوعی است. شباهت را می بینید؟ اکنون ما در مورد مهندسی پرامپت روشن هستیم.

نحو و ساختار (برای پیشنهاد)

این مناظره حول این سه حوزه متمرکز خواهد بود: نحو و ساختار، دانش و تخصص، تأثیر و ماندگاری. اولین مورد این است که بررسی کنیم آیا مهندسی پرامپت دارای ساختار، نحو و قوانین رسمی قابل مقایسه با زبان های برنامه نویسی سنتی است یا خیر. اولین استدلال برای این پیشنهاد این است که مهندسی پرامپت برای تولید خروجی مورد نظر، مانند زبان های برنامه نویسی، به یک نحو ساختاریافته نیاز دارد. برای تولید یک پرامپت موثر، به ساختن پرامپتی نیاز است که از ساختاری پیروی کند که از عناصر زیر تشکیل شده است. ابتدا، شما با یک نقش یا شخصیت برای هوش مصنوعی شروع می کنید تا بر لحن و دیدگاه خروجی تأثیر بگذارد.

سپس در مرحله بعد، می خواهید به آن بگویید چه کاری می خواهید انجام دهید، چه طبقه بندی کنید و چه خلاصه کنید. سپس ما با جزئیات خاصی در مورد موضوعی که می خواهیم مدل هوش مصنوعی به آن بپردازد، پیگیری می کنیم. ما همچنین می خواهیم هر گونه اطلاعات متنی، مانند هر گونه اطلاعات پس زمینه یا جزئیات اضافی را وارد کنیم. سپس می خواهیم آن را با برخی محدودیت ها، از نظر هر گونه محدودیت، تعداد کلمات، دستورالعمل سبک، اضافه کنیم. در نهایت، با فرمت خروجی، خواه به صورت نقطه گلوله ای، فرمت JSON و غیره باشد. همه این عناصر کاملاً مورد نیاز نیستند، اما این ساختار عملکرد مدل هوش مصنوعی را بهبود می بخشد. بیایید این ساختار را از طریق یک مثال نشان دهیم. این یک پرامپت بد نوشته شده است. تقریباً نوشتن کد بد است.

یک پرامپت بسیار بهتر چیزی شبیه به این خواهد بود، جایی که شما با یک شخصیت شروع می کنید، به عنوان یک متخصص امنیت سایبری عمل کنید، و وظیفه این است که توضیح دهید، و جزئیات محتوا در مورد سه آسیب پذیری برتر است. اطلاعات متنی که در اینجا دارید جایی است که سازمان ها امروزه با آن روبرو هستند، جایی که پاسخ را در یک محیط سازمانی فعلی قرار می دهید. در نهایت، محدودیت از نظر مثال‌های عملی و توصیه استراتژی‌های کاهش. این رویکرد ساختاری تضمین می‌کند که مدل‌های هوش مصنوعی پرامپت را به درستی تفسیر می‌کنند و خروجی حاصل را تولید می‌کنند، درست مانند نحو سخت‌گیرانه در زبان برنامه نویسی.

استدلال شماره دو، پرامپت های مدولار امکان استفاده مشابه با توابع در زبان های برنامه نویسی را فراهم می کنند. در برنامه نویسی، تابع یا کد کپسوله شده وظایف خاصی را انجام می دهند، بنابراین می توانیم بارها از آن استفاده کنیم. ما می توانیم همین کار را در مهندسی پرامپت نیز انجام دهیم. این نمونه ای از یک تابع در مهندسی پرامپت است. شما متن را ارائه می دهید و تعداد کلمات، احساسات و همچنین توضیحی را در انتها ایجاد می کند. هنگامی که این پرامپت را وارد کردید، به دنبال آن موضوعی را که می خواهید خلاصه کنید وارد کنید. به عنوان مثال، من این پرامپت یا این موضوع را وارد می کنم، QCon SF یک کنفرانس عالی است، و خروجی را در آنجا می بینید، تعداد کلمات، احساسات و توضیح. می توانید بارها موضوعات مختلف را برای دنبال کردن این وارد کنید، همین کار را انجام می دهد. خلاصه را به شما می دهد.

استدلال شماره سه، بهترین شیوه ها و الگوهای نوظهور در طراحی پرامپت که موازی با ساختارهای برنامه نویسی است. در سال های اخیر، تحقیقات گوگل، متا و OpenAI، تکنیک های مختلف مهندسی پرامپت را بررسی کرده اند. تعداد کمی از آنها ظهور کرده اند، مانند few-shot، chain-of-thought، tree-of-thought. آنها دریافتند که با ساختاربندی پرامپت‌ها به گونه‌ای که با قابلیت‌های یادگیری هوش مصنوعی همسو باشد، احتمال بیشتری وجود دارد که پاسخ‌های مرتبط و بینش‌بخشی ایجاد کند. من می خواهم لحظه ای در مورد مورد میانی، chain-of-thought صحبت کنم. تحقیق گوگل این تکنیک را در سال 2022 منتشر کرد. آنها می خواهند قابلیت استدلال مدل های هوش مصنوعی را بررسی کنند، چگونه می توانند با استفاده از یک روش بسیار ساده آن را باز کنند، فقط از مدل بخواهید گام به گام فکر کند، و به طرز شگفت انگیزی مدل فکر خود را بیرون می ریزد. این شبیه به کاری است که یک انسان هنگام مواجهه با یک مشکل پیچیده انجام می دهد.

هر مهندس نرم افزار با تجربه احتمالاً از الگوهای طراحی نرم افزار آگاه خواهد بود. در زمینه مهندسی پرامپت، ما نیز الگوهایی داریم. در سال 2023، مجموعه ای از افراد دانشگاه وندربیلت این مقاله را منتشر کردند که 16 الگوی مختلف را تشریح می کرد. من می خواهم به یکی از الگوهای مورد علاقه خود، که تعامل معکوس است، اشاره کنم. ما معمولاً از طریق روش پرامپت و پاسخ با مدل های هوش مصنوعی تعامل می کنیم. ما تایپ می کنیم، چیزی را ارسال می کنیم و منتظر می مانیم تا پاسخ برگردد.

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

بیایید یک مثال بزنیم. من این پرامپت را در ChatGPT وارد می کنم و همانطور که در انتها می بینید، از آن می خواهم از من یک سوال بپرسد و ببینیم چه کار می کند. من وارد کردم و اولین سوالی که از من پرسید این است که پلتفرم مورد نظر شما چیست؟ من می خواهم بگویم، هر دو. آیا یک پایگاه کد واحد را ترجیح می دهید، یا برای یک پایگاه کد جداگانه باز هستید؟ هر دو. تنظیمات پشتیبان ترجیحی چیست، AWS Lambda یا یک سرور سنتی؟ بیایید با سنتی پیش برویم. پایگاه داده ترجیحی؟ MySQL. آیا ترجیحات یا محدودیت های خاصی در مورد زبان های برنامه نویسی دارید؟ بیایید با پایتون پیش برویم. چه میزان اهمیتی برای ویژگی های بلادرنگ قائل هستید؟ زیاد نه. تقریبا تموم شد. آیا ترجیحی در مورد یک چارچوب فرانت اند خاص دارید؟ بیایید البته با React پیش برویم.

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

نحو و ساختار (مخالف پیشنهاد)

بیایید به سمت دیگر برویم برای مخالف پیشنهاد. استدلال شماره یک، مهندسی پرامپت فاقد نحو رسمی و قواعد دستوری ذاتی در زبان های برنامه نویسی است. هر زبان برنامه نویسی دارای یک نحو تعریف شده رسمی با استفاده از نماد BNF است، خواه زبان اسمبلی باشد یا پایتون. این به کامپایلر این امکان را می دهد که خطاهای کامپایل را از قبل اعمال و شناسایی کند. پرامپت ها زبان طبیعی انعطاف پذیر و آزاد هستند و مشمول چنین محدودیت هایی نیستند. استدلال شماره دو، اشتباهات املایی مانع از پاسخگویی مدل هوش مصنوعی نمی شود. هیچ کامپایلری برای اجبار صحت پرامپت وجود ندارد. اشتباهات املایی مانع از تولید پاسخ توسط هوش مصنوعی نمی شود. این مانند نوشتن کد نیست. استدلال شماره دو، مهندسی پرامپت به زبان طبیعی متکی است، که ذاتاً در مقایسه با زبان های برنامه نویسی مبهم است. بیایید نگاهی به این دو مثال سرگرم کننده بیندازیم.

اولی، من مردی را با تلسکوپ دیدم. این به چه چیزی اشاره دارد؟ این می تواند به این معنی باشد که شما از تلسکوپ برای دیدن مرد استفاده می کنید، یا مردی را دیدید که تلسکوپ در دست داشت. یک مدل هوش مصنوعی ممکن است هنگام تولید پاسخ، هر یک از این تفاسیر را انتخاب کند. مثال دوم را در نظر بگیرید، مهندسان به مدیران اطلاع دادند که آنها شکست خورده اند. آنها به چه کسی اشاره می کنند، مهندسان یا مدیر؟ احتمالاً مورد دوم. نکته این است که ابهام می تواند منجر به تفاسیر و خروجی های ناخواسته شود. این امر چالش هایی را برای توسعه دهندگان و کاربرانی که به دنبال پاسخ های قابل اعتماد و سازگار هستند، ایجاد می کند. کد واضح و قطعی است، مانند این قطعه کد. در هر مفسر استاندارد پایتون به طور مداوم تفسیر خواهد شد.

استدلال شماره سه، ماهیت احتمالی مدل های هوش مصنوعی به این معنی است که یک پرامپت می تواند نتایج متفاوتی به همراه داشته باشد، بر خلاف اجرای کد سازگار. همه ما این را می دانیم، با یک تابع، با همان ورودی، همان خروجی را دریافت می کنید. پرامپت احتمالی است. همه ما این را می دانیم، با همان ورودی، پاسخ کمی متفاوت خواهید دید. مانند پرامپت، از نظر ارائه یک لیست کارهای دقیق، احتمالاً هر بار که آن را تایپ می کنید، لیست متفاوتی دریافت خواهید کرد. این امر منجر به ناامیدی و ناهماهنگی در موارد استفاده تجاری می شود. به طور خلاصه در برابر پیشنهاد برای نحو و ساختار، مهندسی پرامپت فاقد نحو رسمی، قوانین سختگیرانه و تفسیر سازگار است که زبان های برنامه نویسی را تعریف می کند. این به انعطاف پذیری زبان طبیعی متکی است و آن را اساساً با دستورالعمل های کد متفاوت می کند. این را در ذهن داشته باشید.

مهارت ها/دانش و تخصص (برای پیشنهاد)

اکنون به بخش بعدی، مهارت ها و تخصص می رویم. برای این پیشنهاد، اولین استدلال این است که مهندسی پرامپت به دانش تخصصی مشابه برنامه نویسی نیاز دارد. همانطور که برنامه نویسان، ما باید نحوه عملکرد API ها یا چارچوب ها را درک کنیم. مهندسان پرامپت باید نحوه تولید پاسخ توسط مدل هوش مصنوعی و همچنین اینکه چه دستگیره هایی می توانیم برای تنظیم رفتار مدل استفاده کنیم را درک کنند. احتمالاً می دانید که در سطح بالایی، این مدل های هوش مصنوعی به عنوان ژنراتورهای کلمه بعدی شناخته می شوند. این فقط به طور تصادفی کلمه بعدی را انتخاب نمی کند، بلکه در عوض احتمال هر کلمه بعدی را در کل واژگان محاسبه می کند. این توزیع نشان دهنده احتمال اینکه هر کلمه کلمه بعدی باشد است.

مثالی که در اینجا می بینید با یک پرامپت ساده، خورشید در ... طلوع می کند، و این لیست کلمات را با احتمال طراحی پس می گیرد. علاوه بر این، یکی از روش‌های نمونه‌برداری را برای محدود کردن انتخاب به کوچک‌ترین گروه کلمات به عنوان نامزدها اعمال می‌کند. در مرحله بعد، می خواهم در مورد دو دستگیره تنظیم: دما و روش نمونه برداری صحبت کنم. دما را به عنوان یک شماره گیر در نظر بگیرید، میزان خلاقیت مدل های هوش مصنوعی را با پاسخ های خود کنترل می کند. روش های نمونه برداری راه هایی برای فیلتر کردن یک لیست بزرگ از کلمات به یک مجموعه کوچکتر است. تنظیم دما مستقیماً بر سطح خلاقیت تأثیر می گذارد، همانطور که اشاره کردم. این کار را با تنظیم توزیع احتمال از طریق یک تابع ریاضی انجام می دهد. وقتی دما پایین است، شکاف احتمال بین کلمات گسترده تر می شود و از کلمات با احتمال بالا حمایت می کند. این منجر به تولید پاسخ های قطعی تر می شود.

وقتی دما بالا است، توزیع احتمال یکنواخت تر می شود و به کلمات با احتمال پایین فرصت بهتری برای انتخاب می دهد. یک قیاس خوب به شرح زیر است، در دمای پایین، مدل هوش مصنوعی مانند یک نانوایی عمل می کند که دقیقاً طبق دستورالعمل گام به گام عمل می کند. وقتی دما بالا است، مانند یک سرآشپز وحشی و تجربی عمل می کند که مواد را به طور تصادفی با هم مخلوط می کند و امیدوار است که طعم غذا خوب باشد. دستگیره تنظیم دیگر به عنوان گزینه های نمونه برداری شناخته می شود و دو مورد از آنها وجود دارد. من فقط به اولی، Top-P، اشاره می کنم. مانند یک فیلتر یا یک پنجره عمل می کند.

وقتی مقدار بالا است، اندازه پنجره بزرگتر است، بنابراین به کلمات بیشتری اجازه می دهد تا وارد شوند، تا به عنوان کلمه بعدی انتخاب شوند، و بالعکس، وقتی کم است و باریک است، بنابراین کلمات کمتری وارد می شوند. این زمانی واضح تر می شود که وارد یک نسخه ی نمایشی شویم. در اینجا یک انیمیشن می بینید. احتمال در اینجا پایین است. مورد بنفش احتمال اصلی است و مورد سبز موردی است که بر اساس تنظیم دما تنظیم شده است.

در حال حاضر، دما بالا است، بنابراین توزیع یکنواخت است و بیشتر با احتمال اصلی مطابقت دارد. اگر دما را پایین بیاورم، می بینید که شکاف بین کلمات با احتمال کمی متفاوت گسترده تر شده است. اکنون برای Top-P، به یاد داشته باشید، مانند یک فیلتر عمل می کند. وقتی مقدار بالا است، کلمات بیشتری را برای نامزد شدن، برای انتخاب شدن به عنوان کلمه بعدی، شامل می شود. اگر آن را پایین بیاورم، می بینید که باریک می شود، بنابراین کلمات کمتری وجود دارد، احتمال بالایی وجود دارد که انتخاب شوند. این نسخه ی نمایشی است. این نسخه ی نمایشی توسط یک دستیار کدنویسی هوش مصنوعی نوشته شده است، من آن را ننوشته ام.

استدلال شماره سه، یک منحنی یادگیری که موازی با یادگیری یک زبان برنامه نویسی است. تکنیک های پرامپت متنوع و در حال تکامل هستند. این گزارش از OpenAI و Microsoft تنها چهار ماه پیش منتشر شد. آنها اساساً یک بررسی ادبی از بیش از 1500 مقاله مرتبط با مهندسی پرامپت انجام دادند و یک طبقه بندی از تکنیک های مختلف را جمع آوری کردند. نکته در اینجا این است که تسلط بر مهندسی پرامپت فقط استفاده از زبان طبیعی نیست. تکنیک های متعددی وجود دارد و ما به عنوان مهندس نرم افزار یا مهندس پرامپت، باید یاد بگیریم و بفهمیم که چگونه بهترین استفاده را از موارد خاص خود ببریم.

همچنین، این تکنیک ها در حال تکامل هستند و تکنیک های جدیدی در حال ظهور است. باز کردن قابلیت استدلال هوش مصنوعی یک حوزه کلیدی مورد علاقه در زمان های اخیر است و اکثر شما احتمالاً فقط می دانید. دو ماه پیش، OpenAI یک سری مدل جدید به نام o1 را معرفی کرد. آنها برای فکر کردن قبل از پاسخ دادن به سوالات طراحی شده اند. اساساً، اکنون، آنها می توانند کاری را که ما تفکر سطح 2 سیستم می نامیم انجام دهند. نکته مهمی که باید پرسید این است که این چگونه بر مهندسی پرامپت تأثیر می گذارد؟ یک راه خوب برای فکر کردن در مورد این موضوع به شرح زیر است.

قبلاً، ما با مدل هوش مصنوعی برای حل مشکلات مانند کار با یک مهندس نرم افزار ارشد تعامل داشتیم. ما باید توصیفی باشیم. ما باید راهنمایی بیشتری ارائه دهیم. اکنون با این مدل‌های تفکر سطح 2 سیستم، می‌توانیم رویکرد خود را اتخاذ کنیم و با آن‌ها مانند کار با مهندسان اصلی کار کنیم. ما می توانیم کمتر توصیفی باشیم، راهنمایی کمتری ارائه دهیم و بازتر باشیم و به مدل هوش مصنوعی اجازه دهیم هدف ما را به طور خودکارتر استنباط کند، به خصوص برای موارد استفاده ای که نیاز به قابلیت های استدلال بالایی دارند. همراه با پیشرفت‌های مدل هوش مصنوعی، و این به طور مداوم در حال آمدن است، نوآوری‌های بسیاری در مورد رویکردها و چارچوب‌ها برای ساخت برنامه‌های GenAI وجود دارد. در اینجا RAG، AI Agent، Agentic RAG را می بینید.

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

مهارت/ دانش و تخصص (مخالف پیشنهاد)

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

بیایید نگاهی به این تصویر سرگرم کننده بیندازیم که دو روز پیش به طور گسترده در X منتشر شد. مهندس می گوید، من یک پرامپت را اضافه کردم، سه روز طول کشید تا آن را بنویسم. مهندس دیگری می گوید، من پایتون و جاوا می نویسم. نکته این است که تقریباً مهندسی پرامپت آسان تر از برنامه نویسی است. استدلال شماره سه، موانع ورودی برای مهندسی پرامپت به طور قابل توجهی کمتر از برنامه نویسی است. ما می دانیم، از نظر سال ها یادگیری در مقایسه با مهندسی پرامپت، که در واقع می توانید با شرکت در یک دوره آنلاین یا تمرین انجام مهندسی پرامپت را به دست آورید. از نظر این مخالف پیشنهاد، به طور خلاصه، مهندسی پرامپت نیازمند سطح یکسانی از دانش فنی نیست که برای برنامه نویسی مورد نیاز است. برقراری ارتباط موثر و دستیابی به نتایج معقول آسان تر است، و موانع ورودی به طور قابل توجهی کمتر است.

تاثیر/ماندگاری (برای پیشنهاد)

اکنون به بخش آخر می رویم، تاثیر و ماندگاری. از نظر این پیشنهاد، استدلال شماره یک، مهندسی پرامپت به طور فزاینده ای بر توسعه نرم افزار تأثیر می گذارد، و امکان تعامل با مدل های هوش مصنوعی و ترکیب آن با برنامه ها را فراهم می کند. اگر از توسعه دهنده بپرسید، اغلب شنیده ایم که برای انجام یک کار خاص از ChatGPT استفاده می کنند، خواه تولید کد و غیره باشد. ما همچنین با GenAI در تمام جنبه‌های توسعه نرم‌افزار روبرو هستیم، به عنوان مثال، GitHub CoPilot، که کد تولید می‌کند، می توانیم از آن برای اشکال زدایی نیز استفاده کنیم، یا با یک دستیار هوش مصنوعی که برنامه شما را مستند می کند.

علاوه بر این، امروزه، ما شاهدیم که مدل های LLM با افزایش توانایی های خود، به طور مستقیم در پشته های فناوری ادغام می شوند. بیایید نگاهی به این دو مثال به سرعت بیندازیم. اولی، LangChain، یک چارچوب محبوب که به توسعه‌دهندگان امکان می‌دهد برنامه‌های کاربردی که توسط مدل‌های زبان هدایت می‌شوند ایجاد کنند، به راحتی کد را ادغام کنند و آن‌ها را به منابع مختلف داده متصل کنند. دوم، یک فریم ورک مشابه است، اما این یکی بیشتر بر روی عوامل متمرکز است، LLM به عنوان عوامل، از نظر قادر بودن به استدلال، برنامه ریزی و اقدام، برای انجام وظایف پیچیده تر. اینها نمونه هایی از نحوه تأثیر مهندسی پرامپت بر چشم انداز توسعه دهنده امروزی هستند. مهندسی پرامپت برای تعامل با LLM ها در توسعه نرم افزار در این رویکردها ضروری است.

استدلال شماره دو، مهندسی پرامپت یک مسیر شغلی جدید است، شبیه به برنامه نویسی. با توجه به اهمیت آن و تقاضای فزاینده برای مهارت های مهندسی پرامپت، در حال حاضر، در واقع، یک مسیر شغلی جدید در این صنعت ظاهر شده است. شما می توانید این کار را در صفحه های شغلی مختلف در همه جا ببینید. شرکت ها به طور فعال به دنبال مهندسان پرامپت هستند تا بر توسعه استراتژی پرامپت و تعامل با مدل های LLM برای اهداف مختلف تجاری تمرکز کنند. جالب اینجاست که این نقش بسیار بیشتر از تولید خروجی دقیق است.

ما همچنین مسئولیت در نظر گرفتن جوانب اخلاقی و ملاحظات مسئولیت پذیری، از نظر اطمینان از تعصب مدل های هوش مصنوعی و غیره را داریم. این امر نیاز به مجموعه مهارت های منحصر به فردی دارد که فراتر از سواد کدنویسی است. استدلال شماره سه، مهندسی پرامپت فقط یک مد نیست و تأثیر بلندمدتی دارد. در حالی که زبان های برنامه نویسی با پیشرفت های فناوری از بین می روند یا تکامل می یابند، انتظار می رود مهندسی پرامپت همچنان مرتبط و با ارزش بماند. این به این دلیل است که توانایی برقراری ارتباط موثر و بدست آوردن نتایج دلخواه از مدل‌های هوش مصنوعی در زمینه‌های مختلف ثابت است. در واقع، این یک مهارت اساسی است، صرف نظر از مدل یا پلتفرم خاصی که در حال استفاده از آن هستید. از نظر یک استدلال برای این پیشنهاد در مورد تأثیر و ماندگاری، مهندسی پرامپت چشم انداز توسعه نرم افزار را شکل می دهد، یک مسیر شغلی جدید ارائه می دهد و یک مهارت اساسی برای تعامل با سیستم های هوش مصنوعی در طولانی مدت است. با در نظر گرفتن این موضوع، به یک زبان برنامه نویسی بسیار شباهت دارد.

تاثیر/ماندگاری (در مقابل پیشنهاد)

اکنون با مهندسی پرامپت برعکس پیشنهاد می رسیم. استدلال شماره یک، مهندسی پرامپت بر توسعه نرم افزار تأثیر نمی گذارد و یا یک تخصص مجزا است. برنامه نویسان می توانند از ابزارهای مهندسی پرامپت در جریان کاری خود استفاده کنند. این به این معنی نیست که آنها این مهندس پرامپت را ایجاد می کنند. این در واقع بخشی از جعبه ابزار برنامه نویس است. این بیشتر به این معنی است که زبان های برنامه نویسی تأثیرگذار هستند. استدلال شماره دو، کمبود نقش های منحصر به فرد مهندس پرامپت. نقش های مهندسی پرامپت اغلب با سایر نقش های توسعه دهنده همپوشانی دارند، مانند مهندس هوش مصنوعی، و بیشتر نشان دهنده مجموعه مهارت های موجود است تا یک شغل متمایز. شما در صنعت هوش مصنوعی در حال شکل گیری هستید که این نقش به طور منحصر به فرد وجود دارد. ما در مورد آن به عنوان یک شغل جداگانه صحبت نمی کنیم.

استدلال شماره سه، طول عمر مهندسی پرامپت با مدل های فعلی به هم گره خورده است. با پیشرفت مدل های هوش مصنوعی، اهمیت مهندسی پرامپت ممکن است کاهش یابد. مدل های آینده ممکن است نتایج مورد نظر را با حداقل یا بدون پرامپت به دست آورند. این بر خلاف زبان های برنامه نویسی است که ارزش و اهمیت آنها عمدتاً وابسته به مدل های خاص نیست. شما می توانید این قطعه کد را در 20 سال آینده بنویسید، و احتمالاً یک ماشین قادر به اجرای آن خواهد بود. این ممکن است در 10 یا 20 سال آینده صادق نباشد.

مهندسی پرامپت می تواند با ظهور مدل هایی که نیاز به دستکاری پرامپت کمتری دارند یا اصلا نیازی ندارند، منسوخ شود. به طور خلاصه، برای ضد پیشنهاد برای تأثیر و ماندگاری، مهندسی پرامپت تخصص منحصربه فردی نیست، بر توسعه نرم افزار تأثیر نمی گذارد و طول عمر آن نا مشخص است زیرا از نظر ویژگی های مدل هوش مصنوعی، که باید در نظر بگیرید.

بیانیه بستن

حالا ما به استدلال های پایانی می رسیم. برای طرفدار، ما سه حوزه را بررسی کردیم که چرا مهندسی پرامپت تقریباً یک زبان برنامه نویسی است. نحو و ساختار، دانش و تخصص و در نهایت، تأثیر و ماندگاری. مهندسی پرامپت با توسعه ساختار، نحو و بهترین روش ها و الگوهای مشابه در حال ظهور، از دستورالعمل های دقیق پیروی می کند. یادگیری مهندسی پرامپت نیازمند درک عملکرد مدل های هوش مصنوعی، دستگیره های تنظیم و انطباق با پیشرفت است. در نهایت، مهندسی پرامپت باعث توسعه برنامه، مسیرهای شغلی و ارتباط طولانی مدت با پیشرفت هوش مصنوعی می شود. با وجود تمامی این شباهت ها، در نهایت باید بپرسیم که آیا مهندسی پرامپت صرفاً یک زبان برنامه نویسی است؟ پاسخ احتمالاً نه است. با این حال، این یک تخصص در حال تحول و حیاتی در توسعه نرم افزار مدرن است، چیزی که هم برای آن کار می کنید، یا با آن کار می کنید، در طولانی مدت.

بیانیه بستن

اکنون با بستن برای مخالف پیشنهاد می رسیم. ما می خواهیم بر تفاوت های کلیدی که مهندسی پرامپت را از یک زبان برنامه نویسی متمایز می کند تأکید کنیم. بر خلاف نحو رسمی و سازگاری کد، مهندسی پرامپت انعطاف پذیری زبان طبیعی را در بر می گیرد که می تواند منجر به ابهام و نتایج متفاوت شود. اگرچه تخصص مرتبط است، مهندسی پرامپت نیازمند تخصص فنی عمیق، مانند ساختمان داده و دانش الگوریتم، نیست که برنامه نویسی مستلزم آن است. مهمتر از همه، تأثیر آن بر توسعه نرم افزار مستقیم نیست، و ارزش ماندگار آن به پیشرفت مدل هوش مصنوعی بستگی دارد. آیا مهندسی پرامپت صرفاً یک واژه پردازی فانتزی برای افرادی است که نمی توانند جاوا اسکریپت بنویسند؟ شاید. چه در این مورد توافق داشته باشید، چه نه، ما می دانیم که از آن زمان، یک برنامه نویس است.