Ang Machine Learning ay lumitaw bilang isa sa pinakamainit na propesyonal na larangan sa mga nakaraang taon. Maraming mga titulo ng trabaho ang lumitaw kaugnay nito. Sa artikulong ito, tutuklasin natin ang papel ng isang machine learning engineer. Malalaman natin ang tungkol sa gawaing kaakibat nito, ang mga kasanayan at tool na kailangan nito, at iibahin ang mga ito sa iba pang mga tungkuling nauugnay sa machine learning/data.
-
Ano ang Mga Kakayahang Dapat Taglayin ng isang Machine Learning Engineer?
-
Anong Mga Tool ang Madalas Gamitin ng Mga Machine Learning Engineer?
-
Ano ang Pagkakaiba sa pagitan ng Machine Learning Engineer at…
a. … isang Data Analyst?
c. … isang Istatistiko?
Kaya Ano ang eksaktong ginagawa ng isang machine learning engineer?
1. Ano ang Ginagawa ng Machine Learning Engineer?
Ang machine learning engineer ay isang propesyonal na responsable sa pagdidisenyo, pagbuo, at pagpapanatili ng mga modelo ng machine learning. Ang mga modelong ito ay nilikha upang pag-aralan ang data, matuto mula dito, at gumawa ng matatalinong desisyon o hula batay sa data. Gumagana ang mga machine learning engineer sa malalaking dataset, gamit ang statistical at mathematical techniques para bumuo ng mga modelo na tumpak na mahulaan ang mga resulta o uriin ang data sa mga partikular na kategorya.
Ang gawain ng isang machine learning engineer ay karaniwang nagsasangkot ng mga sumusunod na hakbang:
-
Pag-unawa sa problema sa negosyo: Ang unang hakbang sa pagbuo ng isang machine learning model ay ang pag-unawa sa problema sa negosyo na kailangang lutasin. Kabilang dito ang pakikipagtulungan sa mga stakeholder upang matukoy ang problema, mangalap ng data, at matukoy ang naaangkop na diskarte sa pag-aaral ng makina upang malutas ang problema. Habang ang hanay ng mga algorithm ng machine learning ay independiyente sa domain ng application, ang ilang partikular na algorithm ay mas angkop sa mga partikular na setting, gaya ng mga sequence model para sa Natural Language Processing o Genomics atbp.
-
Preprocessing at paglilinis ng data: Ang mga modelo ng machine learning, lalo na ang Deep Learning na may maraming parameter upang sanayin, ay nangangailangan ng malaking halaga ng data upang maging epektibo. Gayunpaman, ang data na ito ay madalas na magulo at kailangang linisin at paunang iproseso bago ito magamit upang sanayin ang isang modelo. Kabilang dito ang mga gawain tulad ng nawawalang value imputation, outlier detection, normalization atbp. Ang paglilinis at pagproseso ng data ay marahil ang hindi gaanong kapana-panabik na bahagi ng anumang proyekto, ngunit isa rin ito sa pinakamahalaga. Ang isang malaking bahagi ng oras na ginugol sa isang proyekto sa pag-aaral ng makina ay nakatuon dito, at ang pag-unawa sa problema sa negosyo na binanggit sa itaas ay susi sa tagumpay nito.
-
Pagpili ng naaangkop na modelo: Mayroong maraming iba't ibang uri ng mga modelo ng machine learning, bawat isa ay may sariling mga kalakasan at kahinaan. Dapat piliin ng isang machine learning engineer ang modelong pinakaangkop para sa problemang kinakaharap, na isinasaalang-alang ang likas na katangian ng data at ang nais na resulta. Ang isang mahusay na inhinyero ng ML ay dapat na pamilyar sa isang malaking hanay ng mga algorithm upang makapili mula sa mga ito.
-
Pagsasanay sa modelo: Kapag napili na ang modelo, ang susunod na hakbang ay sanayin ito gamit ang nalinis at paunang naprosesong data. Kabilang dito ang paggamit ng mga algorithm upang isaayos ang mga parameter ng modelo upang tumpak nitong mahulaan ang mga resulta o maiuri ang data. Ang isa sa pinakamahalagang mga algorithm ng pagsasanay ay ang gradient descent.
-
Pagsusuri at pag-optimize ng modelo: Matapos masanay ang modelo, mahalagang suriin ang pagganap nito upang matiyak na ito ay tumpak at maaasahan. Maaaring kabilang dito ang pagsubok sa modelo sa isang hiwalay na dataset, o paggamit ng iba't ibang sukatan upang sukatin ang pagganap nito. Kung hindi kasiya-siya ang performance ng modelo, maaaring kailanganin ng machine learning engineer na bumalik at i-optimize ang modelo sa pamamagitan ng pagsasaayos ng mga parameter nito, o pagpili ng ibang modelo sa kabuuan.
-
Pag-deploy ng modelo: Kapag nasanay at na-optimize na ang modelo, handa na itong i-deploy sa isang kapaligiran ng produksyon. Maaaring kabilang dito ang pagsasama ng modelo sa isang umiiral na application, o pagbuo ng isang bagong application na partikular para magamit ang modelo. Pinipili ng karamihan sa mga kumpanya na i-host ang kanilang mga modelo sa isang nakalaang serbisyo sa cloud, gaya ng Amazon Web Services (AWS), Microsoft Azure, o Google Cloud Platform (GCP).
-
Pagsubaybay at pagpapanatili ng modelo: Kahit na matapos ang pag-deploy ng modelo, ang gawain ng isang machine learning engineer ay hindi pa tapos. Mahalagang patuloy na subaybayan ang modelo upang matiyak na gumaganap ito gaya ng inaasahan at gumawa ng anumang kinakailangang mga update o pagsasaayos. Maaaring kabilang dito ang muling pagsasanay sa modelo sa bagong data o pag-fine-tune ng mga parameter nito upang mapabuti ang pagganap nito. Ang karaniwang halimbawa ng pagkasira ng performance ng modelo ay sanhi ng data drift, kapag nagbago ang pamamahagi ng data sa paglipas ng panahon, at hindi na-update ang modelo (Isipin, halimbawa](https://www.technologyreview.com/2020/04/27/1000658/google-medical-ai-accurate- lab-real-life-clinic-covid-diabetes-retina-disease/), tungkol sa isang modelong sinanay upang tuklasin ang mga senyales ng retinopathy sa isang lab sa ilalim ng ilang partikular na kondisyon ng pag-iilaw, ngunit pagkatapos ay i-deploy sa ligaw kung saan ginagamit ito sa mga natural na kondisyon ng pag-iilaw ).
Bilang karagdagan sa mga gawaing ito, ang isang machine learning engineer ay maaari ding maging responsable para sa pananaliksik at pag-unlad, at pakikipagtulungan sa mga cross-functional na team. Dapat din silang manatiling up-to-date sa pinakabagong mga diskarte at teknolohiya sa pag-aaral ng machine, habang patuloy silang nagbabago.
Ngayong alam na natin kung ano ang ginagawa ng isang machine learning engineer sa kanilang trabaho, tingnan natin ang mga kasanayang kailangan nito.
2. Ano ang mga Kakayahang Dapat Taglayin ng isang Machine Learning Engineer?
Upang maging isang machine learning engineer, mayroong ilang mga kasanayan na mahalaga:
-
Mahusay na kasanayan sa programming: Ang mga machine learning engineer ay kailangang maging bihasa sa isa o higit pang programming language, gaya ng Python). Dapat silang kumportable sa pagtatrabaho sa malalaking codebase at makapagsulat ng mahusay, maayos na pagkakaayos ng code.
-
Pagmamanipula at pagsusuri ng data: Ang mga modelo ng machine learning ay sinanay sa malalaking dataset, kaya mahalaga para sa mga machine learning engineer na magkaroon ng malakas na kasanayan sa pagmamanipula at pagsusuri ng data. Kabilang dito ang pagtatrabaho sa mga tool gaya ng [SQL](https://en.wikipedia.org/wiki/Python_(programming_language), Pandas), at NumPy upang linisin, baguhin, at suriin ang data.
-
Mga konsepto at diskarte sa machine learning: Ang isang machine learning engineer ay dapat magkaroon ng malakas na pag-unawa sa mga konsepto at diskarte sa machine learning, kabilang ang pinangangasiwaan at hindi pinangangasiwaang pag-aaral, mga decision tree, neural network, transformer architecture atbp. Dapat din silang pamilyar sa iba't ibang algorithm, at magagawang pumili ng pinakaangkop para sa isang partikular na problema.
-
Mga istatistika at posibilidad: Ang mga modelo ng machine learning ay batay sa istatistika at probabilistikong mga prinsipyo, kaya ang isang matibay na pundasyon sa mga lugar na ito ay mahalaga para sa mga inhinyero ng machine learning. Kabilang dito ang pag-unawa sa mga konsepto tulad ng pagsubok sa hypothesis, Bayesian inference, at probability distribution.
-
Data visualization: Ang pagiging epektibong mailarawan at maiparating ang data ay isang mahalagang kasanayan para sa mga machine learning engineer. Kabilang dito ang paggamit ng mga tool gaya ng [Matplotlib](https://en.wikipedia.org/wiki/Pandas_(software), Seaborn, at Tableau upang lumikha ng malinaw at nagbibigay-kaalaman na mga graph at chart.
-
Paglutas ng problema at kritikal na pag-iisip: Ang mga inhinyero sa pag-aaral ng makina ay kadalasang nahaharap sa mga kumplikadong problema na nangangailangan ng mga malikhaing solusyon. Mahalaga para sa kanila na makapag-isip nang kritikal at lapitan ang mga problema sa lohikal at sistematikong paraan.
Upang makuha ang mga kasanayang ito, maaaring magsimula ang isang tao sa pamamagitan ng pagkuha ng mga online na kurso o pagkamit ng degree sa isang larangan tulad ng computer science, data science, o statistics. Mahalaga rin para sa mga naghahangad na machine learning engineer na makakuha ng praktikal na karanasan sa pamamagitan ng pagtatrabaho sa mga proyekto at pagsali sa mga hackathon o online na hamon. Ang pagbuo ng isang malakas na portfolio ng mga proyekto at pagpapakita ng kakayahang maglapat ng mga konsepto ng machine learning sa mga problema sa totoong mundo ay maaaring makatulong sa pagkuha bilang isang machine learning engineer.
Upang matutunan kung paano maging isang mahusay na machine learning engineer, mahalagang malaman kung aling mga tool ang regular nilang ginagamit, upang maituon ang iyong pag-aaral sa kanila.
3. Anong Mga Tool ang Madalas Gamitin ng mga Machine Learning Engineer?
Ano ang ilan sa mga mahahalagang tool na kailangang makabisado ng isang machine learning engineer para maging mahusay sa kanilang trabaho?
Maraming mga tool na karaniwang ginagamit ng mga inhinyero sa pag-aaral ng makina, at ang mga partikular na tool na pinakamahalagang makabisado ay depende sa likas na katangian ng trabaho at mga kagustuhan ng indibidwal. Gayunpaman, narito ang ilang tool na karaniwang ginagamit sa larangan ng machine learning:
-
Mga programming language: Ang mga machine learning engineer ay karaniwang kailangang maging bihasa sa isa o higit pang programming language, gaya ng Python. Ginagamit ang mga wikang ito para magsulat ng code na nagpapatupad ng mga algorithm ng machine learning at bumubuo ng mga modelo, kadalasang gumagamit ng mga nakalaang library at framework.
-
Mga library at framework ng machine learning: Maraming library at framework na available na nagpapadali sa paggawa ng mga modelo ng machine learning, gaya ng scikit-learn, TensorFlow, PyTorch, at JAX. Nagbibigay ang mga library na ito ng mga pre-built na algorithm at function na madaling maisama sa mga proyekto ng machine learning.
-
Mga tool sa pagmamanipula at pagsusuri ng data: Mga tool gaya ng SQL, Pandas, at NumPy ay ginagamit upang manipulahin at pag-aralan ang malalaking dataset. Pinapadali ng mga tool na ito ang paglilinis, pagbabago, at paghahanda ng data para magamit sa mga modelo ng machine learning.
-
Mga tool sa visualization ng data: Mga tool gaya ng Matplotlib, Seaborn, at Tableau ay ginagamit upang lumikha ng malinaw at nagbibigay-kaalaman na mga graph at chart na makakatulong upang mailarawan at maunawaan ang data.
-
Cloud computing platform: Ang mga machine learning model ay kadalasang nangangailangan ng makabuluhang computing resources, at cloud computing platform gaya ng Amazon Web Services (AWS), Microsoft Azure, o Google Cloud Platform (GCP) ay nagbibigay ng access sa mahuhusay na mapagkukunan ng computing kapag hinihiling.
-
Mga tool sa collaboration at pamamahala ng proyekto: Ang mga machine learning engineer ay madalas na nagtatrabaho sa mga team at maaaring gumamit ng mga tool gaya ng Jupyter notebook, Google colab, GitHub, at Asana) upang makipagtulungan at pamahalaan ang mga proyekto.
Bilang karagdagan sa mga tool na ito, mahalaga din para sa mga machine learning engineer na maging pamilyar sa iba't ibang mga algorithm at diskarte sa pag-aaral ng machine, at magkaroon ng isang malakas na pag-unawa sa mga istatistikal at mathematical na konsepto.
Gaya ng nasabi kanina, ang machine learning engineer ay isang halimbawa ng maraming propesyon na umikot sa medyo bagong larangan ng machine learning. Subukan natin at unawain ang mga pagkakaiba sa pagitan ng mga pangunahing titulo ng trabaho.
4. Ano ang Pagkakaiba sa pagitan ng Machine Learning Engineer at…
a. … isang Data Analyst?
Bagama't may ilang magkakapatong sa pagitan ng mga tungkulin ng isang machine learning engineer at isang data analyst, ang mga ito ay mga natatanging propesyon na nagsasangkot ng iba't ibang kasanayan at responsibilidad.
Ang isang data analyst ay pangunahing responsable para sa pagsusuri ng data at pag-uulat sa mga natuklasan upang ipaalam ang mga desisyon sa negosyo. Maaaring kabilang dito ang mga gawain tulad ng pagkolekta at paglilinis ng data, paggawa ng mga graph at chart upang mailarawan ito, at pagpapatakbo ng mga istatistikal na pagsusuri dito. Ang isang data analyst ay maaari ding bumuo ng mga dashboard o ulat upang matulungan ang mga stakeholder na maunawaan at magamit ang data.
Kasama sa trabaho ng isang machine learning engineer ang paggamit ng mga istatistikal at matematikal na pamamaraan upang makabuo ng mga modelo na tumpak na mahulaan ang mga resulta o uriin ang data batay sa mga pattern sa data. Maaari din silang maging responsable para sa pananaliksik at pag-unlad, pakikipagtulungan sa mga cross-functional na team, at pananatiling up-to-date sa pinakabagong mga diskarte at teknolohiya sa machine learning.
Sa pangkalahatan, mas nakatuon ang mga data analyst sa pagsusuri at pag-uulat sa data, habang ang mga machine learning engineer ay higit na tumutuon sa pagbuo at pagpapanatili ng mga modelo ng machine learning. Gayunpaman, mayroong ilang magkakapatong sa pagitan ng dalawang tungkulin, at ang ilang mga propesyonal ay maaaring magtrabaho sa parehong mga lugar.
b. … isang Software Engineer?
Ang isang machine learning engineer at isang software engineer ay parehong may pananagutan sa pagdidisenyo, pagbuo, at pagpapanatili ng mga computer system, ngunit mayroon silang magkaibang mga lugar ng pagtuon at kadalubhasaan.
Ang isang software engineer ay responsable para sa pagbuo ng mga software program at system na nakakatugon sa mga pangangailangan ng isang organisasyon o kliyente. Maaaring kabilang dito ang mga gawain tulad ng pagdidisenyo at pagbuo ng mga application, pagsulat ng code, pagsubok at pag-debug ng mga programa, at pagpapanatili at pag-update ng mga umiiral nang system. Maaaring gumawa ang mga software engineer sa iba't ibang proyekto, kabilang ang mga web application, mobile app, at desktop software.
Ang isang machine learning engineer, sa kabaligtaran, ay nakatuon sa pagbuo at pagpapanatili ng mga modelo ng machine learning. Gumagana ang mga machine learning engineer sa malalaking dataset at gumagamit ng mga istatistikal at mathematical na diskarte upang bumuo ng mga modelo na tumpak na mahulaan ang mga resulta o uriin ang data sa mga partikular na kategorya.
Bagama't parehong may pananagutan ang mga software engineer at machine learning engineer sa pagbuo at pagpapanatili ng mga computer system, mas nakatuon ang mga software engineer sa tradisyonal na software development, habang ang mga machine learning engineer ay nakatuon sa pagbuo at pagpapanatili ng mga modelo ng machine learning.
c. … isang Istatistiko?
Ang isang machine learning engineer at isang statistician ay parehong mga propesyonal na nagtatrabaho sa data at gumagamit ng mga diskarte sa istatistika at matematika upang suriin at gumawa ng mga hula batay sa data. Gayunpaman, mayroon silang iba't ibang mga lugar ng pagtuon at kadalubhasaan.
Ang isang istatistika ay isang propesyonal na gumagamit ng mga istatistikal na pamamaraan upang mangolekta, mag-analisa, at magbigay-kahulugan ng data. Maaaring magtrabaho ang mga istatistika sa iba't ibang larangan, kabilang ang negosyo, pananalapi, pangangalagang pangkalusugan, at pamahalaan. Maaaring sila ang may pananagutan para sa mga gawain tulad ng pagkolekta at pagsusuri ng data, pagbuo ng mga istatistikal na modelo, at paggawa ng mga rekomendasyong batay sa data.
Ang isang machine learning engineer, sa kabilang banda, ay nakatuon sa pagbuo at pagpapanatili ng mga modelo ng machine learning. Ang mga modelong ito ay idinisenyo upang pag-aralan ang data, matuto mula dito, at gumawa ng matatalinong desisyon o hula batay dito. Gumagana ang mga machine learning engineer sa malalaking dataset at gumagamit ng mga istatistikal at mathematical na diskarte upang makabuo ng mga modelo na tumpak na mahulaan ang mga resulta o uriin ang data sa mga partikular na kategorya.
Parehong gumagana ang mga statistician at machine learning engineer sa data at gumagamit ng mga diskarte sa istatistika. Sa pangkalahatan, mas nakatuon ang mga istatistika sa tradisyonal na pagsusuri at pagmomodelo ng istatistika, habang ang mga inhinyero sa pag-aaral ng makina ay nakatuon sa pagbuo at pagpapanatili ng mga modelo ng pag-aaral ng makina.
d. … isang Data Scientist?
Ang isang data scientist ay naglalapat ng mga diskarte sa istatistika at machine learning upang suriin at bigyang-kahulugan ang kumplikadong data. Responsibilidad nila ang pagkuha ng mga insight mula sa data, pagbuo ng mga predictive na modelo, at pagpapadala ng kanilang mga natuklasan sa mga stakeholder.
Parehong nagtatrabaho ang mga machine learning engineer at data scientist sa data at gumagamit ng mga diskarte sa pag-aaral ng machine, ngunit mayroon silang iba't ibang bahagi ng pokus at responsibilidad. Ang mga machine learning engineer ay pangunahing nag-aalala sa pagbuo at pag-deploy ng mga modelo ng machine learning, habang ang mga data scientist ay mas nakatuon sa pagsusuri at pagbibigay-kahulugan sa data upang kumuha ng mga insight at bumuo ng mga predictive na modelo.