هوش مصنوعی در مدت کوتاهی به یکی از ابزارهای مهم توسعه نرمافزار تبدیل شده است. امروز میتوان با استفاده از API مدلهای زبانی، قابلیتهایی مثل چتبات، جستوجوی هوشمند، تولید محتوا و دستیارهای برنامهنویسی را به محصولات نرمافزاری اضافه کرد. اما استفاده از یک مدل هوش مصنوعی با ساخت یک محصول قابلاعتماد و آماده برای دنیای واقعی تفاوت زیادی دارد.
چطور میتوان مدلی انتخاب کرد که علاوه بر کیفیت مناسب، سرعت و هزینه قابلقبولی هم داشته باشد؟ چگونه میتوان خطاهای مدل را شناسایی کرد؟ چه زمانی باید از RAG استفاده کنیم و چه زمانی Fine-tuning انتخاب بهتری است؟ چطور میتوان قابلیتهای مبتنی بر هوش مصنوعی را به بخشی پایدار از معماری یک محصول تبدیل کرد؟
کتاب AI Engineering: Building Applications with Foundation Models نوشتهٔ Chip Huyen به بررسی همین مسائل میپردازد. این کتاب راهنمایی برای درک اصول مهندسی سیستمهای مبتنی بر مدلهای بنیادی است و به خواننده کمک میکند فراتر از استفاده ساده از مدلهای هوش مصنوعی فکر کند.
تمرکز اصلی این کتاب بر ساخت اپلیکیشنهایی است که از مدلهای بنیادی (Foundation Models) استفاده میکنند. برخلاف منابعی که بیشتر روی مبانی نظری یادگیری ماشین یا آموزش مدل از ابتدا تمرکز دارند، این کتاب به مسئلهای کاربردیتر میپردازد: چگونه از مدلهای موجود برای ساخت سیستمهای نرمافزاری مفید، کارآمد و قابلاعتماد استفاده کنیم؟
در این مسیر، خواننده با مفاهیمی مانند انتخاب مدل، طراحی پرامپت، ارزیابی خروجی، تولید افزودهشده با بازیابی اطلاعات (RAG)، Fine-tuning، سیستمهای Agentمحور و بهینهسازی عملکرد آشنا میشود.
نکته مهم این است که استفاده از این تکنیکها بهتنهایی تضمینکننده موفقیت یک محصول نیست. ارزش اصلی در شناخت محدودیتهای هر روش و انتخاب راهکار مناسب برای مسئلهای است که قرار است حل شود.
فرض کنید میخواهید یک دستیار هوشمند برای پاسخگویی به پرسشهای کاربران بسازید. در سادهترین حالت، کافی است پیام کاربر را به یک مدل زبانی ارسال کنید و پاسخ آن را نمایش دهید. اما وقتی این قابلیت وارد یک محصول واقعی میشود، مسئله پیچیدهتر خواهد شد.
ممکن است مدل اطلاعات نادرست تولید کند، به دادههای اختصاصی محصول دسترسی نداشته باشد، پاسخهای متفاوتی به پرسشهای مشابه بدهد یا هزینه اجرای درخواستها بیش از حد انتظار باشد. همچنین، افزایش تعداد کاربران میتواند زمان پاسخگویی و هزینه زیرساخت را تحت تأثیر قرار دهد.
در چنین شرایطی، مسئله دیگر فقط انتخاب یک مدل یا نوشتن یک پرامپت مناسب نیست. باید کل سیستم را بررسی کرد؛ از دادهها و نحوه بازیابی اطلاعات گرفته تا ارزیابی کیفیت، مدیریت خطا و بهینهسازی عملکرد.
کتاب AI Engineering کمک میکند این مسائل را از دیدگاه مهندسی بررسی کنیم و بفهمیم چرا کیفیت یک محصول هوش مصنوعی به مجموعهای از تصمیمهای فنی وابسته است، نه صرفاً قدرت مدل مورد استفاده.
همه مدلهای هوش مصنوعی برای همه کاربردها مناسب نیستند. مدلی که در یک وظیفه عملکرد خوبی دارد، ممکن است برای وظیفهای دیگر بیش از حد گران، کند یا حتی ضعیف باشد.
درک تفاوت مدلها و ارزیابی آنها بر اساس معیارهایی مانند کیفیت خروجی، زمان پاسخگویی و هزینه، به شما کمک میکند تصمیمهای فنی دقیقتری بگیرید. بهجای انتخاب یک مدل صرفاً به دلیل شهرت یا قدرت آن، یاد میگیرید نیاز واقعی محصول را در نظر بگیرید.
پرامپت تنها یک دستور متنی نیست؛ بخشی از طراحی تعامل میان نرمافزار و مدل است. نحوه ارائه دستورها، اطلاعات زمینهای و قالب خروجی میتواند بر کیفیت پاسخ تأثیر بگذارد.
با شناخت اصول Prompt Engineering میتوانید رفتار مورد انتظار از مدل را دقیقتر تعریف کنید. در عین حال، باید بدانید که پرامپت خوب بهتنهایی صحت پاسخ را تضمین نمیکند و خروجی مدل همچنان به ارزیابی نیاز دارد.
یکی از تصمیمهای مهم در توسعه محصولات مبتنی بر مدلهای زبانی، انتخاب روش مناسب برای تطبیق مدل با نیازهای محصول است.
در روش RAG، اطلاعات مرتبط هنگام تولید پاسخ بازیابی و در اختیار مدل قرار میگیرند. این روش میتواند برای پاسخگویی بر اساس مستندات، پایگاه دانش یا اطلاعاتی که مرتب بهروزرسانی میشوند، مناسب باشد.
در مقابل، Fine-tuning با آموزش بیشتر مدل روی دادههای مشخص، میتواند رفتار یا توانایی آن را برای بعضی وظایف تخصصی بهبود دهد.
این دو روش جایگزین مستقیم یکدیگر نیستند و هرکدام هزینهها، محدودیتها و کاربردهای خاص خود را دارند. یکی از مهارتهای مهم در مهندسی هوش مصنوعی، تشخیص این است که برای یک مسئله مشخص، کدام روش مناسبتر است.
یکی از تفاوتهای مهم توسعه نرمافزارهای معمولی با سیستمهای مبتنی بر مدلهای زبانی، دشواری ارزیابی خروجی است. در بسیاری از کاربردها، نمیتوان صرفاً با بررسی اجرای موفق کد یا دریافت یک پاسخ، درباره کیفیت سیستم قضاوت کرد.
باید معیارهایی برای سنجش کیفیت پاسخ، میزان خطا، سازگاری خروجی و عملکرد سیستم تعریف کرد. همچنین لازم است تغییرات مدل، پرامپت یا دادهها را با ارزیابیهای منظم بررسی کنیم.
این رویکرد به شما کمک میکند بهجای تکیه بر چند نمونه پاسخ موفق، کیفیت سیستم را به شکلی قابلاندازهگیریتر بررسی کنید.
سیستمهای مبتنی بر Agent میتوانند در شرایط مناسب، از ابزارها استفاده کنند، مراحل مختلف یک وظیفه را انجام دهند و برای رسیدن به هدف، چندین اقدام را هماهنگ کنند.
اما استفاده از Agent همیشه بهترین انتخاب نیست. گاهی یک جریان کاری ساده و قابلپیشبینی، عملکرد بهتر و هزینه کمتری دارد.
درک این تفاوت به شما کمک میکند معماری سیستم را متناسب با پیچیدگی مسئله طراحی کنید، نه اینکه صرفاً به سراغ جدیدترین فناوری بروید.
یک سیستم هوش مصنوعی ممکن است از نظر کیفیت پاسخ مناسب باشد، اما به دلیل تأخیر بالا یا هزینه زیاد، برای استفاده گسترده در محصول مناسب نباشد.
مهندسی این سیستمها به معنای ایجاد تعادل میان کیفیت، سرعت، هزینه و پیچیدگی است. آشنایی با روشهای بهینهسازی استنتاج و طراحی سیستم به شما کمک میکند عوامل مؤثر بر عملکرد را بهتر بشناسید و برای بهبود آنها تصمیم بگیرید.
مهمترین دستاورد این کتاب، تغییر نگاه شما به توسعه محصولات مبتنی بر هوش مصنوعی است.
در ابتدای مسیر، ممکن است تمرکز اصلی شما روی این باشد که چطور یک مدل را به اپلیکیشن متصل کنید یا با نوشتن یک پرامپت مناسب پاسخ بهتری بگیرید. اما با درک مفاهیم کتاب، میتوانید مسائل را در سطح گستردهتری بررسی کنید.
برای مثال، بهجای اینکه فقط بپرسید «چطور یک چتبات بسازم؟»، پرسشهای دقیقتری مطرح میکنید:
چگونه میتوان کیفیت پاسخهای چتبات را ارزیابی کرد؟
آیا استفاده از RAG برای دادههای این محصول ضروری است؟
کدام مدل با توجه به محدودیتهای هزینه و زمان پاسخگویی مناسبتر است؟
چگونه میتوان خطاهای مدل را شناسایی و کاهش داد؟
چه زمانی یک Agent ارزش پیچیدگی اضافهشده به سیستم را دارد؟
چگونه میتوان عملکرد سیستم را در مقیاس بزرگتر حفظ کرد؟
این تغییر در نوع پرسشها، نشاندهنده شکلگیری یک دید مهندسی دقیقتر است. شما نهتنها با ابزارها و تکنیکهای بیشتری آشنا میشوید، بلکه بهتر میتوانید درباره چرایی استفاده از آنها تصمیم بگیرید.
البته مطالعه کتاب بهتنهایی شما را به یک مهندس ارشد هوش مصنوعی تبدیل نمیکند. تسلط عملی به تمرین، ساخت پروژه، ارزیابی نتایج و مواجهه با مشکلات واقعی نیاز دارد. کتاب بیشتر چارچوب فکری و دانش لازم برای شروع آگاهانهتر این مسیر را فراهم میکند.
توسعهدهندگان نرمافزار: اگر توسعهدهنده Front-End، Back-End یا Full-Stack هستید و میخواهید قابلیتهای مبتنی بر هوش مصنوعی را به محصولات خود اضافه کنید، این کتاب دید گستردهتری درباره طراحی و پیادهسازی چنین سیستمهایی در اختیار شما قرار میدهد.
مهندسان هوش مصنوعی: اگر با مدلهای زبانی و APIهای هوش مصنوعی کار میکنید، مباحث کتاب میتوانند به درک بهتر ارزیابی، انتخاب مدل، طراحی سیستم و بهینهسازی کمک کنند.
معماران نرمافزار و رهبران فنی: اگر مسئول تصمیمگیری درباره فناوریها و معماری محصولات هستید، این کتاب به شما کمک میکند محدودیتها و ملاحظات فنی سیستمهای مبتنی بر مدلهای بنیادی را بهتر بشناسید.
افرادی که میخواهند وارد حوزه AI Engineering شوند: اگر با توسعه نرمافزار آشنا هستید و میخواهید مسیر خود را به سمت ساخت محصولات هوشمند گسترش دهید، این کتاب میتواند نقطه شروع مناسبی برای عمیقترشدن در این حوزه باشد.
با این حال، اگر به دنبال یک دوره کاملاً مقدماتی در برنامهنویسی، آموزش ریاضی یادگیری ماشین از پایه یا راهنمای گامبهگام یک فریمورک خاص هستید، بهتر است منابع متناسب با آن هدف را نیز مطالعه کنید.
مطالعه کتابهای فنی زمانی ارزش بیشتری پیدا میکند که مفاهیم آنها را مرور و در پروژههای واقعی آزمایش کنیم. در حوزه هوش مصنوعی، این موضوع اهمیت بیشتری دارد؛ زیرا بسیاری از تصمیمهای مهندسی تنها با مقایسه راهکارها و مشاهده نتایج روشن میشوند.
برای مثال، پس از مطالعه مباحث RAG میتوانید یک سیستم پرسشوپاسخ ساده بر اساس مستندات بسازید. سپس کیفیت پاسخها، میزان بازیابی اطلاعات مرتبط، زمان پاسخگویی و هزینه را بررسی کنید.
همچنین میتوانید برای مفاهیم کلیدی کتاب فلشکارت بسازید و با مرور فاصلهدار، تعریفها، تفاوت روشها و معیارهای تصمیمگیری را بهتر به خاطر بسپارید.
در CardDev، محتوای مرتبط با این کتاب از طریق فلشکارتها، گالریکارتها و ابزارهای مرور در دسترس است تا بتوانید در کنار مطالعه، مفاهیم مهم را نیز مرور کنید.
کتاب AI Engineering نوشته Chip Huyen برای کسانی است که میخواهند فراتر از اتصال یک API یا نوشتن پرامپتهای ساده فکر کنند و با اصول ساخت محصولات مبتنی بر مدلهای بنیادی آشنا شوند.
این کتاب نشان میدهد که موفقیت یک محصول هوش مصنوعی تنها به انتخاب یک مدل قدرتمند وابسته نیست؛ بلکه به کیفیت دادهها، طراحی معماری، ارزیابی خروجی، انتخاب روش مناسب و مدیریت هزینه و عملکرد نیز بستگی دارد.
اگر توسعهدهنده نرمافزار هستید و میخواهید درک عمیقتری از ساخت محصولات هوشمند به دست آورید، این کتاب میتواند دانش فنی و چارچوب تصمیمگیری شما را تقویت کند.
هدف نهایی، صرفاً استفاده از هوش مصنوعی نیست؛ بلکه یادگیری چگونگی ساخت سیستمهایی است که هوش مصنوعی را به قابلیتی واقعاً مفید، قابلاعتماد و قابلاستفاده در دنیای واقعی تبدیل میکنند.