ترجمه کتاب ساخت برنامههای کاربردی با مدلهای پایه - انتشارات O’Reilly
BOOK: O'Reilly_AI_Engineering_Building_Applications_with_Foundation_Models
اگر تاکنون در حال ساخت برنامههای کاربردی هوش مصنوعی نبودهاید، امیدوارم بخش قبلی شما را متقاعد کرده باشد که اکنون زمان بسیار مناسبی برای این کار است. اگر ایده خاصی برای یک برنامه در ذهن دارید، ممکن است بخواهید به بخش “برنامهریزی برنامههای کاربردی هوش مصنوعی” در صفحه ۲۸ از کتاب منبع بروید. اگر به دنبال الهام گرفتن هستید، این بخش طیف گستردهای از موارد استفاده اثباتشده در صنعت و موارد امیدوارکننده را پوشش میدهد.
تعداد برنامههای کاربردی بالقوهای که میتوانید با مدلهای پایه بسازید، بیپایان به نظر میرسد. هر مورد استفادهای که به آن فکر کنید، احتمالاً یک هوش مصنوعی برای آن وجود دارد. فهرست کردن تمام موارد استفاده بالقوه برای هوش مصنوعی غیرممکن است.
حتی تلاش برای دستهبندی این موارد استفاده نیز چالشبرانگیز است، زیرا نظرسنجیهای مختلف از دستهبندیهای متفاوتی استفاده میکنند. برای مثال، Amazon Web Services (AWS) موارد استفاده enterprise (شرکتی) هوش مصنوعی مولد را در سه بخش دستهبندی کرده است: تجربه مشتری، بهرهوری کارکنان، و بهینهسازی فرآیند. یک نظرسنجی O’Reilly در سال ۲۰۲۴ موارد استفاده را در هشت دسته، دستهبندی کرد: برنامهنویسی، تحلیل داده، پشتیبانی مشتری، متن بازاریابی، سایر متون، تحقیق، طراحی وب، و هنر.
برخی سازمانها، مانند Deloitte، موارد استفاده را بر اساس دریافت ارزش (value capture) دستهبندی کردهاند، مانند کاهش هزینه، کارایی فرآیند، رشد، و تسریع نوآوری. برای دریافت ارزش، Gartner یک دسته برای تداوم کسبوکار (business continuity) دارد، به این معنی که یک سازمان در صورت عدم اتخاذ هوش مصنوعی مولد ممکن است ورشکست شود. از بین ۲۵۰۰ مدیر اجرایی که Gartner در سال ۲۰۲۳ مورد بررسی قرار داد، ۷٪ تداوم کسبوکار را انگیزه اصلی برای پذیرش هوش مصنوعی مولد ذکر کردند.
Eloundou و همکاران (۲۰۲۳) تحقیقات عالیای در مورد میزان مواجهه مشاغل مختلف با هوش مصنوعی انجام دادهاند. آنها یک تسک را تعریف کردند اگر هوش مصنوعی و نرمافزارهای مبتنی بر هوش مصنوعی بتوانند زمان مورد نیاز برای تکمیل این تسک را حداقل ۵۰٪ کاهش دهند. یک شغل با ۸۰٪ مواجهه به این معنی است که ۸۰٪ از وظایف آن شغل در معرض هستند. بر اساس این مطالعه، مشاغل با ۱۰۰٪ یا نزدیک به ۱۰۰٪ مواجهه شامل مترجمان شفاهی و کتبی، تهیهکنندگان اظهارنامه مالیاتی، طراحان وب، و نویسندگان میشوند. برخی از آنها در جدول ۱-۲ نشان داده شدهاند. جای تعجب نیست که مشاغل بدون مواجهه با هوش مصنوعی شامل آشپزها، سنگتراشان، و ورزشکاران میشوند. این مطالعه تصور خوبی از موارد استفادهای که هوش مصنوعی برای آنها مناسب است ارائه میدهد.

هنگام تحلیل موارد استفاده، من به هر دو دسته برنامههای کاربردی enterprise (شرکتی) و مصرفکننده (consumer) نگاه کردم. برای درک موارد استفاده enterprise، با ۵۰ شرکت در مورد استراتژیهای هوش مصنوعی آنها مصاحبه کردم و بیش از ۱۰۰ مطالعه موردی را خواندم. برای درک برنامههای مصرفکننده، ۲۰۵ برنامه کاربردی هوش مصنوعی منبع باز با حداقل ۵۰۰ ستاره در GitHub را بررسی کردم.¹¹ من برنامههای کاربردی را به هشت گروه دستهبندی کردم، همانطور که در جدول ۱-۳ نشان داده شده است. فهرست محدود اینجا بهترین کاربرد را به عنوان یک مرجع دارد. همانطور که در فصل ۲ در مورد چگونگی ساخت مدلهای پایه و در فصل ۳ در مورد چگونگی ارزیابی آنها بیشتر یاد میگیرید، همچنین قادر خواهید بود تصویر بهتری از موارد استفادهای که مدلهای پایه میتوانند و باید برای آنها استفاده شوند، تشکیل دهید.

از آنجایی که مدلهای پایه عمومی هستند، برنامههای ساخته شده بر روی آنها میتوانند بسیاری از مشکلات را حل کنند. این بدان معنی است که یک برنامه کاربردی میتواند به بیش از یک دسته تعلق داشته باشد. برای مثال، یک ربات (بات) میتواند همدمی ارائه دهد و هم اطلاعات را تجمیع کند. یک برنامه کاربردی میتواند به شما کمک کند دادههای ساختاریافته را از یک PDF استخراج کنید و به سوالات درباره آن PDF پاسخ دهید.
شکل ۱-۷ توزیع این موارد استفاده را در بین ۲۰۵ برنامه کاربردی منبع باز نشان میدهد. توجه داشته باشید که درصد کم موارد استفاده آموزش، سازماندهی داده و نوشتن به این معنی نیست که این موارد استفاده محبوب نیستند. فقط به این معنی است که این برنامههای کاربردی منبع باز نیستند. سازندگان این برنامهها ممکن است آنها را برای موارد استفاده enterprise مناسبتر بدانند.

دنیای enterprise عموماً برنامههای کاربردی با ریسک پایینتر را ترجیح میدهد. برای مثال، یک گزارش Growth از a16z در سال ۲۰۲۴ نشان داد که شرکتها سریعتر برنامههای کاربردی مقابل داخلی (مدیریت دانش داخلی) را نسبت به برنامههای کاربردی مقابل خارجی (چتباتهای پشتیبانی مشتری) مستقر میکنند، همانطور که در شکل ۱-۸ نشان داده شده است. برنامههای داخلی داخلی به شرکتها کمک میکنند تا تخصص مهندسی هوش مصنوعی خود را توسعه دهند در حالی که ریسکهای مرتبط با حریم خصوصی داده، انطباق (compliance)، و خرابیهای فاجعهبار بالقوه را به حداقل میرسانند. به طور مشابه، در حالی که مدلهای پایه باز هستند و میتوانند برای هر کاری استفاده شوند، بسیاری از برنامههای ساخته شده بر روی آنها هنوز بسته (close-ended) هستند، مانند طبقهبندی (classification). وظایف طبقهبندی ارزیابی آسانتری دارند که باعث میشود ریسکهای آنها راحتتر برآورد شود.

حتی پس از دیدن صدها برنامه کاربردی هوش مصنوعی، هنوز هم هر هفته با برنامههای جدیدی که مرا شگفتزده میکنند مواجه میشوم. در روزهای اولیه اینترنت، تعداد کمی از مردم پیشبینی میکردند که روزی مورد استفاده غالب در اینترنت شبکههای اجتماعی خواهد بود. همانطور که یاد میگیریم چگونه حداکثر استفاده را از هوش مصنوعی ببریم، مورد استفادهای که در نهایت غالب خواهد شد ممکن است ما را شگفتزده کند. با کمی خوششانسی، این شگفتی یک شگفتی خوب خواهد بود.
در چندین نظرسنجی مختلف در حوزه هوش مصنوعی مولد، کدنویسی به صورت قاطعانه پرطرفدارترین مورد استفاده است. ابزارهای کدنویسی هوش مصنوعی هم به این دلیل محبوب هستند که هوش مصنوعی در کدنویسی خوب عمل میکند و هم به این دلیل که مهندسین اولیه هوش مصنوعی، خود برنامهنویس هستند و بیشتر در معرض چالشهای کدنویسی قرار دارند.
یکی از اولین موفقیتهای مدلهای پایه در محیط production، ابزار تکمیل کد GitHub Copilot است که درآمد تکرارشونده سالانه آن تنها دو سال پس از راهاندازی از مرز ۱۰۰ میلیون دلار عبور کرد. در زمان نوشتن این کتاب، استارتآپهای حوزه کدنویسی مبتنی بر هوش مصنوعی صدها میلیون دلار سرمایه جذب کردهاند - به عنوان مثال، شرکت Magic در آگوست ۲۰۲۴ مبلغ ۳۲۰ میلیون دلار و Anysphere مبلغ ۶۰ میلیون دلار سرمایهگیری کردند. ابزارهای منبع باز کدنویسی مانند gpt-engineer و screenshot-to-code هر کدام در عرض یک سال ۵۰,۰۰۰ ستاره در GitHub کسب کردند و بسیاری دیگر نیز به سرعت در حال معرفی هستند.
علاوه بر ابزارهای عمومی کمک به کدنویسی، بسیاری از ابزارها در وظایف کدنویسی خاصی تخصصی شدهاند. نمونههایی از این وظایف عبارتند از:
استخراج دادههای ساختاریافته از صفحات وب و PDFها (مانند AgentGPT)
تبدیل زبان انگلیسی به کد (مانند DB-GPT, SQL Chat, PandasAI)
تولید کد از روی طراحی یا اسکرینشات برای ساخت وبسایتی شبیه تصویر داده شده (مانند screenshot-to-code, draw-a-ui)
ترجمه از یک زبان یا فریمورک برنامهنویسی به دیگری (مانند GPT Migrate, AI Code Translator)
نوشتن مستندات (مانند Autodoc)
ایجاد تست (مانند PentestGPT)
تولید پیامهای کامیت (مانند AI Commits)
واضح است که هوش مصنوعی میتواند بسیاری از وظایف مهندسی نرمافزار را انجام دهد. سوال اینجاست که آیا هوش مصنوعی میتواند مهندسی نرمافزار را به طور کامل خودکار کند؟
در یک سوی این طیف، جنسن هوانگ، مدیرعامل NVIDIA، پیشبینی میکند که هوش مصنوعی جایگزین مهندسین نرمافزار انسانی خواهد شد و ما باید دیگر به کودکان نگوییم که کدنویسی یاد بگیرند. در یک ضبط صدا که درز کرده، مت گارمن، مدیرعامل AWS، اظهار داشت که در آینده نزدیک، اکثر توسعهدهندگان کدنویسی را متوقف خواهند کرد. منظورش پایان کار توسعهدهندگان نرمافزار نیست؛ بلکه شغل آنها تغییر خواهد کرد. در سوی دیگر این طیف، بسیاری از مهندسین نرمافزار متقاعد شدهاند که هرگز توسط هوش مصنوعی جایگزین نخواهند شد، هم به دلایل فنی و هم به دلایل احساسی (افراد دوست ندارند اعتراف کنند که قابل جایگزینی هستند).
مهندسی نرمافزار از بسیاری وظایف تشکیل شده است. هوش مصنوعی در برخی از این وظایف بهتر از بقیه عمل میکند. محققان McKinsey دریافتند که هوش مصنوعی میتواند به توسعهدهندگان کمک کند تا در مستندسازی دو برابر و در تولید کد و بازآرایی کد ۲۵ تا ۵۰ درصد پروداکتیوتر (مولدتر) باشند. حداقل بهبود بهرهوری برای وظایف بسیار پیچیده مشاهده شده (همانطور که در شکل ۱-۹ نشان داده شده است). در گفتوگوهای من با توسعهدهندگان ابزارهای کدنویسی هوش مصنوعی، بسیاری به من گفتند که متوجه شدهاند هوش مصنوعی در توسعه frontend بسیار بهتر از توسعه backend عمل میکند.

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