هوش مصنوعی در کسب و کار – بررسی جامع


در این مطلب، هوش مصنوعی در کسب و کار از جنبههای گوناگونی مورد بررسی قرار گرفته است. مطالعه مطلب هوش مصنوعی در کسب و کار به افراد کمک میکند تا ضمن آشنایی با فضای کاری سازمانهای فعال در حوزه هوش مصنوعی، با نقشهای کاری آشنا شوند که میتوانند برای فعالیت در این حوزه، داشته باشند. همچنین، از شباهتها و تفاوتهای سازمانهای هوش مصنوعی و یادگیری ماشین با سازمانهای فعال در حوزه علم داده آگاهی پیدا میکنند و مهارتهایی را میشناسند که باید برای تصدی هر یک از نقشها و در واقع، جایگاههای شغلی مرتبط با این زمینهها، بر آنها تسلط داشته باشند.
مقدمهای بر هوش مصنوعی در کسب و کار
مطالعه مطلب هوش مصنوعی در کسب و کار به کلیه افرادی توصیه میشود که تمایل دارند به عنوان «دانشمندان داده» (Data Scientists)، «مهندس داده» (Data Engineer)، «مهندس هوش مصنوعی» (Artificial Intelligence Engineer)، «مهندس یادگیری ماشین» (Machine Learning Engineer)، «مدیر داده» (Data Manager)، «معمار داده» (Data Architect) و یا «تحلیلگر داده» (Data Analyst) فعالیت کنند، و یا به طور کلی با فضای کاری شرکتهای فعال در این زمینهها آشنا شوند.
برای آشنایی با عناوین شغلی بیان شده، مطالعه مطلب «معرفی مشاغل داده محور — راهنمای کاربردی»، همچنین برای آشنایی با تمامی شغلهای حوزه برنامه نویسی، مطالعه مطلب «شغل برنامه نویسی چیست؟ – از وظایف تا درآمد و مزایا و معایب» پیشنهاد میشود.
سازمانهای دولتی، خصوصی و کسب و کارها در اندازههای گوناگون (کوچک، متوسط و بزرگ)، در سرتاسر جهان، تیمهای «هوش مصنوعی» (Artificial Intelligence | AI) و واحدهای تخصصی برای انجام فعالیت در این حوزه را شکل میدهند. اما همچنان واضح نیست که مهندسان یادگیری ماشین، دانشمندان داده و «مهندسان نرمافزار» (Software Engineers) مشتاق و علاقهمند به فعالیت در این حوزهها، برای اشتغال به کار در مشاغل هوش مصنوعی باید روی چه مباحثی متمرکز شوند.
در مطلب هوش مصنوعی در کسب و کار به انواع سازمانهای فعال در حوزه هوش مصنوعی پرداخته شده است؛ همچنین، نقشهای موجود در تیمهای هوش مصنوعی و مهارتهایی که کارفرما در هنگام استخدام نیرو برای هر یک از این نقشها در نظر دارد، مورد بررسی قرار گرفتهاند. در مطلب هوش مصنوعی در کسب و کار نتایج حاصل از دو پژوهش بزرگ مقیاس پیرامون تقاضای کسب و کارها برای افراد فعال در حوزه هوش مصنوعی و استعدادهای این حوزه، ارائه شده است. شایان توجه است که مطلب هوش مصنوعی در کسب و کار به افراد کمک میکند تا شغلی را پیدا کنند که برای مهارتها و تجربههای آنها مناسب است و به آرزوهای آنها برای فعالیت و رشد در این حوزه، جامه عمل میپوشاند.
سازمانهای هوش مصنوعی
با هدف درک «نقشها»، «وظایف» و «مهارتهایی» (Skills) که شرکتهای هوش مصنوعی را شکل میدهند، مصاحبههایی با بیش از صد مدیر هوش مصنوعی و یادگیری ماشین مشغول به فعالیت در سازمانهایی مانند «اربیانبی» (Airbnb)، «آمازون» (Amazon)، «ارنین» (Earnin)، «فیسبوک» (Facebook)، «گوگل» (Google)، «لِندینگ اِیآی» (Landing.ai)، «لیفت» (Lyft)، «پروفپوینت» (Proofpoint) و «آپاستارت» (Upstart) انجام شده است که نتایج آن در مطلب هوش مصنوعی در کسب و کار ارائه شده است.
البته، باید توجه داشت که دانش و مهارتهای لازم برای کسب و کار، با آنچه در دنیای آکادمیک مورد نیاز است تفاوت دارد؛ این در حالی است که چرخه توسعه پروژههای هوش مصنوعی نیز در کسب و کار با فضای آکادمیک متفاوت است.
سازمانهای یادگیری ماشین در مقایسه با علم داده
بر اساس پژوهشهای انجام شده، به طور کلی دو نوع از سازمانهای فعال در حوزه هوش مصنوعی شناسایی شدهاند که عبارتند از سازمانهای هوش مصنوعی و سازمانهای علم داده.
- سازمانهای علم داده روی تصمیمسازیهای علمی متمرکز میشوند و هدف کسب و کار آنها، معمولا کمک به کسب و کارها برای آن است که به طور موثرتری به فعالیت بپردازند. خروجی این سازمانها معمولا یک مجموعه از بینشهای کاربردی است. جریان کاری این سازمانها شامل گردآوری دادهها (در سطح بالا)، تحلیل آنها و پیشنهاد دادن فرضیهها/ اقدامات میشود.
- سازمانهای یادگیری ماشین روی خودکار سازی وظایف و اهداف کسب و کار به منظور کاهش هزینههای عملیاتی و یا مقیاس دادن به محصول، متمرکز میشوند. خروجی این سازمانها معمولا خودکارسازی است و جریان کاری آنها شامل گردآوری دادهها (در سطح بالا)، آموزش دادن مدلها و استقرار مدلهای نهایی میشود.

شایان توجه است که شرکتها میتوانند هم واحدهای فعال در حوزه هوش مصنوعی و هم واحدهایی برای علم داده داشته باشند. برخی از سازمانها دارای واحدهای ترکیبی هستند که هم در زمینه علم داده و هم یادگیری ماشین فعالیت میکنند. سازمانهای هوش مصنوعی میتوانند به صورت متمرکز یا غیرمتمرکز باشند. سازمانهای هوش مصنوعی متمرکز، دانشمندان و مهندسان هوش مصنوعی را برای پشتیبانی از تیمهای غیر هوش مصنوعی گرد هم میآورند. این در حالی است که سازمانهای هوش مصنوعی غیر متمرکز در واحدهای مختلف سازمان پراکنده شده اند. در ادامه مطلب هوش مصنوعی در کسب و کار به چرخه حیات پروژههای هوش مصنوعی پرداخته میشود.
چرخه حیات توسعه پروژههای هوش مصنوعی: وظایف و مهارتها
بر اساس پژوهشی که انجام شده است، کارهای اغلب سازمانهای هوش مصنوعی به پنج دسته از وظایف قابل تقسیم است. این وظایف عبارتند از: مهندسی دادهها، مدلسازی، استقرار، تحلیلهای کسب و کار و زیرساختهای هوش مصنوعی. این وظایف در کنار هم، چرخه حیات توسعه پروژههای هوش مصنوعی را میسازند.
هر وظیفه نیازمند مهارتهای خاصی است و میتواند محل تمرکز نقشهای گوناگونی باشد. در ادامه مطلب هوش مصنوعی در کسب و کار ابتدا تفاوت بین چرخه حیات توسعه پروژههای یادگیری ماشین (ML) و علم داده (DS) مورد بررسی قرار میگیرد. سپس، به پرسشهای زیر پاسخ داده میشود.
- هدف از هر وظیفه چیست؟
- چه مهارتهایی برای انجام کار در این حوزهها لازم است؟
- در صورت وجود افراد با مهارتهای گوناگون، هر فرد باید روی کدام وظیفه متمرکز شود؟
چشمانداز چرخه حیات توسعه پروژههای هوش مصنوعی
در ادامه، خلاصهای از چرخه حیات توسعه پروژههای یادگیری ماشین و علم داده ارائه شده است.
چرخه حیات توسعه پروژههای یادگیری ماشین
یک پروژه یادگیری ماشین با (۱) دادههایی شروع میشود که پژوهشگر روی آنها (۲) مدل را برازش (Fit) میکند؛ این مدل بعدا (۳) مستقر میشود. مدل مستقر شده (۴) نیاز به مورد نظارت قرار گرفتن دارد و کارایی آن با اهداف کسب و کار مقایسه میشود. (۵) زیرساخت هوش مصنوعی برای پشتیبانی از همه وظایفی که در بالا بیان شده، مورد نیاز است.
چرخه حیات توسعه پروژههای علم داده
یک پروژه علم داده با (۱) دادههایی شروع میشود که پژوهشگر روی آنها (۲) مدل را برازش (Fit) میکند؛ این مدلها (۳) و دیگر تحلیلهای داده به پژوهشگر کمک میکنند تا تصمیمسازیهای کاربردی برای کسب و کار انجام دهد. (۴) زیرساخت هوش مصنوعی برای پشتیبانی از وظایف بیان شده در بالا مورد نیاز است. پروژههای یادگیری ماشین و علم داده را میتوان در واحدهای مشابهی انجام داد. بدین ترتیب، چرخه حیات توسعه پروژههای علم داده و یادگیری ماشین به صورت الگویی که «چرخه حیات توسعه پروژه هوش مصنوعی» نامیده شده است، خلاصه و در تصویر زیر، آورده شده است.

اکنون، فرض میشود که وظایف موجود در یک پروژه هوش مصنوعی را میتوان یکی یکی انجام داد. هر وظیفه با مثالهای واقعی به تصویر کشیده شده و مهارتهای فنی مورد نیاز برای انجام آنها در ادامه مطلب هوش مصنوعی در کسب و کار بیان شده است.
مهندسی داده
هدف از مهندسی داده فراهم کردن دادههای لازم برای کسب مدل، یا وظیفه تحلیل کسب و کار است. اغلب مواقع، مهندسی داده با استفاده از «زبان پرسش و پاسخ پایگاه داده» (Database Query Languages) مانند «اسکیوال» (SQL) و «زبانهای برنامهنویسی شیگرا» (Object-Oriented Programming Languages) مانند «پایتون» (Python)، «سیپلاسپلاس» (++C) یا «جاوا» (Java) انجام میشود.
ابزارهای «کلان داده» (مهداده | Big Data) مانند «هادوپ» (Hadoop) یا «آپاچی هایو» (Apache Hive) نیز به طور متداول مورد استفاده قرار میگیرند. تلاشهای مهندسان داده شامل مواردی میشود که در ادامه آمده است.
وظیفه | مثال | مهارت فنی مورد نیاز |
تعریف نیازمندیهای دادهها | ساخت یک مدل داده
تعریف ویژگیهای دادههای با کیفیت تعریف همسایگی به منظور گردآوری جهت کسب کارکرد مورد انتظار فراهم کردن بازخورد | یادگیری ماشین
فِراسَت کسب و کار مهندسی نرمافزار |
گردآوری دادهها | راهاندازی تُرک مکانیکی آمازون
گردآوری دادهها با عکاسی دستی از گربهها برنامهنویسی یک اسکریپت با جاوااسکریپت به منظور گردآوری دادهها وب اسکرپینگ و در صورت نیاز، همگامسازی دادههای واقع شده در منابع مختلف | یادگیری ماشین
مهندسی نرمافزار |
برچسبگذاری دادهها | کشیدن جعبه محصور کننده در تصاویر
ساخت یک پایپلاین برچسبگذاری خودکار در تُرک مکانیکی آمازون نوشتن راهنمای برچسبگذاری برای کارها ارزیابی کارایی برچسبگذاری کارها برچسبگذاری مجدد دادههای دارای برچسب نامناسب | یادگیری ماشین |
وارسی و پاکسازی دادهها | جایگزینی همه ساختارهای داده غیر قابل استفاده با NaN با استفاده از کتابخانههای پایتون (مثلا پانداس) | یادگیری ماشین
برنامهنویسی الگوریتمی |
دادهافزایی (Augmenting Data) | نوشتن یک اسکریپت پایتون با استفاده از skimage برای چرخاندن، تاباندن، تفسیر و یا ماتسازی تصاویر
استفاده از تشدید زمان تست برای کاهش واریانس دادهها ترکیب کردن گفتارها با همپوشانی سیگنالهای صوتی متمایز | یادگیری ماشین
برنامهنویسی الگوریتمی |
انتقال دادهها و ساخت پایپلاینهای داده | نوشتن یک اسکریپت برای پذیرش یادگیری آنلاین برای یک مدل
ساخت یک سیستم استخراج، تبدیل و بارگذاری دادهها (ETL) نوشتن یک اسکریپت برای پیشپردازش دادههای آموزش و ارسال آن به عنوان ورودی به یک مدل به صورت خودکار نوشتن یک اسکریپت برای ثبت پیشبینیهای مدل در یک پایگاه داده | زبانهای ویژه دامنه (برای مثال، کوئری داده) |
کوئری زدن روی دادهها | کشیدن دادهها از یک پایگاه داده | زبانهای ویژه دامنه (برای مثال، کوئری داده) |
ردیابی دادهها | پیگیری منابع داده
تنظیم یک سیستم کنترل نسخه داده | مهندسی نرمافزار |
مدلسازی
مدلسازی شامل پیشنمونهسازی برای بهرهبرداری از الگوهای موجود در دادهها برای پیشبینی خروجیها، شناسایی ریسکها و فرصتهای کسب و کار و یا شناسایی روابط علت و معلولی میشود. مدلسازی معمولا در زبانهای برنامهنویسی پایتون، «آر» (R)، «متلب» (MATLAB)، سیپلاسپلاس (C++)، جاوا و دیگر موارد انجام میشود. البته، زبانهایی که در این عرصه حکمرانی میکنند، پایتون و R هستند.
برای درک مدلسازی، باید درک اساسی قوی از ریاضیات، علم داده و یادگیری ماشین وجود داشته باشد. در برخی از سازمانها، تسلط بر مهارتهای «یادگیری عمیق» (Deep Learning) نیز الزامی است؛ این مورد، بستگی به تمرکز محصول سازمان دارد. یادگیری عمیق معمولا برای دادن تواناییهای «بینایی کامپیوتری» (Computer Vision)، «پردازش زبان طبیعی» (Natural Language Processing | NLP) یا «بازشناسی گفتار» (Speech recognition) مورد استفاده قرار میگیرد. کار مدلسازی، شامل موارد زیر است.
وظیفه | مثال | مهارت فنی |
آموزش دادن مدل یادگیری ماشین | استفاده از یکی از روشهای رگرسیون خطی، رگرسیون لجستیک، درخت تصمیم، جنگل تصادفی، XGBoost، ماشین بردار پشتیبان، K میانه، K نزدیکترین همسایگی، شبکههای عصبی، تحلیل مولفه اساسی، دستهبند بیز ساده، رگرسیون لاسو/ستیغی | یادگیری ماشین
برنامهنویسی الگوریتمی ریاضیات علم داده |
برازش مدلهای آماری یا احتمالی | آزمودن فرضیهها با آزمایش دادهها
اعمال کاهش ابعاد روی یک مجموعه داده برای تسهیل آموزش یک مدل یا کسب بینش | علم داده
کد الگوریتمی ریاضیات |
آموزش دادن مدلهای یادگیری عمیق | استفاده از یادگیری عمیق برای کاربردهای مبتنی بر دامنه مانند دستهبندی، تشخیص و قطعهبندی اشیا، خلاصهسازی متن، ترجمه ماشینی، بازشناسی گفتار و دیگر موارد | یادگیری عمیق
کدنویسی الگوریتمی ریاضیات علم داده |
شتابدهی آموزش | تنظیم کد برای آموزش دادن مدل در چندین ماشین به صورت موازی | زبان ویژه دامنه (برای مثلا کودا)
برنامهنویسی الگوریتمی |
تعریف سنجههای ارزیابی (معمولا، شامل یک مدیر محصول داده نیز میشود) | استفاده از امتیاز F1 برای ارزیابی کارایی یک مدل یادگیری ماشین در وظیفه دستهبندی
پیادهسازی سنجههای ارزیابی مانند صحت، دقت، فراخوانی، دقت متوسط میانگین (mAP) و دیگر موارد | یادگیری ماشین
برنامهنویسی الگوریتمی ریاضیات |
افزایش زمان پیشبینی | اعمال روشهایی مانند هرس کردن، کمیسازی و فشردهسازی به منظور کاهش نیازمندیهای حافظه | یادگیری ماشین
برنامهنویسی الگوریتمی |
تکرار در چرخه پروژههای یادگیری ماشین، که شامل ایده، کد و آزمایش میشود. | ترجمه یک مسئله کسب و کار به یک مسئله یادگیری ماشین؛ برای مثال، بسته به کیفیت و کمیت دادههای دسترسیپذیر، ممکن است یک راهکار بهتر برای مسئله از شبکه سراسری یا پایپلاین وجود داشته باشد.
تجربه چرخه سه گامی از ایدهپردازی با تیم، کدنویسی برای تنظیم تجربیات، تحلیل نتایج | یادگیری ماشین
درایت کسب و کار |
جستجوی فراپارامترها | سازماندهی زمانی به طور موثر به منظور اجرای بیشینه تعداد آزمونها در کوتاهترین بازه زمانی
تنظیم یک آزمون جستجوی فراپارامترها با استفاده از ابزارهایی مانند AutoML | یادگیری ماشین
کدنویسی الگوریتمی |
همگامی با پیشرفت علم و لبه علم بودن | مطالعه مقالات پژوهشی
مشاهده سخنرانیهای کنفرانسها یا شرکت در همایشها و کنفرانسها | پژوهش
ریاضیات علم داده یادگیری ماشین |
استقرار
استقرار شامل همه فعالیتهایی است که مدل را برای استفاده در دسترس قرار میدهد. برای یک جریان داده (از وظایف مهندسی داده) و یک مدل (از وظایف مدلسازی)، افرادی که مسئول استقرار مدل هستند، مدل را پیش از قرار دادن آن در محیط تولید، بستهبندی و تست میکنند.
فعالیتهای استقرار نیاز به توانایی نوشتن کد، شامل مهارتهای مهندسی بک-اِند قوی و درک فناوریهای ابری است. کار استقرار، شامل موارد ارائه شده در جدول زیر است.
وظیفه | مثال | مهارت فنی |
تبدیل کد اولیه به کد تولیدی | پالایش کل کد مخزن
کاهش کدهای دارای افزونگی نوشتن یک کد تمیز برای بهبود خوانایی و ثبات؛ برای مثال، با استفاده از راهنمای PEP8 در پایتون | مهندسی نرمافزار |
تنظیم یک محیط ابری برای استقرار مدل | تسلط بر ابزارها و زیرساختهای ابری فراهم شده توسط آمازون AWS، مایکروسافت آژور، گوگل کلود و دیگر موارد. | مهندسی نرمافزار |
انشعاب | طراحی یک جریان کاری انشعاب. استفاده ازانشعابهای توسعه، استیجینگ و تولید
مشارکت در بازبینی کدها یا هدایت آن | مهندسی نرمافزار |
بهبود زمان پاسخ و ذخیره پهنای باند | تنظیم نیازمندیهای توازن بارگذاری با مهندسهای مسئول زیرساخت هوش مصنوعی | مهندسی نرمافزار |
فایلهای رمزنگاری که پارامترهای مدل، معماری و دادهها را ذخیره میکنند | درک رمزنگاری در سطح بالا و اعمال توابع موجود | مهندسی نرمافزار |
ساخت APIهایی برای یک کاربرد برای استفاده از یک مدل | تنظیم سرویسهای HTTP RESTful API برای تسهیل ارتباطات بین مولفههای نرمافزاری
تنظیم مجوزها و احراز هویت برای دسترسی به API | مهندسی نرمافزار |
آموزش دادن مجدد مدلهای یادگیری ماشین (یادگیری مادامالعمر) | نظارت بر تغییرات در توزیع دادهها و سطحبندی به روز رسانیهای مدل | مهندسی نرمافزار
یادگیری ماشین |
برازش مدلها روی دستگاه دارای منابع محدود | هرس کردن یا کمیسازی یک مدل به منظور متناسب بودن با نیازمندیهای حافظه
استقرار یک مدل در دستگاه موبایل با استفاده از تنسورفلو | مهندسی نرمافزار
یادگیری ماشین |
تحلیل کسب و کار
تحلیل کسب و کار شامل تحلیل، فعالیتهای کسب و کار مرتبط با ارتباط با مشتریان و همکاران از طریق رهبری و بازاریابی میشود. کار کردن روی تحلیلهای کسب و کار نیازمند درک اساسی از ریاضیات و علم داده برای تحلیل است. همچنین، نیاز به مهارتهای ارتباطی قوی و فِراسَت کسب و کاری دارد.
زبانهای برنامهنویسی مانند R یا پایتون میتوانند در این راستا مفید واقع شوند؛ با این وجود بسیاری از کارها را میتوان در «صفحه گسترده» (Spreadsheet) انجام داد. تحلیل کسب و کار، شامل موارد بیان شده در جدول زیر است.
وظیفه | مثال | مهارت فنی |
ساخت بصریسازیهای داده | بصریسازی دادههای ابعاد بالا در ابعاد کمتر با استفاده از روشهایی مانند تحلیل مولفه اساسی یا t-SNA
ساخت و ارائه نمودارهای تولید شده با استفاده از تبلو (Tableau)، متپلاتلیب (matplotlib) یا ggplot | زبانهای برنامهنویسی ویژه دامنه
علم داده ریاضیات فراست کسب و کار |
ساخت داشبوردهای هوش تجاری | نوشتن اسکریپتی که به طور دورهای به مدیران کسب و کار پیرامون گرایشات موجود در دادهها اطلاعرسانی کند | زبانهای برنامه نویسی ویژه دامنه |
ارائه کارهای فنی به مشتریان یا همکاران | آمادهسازی ارائهها (برای مثال، اسلایدهای پاورپوینت)
تعامل موثر با اعضای تیم انجام سخنرانیهای فنی برای ارائه خروجیهای پژوهش | ارتباطات
فراست کسب و کار |
ترجمه آمارها به بینشهای کاربردی کسب و کار | اتخاذ تصمیمات بازاریابی بر اساس تحلیل منابع مختلف | ارتباطات
فراست کسب و کار |
تحلیل مجموعه داده | رسم نمودار ماتریس همبستگی برای تحلیل همسایگی
محاسبه متغیرهای آماری مانند میانه، واریانس، مد و دیگر موارد قطعهبندی مشتریان در گروههای گوناگون | علم داده
برنامهنویسی الگوریتمی ریاضیات |
اجرای آزمایشها برای ارزیابی مدلهای مستقر شده | کار با تیمهای استقرار برای ارزیابی کارایی کسب و کار یک مدل مستقر شده
کمک به تیم استقرار برای تصمیمگیری ترجمه کارایی مدل به خروجیهای کسب و کار (برای مثال، درآمد) | علم داده
برنامهنویسی الگوریتمی |
اجرای تست A/B | بهینهسازی صفحات وب با تستهای A/B
ارزیابی سیستم در تولید | علم داده
برنامهنویسی الگوریتمی فراست کسب و کار |
زیرساخت هوش مصنوعی
هدف زیرساخت هوش مصنوعی، ساخت و نگهداری سیستمهای نرمافزاری سریع، امن و مقیاسپذیری به منظور تسهیل مهندسی داده، مدلسازی و استقرار است. کار زیرساخت هوش مصنوعی، شامل موارد بیان شده در جدول زیر است.
وظیفه | مثال | مهارت فنی |
اتخاذ تصمیمات طراحی نرمافزار | کاهش زمان تاخیر با قرار دادن مدل در نزدیکی دادهها | مهندسی نرمافزار |
ساخت حافظه ذخیرهسازی توزیع شده و سیستم پایگاه داده | ساخت پایگاه داده (MySQL ،NoSQL ،SQL کاساندرا و دیگر موارد) که دادهها را ذخیره و دسترسی به آنها توسط دیگر اعضای تیم را تسهیل میکنند. | مهندسی نرمافزار
زبانهای برنامهنویسی مبتنی بر دامنه |
طراحی مقیاسپذیری | افزودن محاسبات با GPU یا محل ذخیرهسازی به میزان مورد نیاز | مهندسی نرمافزار |
نگهداری زیرساخت نرمافزاری | مدیریت ارتقاهای نرمافزار مانند پایان یافتن عمر پایتون ۲ در یک ژانویه ۲۰۲۰ (۱ دی ۱۳۹۸) | مهندسی نرمافزار |
شبکهسازی | کنترل دسترسی به همه عناصر زیرساخت | مهندسی نرمافزار |
امنسازی دادهها و مدلها | ساخت ویژگیهای امنیتی که امکان استقرار تولید در سازمانهای تنظیم شده، تامین نیازهای امنیتی و حریم خصوصی | مهندسی نرمافزار |
نوشتن تستها | نوشتن تست واحد و تابعی برای مولفههای گوناگون در سرتاسر وظایف چرخه حیات پروژه هوش مصنوعی | مهندسی نرمافزار |
انجام دادن وظایف نرمافزار گوناگون | ساخت یک نرمافزار برچسبگذاری برای مشتری یا ابزارهای کلیدی مانند چارچوبهای تست A/B با تحلیل محیطها | مهندسی نرمافزار |
نقشهای موجود در تیم هوش مصنوعی
هیچ استانداردی برای نقشها در تیمهای هوش مصنوعی وجود ندارد. علاوه بر این، فقدان اطلاعات پیرامون چگونگی جذب استعدادهای لازم برای تیم هوش مصنوعی، کار را برای مدیرانی که مسئول استخدام هستن دشوار میکند؛ زیرا باید نیازمندیهای شغلی منصفانه و مرتبط با کارایی شغلی را تبیین و تدوین کنند. برای پر کردن این شکاف، مهارتهای هزاران نفر از افرادی که مشتاق کار در سازمانهای هوش مصنوعی هستند مورد بررسی قرار گرفته است و هزاران توصیف شغلی برای نقشهای هوش مصنوعی تحلیل شدهاند.
در این بخش، وظایفی که توسط تیمهای هوش مصنوعی انجام میشود مورد بررسی قرار میگیرند. همچنین، نقشهای مختلف موجود در تیم هوش مصنوعی، مجموعه مهارتهای آنها و وظایفی که باید روی آنها متمرکز شوند، معرفی میشود. امید میرود که ارائه توضیحات پیرامون این نقشها به افراد کمک کند تا شغل مورد نظر خود را پیدا و البته، مهارتهایی که باید بیاموزند را اولویتبندی کنند.
شش نقش در تیم هوش مصنوعی
در ادامه، شش نقش فنی با مجموعه مهارتهای متمایز و حوزههای تمرکز گوناگون تعریف میشوند. هر یک از این نقشها در برخی از وظایف موجود در چرخه توسعه هوش مصنوعی، مشارکت دارند. همه نقشها (تا حدودی) وظیفه مهندسی داده را بر عهده دارند. دلیل این امر آن است که مهندسی داده معمولا گامی برای بهبود مدلسازی، استقرار و تحلیل کسب و کار است. برای هر نقش، وظایفی که هر نقش بر عهده دارد و مهارتهایی که برای انجام آن وظایف مورد نیاز است، بیان شدهاند.

شایان توجه است که خط نقطهچین در تصویر بالا، نشانگر درگیر بودن کمتر با وظیفه بیان شده است. یک مهندس نرمافزار یا یادگیری ماشین، از روشهای خارج از چارچوب برای انجام وظیفه مدلسازی استفاده میکند، در حالی که یک مهندس یادگیری ماشین (MLE)، «پژوهشگر یادگیری ماشین» (Machine Learning Researcher | MLR) یا دانشمند داده، قادر به سفارشیسازی مدل است.
دانشمند داده
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف دانشمند داده و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مورد نیاز دانشمند داده

ابزارهای مورد استفاده دانشمند داده
- مدلسازی در پایتون با استفاده از کتابخانههایی مانند «نامپای» (Numpy)، «سایکیتلِرن» (Scikit-Learn)، «تنسورفلو» (TensorFlow)، «پایتورچ» (PyTorch) و دیگر موارد استفاده میشود.
- مهندسی داده در پایتون و/یا SQL (یا دیگر زبانهای کوئرینویسی مختص دامنه) انجام میشود.
- تحلیل کسب و کار در پایتون، R و دیگر ابزارهای ویژه دامنه همچون «تبلو» (Tableau) یا اکسل و برنامههای کاربردی ارائه مطلب مانند «پاورپوینت» (PowerPoint) یا «کینوت» (Keynote) انجام میشود.
- همکاری و جریان کاری با استفاده از سیستم کنترل نسخه (برای مثال، گیت، سابورژن، مرکوریال) همراه با «رابط خط فرمان» (Command Line Interface | CLI) (برای مثال در یونیکس) و «محیطهای توسعه یکپارچه» (Integrated Development Environment | IDE) (مانند ژوپیتر نوتبوک، سابلایم تکست) برای داشتن همکاری و حفظ جریان کاری بین اعضای تیم مورد استفاده قرار میگیرد.
برای دانشمند داده، مهارتهای ارتباطی معمولا لازم است؛ ولی سطح این مهارت، بستگی به تیم دارد. سازمانها ممکن است از این جایگاه شغلی (در اگهیهای استخدام، چارت سازمانی و دیگر موارد) با عناوین زیر یاد کنند:
- دانشمند داده
- تحلیلگر داده
- مهندس یادگیری ماشین
- دانشمند پژوهشی
- آماردان
- تحلیلگر کمی
- دانشمند داده فولاستک
- و دیگر عناوین
وظایف دانشمند داده

تحلیلگر داده
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف تحلیلگر داده و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مورد نیاز تحلیلگر داده

ابزارهای مورد استفاده تحلیلگر داده
- مهندسی داده در پایتون و یا SQL (یا دیگر زبانهای کوئری ویژه دامنه) انجام میشود.
- تحلیل کسب و کار در پایتون، R یا دیگر ابزارهای ویژه دامنه مانند تبلو یا اکسل، نرمافزارهای ارائه مطلب مانند پاورپوینت یا کینوت و دیگر موارد انجام میشود.
- سرویسهای نرمافزار خارجی برای تست A/B توسط تحلیلگر داده به کار گرفته میشود.
تعریفی که برای تحلیلگر داده در اینجا ارائه شده است، مختص سازمانهای هوش مصنوعی است. نقش تحلیلگر دادهای که در اینجا معرفی شده است، معمولا متفاوت از نقشی است که به آن «تحلیلگر کسب و کار» (Business Analyst) گفته میشود. برای دانشمند داده، مهارتهای ارتباطی معمولا لازم است؛ ولی سطح این مهارت، بستگی به تیم دارد. سازمانها ممکن است از این جایگاه شغلی (در اگهیهای استخدام، چارت سازمانی و دیگر موارد) با عناوین زیر یاد کنند:
- دانشمند داده
- دانشمند پژوهش
- تحلیلگر کسب و کار
- تحلیلگر ریسک
- تحلیلگر کسب و کار
- و دیگر عناوین
وظایف تحلیلگر داده

مهندس یادگیری ماشین
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف مهندس یادگیری ماشین و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مورد نیاز مهندس یادگیری ماشین

ابزارهای مورد استفاده مهندس یادگیری ماشین
- مهندسی داده در پایتون و یا SQL (یا دیگر زبانهای کوئری ویژه دامنه) انجام میشود.
- مدلسازی در پایتون با استفاده از بستههایی مانند نامپای، سایکیتلرن، تنسورفلو، پایتورچ و دیگر موارد انجام میشود.
- استقرار با استفاده از یک زبان برنامهنویسی شیگرا (برای مثال، پایتون، جاوا، سیپلاسپلاس و دیگر موارد) و فناوریهای ابری مانند ایدابلیواس، جیسیپی، آزور و دیگر موارد انجام میشود.
- همکاری و جریان کاری با استفاده از سیستم کنترل نسخه (برای مثال، گیت، سابورژن، مرکوریال و دیگر موارد)، محیط توسعه یکپارچه (مانند ژوپیتر نوتبوک، سابلایم و دیگر موارد) و محصولات ویژه ردیابی مشکلات (مانند جیرا) انجام میشود و در واقع، از این ابزارها برای حفظ جریان کاری در حوزه یادگیری ماشین استفاده میکنند.
وظایف مهندس یادگیری ماشین

نوعی از مهندس یادگیری ماشین وجود دارد که به آن مهندس یادگیری عمیق گفته میشود. مهندس یادگیری عمیق، علاوه بر مهارتهای بیان شده در بالا، نیاز به مهارت «یادگیری عمیق» (Deep Learning) نیز دارد.مهندسهای یادگیری عمیق روی کاربردهایی متمرکز میشوند که معمولا از یادگیری عمیق قدرت گرفتهاند. از جمله این کاربردها میتوان به «بازشناسی گفتار» (Speech Recognition)، «پردازش زبان طبیعی» (Natural Language Processing) و «بینایی کامپیوتری» (Computer Vision) اشاره کرد. بنابراین، کارشناسان یادگیری عمیق برای انجام پروژههای خود نیازمند درک و استفاده از معماریهای گوناگون شبکه عصبی مانند «شبکههای عصبی کاملا متصل» (Fully-Connected Networks)، «شبکه عصبی پیچشی» (Convolutional Neural Networks)، «شبکه عصبی بازگشتی» (Recurrent Neural Networks) و دیگر موارد دارند.
با وجود اینکه نیاز به مهارتهای ارتباطی و فراست کسب و کار معمولا بستگی به تیم دارد، اما معمولا مهندسان یادگیری ماشین به این مهارتها نیاز ندارند. سازمانها ممکن است از این جایگاه شغلی (در اگهیهای استخدام، چارت سازمانی و دیگر موارد) با عناوین گوناگونی یاد میکنند که در ادامه بیان شدهاند:
- مهندس یادگیری ماشین
- مهندس نرمافزار
- مهندس یادگیری ماشین
- دانشمند داده
- مهندس الگوریتم
- دانشمند پژوهش
- دانشمند داده فول استک
- و دیگر عناوین
پژوهشگران یادگیری ماشین
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف پژوهشگر یادگیری ماشین و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مورد نیاز پژوهشگر یادگیری ماشین

ابزارهای مورد استفاده پژوهشگران یادگیری ماشین
- مهندسی داده در پایتون و یا SQL (یا دیگر زبانهای کوئری ویژه دامنه) انجام میشود.
- مدلسازی در پایتون با استفاده از بستههایی مانند نامپای، سایکیتلرن، تنسورفلو، پایتورچ و دیگر موارد انجام میشود.
- همکاری و جریان کاری با استفاده از سیستم کنترل نسخه (مانند گیت، سابورژن، مرکوریال و دیگر موارد)، یک رابط خط فرمان (مثل یونیکس)، یک محیط توسعه یکپارچه (ژوپیتر نوتبوک، سابلایم و دیگر موارد) و یک محصول ردیابی مشکلات (مانند جیرا) برقرار میشود.
- پژوهش پیرامون به روز رسانیهای جدید اتفاق افتاده با استفاده از کانالهایی مانند «توییتر» (Twitter)، «ردیت» (Reddit)، «ورد آو موث» (Word of Mouth)، «آرکایو» (Arxiv) و کنفرانسهای متعدد (برای مثال، ACM ،CVPR ، ICML ،ICLR ،NeurIPS و دیگر موارد) انجام میشود.
وظایف پژوهشگر یادگیری ماشین

نوعی از مهندس یادگیری ماشین وجود دارد که به آن مهندس یادگیری عمیق گفته میشود. مهندس یادگیری عمیق، علاوه بر مهارتهای بیان شده در بالا، نیاز به مهارت «یادگیری عمیق» (Deep Learning) نیز دارد.مهندسهای یادگیری عمیق روی کاربردهایی متمرکز میشوند که معمولا از یادگیری عمیق قدرت گرفتهاند. از جمله این کاربردها میتوان به «بازشناسی گفتار» (Speech Recognition)، «پردازش زبان طبیعی» (Natural Language Processing) و «بینایی کامپیوتری» (Computer Vision) اشاره کرد. بنابراین، کارشناسان یادگیری عمیق برای انجام پروژههای خود نیازمند درک و استفاده از معماریهای گوناگون شبکه عصبی مانند «شبکههای عصبی کاملا متصل» (Fully-Connected Networks)، «شبکه عصبی پیچشی» (Convolutional Neural Networks)، «شبکه عصبی بازگشتی» (Recurrent Neural Networks) و دیگر موارد دارند.
با وجود آنکه در نمودار بالا به آن اشاره نشده است، برخی از پژوهشگران یادگیری ماشین روی استقرار (یادگیری در طول عمر، بهینهسایز حافظه مدل برای استقرار) یا زیرساختهای هوش مصنوعی (مانند آموزش توزیع شده، برنامهریزی، تجربه و مدیریت منابع) متمرکز میشوند.
با وجود اینکه نیاز به مهارتهای ارتباطی و فراست کسب و کار معمولا بستگی به تیم دارد، اما معمولا مهندسان یادگیری ماشین به این مهارتها نیاز ندارند.
سازمانها ممکن است از این جایگاه شغلی (در اگهیهای استخدام، چارت سازمانی و دیگر موارد) با عناوین زیر یاد کنند:
- پژوهشگر یادگیری ماشین
- دانشمند پژوهش
- مهندس پژوهش
- دانشمند داده
- و دیگر عناوین
مهندس نرمافزار - یادگیری ماشین
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف پژوهشگر یادگیری ماشین و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مهندس نرمافزار - یادگیری ماشین

ابزارهای مورد استفاده مهندس نرمافزار - یادگیری ماشین
- مدلسازی در پایتون با استفاده از بستههایی مانند نامپای، سایکیتلرن، تنسورفلو، پایتورچ و دیگر موارد انجام میشود.
- مهندسی داده در پایتون و/یا SQL (یا دیگر زبانهای کوئری ویژه دامنه)
- استقرار و زیرساخت هوش مصنوعی با استفاده از زبانهای برنامهنویسی شیگرا (مانند پایتون، جاوا، سیپلاسپلاس و دیگر موارد) و فناوریهای ابری مانند «ایدابلیواس» (AWS)، «جیسیپی» (GCP) و آژور (Azure) انجام میشود.
- همکاری و جریان کاری با بهرهگیری از سیستم کنترل نسخه (برای مثال گیت، سابورژن، مرکوریال و دیگر موارد)، یک رابط خط فرمان (مانند یونیکس)، یک محیط توسعه یکپارچه (مانند ژوپیتر نوتبوک، سابلایم و دیگر موارد) و یک محصول ردیابی مشکلات (مانند جیرا) صورت میپذیرد.
وظایف مهندس نرمافزار - یادگیری ماشین در سازمان

نوعی از مهندس یادگیری ماشین وجود دارد که به آن مهندس یادگیری عمیق گفته میشود. مهندس یادگیری عمیق، علاوه بر مهارتهای بیان شده در بالا، نیاز به مهارت «یادگیری عمیق» (Deep Learning) نیز دارد.مهندسهای یادگیری عمیق روی کاربردهایی متمرکز میشوند که معمولا از یادگیری عمیق قدرت گرفتهاند. از جمله این کاربردها میتوان به «بازشناسی گفتار» (Speech Recognition)، «پردازش زبان طبیعی» (Natural Language Processing) و «بینایی کامپیوتری» (Computer Vision) اشاره کرد. بنابراین، کارشناسان یادگیری عمیق برای انجام پروژههای خود نیازمند درک و استفاده از معماریهای گوناگون شبکه عصبی مانند «شبکههای عصبی کاملا متصل» (Fully-Connected Networks)، «شبکه عصبی پیچشی» (Convolutional Neural Networks)، «شبکه عصبی بازگشتی» (Recurrent Neural Networks) و دیگر موارد دارند.
با وجود اینکه نیاز به مهارتهای ارتباطی و فراست کسب و کار معمولا بستگی به تیم دارد، اما معمولا مهندسان یادگیری ماشین به این مهارتها نیاز ندارند. سازمانها ممکن است از این جایگاه شغلی (در آگهیهای استخدام، چارت سازمانی و دیگر موارد) با عناوین گوناگونی یاد میکنند که در ادامه بیان شدهاند:
- مهندس یادگیری ماشین
- مهندس نرمافزار
- دانشمند داده فول استک
- و دیگر عناوین
مهندس نرمافزار
در ادامه، مهارتهای مورد نیاز، ابزارهای مورد استفاده و وظایف مهندس نرمافزار و نکاتی پیرامون این نقش شغلی، بیان شده است.
مهارتهای مورد نیاز مهندس نرمافزار

ابزارهای مورد استفاده مهندس نرمافزار
- مهندسی داده در پایتون و/یا SQL (یا دیگر زبانهای کوئری ویژه دامنه) انجام میشود.
- زیرساخت هوش مصنوعی با استفاده از یک زبان برنامهنویسی شیگرا (برای مثال، پایتون، جاوا، سیپلاسپلاس و دیگر موارد) و فناوریهای ابری مانند ایدابلیواس، جسسیپی، آژور و دیگر موارد فراهم میشود.
- همکاری و جریان کاری با استفاده از سیستم کنترل نسخه (مانند گیت، سابورژن، مرکوریال و دیگر موارد)، یک رابط خط فرمان (مانند یونیکس)، یک محیط توسعه یکپارچه (مانند ژوپیتر نوتبوک، سابلایم و دیگر موارد) و یک محصول ردیابی مشکلات (مانند جیرا) برقرار میشود.
وظایف مهندس نرمافزار در سازمان

اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- آموزش دادهکاوی در متلب
- مجموعه آموزشهای هوش مصنوعی
- فراگیری مفاهیم هوش مصنوعی — مجموعه مقالات جامع وبلاگ فرادرس
- آشنایی با صد استارتاپ برتر هوش مصنوعی در سال ۲۰۱۹
- نقشه دانش فناوریهای هوش مصنوعی و دستهبندی آنها — راهنمای جامع
- چگونه یک دانشمند داده شوید؟ — راهنمای گامبهگام به همراه معرفی منابع
^^