Dia duit, cónaitheoirí Khabrovsk. Mar a scríobhamar cheana, an mhí seo tá OTUS ag seoladh dhá chúrsa meaisínfhoghlama ag an am céanna, eadhon bonn и chun cinn. Maidir leis seo, leanaimid ag roinnt ábhar úsáideach.
Is é cuspóir an ailt seo ná labhairt ar ár gcéad taithí ag baint úsáide as MLflow.
Cuirfimid tús leis an athbhreithniú MLflow óna fhreastalaí rianaithe agus logáil gach atriall den staidéar. Ansin roinnfimid ár dtaithí maidir le Spark a nascadh le MLflow ag baint úsáide as UDF.
Comhthéacs
Tá muid isteach Sláinte Alfa Bainimid úsáid as meaisínfhoghlaim agus intleacht shaorga chun daoine a chumasú le bheith i gceannas ar a sláinte agus a bhfolláine. Sin an fáth go bhfuil samhlacha meaisínfhoghlama ag croílár na dtáirgí eolaíochta sonraí a fhorbraimid, agus sin an fáth a tarraingíodh muid chuig MLflow, ardán foinse oscailte a chlúdaíonn gach gné den saolré foghlama meaisín.
MLflow
Is é príomhsprioc MLflow ciseal breise a sholáthar ar bharr na meaisínfhoghlama a ligfeadh d’eolaithe sonraí oibriú le beagnach aon leabharlann meaisínfhoghlama (h2o, keras, mleap, pytorch, sklearn и tensorflow), ag tabhairt a cuid oibre go dtí an chéad leibhéal eile.
Soláthraíonn MLflow trí chomhpháirt:
Rianú – taifeadadh agus iarratais ar thurgnaimh: cód, sonraí, cumraíocht agus torthaí. Tá sé an-tábhachtach monatóireacht a dhéanamh ar an bpróiseas chun samhail a chruthú.
Tionscadail – Formáid phacáistithe le rith ar aon ardán (m.sh. SageMaker)
múnlaí – formáid choiteann chun samhlacha a chur isteach chuig uirlisí imlonnaithe éagsúla.
Is ardán foinse oscailte é MLflow (in alpha ag am scríofa) a ligeann duit saolré na foghlama meaisín a bhainistiú, lena n-áirítear turgnamh, athúsáid agus imscaradh.
MLflow a shocrú
Chun MLflow a úsáid ní mór duit do thimpeallacht Python ar fad a shocrú ar dtús, chun é seo a úsáidfimid PyEnv (chun Python a shuiteáil ar Mac, seiceáil amach anseo). Ar an mbealach seo is féidir linn timpeallacht fhíorúil a chruthú ina suiteoimid na leabharlanna go léir is gá chun é a rith.
```
pyenv install 3.7.0
pyenv global 3.7.0 # Use Python 3.7
mkvirtualenv mlflow # Create a Virtual Env with Python 3.7
workon mlflow
```
Déanaimis na leabharlanna riachtanacha a shuiteáil.
Nóta: Bainimid úsáid as PyArrow chun samhlacha ar nós UDF a rith. Ba ghá na leaganacha de PyArrow agus Numpy a shocrú toisc go raibh na leaganacha deireanacha ag teacht salach ar a chéile.
Seoladh Chomhéadain Rianaithe
Ligeann MLflow Tracking dúinn trialacha a logáil agus a cheistiú ag baint úsáide as Python agus REST API. Ina theannta sin, is féidir leat a chinneadh cá háit le déantúsáin mhúnla a stóráil (localhost, Amazon S3, Stóráil Azure Blob, Google Cloud Stóráil nó Freastalaí SFTP). Ós rud é go n-úsáideann muid AWS ag Alpha Health, beidh ár stóráil déantán S3.
# Running a Tracking Server
mlflow server
--file-store /tmp/mlflow/fileStore
--default-artifact-root s3://<bucket>/mlflow/artifacts/
--host localhost
--port 5000
Molann MLflow úsáid a bhaint as stóráil leanúnach comhad. Is éard is stóráil comhad ann ná an áit a stórálfaidh an freastalaí meiteashonraí rith agus turgnamh. Agus an freastalaí á thosú agat, déan cinnte go díríonn sé ar an stór comhad leanúnach. Anseo don turgnamh beidh muid a úsáid go simplí /tmp.
Cuimhnigh, más mian linn an freastalaí mlflow a úsáid chun sean-turgnaimh a reáchtáil, ní mór dóibh a bheith i láthair sa stóráil comhad. Mar sin féin, fiú gan é seo d'fhéadfaimis iad a úsáid san UDF, ós rud é nach bhfuil uainn ach an cosán go dtí an tsamhail.
Nóta: Coinnigh i gcuimhne go gcaithfidh rochtain a bheith ag an Chomhéadain Rianaithe agus an cliant múnla ar an suíomh Déantán. Is é sin, beag beann ar an bhfíric go bhfuil an Chomhéadain Rianaithe ina chónaí i gcás EC2, nuair a bhíonn MLflow á reáchtáil go háitiúil, ní mór go mbeadh rochtain dhíreach ag an meaisín ar S3 chun samhlacha déantán a scríobh.
Rianú Chomhéadain Stórálann déantáin i mbuicéad S3
Samhlacha rith
Chomh luath agus a bhíonn an freastalaí Rianaithe ar siúl, is féidir leat tosú ag oiliúint na múnlaí.
Mar shampla, úsáidfimid an modhnú fíona ón sampla MLflow i Sclábhaí.
Mar a phléigh muid cheana féin, ligeann MLflow duit paraiméadair mhúnla, méadracht agus déantáin a logáil ionas gur féidir leat a rian a choinneáil ar an gcaoi a n-éabhlóidíonn siad thar atriallta. Tá an ghné seo thar a bheith úsáideach mar ar an mbealach seo is féidir linn an tsamhail is fearr a atáirgeadh trí theagmháil a dhéanamh leis an bhfreastalaí Rianaithe nó tuiscint a fháil ar an gcód a chríochnaigh an t-atriall riachtanach ag baint úsáide as logs hash git de gealltanais.
Tá API REST ag an bhfreastalaí rianaithe MLflow, a seoladh ag baint úsáide as an ordú “freastalaí mlflow”, chun ritheanna a rianú agus sonraí a scríobh chuig an gcóras comhad áitiúil. Is féidir leat seoladh an fhreastalaí rianaithe a shonrú ag baint úsáide as an athróg timpeallachta “MLFLOW_TRACKING_URI” agus déanfaidh an API rianaithe MLflow teagmháil go huathoibríoch leis an bhfreastalaí rianaithe ag an seoladh seo chun faisnéis seolta, méadracht logála, etc. a chruthú/a fháil.
Chun freastalaí a sholáthar don mhúnla, teastaíonn freastalaí rianaithe reatha uainn (féach an comhéadan seolta) agus ID Rith an tsamhail.
Rith ID
# Serve a sklearn model through 127.0.0.0:5005
MLFLOW_TRACKING_URI=http://0.0.0.0:5000 mlflow sklearn serve
--port 5005
--run_id 0f8691808e914d1087cf097a08730f17
--model-path model
Chun samhlacha a úsáid ag baint úsáide as feidhmiúlacht riartha MLflow, beidh rochtain againn ar an Chomhéadain Rianaithe chun faisnéis a fháil faoin tsamhail trí shonrú --run_id.
Nuair a théann an tsamhail i dteagmháil leis an bhfreastalaí Rianaithe, is féidir linn críochphointe múnla nua a fháil.
In ainneoin go bhfuil an freastalaí Rianaithe cumhachtach go leor chun samhlacha a sheirbheáil i bhfíor-am, oiliúint a chur orthu agus feidhmiúlacht an fhreastalaí a úsáid (foinse: mlflow // docs // samhlacha # áitiúil), Is réiteach níos cumhachtaí fós é úsáid Spark (baisc nó sruthú) mar gheall ar dháileadh.
Samhlaigh go ndearna tú an oiliúint as líne agus gur chuir tú an tsamhail aschuir i bhfeidhm ar do shonraí go léir. Seo an áit a bhfuil Spark agus MLflow ag taitneamh.
Chun a thaispeáint conas a chuirimid samhlacha MLflow i bhfeidhm ar fhrámaí sonraí Spark, ní mór dúinn leabhair nótaí Jupyter a bhunú chun oibriú le PySpark.
Tosaigh leis an leagan cobhsaí is déanaí a shuiteáil Apache Spark:
cd ~/Downloads/
tar -xzf spark-2.4.3-bin-hadoop2.7.tgz
mv ~/Downloads/spark-2.4.3-bin-hadoop2.7 ~/
ln -s ~/spark-2.4.3-bin-hadoop2.7 ~/spark̀
Suiteáil PySpark agus Jupyter sa timpeallacht fhíorúil:
Tar éis a chinneadh notebook-dir, is féidir linn ár leabhair nótaí a stóráil san fhillteán atá ag teastáil.
Ag seoladh Jupyter ó PySpark
Ós rud é go raibh muid in ann Iúpatar a chumrú mar thiománaí PySpark, is féidir linn leabhar nótaí Jupyter a reáchtáil anois i gcomhthéacs PySpark.
(mlflow) afranzi:~$ pyspark
[I 19:05:01.572 NotebookApp] sparkmagic extension enabled!
[I 19:05:01.573 NotebookApp] Serving notebooks from local directory: /Users/afranzi/Projects/notebooks
[I 19:05:01.573 NotebookApp] The Jupyter Notebook is running at:
[I 19:05:01.573 NotebookApp] http://localhost:8888/?token=c06252daa6a12cfdd33c1d2e96c8d3b19d90e9f6fc171745
[I 19:05:01.573 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 19:05:01.574 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=c06252daa6a12cfdd33c1d2e96c8d3b19d90e9f6fc171745
Mar a luadh thuas, soláthraíonn MLflow gné chun déantúsáin mhúnla a logáil i S3. Chomh luath agus a bheidh an tsamhail roghnaithe againn inár lámha, tá an deis againn é a allmhairiú mar UDF ag baint úsáide as an modúl mlflow.pyfunc.
Go dtí an pointe seo, labhair muid faoi conas PySpark a úsáid le MLflow, ag rith tuar cáilíochta fíona ar an tacar sonraí fíona iomlán. Ach cad más gá duit modúil Python MLflow a úsáid ó Scala Spark?
Rinneamar tástáil air seo freisin trí chomhthéacs Spark a roinnt idir Scala agus Python. Is é sin, chláraigh muid MLflow UDF i Python, agus d'úsáid muid é ó Scala (tá, b'fhéidir nach é an réiteach is fearr, ach an méid atá againn).
Scala Spark + MLflow
Chun an sampla seo cuirfimid Eithne Thoraí isteach sa Iúpatar atá ann cheana féin.
Suiteáil Spark + Toree + Jupyter
pip install toree
jupyter toree install --spark_home=${SPARK_HOME} --sys-prefix
jupyter kernelspec list
```
```
Available kernels:
apache_toree_scala /Users/afranzi/.virtualenvs/mlflow/share/jupyter/kernels/apache_toree_scala
python3 /Users/afranzi/.virtualenvs/mlflow/share/jupyter/kernels/python3
```
Mar a fheiceann tú ón leabhar nótaí ceangailte, roinntear an UDF idir Spark agus PySpark. Tá súil againn go mbeidh an chuid seo úsáideach dóibh siúd a bhfuil grá acu do Scala agus ar mian leo samhlacha meaisínfhoghlama a úsáid i dtáirgeadh.
Cé go bhfuil MLflow i leagan Alfa tráth scríofa na tuarascála seo, tá cuma an-dearfach air. Ní gá ach an cumas chun creataí foghlama meaisín iolracha a rith agus iad a ithe ó chríochphointe amháin a thógann córais mholtóra go dtí an chéad leibhéal eile.
Ina theannta sin, tugann MLflow Innealtóirí Sonraí agus speisialtóirí Eolaíochta Sonraí níos gaire dá chéile, ag leagan ciseal coiteann eatarthu.
Tar éis an iniúchadh seo ar MLflow, táimid muiníneach go rachaimid ar aghaidh agus go n-úsáidfimid é le haghaidh ár bpíblínte Spark agus ár gcórais molta.
Bheadh sé go deas an stóráil comhad a shioncronú leis an mbunachar sonraí in ionad an chórais comhad. Ba cheart go dtabharfadh sé seo críochphointí iolracha dúinn ar féidir leo an stóráil comhad céanna a úsáid. Mar shampla, bain úsáid as cásanna iolracha Presto и Fiachra leis an metastore céanna Gliú.
Mar achoimre, ba mhaith liom buíochas a ghabháil leis an bpobal MLFlow as ár gcuid oibre le sonraí a dhéanamh níos suimiúla.
Má tá tú ag imirt timpeall le MLflow, ná bíodh drogall ort scríobh chugainn agus inis dúinn conas a úsáideann tú é, agus níos mó fós má úsáideann tú é i dtáirgeadh.