MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

ሰላም ሁላችሁም! እኔ በCROC የሲቪ ገንቢ ነኝ። በሲቪ መስክ ፕሮጄክቶችን ወደ ተግባር ከገባን 3 ዓመታት አስቆጥረናል። በዚህ ጊዜ ውስጥ ብዙ ነገር አድርገናል ለምሳሌ፡ አሽከርካሪዎች ሲነዱ እንዳይጠጡ፣ እንዳያጨሱ፣ በስልክ እንዳያወሩ፣ መንገዱን እንዳያዩ እና ህልም ወይም ደመና እንዳያዩ ክትትል እናደርጋለን። ; በተለዩ መስመሮች ውስጥ የሚያሽከረክሩትን እና ብዙ የመኪና ማቆሚያ ቦታዎችን የሚወስዱ ሰዎችን መዝግበናል; ሰራተኞቹ የራስ ቁር፣ ጓንት ወዘተ ለብሰው መያዛቸውን አረጋግጧል። ወደ ተቋሙ ለመግባት የሚፈልግ ሠራተኛ ተለይቷል; የምንችለውን ሁሉ ቆጠርን።

ይህን ሁሉ የማደርገው ለምንድነው?

ፕሮጀክቶችን በመተግበር ሂደት ውስጥ እብጠቶችን እንመታቸዋለን, ብዙ እብጠቶች, አንዳንድ እርስዎ የሚያውቋቸው ወይም ወደፊት የሚተዋወቁዋቸው አንዳንድ ችግሮች.

ሁኔታውን እንመስለው

በወጣት ኩባንያ "N" ውስጥ ሥራ እንዳገኘን እናስብ, ተግባሮቹ ከኤምኤል ጋር የተያያዙ ናቸው. በኤምኤል (DL, CV) ፕሮጀክት ላይ እንሰራለን, ከዚያም በሆነ ምክንያት ወደ ሌላ ሥራ እንሸጋገራለን, በአጠቃላይ እረፍት እንወስዳለን እና ወደ እኛ ወይም ወደ ሌላ ሰው የነርቭ ሴል እንመለሳለን.

  1. የእውነት ጊዜ ይመጣል ፣ የት እንዳቆምክ ፣ ምን አይነት hyperparameters እንደሞከርክ እና ከሁሉም በላይ ደግሞ ምን ውጤት እንዳመጣ ማስታወስ አለብህ። በሁሉም ጅምር ላይ መረጃን ለማን ለማከማቸት ብዙ አማራጮች ሊኖሩ ይችላሉ-በጭንቅላቱ ፣ በማዋቀር ፣ በማስታወሻ ደብተር ፣ በደመና ውስጥ በሚሠራበት አካባቢ። በአጋጣሚ hyperparameters በኮዱ ውስጥ እንደ አስተያየት መስመሮች ሲቀመጡ, በአጠቃላይ, የጌጥ በረራ. አሁን ወደ ፕሮጄክትህ ሳይሆን ድርጅቱን ለቆ ለወጣ ሰው ፕሮጀክት እና ኮድ እና ሞዴል_1.pb የሚባል ሞዴል እንደወረስክ አስብ። ምስሉን ለማጠናቀቅ እና ሁሉንም ህመሞች ለማስተላለፍ, እርስዎም የጀማሪ ስፔሻሊስት እንደሆኑ እናስብ.
  2. ቀጥልበት. ኮዱን ለማስኬድ እኛ እና ከእሱ ጋር የሚሰሩ ሁሉ አካባቢ መፍጠር አለብን። ብዙውን ጊዜ በሆነ ምክንያት እርሱን እንደ ርስታችን አልተዉትም። ይህ ደግሞ ቀላል ያልሆነ ተግባር ሊሆን ይችላል። በዚህ ደረጃ ጊዜ ማባከን አይፈልጉም, አይደል?
  3. ሞዴል (ለምሳሌ የመኪና መመርመሪያ) እናሠለጥናለን። በጣም ጥሩ ወደሚሆንበት ደረጃ ደርሰናል - ውጤቱን ለማስቀመጥ ጊዜው አሁን ነው. car_detection_v1.pb እንበለው። ከዚያም ሌላ እናሠለጥናለን - car_detection_v2.pb. ከተወሰነ ጊዜ በኋላ፣ ባልደረቦቻችን ወይም እኛ እራሳችን የተለያዩ አርክቴክቸርዎችን በመጠቀም የበለጠ እናስተምራለን። በውጤቱም ፣ ብዙ ቅርሶች ተፈጥረዋል ፣ መረጃው በጥንቃቄ መሰብሰብ ያለበት (ነገር ግን ይህንን በኋላ እናደርጋለን ፣ ምክንያቱም አሁን የበለጠ ቅድሚያ የሚሰጣቸው ጉዳዮች አሉን)።
  4. እሺ ሁሉም ነገር አልቋል አሁን! ሞዴል አለን! የሚቀጥለውን ሞዴል ማሰልጠን እንጀምራለን፣ አዲስ ችግር ለመፍታት አርክቴክቸር በማዳበር ወይንስ ሻይ ልንጠጣ እንችላለን? እና ማን ያሰማራው?

ችግሮችን መለየት

በአንድ ፕሮጀክት ወይም ምርት ላይ መሥራት የብዙ ሰዎች ሥራ ነው። እና ከጊዜ በኋላ ሰዎች ትተው ይመጣሉ, ብዙ ፕሮጀክቶች አሉ, እና ፕሮጀክቶቹ እራሳቸው የበለጠ ውስብስብ ይሆናሉ. አንድ መንገድ ወይም ሌላ, ከላይ ከተገለፀው ዑደት (እና ብቻ ሳይሆን) በተወሰኑ ውህዶች ውስጥ ያሉ ሁኔታዎች ከመድገም ወደ ድግግሞሽ ይከሰታሉ. ይህ ሁሉ የሚባክን ጊዜን፣ ግራ መጋባትን፣ ነርቮችን፣ ምናልባትም የደንበኞችን እርካታ ማጣት እና በመጨረሻም ገንዘብ ማጣትን ያስከትላል። ምንም እንኳን ሁላችንም አንድ አይነት የድሮ መሰቅሰቂያ የምንከተል ቢሆንም፣ ማንም ሰው እነዚህን ጊዜያት ደጋግሞ ማደስ እንደማይፈልግ አምናለሁ።

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

ስለዚህ አንድ የእድገት አዙሪት ውስጥ አልፈናል እና ሊፈቱ የሚገባቸው ችግሮች እንዳሉ አይተናል። ይህንን ለማድረግ የሚከተሉትን ያስፈልግዎታል:

  • ምቹ በሆነ ሁኔታ የሥራ ውጤቶችን ማከማቸት;
  • አዳዲስ ሰራተኞችን የማሳተፍ ሂደቱን ቀላል ማድረግ;
  • የልማት አካባቢን የመዘርጋት ሂደትን ቀላል ማድረግ;
  • የአምሳያው ሥሪት ሂደትን ያዋቅሩ;
  • ሞዴሎችን ለማረጋገጥ ምቹ መንገድ ይኑርዎት;
  • ሞዴል ግዛት አስተዳደር መሣሪያ ማግኘት;
  • ሞዴሎችን ወደ ምርት ለማቅረብ መንገድ ይፈልጉ.

ይህንን የህይወት ኡደት በቀላሉ እና በተመቻቸ ሁኔታ ለመቆጣጠር የሚያስችል የስራ ሂደት ማምጣት አስፈላጊ ነው? ይህ ልምምድ MLOps ይባላል

MLOps፣ ወይም DevOps ለማሽን መማሪያ፣ የውሂብ ሳይንስ እና የአይቲ ቡድኖች እንዲተባበሩ እና የሞዴል ልማት እና ማሰማራቱን ፍጥነት እንዲጨምሩ ያስችላቸዋል የማሽን መማሪያ ሞዴሎችን በመከታተል፣ በማረጋገጥ እና አስተዳደር።

ይችላሉ ለማክበርጎግል ሰዎች ስለዚህ ሁሉ ምን ያስባሉ? ከጽሁፉ መረዳት እንደሚቻለው MLOps በጣም ትልቅ ነገር ነው።

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

በጽሁፌ ውስጥ የሂደቱን አንድ ክፍል ብቻ እገልጻለሁ። ለትግበራ ፣ የ MLflow መሳሪያን እጠቀማለሁ ፣ ምክንያቱም… ይህ ክፍት ምንጭ ፕሮጀክት ነው, ለማገናኘት አነስተኛ መጠን ያለው ኮድ ያስፈልጋል እና ከታዋቂ ሚሊ ሜትር ማዕቀፎች ጋር ውህደት አለ. እንደ Kubeflow, SageMaker, Trains, ወዘተ የመሳሰሉ ሌሎች መሳሪያዎችን በይነመረቡን መፈለግ እና ምናልባትም ለፍላጎትዎ የበለጠ የሚስማማውን ማግኘት ይችላሉ.

የ MLFlow መሣሪያን በመጠቀም ምሳሌን በመጠቀም MLOps መገንባት

MLFlow የ ml ሞዴሎችን የሕይወት ዑደት አስተዳደር ክፍት ምንጭ መድረክ ነው።https://mlflow.org/).

MLflow አራት ክፍሎችን ያጠቃልላል

  • MLflow Tracking - ውጤቱን የመመዝገብ ውጤቶችን እና ግቤቶችን ይሸፍናል;
  • MLflow ፕሮጀክት - ኮድ ለማሸግ እና በማንኛውም መድረክ ላይ እንደገና ለማባዛት ይፈቅድልዎታል;
  • MLflow ሞዴሎች - ሞዴሎችን ወደ ምርት የማሰማራት ሃላፊነት;
  • MLflow Registry - ሞዴሎችን እንዲያከማቹ እና ግዛታቸውን በማዕከላዊ ማከማቻ ውስጥ እንዲያስተዳድሩ ይፈቅድልዎታል።

MLflow በሁለት አካላት ላይ ይሰራል፡-

  • ማስጀመር መመዝገብ የምንፈልግበት የሥልጠና፣ ግቤቶች እና መለኪያዎች ሙሉ ዑደት ነው።
  • አንድ ሙከራ አንድ ላይ የሚሄድ "ርዕስ" ነው.

ሁሉም የምሳሌው ደረጃዎች በኡቡንቱ 18.04 ኦፕሬቲንግ ሲስተም ላይ ይተገበራሉ።

1. አገልጋዩን ያሰማሩ

ፕሮጀክታችንን በቀላሉ እንድናስተዳድር እና አስፈላጊውን መረጃ ሁሉ እንድንቀበል አገልጋይ እናሰማራለን። MLflow መከታተያ አገልጋይ ሁለት ዋና ዋና ክፍሎች አሉት።

  • የጀርባ መደብር - ሾለ የተመዘገቡ ሞዴሎች መረጃን ለማከማቸት ኃላፊነት ያለው (4 DBMSs ይደግፋል: mysql, mssql, sqlite እና postgresql);
  • artifact store - ቅርሶችን ለማከማቸት ኃላፊነት ያለው (7 የማከማቻ አማራጮችን ይደግፋል Amazon S3, Azure Blob Storage, Google Cloud Storage, FTP አገልጋይ, SFTP አገልጋይ, NFS, HDFS).

እንደ የቅርስ መደብር ለቀላልነት፣ የ sftp አገልጋይ እንውሰድ።

  • ቡድን መፍጠር
    $ sudo groupadd sftpg
  • ተጠቃሚ ያክሉ እና የይለፍ ቃል ያዘጋጁለት
    $ sudo useradd -g sftpg mlflowsftp
    $ sudo passwd mlflowsftp 
  • ሁለት የመዳረሻ ቅንብሮችን ማስተካከል
    $ sudo mkdir -p /data/mlflowsftp/upload
    $ sudo chown -R root.sftpg /data/mlflowsftp
    $ sudo chown -R mlflowsftp.sftpg /data/mlflowsftp/upload
  • ጥቂት መስመሮችን ወደ /etc/ssh/sshd_config ያክሉ
    Match Group sftpg
     ChrootDirectory /data/%u
     ForceCommand internal-sftp
  • አገልግሎቱን እንደገና ያስጀምሩ
    $ sudo systemctl restart sshd

እንደ የጀርባ መደብር 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

አገልጋዩን ለመጀመር የሚከተሉትን የፓይቶን ፓኬጆችን መጫን ያስፈልግዎታል (የተለየ ምናባዊ አካባቢ ለመፍጠር እመክራለሁ)

pip install mlflow
pip install pysftp

አገልጋያችንን እንጀምር

$ mlflow server  
                 --backend-store-uri postgresql://mlflow_user:mlflow@localhost/mlflow_db 
                 --default-artifact-root sftp://mlflowsftp:mlflow@sftp_host/upload  
                --host server_host 
                --port server_port

2. መከታተያ አክል

የሥልጠናችን ውጤት እንዳይጠፋ ፣የወደፊቶቹ የገንቢዎች ትውልዶች ምን እየተፈጠረ እንዳለ እንዲረዱ ፣እና ለትላልቅ ጓዶች እና እርስዎ የመማር ሂደቱን በተረጋጋ ሁኔታ መተንተን እንዲችሉ ፣ክትትልን ማከል አለብን። መከታተል ማለት መለኪያዎችን፣ መለኪያዎችን፣ ቅርሶችን እና ስለስልጠናው አጀማመር ማንኛውንም ተጨማሪ መረጃ በእኛ ሁኔታ በአገልጋዩ ላይ ማስቀመጥ ማለት ነው።

ለምሳሌ እኔ ትንሽ ፈጠርኩ ፕሮጀክት በ github በ Keras ላይ ያለውን ሁሉ ለመከፋፈል የ COCO ውሂብ ስብስብ. ክትትልን ለመጨመር mlflow_training.py ፋይል ፈጠርኩ።

በጣም አስደሳች ነገሮች የሚከሰቱባቸው መስመሮች እዚህ አሉ

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)

እዚህ self.remote_server በ mlflow.tracking ዘዴዎች ላይ ትንሽ መጠቅለያ ነው። MlflowClient (ለምቾት ነው ያደረኩት)፣ በእሱ እርዳታ ሙከራ ፈጠርኩ እና በአገልጋዩ ላይ አሂድ። በመቀጠል የማስጀመሪያው ውጤት የት መቀላቀል እንዳለበት እጠቁማለሁ (mlflow.set_tracking_uri(self.tracking_uri))። አውቶማቲክ ሎጊንግ mlflow.keras.autolog ()ን አንቃለሁ። በአሁኑ ጊዜ MLflow Tracking ለ TensorFlow፣ Keras፣ Gluon XGBoost፣ LightGBM፣ Spark በራስ ሰር መግባትን ይደግፋል። የእርስዎን ማዕቀፍ ወይም ቤተ-መጽሐፍት ካላገኙ ሁልጊዜም በግልጽ መግባት ይችላሉ። ስልጠና እየጀመርን ነው። በርቀት አገልጋዩ ላይ መለያዎችን እና ግቤት መለኪያዎችን ይመዝግቡ።

ሁለት መስመሮች እና እርስዎ፣ ልክ እንደሌላው ሰው፣ ስለ ሁሉም ጅምሮች መረጃ ማግኘት ይችላሉ። ጥሩ?

3. ፕሮጀክቱን እናዘጋጃለን

አሁን ፕሮጀክቱን ለመጀመር ቀላል እናድርገው. ይህንን ለማድረግ የ MLproject እና conda.yaml ፋይልን ወደ ፕሮጀክቱ ስር ያክሉት።
ML ፕሮጀክት

name: flow_segmentation
conda_env: conda.yaml

entry_points:
  main:
    parameters:
        categories: {help: 'list of categories from coco dataset'}
        epochs: {type: int, help: 'number of epochs in training'}

        lr: {type: float, default: 0.001, help: 'learning rate'}
        batch_size: {type: int, default: 8}
        model_name: {type: str, default: 'Unet', help: 'Unet, PSPNet, Linknet, FPN'}
        backbone_name: {type: str, default: 'resnet18', help: 'exampe resnet18, resnet50, mobilenetv2 ...'}

        tracking_uri: {type: str, help: 'the server address'}
        experiment_name: {type: str, default: 'My_experiment', help: 'remote and local experiment name'}
    command: "python mlflow_training.py 
            --epochs={epochs}
            --categories={categories}
            --lr={lr}
            --tracking_uri={tracking_uri}
            --model_name={model_name}
            --backbone_name={backbone_name}
            --batch_size={batch_size}
            --experiment_name={experiment_name}"

MLflow ፕሮጀክት በርካታ ንብረቶች አሉት

  • ስም - የፕሮጀክትዎ ስም;
  • አካባቢ - በእኔ ሁኔታ, conda_env አናኮንዳ ለማሄድ ጥቅም ላይ እንደሚውል እና የጥገኝነት መግለጫው በ conda.yaml ፋይል ውስጥ እንዳለ ያመለክታል;
  • የመግቢያ ነጥቦች - በየትኞቹ ፋይሎች እና በየትኞቹ መለኪያዎች መሮጥ እንደምንችል ይጠቁማል (ስልጠና ሲጀምሩ ሁሉም መለኪያዎች በራስ-ሰር ይመዘገባሉ)

conda.yaml

name: flow_segmentation
channels:
  - defaults
  - anaconda
dependencies:
  - python==3.7
  - pip:
    - mlflow==1.8.0
    - pysftp==0.2.9
    - Cython==0.29.19
    - numpy==1.18.4
    - pycocotools==2.0.0
    - requests==2.23.0
    - matplotlib==3.2.1
    - segmentation-models==1.0.1
    - Keras==2.3.1
    - imgaug==0.4.0
    - tqdm==4.46.0
    - tensorflow-gpu==1.14.0

ዶከርን እንደ የሩጫ ጊዜዎ አካባቢ መጠቀም ይችላሉ ለተጨማሪ ዝርዝሮች እባክዎን ይመልከቱ ሰነድ.

4. ስልጠና እንጀምር

ፕሮጀክቱን ዘግተን ወደ የፕሮጀክቱ ማውጫ እንሄዳለን-

git clone https://github.com/simbakot/mlflow_example.git
cd mlflow_example/

ለማሄድ ቤተ-መጽሐፍት መጫን ያስፈልግዎታል

pip install mlflow
pip install pysftp

ምክንያቱም እኔ conda_env በምጠቀመው ምሳሌ አናኮንዳ በኮምፒዩተርዎ ላይ መጫን አለበት (ነገር ግን ሁሉንም አስፈላጊ ፓኬጆችን እራስዎ በመጫን እና በማስነሻ መለኪያዎች በመጫወት ይህንን መዞር ይችላሉ)።

ሁሉም የዝግጅት ደረጃዎች ተጠናቅቀዋል እና ስልጠናውን መጀመር እንችላለን. ከፕሮጄክቱ ስር;

$ mlflow run -P epochs=10 -P categories=cat,dog -P tracking_uri=http://server_host:server_port .

ትዕዛዙን ከገቡ በኋላ, የኮንዳ አካባቢ በራስ-ሰር ይፈጠራል እና ስልጠናው ይጀምራል.
ከላይ ባለው ምሳሌ ለሥልጠና የዘመናት ብዛት አልፌያለሁ ፣ የምንከፋፍልባቸውን ምድቦች (ሙሉውን ዝርዝር ማየት ይችላሉ) እዚህ) እና የርቀት አገልጋያችን አድራሻ።
ሊሆኑ የሚችሉ መለኪያዎች ሙሉ ዝርዝር በ MLproject ፋይል ውስጥ ይገኛሉ።

5. የትምህርት ውጤቶችን መገምገም

ስልጠናውን ከጨረስን በኋላ በአሳሹ ውስጥ ወደ አገልጋያችን አድራሻ መሄድ እንችላለን http://server_host:server_port

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

እዚህ የሁሉንም ሙከራዎች ዝርዝር (ከላይ በስተግራ) እና እንዲሁም በሩጫዎች (መሃል) ላይ ያለውን መረጃ እናያለን. ለእያንዳንዱ ጅምር የበለጠ ዝርዝር መረጃ (መለኪያዎች፣ መለኪያዎች፣ ቅርሶች እና አንዳንድ ተጨማሪ መረጃዎች) ማየት እንችላለን።

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

ለእያንዳንዱ መለኪያ የለውጦችን ታሪክ መመልከት እንችላለን

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

እነዚያ። በአሁኑ ጊዜ ውጤቱን በ "በእጅ" ሁነታ መተንተን እንችላለን, እና የ MLflow API በመጠቀም አውቶማቲክ ማረጋገጫን ማዋቀርም ይችላሉ.

6. ሞዴሉን ይመዝገቡ

ሞዴላችንን ከመረመርን በኋላ ለጦርነት ዝግጁ መሆኑን ከወሰንን በኋላ መመዝገቡን እንቀጥላለን, ለዚህም እኛ የምንፈልገውን ማስጀመሪያ እንመርጣለን (በቀደመው አንቀጽ ላይ እንደሚታየው) እና ወደ ታች እንወርዳለን.

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

የእኛን ሞዴል ስም ከሰጠን በኋላ, ስሪት አለው. ተመሳሳይ ስም ያለው ሌላ ሞዴል ካስቀመጡ, ስሪቱ በራስ-ሰር ይሻሻላል.

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

ለእያንዳንዱ ሞዴል፣ መግለጫ ጨምረን ከሶስቱ ግዛቶች አንዱን መምረጥ እንችላለን (ስቴጅንግ፣ ፕሮዳክሽን፣ ማህደር)፣ በመቀጠል፣ ኤፒአይን በመጠቀም፣ እነዚህን ግዛቶች ማግኘት እንችላለን፣ ይህም ከስሪት ጋር፣ ተጨማሪ ተለዋዋጭነትን ይሰጣል።

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

እንዲሁም ለሁሉም ሞዴሎች ቀላል መዳረሻ አለን።

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

እና የእነሱ ስሪቶች

MLOps - የማብሰያ መጽሐፍ፣ ምዕራፍ 1

ልክ እንደ ቀደመው አንቀጽ, ሁሉም ስራዎች ኤፒአይን በመጠቀም ሊከናወኑ ይችላሉ.

7. ሞዴሉን ያሰማሩ

በዚህ ደረጃ, ቀደም ሲል የሰለጠነ (ኬራስ) ሞዴል አለን. እንዴት እንደሚጠቀሙበት ምሳሌ፡-

class SegmentationModel:
    def __init__(self, tracking_uri, model_name):

        self.registry = RemoteRegistry(tracking_uri=tracking_uri)
        self.model_name = model_name
        self.model = self.build_model(model_name)

    def get_latest_model(self, model_name):
        registered_models = self.registry.get_registered_model(model_name)
        last_model = self.registry.get_last_model(registered_models)
        local_path = self.registry.download_artifact(last_model.run_id, 'model', './')
        return local_path

    def build_model(self, model_name):
        local_path = self.get_latest_model(model_name)

        return mlflow.keras.load_model(local_path)

    def predict(self, image):
        image = self.preprocess(image)
        result = self.model.predict(image)
        return self.postprocess(result)

    def preprocess(self, image):
        image = cv2.resize(image, (256, 256))
        image = image / 255.
        image = np.expand_dims(image, 0)
        return image

    def postprocess(self, result):
        return result

እዚህ self.registry በ mlflow.tracking.MlflowClient ላይ ትንሽ መጠቅለያ፣ለምቾት ነው። ነጥቡ የርቀት አገልጋይ ማግኘት እና እዚያ ሞዴል በተጠቀሰው ስም እና የቅርብ ጊዜው የምርት ስሪት መፈለግ ነው። በመቀጠል፣ አርቲፊክቱን ወደ ./model አቃፊ አውርጄ ሞዴሉን ከዚህ ማውጫ mlflow.keras.load_model(local_path) እገነባለሁ። አሁን የእኛን ሞዴል መጠቀም እንችላለን. የሲቪ (ML) ገንቢዎች ሞዴሉን በቀላሉ ማሻሻል እና አዲስ ስሪቶችን ማተም ይችላሉ።

በማጠቃለያው

የሚፈቅድ ስርዓት አቅርቤያለሁ፡-

  • ሾለ ኤምኤል ሞዴሎች ፣ የሥልጠና ሂደት እና ውጤቶች መረጃን በማዕከላዊ ያከማቻል ፤
  • የልማት አካባቢን በፍጥነት ማሰማራት;
  • በሞዴሎች ላይ የሥራውን ሂደት መከታተል እና መተንተን;
  • የሞዴሎችን ሁኔታ ለማተም እና ለማስተዳደር ምቹ ነው ፣
  • የተገኙትን ሞዴሎች መዘርጋት ቀላል ነው.

ይህ ምሳሌ አሻንጉሊት ነው እና የራስዎን ስርዓት ለመገንባት እንደ መነሻ ሆኖ ያገለግላል, ይህም የውጤቶችን ግምገማ እና ሞዴሎችን መመዝገብ (ነጥብ 5 እና 6 በቅደም ተከተል) ሊያካትት ይችላል ወይም የውሂብ ስብስቦችን ስሪት ይጨምራሉ, ወይም ሌላ ነገር? ለማንሳት የሞከርኩት ነጥብ በአጠቃላይ MLOps ያስፈልጉዎታል፣ MLflow የማጠናቀቂያ ዘዴ ነው።

ያላሳየኋቸውን ችግሮች ያጋጠሙኝን ጻፉ?
ፍላጎቶችዎን እንዲያሟላ ወደ ስርዓቱ ምን ይጨምራሉ?
ችግሮቹን በሙሉ ወይም በከፊል ለመፍታት ምን ዓይነት መሳሪያዎችን እና ዘዴዎችን ይጠቀማሉ?

PS ሁለት አገናኞችን እተወዋለሁ፡-
github ፕሮጀክት - https://github.com/simbakot/mlflow_example
MLflow - https://mlflow.org/
ለጥያቄዎች የእኔ የሥራ ኢሜይል - [ኢሜል የተጠበቀ]

ድርጅታችን በየጊዜው የተለያዩ ዝግጅቶችን ለአይቲ ስፔሻሊስቶች ያስተናግዳል ለምሳሌ፡- ሐምሌ 8 ቀን 19፡00 በሞስኮ ሰአት በሲቪ ስብሰባ በኦንላይን ፎርማት ይደረጋል፡ ፍላጎት ካለህ መሳተፍ ትችላለህ ምዝገባ እዚህ .

ምንጭ: hab.com

አስተያየት ያክሉ