Kia ora katoa! He kaiwhakawhanake CV ahau i CROC. Kua 3 tau matou e whakatinana ana i nga kaupapa mo te CV. I tenei wa, he maha nga mea i mahia e matou, hei tauira: i tirotirohia e matou nga kaitaraiwa kia kore ai i te wa e taraiwa ana ratou i te inu, i te kai paipa, i te korero waea, i te titiro ki te huarahi, i nga moemoea, i nga kapua. ; I tuhi matou i nga tangata ka peia i nga huarahi motuhake me te eke ki etahi waahi waka waka; te whakarite kia mau potae, karapu, aha atu nga kaimahi; i tautuhia he kaimahi e hiahia ana ki te uru ki te whare; I tatauhia e matou nga mea katoa ka taea e matou.
He aha ahau i mahi ai i enei mea katoa?
I te wa o te whakatinana kaupapa, ka pa ki a matou nga puku, he maha nga raru, etahi o nga raru e mohio ana koe, e mohio ana ranei a muri ake nei.
Kia whakatairite tatou i te ahuatanga
Whakaarohia kua whiwhi mahi matou i tetahi kamupene taitamariki "N", ko ana mahi e pa ana ki te ML. Ka mahi matou i tetahi kaupapa ML (DL, CV), katahi ka huri matou ki tetahi atu mahi, ka okioki, ka hoki ki to matou ake, ki te neuron o tetahi atu ranei.
Ka tae mai te wa o te pono, me mahara koe ki hea koe i mutu ai, he aha nga hyperparameter i whakamatauhia e koe, me te mea nui, he aha nga hua i puta mai. He maha nga whiringa mo te hunga i penapena korero mo nga whakarewatanga katoa: i roto i te upoko, whirihora, notepad, i roto i te taiao mahi i roto i te kapua. I tupono noa ahau ki te kite i tetahi whiringa i te wa e penapenahia ana nga tohutoro rite nga rarangi korero i roto i te waehere, i te nuinga o te waa, he rere rerehua. Whakaarohia inaianei kaore koe i hoki ki to kaupapa, engari ki te kaupapa o te tangata i wehe atu i te kamupene ka riro mai i a koe tetahi tohu me tetahi tauira e kiia nei ko model_1.pb. Hei whakaoti i te pikitia me te whakaatu i nga mamae katoa, me whakaaro koe he tohunga mohio koe.
Haere i mua. Hei whakahaere i te waehere, me hanga e matou me nga tangata katoa ka mahi tahi me te hanga i tetahi taiao. I te nuinga o nga wa kare ratou i whakarere ia ia hei kainga tupu mo tatou. Ka taea hoki tenei hei mahi kore-iti. Kaore koe e hiahia ki te whakapau i te wa mo tenei taahiraa, kaore koe?
Ka whakangungua e matou he tauira (hei tauira, he kairapu waka). Ka tae ki te waahi ka tino pai - kua tae ki te wa ki te whakaora i te hua. Karangatia he car_detection_v1.pb. Katahi ka whakangungua tetahi atu - car_detection_v2.pb. I etahi wa i muri mai, ka kaha ake te ako a o matou hoa mahi, o matou ake ranei, ma te whakamahi i nga hoahoanga rereke. Ko te mutunga mai, he maha nga taonga toi ka hangaia, ko nga korero me whakapau kaha (engari ka mahia e matou a muri ake nei, na te mea he nui ake a matou kaupapa matua).
OK kua mutu katoa Inaianei! He tauira ta matou! Ka taea e tatou te timata ki te whakangungu i te tauira e whai ake nei, te hanga hoahoanga hei whakaoti rapanga hou, ka taea ranei te haere ki te tii? A ko wai ka toha?
Te tautuhi raruraru
Ko te mahi i runga i tetahi kaupapa, hua ranei he mahi na te tini o nga tangata. A, ka roa te wa, ka wehe nga tangata, ka tae mai, ka nui ake nga kaupapa, ko nga kaupapa ano ka tino uaua. I tetahi ara, i tetahi atu ranei, ko nga ahuatanga mai i te huringa kua whakaahuahia i runga ake nei (a ehara i te mea anake) i etahi huinga ka puta mai i te whitiwhiti ki te whitiwhiti. Ko enei mea katoa ka pau te wa, te whakama, te uaua, te kore e pai ki te kaihoko, me te mutunga, ka ngaro te moni. Ahakoa te nuinga o nga wa ka whai tatou katoa i te rake tawhito kotahi, e whakapono ana ahau kaore tetahi e hiahia ki te whakahoki ano i enei waa.
No reira, kotahi te huringa o te whanaketanga ka kite tatou he raruraru hei whakatika. Ki te mahi i tenei ka hiahia koe:
te rokiroki pai i nga hua mahi;
kia ngawari te tukanga whakauru kaimahi hou;
whakangawari i te tukanga o te whakatakoto i tetahi taiao whanaketanga;
whirihora i te tukanga whakaputa tauira;
he huarahi watea ki te whakamana i nga tauira;
kimihia he taputapu whakahaere kawanatanga tauira;
kimihia he huarahi ki te tuku tauira ki te whakaputa.
Te ahua nei he mea tika kia puta mai he rerenga mahi e taea ai e koe te whakahaere ngawari me te ngawari o tenei huringa ora? Ko tenei mahi ka kiia ko MLOps
MLOps, DevOps ranei mo te ako miihini, ka taea e nga roopu pūtaiao raraunga me nga roopu IT ki te mahi tahi me te whakanui ake i te tere o te whakawhanaketanga tauira me te horahanga ma te aroturuki, te whakamana, me te whakahaere mo nga tauira ako miihini.
Ka taea e koe panuiHe aha nga whakaaro o nga taangata Google mo enei mea katoa? Mai i te tuhinga e marama ana ko MLOps he mea tino nui.
I tua atu i roto i taku tuhinga ka whakaahua noa ahau i tetahi waahanga o te tukanga. Mo te whakatinanatanga, ka whakamahia e ahau te taputapu MLflow, no te mea ... He kaupapa tuwhera tenei, he iti noa te waehere e hiahiatia ana hei hono me te whakauru ki nga anga ml rongonui. Ka taea e koe te rapu i te Ipurangi mo etahi atu taputapu, penei i a Kubeflow, SageMaker, Trains, me etahi atu, ka kitea pea tetahi e pai ake ana ki o hiahia.
"Hanga" MLOps e whakamahi ana i te tauira o te whakamahi i te taputapu MLFlow
Ko te MLFlow he papaa tuwhera mo te whakahaere huringa ora o nga tauira ml (https://mlflow.org/).
E wha nga waahanga kei roto i te MLflow:
Aroturuki MLflow - ka kapi i nga take o te tuhi i nga hua me nga tawhā i puta ai tenei hua;
Kaupapa MLflow - ka taea e koe te kiki i te waehere me te whakaputa ano i runga i tetahi papanga;
Nga Tauira MLflow - te kawenga mo te tuku tauira ki te hanga;
MLflow Registry - ka taea e koe te penapena tauira me te whakahaere i o raatau ahuatanga i roto i te putunga putunga.
E rua nga hinonga e mahi ana a MLflow:
Ko te whakarewatanga he huringa katoa o nga whakangungu, tawhā me nga inenga e hiahia ana matou ki te rehita;
Ko te whakamatautau he "kaupapa" e haere tahi ana.
Ko nga waahanga katoa o te tauira ka whakatinanahia ki te punaha whakahaere Ubuntu 18.04.
1. Tukuna te tūmau
Kia ngawari ai te whakahaere i ta maatau kaupapa me te whiwhi i nga korero katoa e tika ana, ka tukuna e matou he tūmau. E rua nga waahanga matua o te tūmau aroturuki MLflow:
toa backend - te kawenga mo te penapena korero mo nga tauira kua rehitatia (tautoko 4 DBMS: mysql, mssql, sqlite, me te postgresql);
toa taonga - te kawenga mo te penapena taonga (tautoko i nga whiringa rokiroki e 7: Amazon S3, Azure Blob Storage, Google Cloud Storage, FTP server, SFTP Server, NFS, HDFS).
rite toa taonga Mo te ngawari, me tango he tūmau sftp.
hanga he roopu
$ sudo groupadd sftpg
tāpirihia he kaiwhakamahi me te tautuhi i tetahi kupuhipa mo ia
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
tīmata anō te ratonga
$ sudo systemctl restart sshd
rite toa tuara Me tango i te postgresql.
$ sudo apt update
$ sudo apt-get install -y postgresql postgresql-contrib postgresql-server-dev-all
$ sudo apt install gcc
$ pip install psycopg2
$ sudo -u postgres -i
# Create new user: mlflow_user
[postgres@user_name~]$ createuser --interactive -P
Enter name of role to add: mlflow_user
Enter password for new role: mlflow
Enter it again: mlflow
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
# Create database mlflow_bd owned by mlflow_user
$ createdb -O mlflow_user mlflow_db
Hei timata i te tūmau, me whakauru koe i nga kohinga python e whai ake nei (Ka tūtohu ahau ki te hanga i tetahi taiao mariko motuhake):
Kia kore ai e ngaro nga hua o a matou whakangungu, kia mohio nga uri kaiwhakawhanake a muri ake nei ki nga mea kei te tupu, kia taea hoki e nga hoa pakeke me koe te wetewete marie i nga mahi ako, me tapiri atu he aroturuki. Ko te whainga ko te tiaki i nga tawhā, inenga, i nga mahi toi me etahi atu korero mo te timatanga o te whakangungu, i roto i ta maatau, i runga i te tūmau.
Hei tauira, i hanga e ahau he iti kaupapa i runga i te github i runga i Keras mo te wehewehe i nga mea katoa kei roto Ko nga raraunga COCO. Hei taapiri i te aroturuki, i hanga e ahau he konae mlflow_training.py.
Anei nga rarangi ka puta nga mea tino whakamere:
def run(self, epochs, lr, experiment_name):
# getting the id of the experiment, creating an experiment in its absence
remote_experiment_id = self.remote_server.get_experiment_id(name=experiment_name)
# creating a "run" and getting its id
remote_run_id = self.remote_server.get_run_id(remote_experiment_id)
# indicate that we want to save the results on a remote server
mlflow.set_tracking_uri(self.tracking_uri)
mlflow.set_experiment(experiment_name)
with mlflow.start_run(run_id=remote_run_id, nested=False):
mlflow.keras.autolog()
self.train_pipeline.train(lr=lr, epochs=epochs)
try:
self.log_tags_and_params(remote_run_id)
except mlflow.exceptions.RestException as e:
print(e)
I konei ko self.remote_server he takai iti i runga i nga tikanga mlflow.tracking. MlflowClient (I mahia e au mo te waatea), me te awhina i a au ka hangaia he whakamatautau me te whakahaere i runga i te tūmau. I muri mai, ka tohu ahau ki hea e tika ai kia hanumi nga hua whakarewatanga (mlflow.set_tracking_uri(self.tracking_uri)). Ka taea e au te takiuru aunoa mlflow.keras.autolog(). I tenei wa ka tautokohia e MLflow Tracking te takiuru aunoa mo TensorFlow, Keras, Gluon XGBoost, LightGBM, Spark. Mena kare ano koe i kite i to anga, whare pukapuka ranei, katahi ka taea e koe te takiuru marama. Kei te timata matou ki te whakangungu. Rēhitahia nga tohu me nga tawhā whakauru ki te tūmau mamao.
E rua nga raina me koe, pera i era atu, ka whai waahi ki nga korero mo nga whakarewatanga katoa. Matahau?
3. Ka tuhia e matou te kaupapa
Inaianei kia ngawari ki te whakarewa i te kaupapa. Ki te mahi i tenei, taapirihia te MLproject me te konae conda.yaml ki te pakiaka kaupapa.
ML kaupapa
Taiao - i roto i taku keehi, ko te conda_env e tohu ana ka whakamahia a Anaconda ki te whakahaere me te whakaahuatanga whakawhirinaki kei roto i te konae conda.yaml;
Nga Tohu Whakauru - he tohu he aha nga konae me nga tawhā ka taea e tatou te whakahaere (ka takiuru aunoa nga tawhā katoa ina timata te whakangungu)
Ka taea e koe te whakamahi i te docker hei taiao wa mahi, mo etahi atu taipitopito tirohia koa tuhinga.
4. Me timata taatau ki te whakangungu
Ka kati matou i te kaupapa ka haere ki te raarangi kaupapa:
git clone https://github.com/simbakot/mlflow_example.git
cd mlflow_example/
Hei whakahaere me whakauru koe i nga whare pukapuka
pip install mlflow
pip install pysftp
No te mea i roto i te tauira ka whakamahi ahau i te conda_env, me whakauru a Anaconda ki to rorohiko (engari ka taea e koe te huri i tenei ma te whakauru i nga kohinga e tika ana ma koe ake me te takaro me nga tawhā whakarewatanga).
Kua oti katoa nga mahi whakarite ka taea e tatou te timata ki te whakarewa i te whakangungu. Mai i te putake kaupapa:
$ mlflow run -P epochs=10 -P categories=cat,dog -P tracking_uri=http://server_host:server_port .
Whai muri i te whakaurunga ki te whakahau, ka hanga aunoa he taiao conda ka timata te whakangungu.
I roto i te tauira i runga ake nei, i paahitia e ahau te maha o nga wa mo te whakangungu, nga waahanga e hiahia ana matou ki te wehe (ka taea e koe te kite i te rarangi katoa konei) me te wāhi noho o tā mātou tūmau mamao.
Ka kitea he rarangi katoa o nga tawhā ka taea ki te konae MLproject.
5. Aromātai i ngā hua ako
I muri i te whakaoti i te whakangungu, ka taea e tatou te haere i roto i te kaitirotiro ki te wahitau o to tatou tūmau http://server_host:server_port
I konei ka kite matou i te rarangi o nga whakamatautau katoa (mauī runga), me nga korero mo nga oma (waenganui). Ka taea e tatou te tiro i nga korero taipitopito (tawhā, inenga, toi me etahi atu korero) mo ia whakarewatanga.
Mo ia ineine ka taea e tatou te tirotiro i te hitori o nga huringa
Ko era. I tenei wa ka taea e matou te tarai i nga hua i roto i te aratau "a-ringa", ka taea hoki e koe te whakarite i te whakamana aunoa ma te whakamahi i te API MLflow.
6. Rehitatia te tauira
I muri i te tātari i to maatau tauira me te whakatau kua rite mo te whawhai, ka haere tonu taatau ki te rehita, mo tenei ka tohua e matou te whakarewatanga e hiahiatia ana (penei i te waahanga o mua) ka heke iho.
Whai muri i to maatau ingoa tauira, he putanga. Mena ka tiakina e koe tetahi atu tauira me te ingoa rite, ka whakahou aunoa te putanga.
Mo ia tauira, ka taea e taatau te taapiri i tetahi whakaahuatanga me te kowhiri i tetahi o nga whenua e toru (Whakaahuatanga, Whakaputa, Whakapuranga); muri iho, ma te whakamahi i te API, ka taea e taatau te uru atu ki enei whenua, me te whakaputanga, he ngawari ake.
He ngawari hoki taatau ki nga tauira katoa
me o ratou putanga
Ka rite ki te waahanga o mua, ka taea nga mahi katoa ma te whakamahi i te API.
7. Hoatuhia te tauira
I tenei wahanga, he tauira (keras) kua whakangungua. He tauira me pehea e taea ai e koe te whakamahi:
I konei ko self.registry ano he takai iti i runga i te mlflow.tracking.MlflowClient, mo te pai. Ko te kaupapa ko te uru atu ahau ki tetahi tūmau mamao me te rapu tauira ki reira me te ingoa kua tohua, me te putanga whakaputa hou. I muri mai, ka tango ahau i te taonga toi i te rohe ki te kōpaki ./model ka hanga i te tauira mai i tenei raarangi mlflow.keras.load_model(local_path). Inaianei ka taea e taatau te whakamahi i ta maatau tauira. Ka taea e nga kaihanga CV (ML) te whakapai ake i te tauira me te whakaputa i nga putanga hou.
I te mutunga
I tukuna e ahau he punaha e taea ai:
rokiroki i nga korero mo nga tauira ML, te ahunga whakamua whakangungu me nga hua;
hohoro te hora i te taiao whanaketanga;
te aro turuki me te tātari i te ahunga whakamua o nga mahi mo nga tauira;
he pai ki te whakaputa me te whakahaere i te ahua o nga tauira;
He ngawari te whakatakoto i nga tauira ka puta.
Ko tenei tauira he taonga takaro, ka noho hei timatanga mo te hanga i a koe ake punaha, ka uru pea ki te aunoatanga o te arotakenga o nga hua me te rehitatanga o nga tauira (nga tohu 5 me te 6, ia) ka taapirihia ranei e koe te whakaputanga o nga huingararaunga, me etahi atu mea ? Ko te kaupapa i ngana ahau ki te kii ko te hiahia koe ki nga MLOps katoa, ko te MLflow he huarahi noa ki te mutunga.
Tuhia he aha nga raru i pa ki a koe kaore au i whakaatu?
He aha te mea ka tapiritia e koe ki te punaha kia tutuki ai o hiahia?
He aha nga taputapu me nga huarahi ka whakamahia e koe ki te whakaoti i te katoa, i tetahi waahanga ranei o nga rapanga?
Ka whakahaerehia e ta maatau kamupene nga huihuinga rereke mo nga tohunga IT, hei tauira: hei te 8 o Hurae i te 19:00 i te wa o Moscow ka tu he huihuinga CV i roto i te whakatakotoranga ipurangi, mena kei te pirangi koe, ka taea e koe te whakauru, te rehitatanga. konei .