Paano I-enable ang MLflow Authentication sa Server
Ilunsad ang MLflow UI gamit ang kasunod na command para paganahin ang MLflow authentication:
mlflow server --app-name basic-authSa pamamagitan ng pag-restart ng server nang walang opsyon sa pangalan ng app, maaaring piliin ng administrator ng MLflow server na huwag paganahin ang feature na ito kung kailan nila gusto. Narito ang isang screenshot ng command habang ito ay ipinapakita sa command line terminal ng Windows operating system (balewala ang babala):
Nangangailangan na ngayon ang MLflow server ng username at password upang ma-access ang mga eksperimento at artifact ng server kapag na-access sa pamamagitan ng browser sa pamamagitan ng pagpasok ng http://127.0.0.1:5000 bilang URL.
Paano I-setup ang Authentication sa MLflow
Sa ilang maliliit na pagbabago sa mga tagubilin, utos, at mga pangalan ng file ng pagsasaayos, ang pagse-set up ng pagpapatotoo ng MLflow sa Windows ay halos kapareho sa pagse-set up nito sa Linux.
Narito ang isang tutorial para sa pag-configure ng MLflow authentication sa Windows gamit ang 'htpasswd' at Nginx bilang isang reverse proxy. Tandaan na ang pagsasaayos na ito ay nagbibigay-daan sa simpleng pagpapatunay, at napakahalaga na sapat na protektahan ang computer na nagpapatakbo ng MLflow at Nginx upang maiwasan ang isang hindi awtorisadong pag-access. Pag-isipang gamitin ang OAuth o ikonekta ang MLflow sa mga external na provider ng pagkakakilanlan para sa mga production environment o mas mahigpit na mga kinakailangan sa seguridad.
Sa tutorial na ito, tatalakayin natin ang pag-set up ng pangunahing pagpapatunay gamit ang 'htpasswd' para sa pamamahala ng user/password at Nginx bilang isang reverse proxy.
Hakbang 1: I-install ang Htpasswd
Bagama't ang 'htpasswd' ay hindi isang katutubong Windows application, gumagamit kami ng isang third-party na tool na kilala bilang htpasswd utility ng Apache Lounge dito. I-download ito mula sa opisyal na website ng Apache Lounge. Narito ang isang screenshot na nagpapakita na mayroon kaming 'htpasswd.exe' sa direktoryo ng bin ng Apache pagkatapos i-download ang zip file at i-extract ito sa aming gumaganang direktoryo:
Upang magamit ang 'htpasswd.exe' mula sa anumang command prompt, kopyahin ito ngayon sa isang lokasyon sa PATH ng iyong system sa variable ng Environment.
Hakbang 2: Gumawa ng File ng Password
Upang bumuo ng password file, magbukas ng command prompt at pumunta sa naaangkop na lokasyon. Gamitin ang “htpasswd” para gumawa o magtakda ng bagong password file o para idagdag ang mga user sa kasalukuyan. Ang bawat linya sa file ay kailangang may naka-encrypt na username at password. Gamitin ang sumusunod na command upang magdagdag ng mga bagong kredensyal para sa user o i-update ang password ng isang umiiral na user:
htpasswd -c /path/to/PASSWORD_FILE_NAME USERNAMEPumunta sa folder ng Python (sa kasong ito, ang gumaganang direktoryo) at i-type ang nabanggit na command sa terminal o prompt window tulad ng ipinapakita sa sumusunod na snippet. Ang password file, mlflow-authfile, ay nilikha.
Pagkatapos idagdag ang 'admin' username at pindutin ang 'enter' key, hihilingin ng system ang password. Matapos muling i-type ang parehong password sa prompt, matagumpay na nalikha ang user, at ipinapakita nito na naidagdag ang user gamit ang kinakailangang password:
Narito ang isang screenshot na nagpapakita ng direktoryo kung saan nilikha ang kinakailangang file ng password:
Ang isang username at naka-encrypt na password sa format na 'username:password' ay dapat lumabas sa bawat linya ng file.
Hakbang 3: I-install at I-configure ang Nginx
Kunin ang Windows binaries ng Nginx mula sa opisyal na website. I-extract ang na-download na file sa gumaganang direktoryo sa folder ng Nginx:
Gumawa ng bagong MLFlow server block sa Nginx. Lumikha ng direktoryo ng 'mlflow-site' sa pamamagitan ng pagbubukas ng command prompt sa direktoryo ng Nginx:
Oras na para gumawa ng bagong file para sa configuration ng MLflow ngayon. Palitan ang domain name o IP address ng server ng localhost. Gayundin, gamit ang mga forward slashes sa landas, palitan D:/Trabaho/Python/mlflow-auth na may eksaktong landas sa file ng password na naunang ginawa. Baguhin ang halaga ng proxy_pass sa URI ng server ng MLflow. Ang mga port ay nababagay sa kinakailangang mga numero ng port.
Narito ang snippet ng code na babaguhin:
Ipasok ang command na 'ipconfig' sa command prompt upang mahanap ang IP Address:
Hakbang 4: Paganahin ang Nginx Server Block
Upang ma-activate ang Nginx server block, lumikha ng simbolikong link gamit ang sumusunod na command sa command prompt:
cd D:\Trabaho\nginx\conf\mlflow- lugarmklink mlflow D:\Work\nginx\conf\mlflow- lugar \mldaloy
Hakbang 5: Simulan ang Nginx
Ipasok ang command na 'nginx.exe' at mag-navigate sa direktoryo ng Nginx upang ilunsad ang Nginx mula sa isang command prompt:
Hakbang 6: Simulan ang MLflow Server
Sa tulong ng sumusunod na command, na kinabibilangan ng backend storage path ng MLflow server, maaari mong simulan o i-restart ang MLflow server sa isang bagong terminal window o command prompt. Ang mga resulta ng mga eksperimento, paghahanap, at iba pang mga operasyon ay nakaimbak sa landas na ito:
Utos para Simulan ang MLflow Server:
mlflow server --host 127.0.0.1 --port 5000 --backend-store-uri D:/Trabaho/Python/StorageKung, pagkatapos isagawa ang nabanggit na utos, nakita mo ang sumusunod na error, huwag mag-alala; isagawa lamang ang sumusunod na utos upang ayusin ang isyu:
Baguhin ang scheme ng URI upang iimbak ang data ng registry ng modelo sa lokal na file system upang malutas ang error:
mlflow server --host 127.0.0.1 --port 5000 --backend-store-uri file :///D:/Work/Python/Storage
Hakbang 7: I-access ang MLflow gamit ang Authentication
Ngayon, hihiling ang Nginx ng username at password bago magbigay ng access sa MLflow server at mga artifact nito kapag may nag-access sa MLflow sa pamamagitan ng domain o IP address. Ngayon, para ma-access ang UI at API ng MLflow, kailangan mo munang magbigay ng login username at password kapag gumagamit ng web browser para ma-access ang MLflow.
Konklusyon
Ang pagpapatotoo ng MLflow sa Windows ay nangangailangan ng MLflow na maisagawa sa likod ng isang reverse proxy na naka-on ang pagpapatotoo. Sa pagkakataong ito, ang Nginx ay nagsisilbing reverse proxy, na kumikilos bilang middleman sa pagitan ng browser ng user at ng MLflow server. Ang mga user ay hinihiling na maglagay ng username at password bago i-access ang user interface at API para sa MLflow sa pamamagitan ng pag-configure ng Nginx upang ipatupad ang pangunahing pagpapatunay.
Panghuli ngunit hindi ang pinakamaliit, upang matiyak na sumusunod ka sa pinakabago at secure na mga kasanayan, palaging mahalaga na kumonsulta sa pinakabagong dokumentasyon at mapagkukunan para sa MLflow at Nginx.