مهندسی زمینه (Context Engineering) نمایانگر تغییر قابل توجهی در هوش مصنوعی (Artificial Intelligence) است که از پیامهای (Prompts) منفرد به سمت ساخت اکوسیستمهای اطلاعاتی جامع در اطراف مدلهای زبانی بزرگ (Large Language Models یا LLM) حرکت میکند. با تکامل برنامههای کاربردی هوش مصنوعی از چتباتهای (Chatbots) ابتدایی به عوامل (Agents) پیشرفته قادر به انجام کارهای پیچیده و چند مرحلهای، کیفیت خروجیهای مدل به طور فزایندهای به اطلاعات ارائه شده بستگی دارد. بنابراین، مهندسی زمینه برای ایجاد برنامههای کاربردی هوش مصنوعی قدرتمند و قابل اعتماد که تجربیات کاربری چشمگیری را ارائه میدهند، ضروری شده است.
تغییر پارادایم: از پیامها به سیستمها
تمرکز از ساخت پیامهای منفرد به ساخت سیستماتیک یک اکوسیستم اطلاعاتی کامل در اطراف مدلهای زبانی بزرگ (LLM) تغییر میکند. با تکامل برنامههای کاربردی هوش مصنوعی از چتباتهای ساده به عوامل هوشمندی که قادر به انجام کارهای پیچیده و چند مرحلهای هستند، کیفیت خروجی مدل به طور فزایندهای به کیفیت اطلاعات ارائه شده بستگی دارد. رهبران صنعت و محققان هوش مصنوعی بر اهمیت این تغییر تأکید میکنند و نیاز به ارائه زمینه جامع به LLMها برای حل مؤثر وظایف را برجسته میکنند. مهندسی زمینه شامل هنر و علم پر کردن پنجره زمینه با اطلاعات مناسب است که مدلها را قادر میسازد تا تصمیمات دقیقی بگیرند.
استدلال اصلی این است که شکست اکثر عوامل هوشمند ناشی از کمبود زمینه است نه شکست مدل. این ادعا چالش اصلی مهندسی هوش مصنوعی را مجدداً تعریف میکند و توجه را از تنظیم مدل به توسعه سیستمهای پشتیبان اطلاعات معطوف میکند. درک و تسلط بر مهندسی زمینه به پیشنیاز ساخت برنامههای کاربردی هوش مصنوعی قابل اعتماد و قوی تبدیل شده است.
تعریف مهندسی زمینه
مهندسی زمینه فقط یک نسخه پیشرفته از مهندسی پیام نیست؛ بلکه یک رشته مهندسی منحصربهفرد و در سطح سیستم است که بر ایجاد یک سیستم تحویل اطلاعات پویا تمرکز دارد، نه صرفاً بهینهسازی ورودی متن.
مهندسی زمینه را میتوان به عنوان یک رشته مهندسی تعریف کرد که بر طراحی و ساخت سیستمهای پویا متمرکز است که LLMها را با اطلاعات و ابزارهای مورد نیاز برای انجام صحیح وظایف، در قالب مناسب و در زمان مناسب، ارائه میدهد.
مولفههای اصلی:
- "طراحی و ساخت سیستمهای پویا": این تأکید میکند که مهندسی زمینه یک فعالیت مهندسی است که بر معماری سیستم تمرکز دارد تا صرفاً بر روی نحوه نگارش. زمینه، خروجی سیستمی است که قبل از فراخوانی اصلی LLM اجرا میشود. مهندسان باید خطوط لوله داده، ماژولهای حافظه و مکانیزمهای بازیابی اطلاعات را برای آمادهسازی حافظه کاری LLM بسازند.
- "اطلاعات و ابزارهای صحیح": شامل حقایق، دادهها، محتوای پایگاه دانش (از طریق RAG) و ترجیحات کاربر است. ابزارها به قابلیتهایی مانند رابطهای API، توابع یا پرس و جوهای پایگاه داده اشاره دارند. ارائه هم دانش و هم قابلیتها برای کارهای پیچیده اساسی است.
- "فرمت صحیح، در زمان مناسب": اهمیت ارائه و زمانبندی اطلاعات را برجسته میکند. یک خلاصه مختصر اغلب بهتر از دادههای خام است و یک طرحواره ابزار واضح مؤثرتر از دستورالعملهای مبهم است. ارائه زمینه در صورت تقاضا برای جلوگیری از پرت کردن حواس مدل با اطلاعات نامربوط بسیار مهم است.
- "تکمیل قابل اعتماد وظیفه": این هدف نهایی مهندسی زمینه است. این امر برنامههای کاربردی هوش مصنوعی را به سیستمهای قابل اعتمادی تبدیل میکند که میتوانند به طور مداوم خروجیهای با کیفیت بالا تولید کنند. با مدیریت دقیق زمینه،خروجیها سازگارتر میشوند، توهمات را کاهش میدهند و از گردشهای کاری پیچیده و طولانیمدت عامل هوشمند پشتیبانی میکنند.
تکامل از مهندسی پیام به مهندسی زمینه
در حالی که هر دو مهندسی زمینه و مهندسی پیام (Prompt Engineering) هدفشان بهینهسازی خروجی LLM است، اما از نظر دامنه، ماهیت و اهداف متفاوت هستند. یک مقایسه در سطح سیستم این تفاوتها را برجسته میکند:
- دامنه: مهندسی پیام بر بهینهسازی تعاملات منفرد یا رشتههای متنی تمرکز دارد، در حالی که مهندسی زمینه بر کل اکوسیستم اطلاعاتی تمرکز دارد و کل چرخه عمر کار را پوشش میدهد.
- پویایی: پیامها معمولاً ایستا هستند، در حالی که زمینه به صورت پویا بر اساس کار تولید میشود و در طول تعامل تکامل مییابد.
- ترکیب ورودی: مهندسان پیام ورودیها را حول پرس و جوهای کاربر میسازند، در حالی که مهندسان زمینه پرس و جوهای کاربر را فقط بخشی از یک "بسته زمینه" بزرگتر میدانند که شامل دستورالعملهای سیستم، اسناد بازیابی شده، خروجیهای ابزار و سابقه مکالمه است.
- تشبیه: اگر پیامها مانند یک خط واحد در یک نمایشنامه باشند، زمینه مجموعه، داستان پسزمینه و فیلمنامه کامل فیلم است که در کنار هم عمق و معنا را ارائه میدهند.
جدول زیر به مقایسه بیشتر این دو میپردازد:
مهندسی پیام در مقابل مهندسی زمینه
بعد | مهندسی پیام | مهندسی زمینه |
---|---|---|
دامنه | تعامل واحد، رشته ورودی واحد | گردش کار کامل عامل هوشمند، اکوسیستم اطلاعاتی کامل |
ماهیت | ایستا یا نیمه ایستا، مبتنی بر الگو | پویا، مونتاژ شده در زمان واقعی، با وظیفه تکامل مییابد |
هدف | LLM را برای ارائه پاسخ با کیفیت بالا راهنمایی کنید | LLM را برای تکمیل قابل اعتماد کارهای پیچیده به طور مداوم توانمند کنید |
محصول اصلی | الگوهای پیام بهینهسازی شده، مجموعههای دستورالعمل | خطوط لوله داده، سیستمهای RAG، ماژولهای حافظه، مدیران وضعیت |
مهارتهای اصلی | زبانشناسی، استدلال منطقی، طراحی دستورالعمل | معماری سیستم، مهندسی داده، توسعه نرمافزار |
تشبیه اصلی | پرسیدن یک سوال دقیق | ساخت یک کتابخانه جامع برای یک محقق |
تعریف مجدد مهندسی هوش مصنوعی
این تغییر از مهندسی پیام به مهندسی زمینه، نقش مهندسان هوش مصنوعی را تغییر میدهد. مهندسی پیام بر بینقص کردن رشتههای ورودی تمرکز دارد و به مهارتهایی در زبانشناسی و منطق نیاز دارد. با این حال، هنگامی که کار به ساخت سیستمهایی تبدیل میشود که به صورت پویا این ورودیها را از پایگاههای داده، APIها و حافظه جمعآوری میکنند، مهارتهای اصلی به مهندسی نرمافزار و معماری سیستم تغییر میکنند.
فریمورکهایی مانند LangChain و LlamaIndex محبوب هستند زیرا از مهندسی زمینه پشتیبانی میکنند و الگوهای معماری برای ساخت سیستمهای اسمبلی زمینه پویا، مانند زنجیرهها، گرافها و عوامل ارائه میدهند.
ظهور مهندسی زمینه نشاندهنده تغییری در توسعه هوش مصنوعی از یک زمینه گوشهای و مدلمحور به یک رشته اصلی مهندسی نرمافزار است. چالش اصلی نه فقط خود مدل، بلکه کل پشته برنامهای است که در اطراف آن ساخته شده است.
زمینه: تشریح و اصول
این بخش جزئیات مولفههای "زمینه" را شرح میدهد و اصول مدیریت مؤثر را تشریح میکند.
کالبدشکافی پنجره زمینه
پنجره زمینه (Context Window) کل اطلاعاتی است که مدل میتواند هنگام تولید پاسخ، "ببیند" یا "به خاطر بیاورد". یک "بسته زمینه" کامل مجموع تمام اطلاعات ارائه شده است.
- دستورالعملها/پیام سیستم: این لایه پایه، رفتار مدل را تعریف میکند و نقش، سبک، قوانین، محدودیتها و اهداف آن را تعیین میکند.
- پیام کاربر: سوال یا دستورالعمل مستقیم که عامل هوشمند را فعال میکند.
- سابقه مکالمه/حافظه کوتاه مدت: تبادلات قبلی زمینه مستقیمی را ارائه میدهند که از طریق هرس کردن یا خلاصهسازی به دلیل محدودیتهایپنجره زمینه مدیریت میشود.
- حافظه بلند مدت: پایگاه دانش پایداری که اطلاعات آموخته شده از تعاملات را ثبت میکند، مانند ترجیحات کاربر، خلاصههای پروژه یا حقایقی که صریحاً به خاطر سپردن آنها گفته شده است.
- اطلاعات بازیابی شده/RAG: برای غلبه بر قطع دانش و اطمینان از پاسخهای مبتنی بر واقعیت، سیستم به صورت پویا اطلاعات مرتبط را از منابع دانش خارجی بازیابی میکند.
- ابزارهای موجود: طرحوارهها و توضیحات توابع قابل فراخوانی یا ابزارهای داخلی را تعریف میکند و به مدل قدرت عمل میدهد، نه صرفاً دانش.
- خروجیهای ابزار: نتایج حاصل از فراخوانیهای ابزار باید مجدداً به زمینه تزریق شوند تا مدل در استدلالها و اقدامات بعدی از آن استفاده کند.
- طرحواره خروجی ساختاریافته: فرمت خروجی مورد انتظار (مانند JSON Schema) را تعریف میکند تا نتایج ساختاریافته و قابل پیشبینی را هدایت کند.
چارچوب "LLM به عنوان سیستم عامل"
این تشبیه یک چارچوب نظری محکم برای درک و تمرین مدیریت زمینه فراهم میکند.
LLM به عنوان CPU، پنجره زمینه به عنوان RAM: این تشبیه پنجره زمینه را به عنوان یک منبع محدود و ارزشمند قرار میدهد. مهندسی متنبه همانند مدیریت OS (Operating System) است و اطلاعات صحیح را در زمان مناسب به حافظه کاری منتقل می کند.
زمینه هسته در مقابل زمینه کاربر: این چارچوب زمینه را به دو لایه تقسیم می کند؛ مشابه فضای هسته و فضای کاربر.
- زمینه هسته: نشان دهنده وضعیت مدیریت شده، متغیر و پایدار عامل هوشمند است. این شامل بلوک های حافظه اصلی و سیستم های فایل است که LLM می تواند مشاهده کند، اما فقط از طریق "فراخوانی های سیستم" کنترل شده، آنها را تغییر دهید.
- زمینه کاربر: نماینده "فضای کاربر" یا بافر پیام، جایی است که تعاملات پویا رخ می دهد. این شامل پیام های کاربر، پاسخ های دستیار و فراخوانی به ابزارهای غیرممتاز "برنامه کاربر" است.
فراخوانی های سیستم و ابزارهای سفارشی: این تمایز مشخص می کند که چگونه عامل با وضعیت داخلی خود و دنیای خارج ارتباط برقرار می کند. فراخوانی های سیستم، زمینه هسته را تغییر می دهند و وضعیت پایدار عامل را تغییر می دهند، در حالی که ابزارهای سفارشی اطلاعات خارجی را به زمینه کاربر می آورند.
اصول راهنمای مهندسی زمینه
مهندسی زمینه مؤثر از اصول اصلی پیروی می کند، که از متخصصان گرفته شده است، تا سیستم های عامل هوشمند قابل اعتماد را بسازند.
- زمینه مداوم و جامع: همچنین به عنوان "دیدن همه چیز" شناخته می شود، این اصل نیاز دارد که عامل به سابقه عملیاتی کامل خود دسترسی داشته باشد، از جمله تعاملات قبلی کاربر، خروجی های فراخوانی ابزار، فرآیندهای تفکر داخلی و نتایج میانی.
- اجتناب از موازی کاری نامنظم: اجازه دادن به چند عامل فرعی یا وظایف فرعی برای کار به صورت موازی بدون زمینه به اشتراک گذاشته شده که به طور مداوم به روز می شود، تقریباً به طور اجتناب ناپذیری منجر به ناسازگاری های خروجی، اهداف متقابل و شکست ها می شود.
- زمینه پویا و در حال تحول: زمینه نباید یک بلوک اطلاعاتی ایستا باشد. باید به صورت پویا بر اساس پیشرفت کار مونتاژ و تکامل یابد، و اطلاعات را در زمان اجرا به دست آورد یا به روز کند.
- پوشش زمینه کامل: مدل باید با تمام اطلاعاتی که ممکن است به آن نیاز داشته باشد، نه فقط آخرین سؤال کاربر، ارائه شود. کل بسته ورودی (دستورالعمل ها، داده ها، تاریخچه و غیره) باید با دقت طراحی شود.
استراتژی های مدیریت زمینه:
نوشتن: حفظ زمینه:
این شامل ذخیره اطلاعات فراتر از پنجره زمینه فوری برای استفاده در آینده، ساخت قابلیت های حافظه عامل کاربر است.
- اسکرچ پدها: برای ذخیره حافظه کوتاه مدت در داخل جلسه استفاده می شود.
- سیستم های حافظه: برای ساخت حافظه بلند مدت در سراسر جلسات استفاده می شود.
انتخاب: بازیابی زمینه:
این شامل کشیدن اطلاعات مناسب از انبار خارجی به پنجره زمینه در زمان مناسب است.
- انتخاب از حافظه/اسکرچ پدها: عامل باید بتواند به طور مؤثر حافظه پایدار و اسکرچ پدهای خود را برای یادآوری دانش گذشته پرس و جو کند.
- انتخاب از ابزارها: وقتی عامل ابزارهای در دسترس زیادی دارد، کارآمد است که از تکنیک های RAG به توضیحات ابزارها استفاده شود، و فقط ابزارهای مرتبط را بر اساس کار فعلی به طور پویا بازیابی و ارائه دهید.
- انتخاب از دانش: این عملکرد اصلی تولید-تقویت شده بازیابی (Retrieval-Augmented Generation یا RAG) است، و دانش اطلاعات واقعی اطلاعات را از پایگاه های دانش خارجی به دست می آورد تا قابلیت پاسخگویی مدل را افزایش دهد.
فشرده سازی: بهینه سازی زمینه:
این شامل کاهش تعداد توکن های استفاده شده در زمینه در عین حفظ اطلاعات اصلی است.
- خلاصه سازی: استفاده از LLM برای خلاصه کردن تاریخچه مکالمات طولانی، اسناد یا خروجی های ابزار، و استخراج اطلاعات کلیدی.
- حذف: استفاده از قوانین اکتشافی برای برش دادن زمینه، مانند حذف دورهای گفتگوی اولیه هنگامی که تاریخچه مکالمه خیلی طولانی است.
جداسازی: پارتیشن بندی زمینه:
این شامل تجزیه زمینه به بخش های مختلف برای بهبود تمرکز مدل و مدیریت پیچیدگی کار است.
- سیستم های چند عامله: کارهای بزرگ می توانند بین چند عامل فرعی تقسیم شوند، هر کدام با زمینه، ابزارها و دستورالعمل های اختصاصی و جداگانه خود.
- محیط های سندباکس: عملیاتی که تعداد زیادی توکن مصرف می کنند می توانند در یک محیط جداگانه اجرا شوند، و فقط نتایج کلیدی نهایی را به زمینه LLM اصلی برمی گردانند.
معماری های حافظه پیشرفته
حافظه برای ساخت عوامل هوشمند که می توانند یاد بگیرند و سازگار شوند، ضروری است. مولفه های کلیدی شامل حافظه کوتاه مدت از طریق بافرهای تاریخچه گفتگو و اسکرچ پدها، و حافظه بلند مدت برای پایداری و شخصی سازی است.
تکنیک های پیاده سازی:
- تولید حافظه خودکار: سیستم می تواند به طور خودکار بر اساس تعاملات کاربر، خاطرات را تولید و ذخیره کند.
- مکانیزم های بازتاب: عامل می تواند پس از اتمام کارها، خود را در مورد رفتار و نتایج خود بازتاب دهد و درس های آموخته شده را به خاطرات جدید ترکیب کند.
- خلاصه سازی گفتگو: به طور منظم مکالمات گذشته را خلاصه کنید و خلاصه ها را به عنوان بخشی از حافظه بلند مدت ذخیره کنید.
حافظه ساختاریافته (نمودارهای دانش زمانی): یک معماری حافظه پیشرفته تر که نه تنها حقایق، بلکه روابط بین حقایق و مهر زمانی برای هر قطعه اطلاعات را ذخیره می کند.
تولید تقویت شده با بازیابی (Retrieval-Augmented Generation یا RAG): سنگ بنای مهندسی زمینه
RAG یک تکنیک اصلی برای "انتخاب" دانش خارجی در مهندسی زمینه است، که LLM ها را به پایگاه های دانش خارجی متصل می کند. یک سیستم RAG معمولی سه مرحله دارد:
- نمایه سازی: اسناد به تکه های معنایی تقسیم می شوند، سپس با استفاده از یک مدل جاسازی به بردارهای با ابعاد بالا تبدیل می شوند. این بردارها و متون منبع در پایگاه داده بردار ذخیره می شوند.
- بازیابی: کاربر یک پرس و جو را با همان مدل جاسازی به یک بردار تبدیل می کند و پایگاه داده بردار را برای سایر بردارهای نزدیک با پرس و جوهای مشابه جستجو می کند.
- تولید: سیستم پرس و جو اصلی و تکه های متن مرتبط را در یک پیام ترکیب می کند، سپس آن را به LLM ارسال می کند تا یک پاسخ مناسب تولید کند.
استراتژی های بازیابی و رتبه بندی پیشرفته
معماری اصلی RAG اغلب به استراتژی های پیچیده تری برای بهبود کیفیت بازیابی در دنیای واقعی نیاز دارد. ترکیب جستجوی معنایی با شاخص های کلمه کلیدی و رتبه بندی برای بهبود کیفیت جستجو بسیار مهم است. بازیابی اطلاعات زمینه ای Anthropic، زمینه LLM ها را بهبود می بخشد.
- جستجوی هیبریدی: جستجوی معنایی (براساس بردارها) و جستجوی کلمه کلیدی را برای استفاده از نقاط قوت مکمل ترکیب می کند.
- بازیابی زمینه ای: از یک LLM برای تولید یک خلاصه کوتاه از زمینه هر بلوک متن استفاده می کند.
- رتبه بندی مجدد: یک مرحله رتبه بندی مجدد را اضافه می کند، و از یک مدل قوی تر برای مرتب سازی مجدد نتایج بر اساس ارتباط استفاده می کند.
RAG در مقابل تنظیم دقیق: یک چارچوب تصمیم گیری استراتژیک
انتخاب بین RAG و تنظیم دقیق (Fine-tuning) یک تصمیم کلیدی است. انتخاب به الزامات پروژه بستگی دارد.
مزایای RAG:
- مناسب برای ادغام دانش در زمان واقعی
- توهمات را با ارائه حقایق قابل اثبات کاهش می دهد
- به شرکت ها اجازه می دهد تا داده های اختصاصی را در پایگاه های داده داخلی امن نگه دارند
مزایای تنظیم دقیق:
- بهترین برای آموزش یک مدل یک رفتار جدید، سبک گفتار یا اصطلاحات تخصصی
- می تواند خروجی مدل را با تصویر برند سازمان تراز کند
رویکردهای هیبریدی: به منظور به دست آوردن بهترین عملکرد با مدل ها، باید از هر دو تنظیم دقیق برای عملکرد و RAG برای دقت استفاده کنید.
بهینه سازی و فیلتر کردن زمینه
حتی با استفاده از مکانیزم های بازیابی قدرتمند، مدیریت پنجره زمینه و اجتناب از شکست های رایج، شما هنوز با خطا مواجه خواهید شد.
حالت های شکست رایج:
- سمی شدن زمینه: هنگامی که یک خطای به ظاهر واقعی ارائه می شود، کل سیستم را از آن نقطه به بعد خراب می کند.
- پراکندگی زمینه: مدل ها هنگام ارائه اطلاعات نامربوط، حواسشان پرت می شود.
- سردرگمی زمینه: اطلاعات زمینه می تواند با هدایت آن به دور از پاسخ درست، غافلگیرکننده باشد.
- درگیری زمینه: مدل ها با اطلاعات متضاد سردرگم می شوند و ممکن است پاسخی متناقض تولید نکنند.
راه حل ها:
مهندسان نیاز به اتخاذ تکنیک های فیلتر کردن برای کاهش این شکست ها دارند. اطمینان از اینکه حافظه کاری مدل پر از اطلاعات بسیار مرتبط و کاملاً بهینه شده است، برای تمرین و تئوری ضروری می شود.
مهندسی زمینه در عمل: مطالعات موردی
تجزیه و تحلیل برنامه های کاربردی مختلف، درک عمیق تری از ارزش و پیاده سازی مهندسی زمینه ارائه می دهد.
دستیاران برنامه نویسی هوش مصنوعی
- مشکل: تلاش های اولیه در برنامه نویسی هوش مصنوعی اغلب آشفته بود، متکی بر پیام های مبهم با درک کمی از کد پایگاه بزرگتر.
- راه حل: با مستندات پروژه، دستورالعمل های کد، الگوهای طراحی و الزامات مانند هر منبع مهندسی برخورد کنید.
جستجو و مدیریت دانش سازمانی
- مشکل: موتورهای جستجوی سازمانی سنتی بر مطابقت کلمه کلیدی متکی هستند، شکست در درک قصد کاربر، نقش شغلی یا دلیل جستجوی آنها.
- راه حل: ساخت سیستم های جستجوی هوشمند با استفاده از زمینه برای درک هر جستجو.
پشتیبانی مشتری خودکار
- مشکل: LLM های عمومی از ویژگی های محصول، سیاست های بازگشت یا سابقه مشتری بی اطلاع هستند، که منجر به پاسخ های نادرست یا غیر مفید می شود.
- راه حل: از چت بات های مبتنی بر RAG استفاده کنید، سیستم هایی که اطلاعات را از پایگاه دانش شرکت بازیابی می کنند، تا از کمک دقیق، شخصی شده و به روز اطمینان حاصل شود.
موتورهای توصیه شخصی شده
- مشکل: سیستم های توصیه سنتی برای درک قصد فوری و خاص کاربران تلاش می کنند، که منجر به توصیه های عمومی می شود.
- راه حل: مهندسی زمینه از RAG برای ایجاد تجربه مکالمه بیشتر استفاده می کند.
کاهش نقص های اساسی مدل های زبانی بزرگ
مهندسی زمینه یک وسیله اصلی برای پرداختن به دو نقص اساسی LLM است: توهمات و قطع دانش.
مقابله با توهمات
مشکل: هنگامی که LLM ها نامشخص یا فاقد دانش مرتبط هستند، تمایل دارند اطلاعات معقول اما نادرست را جعل کنند.
راه حل: مهندسی زمینه، به ویژه RAG، موثرترین استراتژی ها هستند.
- ارائه مبنای واقعی: با ارائه اسناد قابل تأیید از یک منبع قابل اعتماد در هنگام پاسخ دادن، می توان به طور موثر از توهمات جلوگیری کرد.
- صداقت "نمی دانم.": برای شفاف بودن، به مدل ها نشان دهید که وقتی اطلاعاتی در دسترس نیست، "من نمی دانم" را نشان می دهند.