Уменията, притежавани от учени в областта на науките за данни и инженери по машинно обучение, са сходни, но въпреки това всяка една от длъжностите е различна, споделя в Towards Data Science Матю Прзибила, водещ учен в областта на науките за данни във Favor Delivery. Според него учените в областта на науките за данни се фокусират върху структурната част на един проект за изкуствен интелект, докато един инженер по машинно обучение работи върху прилагането на изградения модел. Освен това учени в областта на науките наблягат върху алгоритмите, а инженерите по машинно обучение се фокусират върху изграждането на средата, в която изграденият модел може да взаимодейства с потребителите.
Науки за данните
Прзибила описва основните умения и програмни езици, използвани от учен в областта на науките за данни.
Python/R
Голяма част от работещите в тази област използват Python почти всеки ден, а други наблягат на R. И двата езика изпълняват една и съща цел. Задачата им е поемането на голямо количество данни, разглеждането им, обработката им, оформянето на заключения, изграждането на модели и представянето на данни.
Jupyter Notebook/или други популярни IDE
Това е друг инструмент в портфолиото на един учен в областта на науките за данни. Той служи като едно общо хранилище за програмен код, писане на текст, преглеждане на различни изходни данни като резултати и визуализации. Други популярни IDE (интегрирани среди за разработка) са PyCharm и Atom.
SQL
SQL, или още наречен „език за структурирани заявки“, е от значение за науките за данни, тъй като данните са в основата на алгоритъма за машинното обучение, тъй като базата от данни ще е част от финалния модел, споделя още Прзибила.
Съществуват различни платформи за SQL, като MySQL, PostgreSQL и Microsoft SQL Server. Често решението за това коя платформа ще бъде използвана се взима от организацията или ръководителя на проекта. Всички те са сходни и широко приложими.
Прзибила допълва, че учените в сферата на науките за данни могат да притежават и други умения, но често те се учат с напредването на проекта, тъй като всяка компания използва различни инструменти, а технологиите напредват постоянно.
Машинно обучение
Прзибила допълва, че инженерите по машинно обучение обикновено се заемат с проекта, след като учените в областта на науките за данни са изградили модела. Тяхната основна задача е да се задълбаят в кода и да го приготвят за масова експлоатация. Прзибила дава за пример, че един инженер по машинно обучение не трябва да знае как работи методът за класификация, наречен „гори за произволно решение“, но трябва да знае как да запази и отвори файл автоматично с цел предвиждането на данни в продукционна среда. Специалистите в областта на машинното обучение се фокусират в голям аспект върху софтуерното инженерство. Ето и най-често срещаните езици и платформи използвани от инженери по машинно обучение:
Python
Прзибила твърди, че това е език, който не само учени в областта на науките за данни владеят, но и инженери по машинно обучение. Въпреки това за инженерите по машинно обучение Python е задължителен. Тяхната задача е фокусирана върху изграждането на цялостния код, а не само модела за анализ и статистика.
GitHub/git
Повечето софтуерни инженери използват GitHub за съхранение на различни версии от програмния код. Тази платформа е знакова за инженери по машинно обучение при намирането на заявки и откриването на промени в кода.
Инструменти за реализация
Това е сферата, в която учените в областта на науките за данни се отличават най-много от инженерите по машинно обучение, допълва Прзибила. Някои учени в областта на науките може да имат умения да приложат един модел на практика и да го вкарат в масова употреба, но това е основната задача на инженера по машинно обучение. За целта те използват инструменти като Amazon Web Services, Google Cloud, Microsoft Azure, Docker, Flask, MLFlow и Airflow.
Друг съвет, който Прзибила дава, е фокусирането върху работната спецификация. Според него често инженер по машинно обучение включва оперативен инженер. Докато на практика един инженер по машинно обучение следва да знае единствено как работят алгоритмите за машинно обучение, често много компании очакват познания в областта на прилагане на модела в една система.
В заключение Прзибила споделя, че повечето компании търсят софтуерни инженери, които притежават познания както в сферата на науките за данни, така и в машинното обучение, но някои по-големи екипи предпочитат специалисти във всяка една от отделните области.