یکی از موضوعات جدید و احتمالا جذاب برای اکثر توسعه دهنده ها به خصوص توسعه دهنده های هوش مصنوعی MLOps هست که داره کم کم سازمان هارو هم مجاب میکنه که حتما از نیرو هایی که این تخصص رو دارن استفاده کنن. البته اینکه چرا این موضوع جدید هست برمیگرده به اینکه خود هوش مصنوعی نهایتا سه دهه هست که جاش رو توی کسب و کار ها داره باز میکنه.
در واقع بهترین روش های (best practices) پیاده سازی و رنوند های اجرایی برای توسعه ، اجرا و نگهداری سرویس های هوش مصنوعی در یک کسب و کار رو میتونیم حدودا بگیم MLOps که بستر های خدمات ابری و سرویس های پردازش داده میتونن بیان کمکش.
این کلمه حاصل اختصار کلمات machine learning operations هست البته اسمش ممکنه شمارو یاد یه هیولای پشمالوی سیاه یک چشم بندازه ولی در واقع عامل موفقیت و بازدهی هر چه بیشتر همه سرویس های هوش مصنوعی شما توی سازمانتون خواهد بود .
از سال ۲۰۱۲ بعد از ارائه یکی از محصولات image-recognition روی بستر deep learning انفجار هوش مصنوعی آغاز شد و همه شروع به استفاده از این تکنولوژی نوظهور توی بیزینس هاشون کردن.
خب قبل از این همه فرایند هایی که توی سایت ها و سرویس های اینترنتی اجرا میشد یک فرایند مشخص برای توسعه و تست و پیاده سازی و پایداری داشت اما مدل کاری الگوریتم های هوش مصنوعی به خصوص شبکه های عصبی با ساختار قبل فرق داشتن . اما فرق های این الگوریتم ها چی هست ؟
باید بگم متاسفانه MLOps یک سوپر هیرو نیست که بیاد همه این هارو حل بکنه ولی خب شاید یک شمشیر خیلی خوب باشه برای شما که سوپر هیرو هستید.
قبلا بین بچه های شبکه و توسعه دهنده ها دعوا بود همیشه، به خاطر همین اومدن میانجی گری کردن و عنوان شغلی DevOps رو مطرح کردن و مشکلات رو حل کردن.
اما وقتی هوش مصنوعی اومد توی مدار تکنولوژی ها یکم کار پیچیده شد و زخم های قدیمی دهن باز کردن که تیم هوش مصنوعی و بکند و شبکه رو چطوری بهم وصل کنیم ؟!!!
اما چالش اینجا هم ختم نمیشه و همیشه در توسعه چیز هایی وجود دارند که ما فکرش رو نمیکردیم یا مجموعه داده هایی که از سمت کاربران به سمت ما میاد ممکنه پیشبینی نشده باشند پس مدل های هوش مصنوعی باید دایما بررسی بشن و عمکردشون ارزیابی بشه و باید یک روند بازطراحی ایجاد کنیم که بعد از هر آزمایش و بررسی دقت ، مدل جدید به بیزینس ارائه بشه و دوباره بریم سراغ خطایابی و بهبود. این کار رو اونقدر انجام میدیم که مشتری ها و مسئولین تست نرم افزار دیگه گزارشی از خرابی عملکرد به ما ندهند.
با توجه به زیرساختی که در دست فرد یا تیم MLOps سازمان هست فرایند های زیر باید برای دانشمندان داده پیاده سازی بشود.
باید این نکته را هم اضافه کنم که عزیزان data scientists نیاز به آزادی عمل برای کار با داده ها دارند یعنی باید بتوانند داده ها را از داخل و یا خارج از ساختار داخلی مورد بررسی قرار بدهند اما برچسب گذاری داده ها باید طبق استاندارد های داخلی سازمان باشد . به همین ترتیب این عزیزان نیاز به آزمایش و تکرار دارند تا مدل های خوب تولید کنند .
خب حالا که مدل ها توسط data scientists های عزیز طراحی شد نیاز به یک همکاری با ML engineer های عزیزتر داریم که مجموعه داده ها و مدل ها رو از طریق نمونه داده های اولیه، آزمایش بکنند و مثلا اگر با شبکه عصبی سروکار داریم، دل و روده شبکه عصبی رو بکشن بیرون و مانیتورش کنن و ایراداتش رو در بیارن و بهینگی و دقتش رو افزایش بدن.
این فرایند نیاز به اتوماسیون و توجه به جزئیات داره تا بتونیم مدل هارو به راحتی تفسیر کنیم و باز تولیدشون کنیم .
سرویس های هوش مصنوعی قالبا بخش عمده مزیت رقابتی اون میزینس با رقیبشون هستن و این یعنی باید توی ظرف طلا نگه داری بشن. همه ذهن ها با این حرف به سمت حملات سایبری میره اما باید گفت خیر.
دغدغه اصلی در نوع طراحی معماری محصولات نرم افزاری هست که هر بیزینس باید متناسب با خودش اون رو درست بکنه . هدف انتخاب نوع دیتابیس یا زبان برنامه نویسی یا استفاده از کدام سرویس برای نمایش داده نیست . بلکه هدف جانمایی و درست چیدن این پازل بی پایان است . میشه قوانین زیادی وضع کرد که برای این کار به ما کمک میکنند که به چند نمونه از آن ها اشاره میکنیم .
توسعه نرم افزار باید مهندسی شده باشد یعنی باید در یک چهارچوب و در یک فرایند قرار بگیرد و بتوان ورودی و خروجی مشخص کرد و اندازه گیری کرد . مهندس نرم افزار باید بتواند اندازه دقیقی از مصرف منابع ارائه دهد و با اعداد و نمودار صحبت کند .
جزئیات در کار مهندسی بسیار مهم است .
مهندس باشید نه لزوما یک برنامه نویس!
از توجه و حوصله شما متشکرم .
https://blogs.nvidia.com/blog/2020/09/03/what-is-mlops/