تجربه من در استفاده از GenAI در توسعه نرم افزار
Summarize this content to 400 words in Persian Lang
هوش مصنوعی مولد (GenAI) از زمانی که OpenAI GPT-3 را معرفی کرد، جذابیت زیادی به دست آورد و نسخه چت بات آن، ChatGPT، به یک حس جهانی تبدیل شد. در چند سال گذشته، ما شاهد انفجار مدلها و سرویسهای جدید بودهایم که تلاش میکنند از این شتاب سرمایهگذاری کنند. برخی توانستند سهم قابل توجهی از بازار را به خود اختصاص دهند، در حالی که بسیاری دیگر از بین رفتند و نتوانستند رشد خود را در میان “هوش طلا” در حال انجام هوش مصنوعی حفظ کنند.
با این حال، این وبلاگ در مورد ترس از تصاحب مشاغل توسط هوش مصنوعی یا اینکه چگونه می تواند شخصی را به یک مهندس 10 برابری تبدیل کند، عملکرد بهتری از همتایان و دریافت حقوق بالاتر ندارد – چیزی که امروزه فروشندگان دوره اغلب دستفروشی می کنند. در عوض، میخواهم سفر شخصیام را با GenAI به اشتراک بگذارم، از جمله مزایایی که به ارمغان میآورد، چالشهایی که با آنها روبرو بودهام، و برخی نکات عملی برای ساخت اپلیکیشنها با فناوریهای GenAI.
خوب: استفاده از GenAI برای راه حل های عملی
برای توسعهدهندگان، GenAI یک تغییر دهنده بازی است و به ما امکان میدهد به جای گرفتار شدن در جنبههای روزمره و تکراری چرخه عمر توسعه نرمافزار، روی وظایف اصلی تمرکز کنیم. در زیر، چند نمونه کلیدی از پروژههای خودم را برجسته میکنم تا نشان دهم چگونه GenAI گردش کار من را بهبود بخشیده و درهای جدیدی را باز کرده است.
**پروژه هکاتون: سیستم نظارت بر فلور سطح فردی**
در طول یک هکاتون اخیر (چالش راه حل گوگل)، تیم من و من در حال کار بر روی یک پلت فرم برای علاقه مندان به باغبانی بودیم. این ایده ساده اما تأثیرگذار بود: به افرادی که دانش کمی از گیاه شناسی دارند کمک کنید تا با استفاده از تجزیه و تحلیل تصویر، سلامت گیاهان خود را بررسی کنند. در ابتدا، مدل بینایی کامپیوتری خودمان را ساختیم و آن را با یک Flask API ادغام کردیم تا تصاویر گیاهان را تجزیه و تحلیل کنیم. با این حال، با پیشرفت هکاتون، ما به یک مانع بزرگ برخوردیم – به سادگی مجموعه دادههای کافی در گیاهان مختلف وجود نداشت. در بهترین حالت، میتوانستیم گونههای رایجی مانند گوجهفرنگی و سیب را تجزیه و تحلیل کنیم، اما کاتالوگ گیاهان گستردهتری را که تصور میکردیم از دست میدادیم.
پس از مشورت زیاد، دندهها را تغییر دادیم و به Gemini LLM گوگل که بهطور رایگان (به لطف حمایت مالی هکاتون) در دسترس بود، روی آوردیم. با یکپارچه سازی Gemini LLM، ما نه تنها مشکل کمبود داده خود را حل کردیم، بلکه ویژگی های جدیدی را نیز معرفی کردیم که تجربه کاربر را غنی تر کرد. تنظیم دقیق مدل زبان بزرگ ما را قادر ساخت تا توصیه های مراقبت از گیاه را بیشتر شخصی سازی کنیم و راهنمایی های متناسب را به کاربران ارائه دهیم.سهولتی که GenAI به ما این امکان را میدهد که قابلیتهای برنامهمان را محور و ارتقا دهیم، گواهی بر انعطافپذیری و قدرت این مدلها است، بهویژه زمانی که با نیازهای پیچیده داده سروکار دارید.
پروژه منبع باز: اصلاح کد با LLM
اخیراً، من در یک ابتکار منبع باز به نام «Codemod Kickstart» شرکت کردم که بر ساده کردن کارهایی مانند انتقال نسخه و رفع اشکال، به ویژه در مخازن بزرگ تمرکز دارد. یکی از چالشهای موجود در مخازن که پایگاههای کد بزرگی دارند، ایجاد چندین تغییر به صورت دستی است که هم خستهکننده و هم زمانبر است.
با استفاده از مدلهای GenAI، من در ایجاد مجموعهای از ابزارها مشارکت داشتم که میتوانستند به طور خودکار تغییرات کد را بر اساس مسیرهای فایل خاص مدیریت کنند. اساساً، ما موارد آزمایشی را با حالتهای «قبل» و «بعد» ارائه کردیم و سپس مدل بستههای لازم را برای اجرای آن تغییرات در پایگاه کد ایجاد میکند. با حذف بسیاری از کارهای یدی، این روند روان تر شد. این نه تنها گردش کار ما را ساده کرد، بلکه خطای انسانی را نیز کاهش داد، زیرا هوش مصنوعی میتوانست جزئیات را با دقت بیشتری مدیریت کند.
میتوانید یکی از مشارکتهای من را در اینجا بررسی کنید: نمونه کدمود.
این فقط یک تصویر کوچک از نحوه استفاده GenAI برای توسعه منبع باز است. این باعث صرفه جویی در زمان می شود، کارایی را بهبود می بخشد و به توسعه دهندگان اجازه می دهد تا به جای پرداختن به کارهای روزمره و تکراری کدنویسی، روی عناصر استراتژیک تری تمرکز کنند.
*انقلابی در استخدام با GenAI*در یکی از پروژه های اخیرم، وظیفه ارتقای فرآیند استخدام برای یک پروژه فریلنسری بر عهده من بود. در ابتدا، تیم منابع انسانی بر نرمافزار استخدام سنتی متکی بود که شامل یک سیستم دستی و مبتنی بر قوانین برای مرتبسازی رزومهها، زمانبندی مصاحبهها و برقراری ارتباط با نامزدها بود. با افزایش مقیاس شرکت و شروع به استخدام در چندین بخش، این رویکرد به طور فزاینده ای دست و پا گیر شد.
سیستم موجود با مشکلات زیر مواجه بود:مرتب سازی حجم بالایی از رزومه ها به صورت دستی، که منجر به تاخیر در پاسخ به داوطلبان واجد شرایط می شود.زمانبندی مصاحبهها، که شامل ارتباطات ایمیلی رفت و برگشتی میشد، اغلب منجر به عدم ارتباط یا فرصتهای از دست رفته میشد.درگیر کردن نامزدها در مقیاس با ارتباطات مناسب، که با افزایش تعداد متقاضیان غیرممکن شد.
راه حل: ما تصمیم گرفتیم یک دستیار استخدام مبتنی بر GenAI را با استفاده از نسخه تنظیم شده GPT پیاده سازی کنیم. مدل هوش مصنوعی به طور خاص برای گردش کار استخدام آموزش داده شد و به آن اجازه میدهد بخشهای مختلف فرآیند استخدام را خودکار کند. در اینجا نحوه کار آن آمده است:
غربالگری رزومه: هوش مصنوعی میتواند هزاران رزومه را در کسری از زمانی که برای بررسی دستی طول میکشد تجزیه کند. این شرکت یاد گرفت که مهارتها، صلاحیتها و تجربیات کلیدی را که با شرح وظایف شرکت همسو بودند شناسایی کند و به آن اجازه دهد تا نامزدها را به طور مؤثرتری رتبهبندی کند.
زمانبندی مصاحبه: با استفاده از پردازش زبان طبیعی (NLP)، دستیار هوش مصنوعی به طور خودکار با نامزدها هماهنگ میشود، فرصتهای زمانی موجود را ارائه میدهد و مصاحبهها را بر اساس در دسترس بودن مصاحبهگر و داوطلب رزرو میکند. این امر نیاز به چندین ایمیل پشت سر هم را از بین برد و کل فرآیند را سرعت بخشید.
ارتباط نامزد: این مدل برای مدیریت ارتباط شخصی سازی شده به خوبی تنظیم شده بود. ایمیل های خودکار را برای نامزدها ارسال می کرد، آنها را در مورد وضعیت درخواست خود به روز می کرد، پس از مصاحبه بازخورد ارائه می کرد و به سؤالات رایج پاسخ می داد. توانایی GenAI در درک زمینههای متفاوتی که نامزدها سؤالات خود را بیان میکنند، امکان تعامل یکپارچهتر را فراهم میکند و تجربه نامزد را افزایش میدهد.
بد: یک گلوله نقره ای برای هر مشکلی نیست
در حالی که GenAI مزایای باورنکردنی را ارائه می دهد، اما به دور از راه حلی جادویی برای هر مشکلی در توسعه نرم افزار است. این تصور رو به رشد در رسانه های اجتماعی وجود دارد که “همه چیز” را می توان با هوش مصنوعی جایگزین کرد، اما واقعیت بسیار ظریف تر است.
ساخت یک محصول GenAI مبتنی بر خدمات B2C
برای یکی از ایدههای راهاندازیام، سعی کردم یک سرویس B2C بسازم که به کاربران امکان میدهد کتابهای صوتی خود را از کتابهای نوشته شده سفارشی بسازند. تحقیقات اولیه امیدوارکننده به نظر می رسید. من چند مدل GenAI با کیفیت بالا را در Hugging Face پیدا کردم که در مقایسه با استفاده از ابزارهای رایج میتوانند صدا را با کسری از هزینه تولید کنند.
با این حال، وقتی طراحی سیستم را عمیقتر بررسی کردم و آن را در برابر اهداف عملکرد و مقیاسپذیری ارزیابی کردم، همه چیز به سرعت پیچیده شد. اجرای مدل تولید صدا در مرحله تولید، با سطح سفارشی سازی که من تصور می کردم، بسیار گران بود. پس از محاسبه هزینههای عملیاتی، متوجه شدم که برای کاهش قیمت، باید تقریباً 10 برابر مبلغی که پلتفرمهای مشابهی مانند Kukufm ارائه میدهند، از مشتریان شارژ کنم.
این تجربه به عنوان زنگ خطری عمل کرد: در حالی که GenAI می تواند عملکرد خوبی داشته باشد، لزوماً به این معنی نیست که برای هر موردی مقرون به صرفه است، به ویژه هنگامی که تنظیمات دقیق، میزبانی و مقیاس گذاری در محیط های تولید را در نظر می گیریم.
*خستگی ادغام و اتکای بیش از حد*
یکی دیگر از چالش های رایج، وسوسه استفاده از GenAI برای همه چیز است که می تواند منجر به “خستگی ادغام” شود. بسیاری از پروژهها تلاش میکنند تا از هوش مصنوعی استفاده کنند، حتی زمانی که راهحلهای سنتی ممکن است کارآمدتر و مقرونبهصرفه باشند. به عنوان مثال، یک بار به تیمی کمک کردم که GenAI را در ابزار مدیریت پروژه داخلی خود ادغام کند. هدف اولویت بندی خودکار وظایف بر اساس داده های بهره وری توسعه دهندگان بود، اما خروجی متناقض بود و به هر حال نیاز به مداخله دستی داشت.
در پایان، یک مدل آماری سادهتر با اکتشافی سفارشی قابل اعتمادتر بود. این تجربه تقویت کرد که اگرچه GenAI عالی است، اما همیشه برای هر مشکلی مناسب نیست – به خصوص زمانی که میتوانید همان نتیجه را با استفاده از روشهای کممصرف منابع به دست آورید.
*تلاش برای جستجوی پویا برای تجارت الکترونیک*
یکی از پروژه های بلندپروازانه من شامل توسعه یک سیستم جستجوی پویا برای یک پلت فرم تجارت الکترونیکی بود. هدف ایجاد انقلابی در تجربه جستجو با حذف نیاز به فیلترهای سنتی و دست و پا گیر بود. من می خواستم کاربران با استفاده از زبان طبیعی مستقیماً با API پلتفرم تعامل داشته باشند که تعداد مراحل مورد نیاز برای یافتن محصولات را به شدت کاهش می دهد.در ابتدا، سیستم امیدوار کننده به نظر می رسید. کاربران نیازی به کلیک روی یک سری فیلتر برای قیمت، مارک، اندازه و رنگ ندارند. در عوض، آنها میتوانند پرس و جوهایی مانند «کفش دویدن قرمز مقرونبهصرفه برای دویدن» را تایپ کنند و هوش مصنوعی آن را تفسیر کرده و برای ارائه نتایج فوری با API تعامل میکند.
چالش ها و تحقق ها:
فیلتر بیش از حد: سیستم اصلی فیلترهای زیادی داشت که کاربران را ناامید می کرد. اما پس از ساخت ابزار جستجوی مبتنی بر GenAI، متوجه شدم که حذف همه فیلترها نیز لزوما راه حلی نیست. کاربرانی که سیستم فیلتر سنتی را برای دقت ترجیح میدادند، کنترل خود را از دست دادند.
پیچیدگی محاسباتی: اجرای پرس و جوهای زبان طبیعی با تعامل بلادرنگ به طور مستقیم با API یک کار محاسباتی سنگین بود. حتی اگر کار می کرد، دستاوردهای عملکردی مصرف منابع را توجیه نمی کرد. هزینه ها، از نظر زیرساخت و بهینه سازی زمان پاسخ، شروع به بیشتر شدن از مزایای آن کردند.
Overkill for the Use Case: در نهایت، بهینه سازی ها برای آنچه پروژه ارائه می کرد بسیار پیچیده شد. سیستم جستجوی پویا، در حالی که نوآورانه بود، نیاز به تنظیم دقیق دائمی داشت، به ویژه هنگامی که نوبت به درک سؤالات مبهم یا مبهم می رسید. پس از چندین بار تکرار، متوجه شدم که یک سیستم ساده تر – شاید بهبود سیستم فیلتر موجود با پیشنهادات جزئی مبتنی بر هوش مصنوعی – بیش از حد کافی بوده است.
چرا پروژه رها شد: پس از تجزیه و تحلیل تلاش ها و هزینه های مربوط به اجرای این سیستم مجهز به GenAI، مشخص شد که پیچیدگی و منابع مورد نیاز بسیار بیشتر از آن چیزی است که برای این پلت فرم لازم بود. ابزار جستجو مشکلی را حل میکرد که برای اکثر کاربران وجود نداشت، و لایههای اضافی بهینهسازی بیشتر از ارزش اضافه میکردند.
چالش های پیش رو:
هزینه های محاسباتی: در ابتدا، اجرای مدل GenAI برای پردازش پرس و جوهای بلادرنگ از نظر محاسباتی سنگین بود، به خصوص با وظایف NLP مانند شناسایی هدف و تجزیه پرس و جو. برای کاهش این مشکل، مجبور شدم تعامل API را بهینه کنم و نتایج جستجوی مکرر درخواستی را در حافظه پنهان ذخیره کنم تا بار روی سرور کاهش یابد.
تنظیم دقیق برای دقت: تنظیم دقیق مدل برای درک دقیق هدف کاربر، به ویژه هنگامی که با پرس و جوهای مبهم یا مبهم سروکار دارید، چندین بار تکرار شد. این مدل به حلقههای بازخورد ثابت برای بهبود دقت جستجو نیاز داشت.
نتیجه گیری
کار با GenAI هم هیجان انگیز و هم فروتنانه بوده است. این به من این امکان را میدهد که فرآیندهای توسعه را سادهسازی کنم، برنامهها را با ویژگیهای شخصیسازی شده غنیسازی کنم، و حتی راههای جدیدی را برای اکتشاف باز کنم که قبلاً در نظر نگرفته بودم. با این حال، مهم است که به خاطر داشته باشید که GenAI یک راه حل برای همه نیست. این می تواند نوآوری را تسریع کند، اما با چالش هایی نیز همراه است – به ویژه در مورد هزینه، تنظیم دقیق و یکپارچگی عملی.
برای هر کسی که به دنبال ساخت برنامههای کاربردی با استفاده از GenAI است، توصیه میکنم با استفاده از یک مورد کاملاً تعریفشده شروع کنند، ابتدا آن را با روشهای سنتی آزمایش کنند، و سپس بررسی کنند که چگونه هوش مصنوعی میتواند ارزش افزوده به جای جایگزینی هر مرحله از فرآیند انجام دهد. به یاد داشته باشید که هوش مصنوعی باید مکمل هوش انسان باشد نه اینکه جایگزین آن شود.
کمی درباره من
من Dilpreet Grover هستم، یک توسعه دهنده نرم افزار متخصص در فن آوری های backend. من از کاوش در روندهای جدید در مهندسی نرم افزار و مشارکت در پروژه های منبع باز لذت می برم. اگر مایل به اتصال یا بررسی برخی از کارهای من هستید، به راحتی از وب سایت من بازدید کنید (https://medium.com/r?url=https%3A%2F%2Fdilpreetgrover.vercel.app%2F).تا دفعه بعد،آدیوس!
هوش مصنوعی مولد (GenAI) از زمانی که OpenAI GPT-3 را معرفی کرد، جذابیت زیادی به دست آورد و نسخه چت بات آن، ChatGPT، به یک حس جهانی تبدیل شد. در چند سال گذشته، ما شاهد انفجار مدلها و سرویسهای جدید بودهایم که تلاش میکنند از این شتاب سرمایهگذاری کنند. برخی توانستند سهم قابل توجهی از بازار را به خود اختصاص دهند، در حالی که بسیاری دیگر از بین رفتند و نتوانستند رشد خود را در میان “هوش طلا” در حال انجام هوش مصنوعی حفظ کنند.
با این حال، این وبلاگ در مورد ترس از تصاحب مشاغل توسط هوش مصنوعی یا اینکه چگونه می تواند شخصی را به یک مهندس 10 برابری تبدیل کند، عملکرد بهتری از همتایان و دریافت حقوق بالاتر ندارد – چیزی که امروزه فروشندگان دوره اغلب دستفروشی می کنند. در عوض، میخواهم سفر شخصیام را با GenAI به اشتراک بگذارم، از جمله مزایایی که به ارمغان میآورد، چالشهایی که با آنها روبرو بودهام، و برخی نکات عملی برای ساخت اپلیکیشنها با فناوریهای GenAI.
خوب: استفاده از GenAI برای راه حل های عملی
برای توسعهدهندگان، GenAI یک تغییر دهنده بازی است و به ما امکان میدهد به جای گرفتار شدن در جنبههای روزمره و تکراری چرخه عمر توسعه نرمافزار، روی وظایف اصلی تمرکز کنیم. در زیر، چند نمونه کلیدی از پروژههای خودم را برجسته میکنم تا نشان دهم چگونه GenAI گردش کار من را بهبود بخشیده و درهای جدیدی را باز کرده است.
**
پروژه هکاتون: سیستم نظارت بر فلور سطح فردی**
در طول یک هکاتون اخیر (چالش راه حل گوگل)، تیم من و من در حال کار بر روی یک پلت فرم برای علاقه مندان به باغبانی بودیم. این ایده ساده اما تأثیرگذار بود: به افرادی که دانش کمی از گیاه شناسی دارند کمک کنید تا با استفاده از تجزیه و تحلیل تصویر، سلامت گیاهان خود را بررسی کنند. در ابتدا، مدل بینایی کامپیوتری خودمان را ساختیم و آن را با یک Flask API ادغام کردیم تا تصاویر گیاهان را تجزیه و تحلیل کنیم. با این حال، با پیشرفت هکاتون، ما به یک مانع بزرگ برخوردیم – به سادگی مجموعه دادههای کافی در گیاهان مختلف وجود نداشت. در بهترین حالت، میتوانستیم گونههای رایجی مانند گوجهفرنگی و سیب را تجزیه و تحلیل کنیم، اما کاتالوگ گیاهان گستردهتری را که تصور میکردیم از دست میدادیم.
پس از مشورت زیاد، دندهها را تغییر دادیم و به Gemini LLM گوگل که بهطور رایگان (به لطف حمایت مالی هکاتون) در دسترس بود، روی آوردیم. با یکپارچه سازی Gemini LLM، ما نه تنها مشکل کمبود داده خود را حل کردیم، بلکه ویژگی های جدیدی را نیز معرفی کردیم که تجربه کاربر را غنی تر کرد. تنظیم دقیق مدل زبان بزرگ ما را قادر ساخت تا توصیه های مراقبت از گیاه را بیشتر شخصی سازی کنیم و راهنمایی های متناسب را به کاربران ارائه دهیم.
سهولتی که GenAI به ما این امکان را میدهد که قابلیتهای برنامهمان را محور و ارتقا دهیم، گواهی بر انعطافپذیری و قدرت این مدلها است، بهویژه زمانی که با نیازهای پیچیده داده سروکار دارید.
پروژه منبع باز: اصلاح کد با LLM
اخیراً، من در یک ابتکار منبع باز به نام «Codemod Kickstart» شرکت کردم که بر ساده کردن کارهایی مانند انتقال نسخه و رفع اشکال، به ویژه در مخازن بزرگ تمرکز دارد. یکی از چالشهای موجود در مخازن که پایگاههای کد بزرگی دارند، ایجاد چندین تغییر به صورت دستی است که هم خستهکننده و هم زمانبر است.
با استفاده از مدلهای GenAI، من در ایجاد مجموعهای از ابزارها مشارکت داشتم که میتوانستند به طور خودکار تغییرات کد را بر اساس مسیرهای فایل خاص مدیریت کنند. اساساً، ما موارد آزمایشی را با حالتهای «قبل» و «بعد» ارائه کردیم و سپس مدل بستههای لازم را برای اجرای آن تغییرات در پایگاه کد ایجاد میکند. با حذف بسیاری از کارهای یدی، این روند روان تر شد. این نه تنها گردش کار ما را ساده کرد، بلکه خطای انسانی را نیز کاهش داد، زیرا هوش مصنوعی میتوانست جزئیات را با دقت بیشتری مدیریت کند.
میتوانید یکی از مشارکتهای من را در اینجا بررسی کنید: نمونه کدمود.
این فقط یک تصویر کوچک از نحوه استفاده GenAI برای توسعه منبع باز است. این باعث صرفه جویی در زمان می شود، کارایی را بهبود می بخشد و به توسعه دهندگان اجازه می دهد تا به جای پرداختن به کارهای روزمره و تکراری کدنویسی، روی عناصر استراتژیک تری تمرکز کنند.
*انقلابی در استخدام با GenAI
*
در یکی از پروژه های اخیرم، وظیفه ارتقای فرآیند استخدام برای یک پروژه فریلنسری بر عهده من بود. در ابتدا، تیم منابع انسانی بر نرمافزار استخدام سنتی متکی بود که شامل یک سیستم دستی و مبتنی بر قوانین برای مرتبسازی رزومهها، زمانبندی مصاحبهها و برقراری ارتباط با نامزدها بود. با افزایش مقیاس شرکت و شروع به استخدام در چندین بخش، این رویکرد به طور فزاینده ای دست و پا گیر شد.
سیستم موجود با مشکلات زیر مواجه بود:
مرتب سازی حجم بالایی از رزومه ها به صورت دستی، که منجر به تاخیر در پاسخ به داوطلبان واجد شرایط می شود.
زمانبندی مصاحبهها، که شامل ارتباطات ایمیلی رفت و برگشتی میشد، اغلب منجر به عدم ارتباط یا فرصتهای از دست رفته میشد.
درگیر کردن نامزدها در مقیاس با ارتباطات مناسب، که با افزایش تعداد متقاضیان غیرممکن شد.
راه حل: ما تصمیم گرفتیم یک دستیار استخدام مبتنی بر GenAI را با استفاده از نسخه تنظیم شده GPT پیاده سازی کنیم. مدل هوش مصنوعی به طور خاص برای گردش کار استخدام آموزش داده شد و به آن اجازه میدهد بخشهای مختلف فرآیند استخدام را خودکار کند. در اینجا نحوه کار آن آمده است:
- غربالگری رزومه: هوش مصنوعی میتواند هزاران رزومه را در کسری از زمانی که برای بررسی دستی طول میکشد تجزیه کند. این شرکت یاد گرفت که مهارتها، صلاحیتها و تجربیات کلیدی را که با شرح وظایف شرکت همسو بودند شناسایی کند و به آن اجازه دهد تا نامزدها را به طور مؤثرتری رتبهبندی کند.
- زمانبندی مصاحبه: با استفاده از پردازش زبان طبیعی (NLP)، دستیار هوش مصنوعی به طور خودکار با نامزدها هماهنگ میشود، فرصتهای زمانی موجود را ارائه میدهد و مصاحبهها را بر اساس در دسترس بودن مصاحبهگر و داوطلب رزرو میکند. این امر نیاز به چندین ایمیل پشت سر هم را از بین برد و کل فرآیند را سرعت بخشید.
- ارتباط نامزد: این مدل برای مدیریت ارتباط شخصی سازی شده به خوبی تنظیم شده بود. ایمیل های خودکار را برای نامزدها ارسال می کرد، آنها را در مورد وضعیت درخواست خود به روز می کرد، پس از مصاحبه بازخورد ارائه می کرد و به سؤالات رایج پاسخ می داد. توانایی GenAI در درک زمینههای متفاوتی که نامزدها سؤالات خود را بیان میکنند، امکان تعامل یکپارچهتر را فراهم میکند و تجربه نامزد را افزایش میدهد.
بد: یک گلوله نقره ای برای هر مشکلی نیست
در حالی که GenAI مزایای باورنکردنی را ارائه می دهد، اما به دور از راه حلی جادویی برای هر مشکلی در توسعه نرم افزار است. این تصور رو به رشد در رسانه های اجتماعی وجود دارد که “همه چیز” را می توان با هوش مصنوعی جایگزین کرد، اما واقعیت بسیار ظریف تر است.
ساخت یک محصول GenAI مبتنی بر خدمات B2C
برای یکی از ایدههای راهاندازیام، سعی کردم یک سرویس B2C بسازم که به کاربران امکان میدهد کتابهای صوتی خود را از کتابهای نوشته شده سفارشی بسازند. تحقیقات اولیه امیدوارکننده به نظر می رسید. من چند مدل GenAI با کیفیت بالا را در Hugging Face پیدا کردم که در مقایسه با استفاده از ابزارهای رایج میتوانند صدا را با کسری از هزینه تولید کنند.
با این حال، وقتی طراحی سیستم را عمیقتر بررسی کردم و آن را در برابر اهداف عملکرد و مقیاسپذیری ارزیابی کردم، همه چیز به سرعت پیچیده شد. اجرای مدل تولید صدا در مرحله تولید، با سطح سفارشی سازی که من تصور می کردم، بسیار گران بود. پس از محاسبه هزینههای عملیاتی، متوجه شدم که برای کاهش قیمت، باید تقریباً 10 برابر مبلغی که پلتفرمهای مشابهی مانند Kukufm ارائه میدهند، از مشتریان شارژ کنم.
این تجربه به عنوان زنگ خطری عمل کرد: در حالی که GenAI می تواند عملکرد خوبی داشته باشد، لزوماً به این معنی نیست که برای هر موردی مقرون به صرفه است، به ویژه هنگامی که تنظیمات دقیق، میزبانی و مقیاس گذاری در محیط های تولید را در نظر می گیریم.
*خستگی ادغام و اتکای بیش از حد
*
یکی دیگر از چالش های رایج، وسوسه استفاده از GenAI برای همه چیز است که می تواند منجر به “خستگی ادغام” شود. بسیاری از پروژهها تلاش میکنند تا از هوش مصنوعی استفاده کنند، حتی زمانی که راهحلهای سنتی ممکن است کارآمدتر و مقرونبهصرفه باشند. به عنوان مثال، یک بار به تیمی کمک کردم که GenAI را در ابزار مدیریت پروژه داخلی خود ادغام کند. هدف اولویت بندی خودکار وظایف بر اساس داده های بهره وری توسعه دهندگان بود، اما خروجی متناقض بود و به هر حال نیاز به مداخله دستی داشت.
در پایان، یک مدل آماری سادهتر با اکتشافی سفارشی قابل اعتمادتر بود. این تجربه تقویت کرد که اگرچه GenAI عالی است، اما همیشه برای هر مشکلی مناسب نیست – به خصوص زمانی که میتوانید همان نتیجه را با استفاده از روشهای کممصرف منابع به دست آورید.
*تلاش برای جستجوی پویا برای تجارت الکترونیک
*
یکی از پروژه های بلندپروازانه من شامل توسعه یک سیستم جستجوی پویا برای یک پلت فرم تجارت الکترونیکی بود. هدف ایجاد انقلابی در تجربه جستجو با حذف نیاز به فیلترهای سنتی و دست و پا گیر بود. من می خواستم کاربران با استفاده از زبان طبیعی مستقیماً با API پلتفرم تعامل داشته باشند که تعداد مراحل مورد نیاز برای یافتن محصولات را به شدت کاهش می دهد.
در ابتدا، سیستم امیدوار کننده به نظر می رسید. کاربران نیازی به کلیک روی یک سری فیلتر برای قیمت، مارک، اندازه و رنگ ندارند. در عوض، آنها میتوانند پرس و جوهایی مانند «کفش دویدن قرمز مقرونبهصرفه برای دویدن» را تایپ کنند و هوش مصنوعی آن را تفسیر کرده و برای ارائه نتایج فوری با API تعامل میکند.
چالش ها و تحقق ها:
- فیلتر بیش از حد: سیستم اصلی فیلترهای زیادی داشت که کاربران را ناامید می کرد. اما پس از ساخت ابزار جستجوی مبتنی بر GenAI، متوجه شدم که حذف همه فیلترها نیز لزوما راه حلی نیست. کاربرانی که سیستم فیلتر سنتی را برای دقت ترجیح میدادند، کنترل خود را از دست دادند.
- پیچیدگی محاسباتی: اجرای پرس و جوهای زبان طبیعی با تعامل بلادرنگ به طور مستقیم با API یک کار محاسباتی سنگین بود. حتی اگر کار می کرد، دستاوردهای عملکردی مصرف منابع را توجیه نمی کرد. هزینه ها، از نظر زیرساخت و بهینه سازی زمان پاسخ، شروع به بیشتر شدن از مزایای آن کردند.
- Overkill for the Use Case: در نهایت، بهینه سازی ها برای آنچه پروژه ارائه می کرد بسیار پیچیده شد. سیستم جستجوی پویا، در حالی که نوآورانه بود، نیاز به تنظیم دقیق دائمی داشت، به ویژه هنگامی که نوبت به درک سؤالات مبهم یا مبهم می رسید. پس از چندین بار تکرار، متوجه شدم که یک سیستم ساده تر – شاید بهبود سیستم فیلتر موجود با پیشنهادات جزئی مبتنی بر هوش مصنوعی – بیش از حد کافی بوده است.
چرا پروژه رها شد: پس از تجزیه و تحلیل تلاش ها و هزینه های مربوط به اجرای این سیستم مجهز به GenAI، مشخص شد که پیچیدگی و منابع مورد نیاز بسیار بیشتر از آن چیزی است که برای این پلت فرم لازم بود. ابزار جستجو مشکلی را حل میکرد که برای اکثر کاربران وجود نداشت، و لایههای اضافی بهینهسازی بیشتر از ارزش اضافه میکردند.
چالش های پیش رو:
- هزینه های محاسباتی: در ابتدا، اجرای مدل GenAI برای پردازش پرس و جوهای بلادرنگ از نظر محاسباتی سنگین بود، به خصوص با وظایف NLP مانند شناسایی هدف و تجزیه پرس و جو. برای کاهش این مشکل، مجبور شدم تعامل API را بهینه کنم و نتایج جستجوی مکرر درخواستی را در حافظه پنهان ذخیره کنم تا بار روی سرور کاهش یابد.
- تنظیم دقیق برای دقت: تنظیم دقیق مدل برای درک دقیق هدف کاربر، به ویژه هنگامی که با پرس و جوهای مبهم یا مبهم سروکار دارید، چندین بار تکرار شد. این مدل به حلقههای بازخورد ثابت برای بهبود دقت جستجو نیاز داشت.
نتیجه گیری
کار با GenAI هم هیجان انگیز و هم فروتنانه بوده است. این به من این امکان را میدهد که فرآیندهای توسعه را سادهسازی کنم، برنامهها را با ویژگیهای شخصیسازی شده غنیسازی کنم، و حتی راههای جدیدی را برای اکتشاف باز کنم که قبلاً در نظر نگرفته بودم. با این حال، مهم است که به خاطر داشته باشید که GenAI یک راه حل برای همه نیست. این می تواند نوآوری را تسریع کند، اما با چالش هایی نیز همراه است – به ویژه در مورد هزینه، تنظیم دقیق و یکپارچگی عملی.
برای هر کسی که به دنبال ساخت برنامههای کاربردی با استفاده از GenAI است، توصیه میکنم با استفاده از یک مورد کاملاً تعریفشده شروع کنند، ابتدا آن را با روشهای سنتی آزمایش کنند، و سپس بررسی کنند که چگونه هوش مصنوعی میتواند ارزش افزوده به جای جایگزینی هر مرحله از فرآیند انجام دهد. به یاد داشته باشید که هوش مصنوعی باید مکمل هوش انسان باشد نه اینکه جایگزین آن شود.
کمی درباره من
من Dilpreet Grover هستم، یک توسعه دهنده نرم افزار متخصص در فن آوری های backend. من از کاوش در روندهای جدید در مهندسی نرم افزار و مشارکت در پروژه های منبع باز لذت می برم. اگر مایل به اتصال یا بررسی برخی از کارهای من هستید، به راحتی از وب سایت من بازدید کنید (https://medium.com/r?url=https%3A%2F%2Fdilpreetgrover.vercel.app%2F).
تا دفعه بعد،
آدیوس!