Cia peb xav txog tias peb tau txais txoj haujlwm ntawm lub tuam txhab hluas "N", uas nws cov dej num cuam tshuam nrog ML. Peb ua haujlwm ntawm ML (DL, CV) qhov project, tom qab ntawd rau qee qhov laj thawj peb hloov mus rau lwm txoj haujlwm, feem ntau so, thiab rov qab mus rau peb tus kheej lossis lwm tus neuron.
Peb cob qhia tus qauv (piv txwv li, lub tsheb ntes). Peb mus rau qhov chaw uas nws ua tau zoo heev - nws yog lub sij hawm los cawm qhov tshwm sim. Wb hu nws car_detection_v1.pb. Tom qab ntawd peb cob qhia lwm tus - car_detection_v2.pb. Qee lub sij hawm tom qab, peb cov npoj yaig lossis peb tus kheej qhia ntau dua, siv cov qauv sib txawv. Yog li ntawd, ib pawg ntawm artifacts yog tsim, cov ntaub ntawv uas yuav tsum tau mob siab rau sau (tab sis peb yuav ua qhov no tom qab, vim hais tias rau tam sim no peb muaj ntau yam tseem ceeb).
OK nws tag nrho tam sim no! Peb muaj qauv! Peb puas tuaj yeem pib cob qhia tus qauv tom ntej, tsim cov qauv tsim los daws qhov teeb meem tshiab, lossis peb puas tuaj yeem mus muaj tshuaj yej? Thiab leej twg yuav xa mus?
Kev txheeb xyuas cov teeb meem
Kev ua haujlwm ntawm ib qhov project lossis cov khoom lag luam yog kev ua haujlwm ntawm ntau tus neeg. Thiab dhau sij hawm, tib neeg tawm mus thiab tuaj, muaj ntau txoj haujlwm, thiab cov haujlwm lawv tus kheej ua ntau dua. Ib txoj hauv kev los yog lwm qhov, cov xwm txheej ntawm lub voj voog uas tau piav qhia saum toj no (thiab tsis yog xwb) hauv qee qhov kev sib txuas yuav tshwm sim los ntawm iteration mus rau iteration. Tag nrho cov no ua rau nkim sijhawm, tsis meej pem, ntxhov siab, tej zaum cov neeg siv khoom tsis txaus siab, thiab thaum kawg, poob nyiaj. Txawm hais tias peb txhua tus feem ntau ua raws li cov qub qub qub, kuv ntseeg tias tsis muaj leej twg xav rov ua lub sijhawm no ntau dua.
Yog li, peb tau dhau los ntawm ib lub voj voog kev loj hlob thiab peb pom tias muaj teeb meem uas yuav tsum tau daws. Txhawm rau ua qhov no koj xav tau:
Txhawm rau kom peb yooj yim tswj peb qhov project thiab tau txais tag nrho cov ntaub ntawv tsim nyog, peb yuav xa ib lub server. MLflow tracking server muaj ob lub ntsiab lus tseem ceeb:
backend store β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ 4 Π‘Π£ΠΠ: mysql, mssql, sqlite, and postgresql);
artifact store - lub luag hauj lwm rau khaws cov artifacts (txhawb 7 kev xaiv cia: Amazon S3, Azure Blob Storage, Google Huab Cia, FTP server, SFTP Server, NFS, HDFS).
Raws li a artifact store Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΡΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ sftp ΡΠ΅ΡΠ²Π΅Ρ.
tsim ib pab pawg
$ sudo groupadd sftpg
ntxiv tus neeg siv thiab teeb tus password rau nws
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
rov pib qhov kev pabcuam
$ sudo systemctl restart sshd
Raws li a khw muag khoom backend Wb coj 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
Txhawm rau pib lub server, koj yuav tsum teeb tsa cov pob python hauv qab no (Kuv pom zoo kom tsim ib qho chaw virtual cais):
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)
Ntawm no self.remote_server yog ib qho me me wrapper hla cov txheej txheem mlflow.tracking. MlflowClient (Kuv ua kom yooj yim), nrog kev pab los ntawm qhov kuv tsim ib qho kev sim thiab khiav nws ntawm lub server. Tom ntej no, kuv qhia qhov chaw tso tawm cov txiaj ntsig yuav tsum tau sib koom ua ke (mlflow.set_tracking_uri(self.tracking_uri)). Kuv pab kom tsis siv neeg kaw mlflow.keras.autolog(). Tam sim no MLflow Tracking txhawb kev nkag tsis siv neeg rau TensorFlow, Keras, Gluon XGBoost, LightGBM, Spark. Yog tias koj tsis pom koj lub moj khaum lossis lub tsev qiv ntawv, ces koj tuaj yeem sau npe ncaj qha. Peb tab tom pib kev cob qhia. Sau npe cim npe thiab input parameters ntawm cov chaw taws teeb server.
Ob peb kab thiab koj, zoo li txhua tus neeg, muaj kev nkag mus rau cov ntaub ntawv hais txog txhua qhov kev tshaj tawm. Txias?
3. Peb kos qhov project
Tam sim no cia peb ua kom yooj yim rau kev tso qhov project. Txhawm rau ua qhov no, ntxiv MLproject thiab conda.yaml cov ntaub ntawv mus rau qhov project hauv paus.
MLproject
Cov. Tam sim no, peb tuaj yeem txheeb xyuas cov txiaj ntsig hauv hom "phau ntawv", thiab koj tuaj yeem teeb tsa kev siv tsis siv neeg siv MLflow API.
6. Sau npe tus qauv
Tom qab peb tau txheeb xyuas peb tus qauv thiab txiav txim siab tias nws npaj txhij rau kev sib ntaus sib tua, peb mus rau npe rau nws, rau qhov no peb xaiv lub community launch peb xav tau (raws li qhia hauv kab lus dhau los) thiab nqes mus.
Tom qab peb muab peb tus qauv lub npe, nws muaj ib tug version. Yog tias koj txuag lwm tus qauv nrog tib lub npe, lub version yuav cia li hloov kho dua tshiab.
Rau txhua tus qauv, peb tuaj yeem ntxiv cov lus piav qhia thiab xaiv ib qho ntawm peb lub xeev (Staging, Production, Archived); tom qab ntawd, siv API, peb tuaj yeem nkag mus rau cov xeev no, uas, nrog rau kev hloov pauv, muab kev hloov pauv ntxiv.
Peb kuj muaj kev nkag tau yooj yim rau txhua tus qauv
thiab lawv versions
Ib yam li hauv kab lus dhau los, txhua qhov haujlwm tuaj yeem ua tiav siv API.
Sau cov teeb meem uas koj ntsib uas kuv tsis tau tso tawm?
Koj yuav ntxiv dab tsi rau qhov system kom ua tau raws li koj xav tau?
Koj siv cov cuab yeej thiab cov txheej txheem dab tsi los daws tag nrho lossis ib feem ntawm cov teeb meem?