Търсенето се изпълнява в MLflow

T Rseneto Se Izp Lnava V Mlflow



За проследяване и управление на експериментите с машинно обучение, MLflow предлага широка платформа. Наличието на възможност за търсене е една от ключовите характеристики на MLflow. Това прави възможно идентифицирането на разработените експерименти и организирането им по начин, който улеснява намирането на информацията, когато е необходимо. Можем да търсим изпълнения с помощта на API за търсене на MLflow, като използваме редица различни критерии, които може да включват следното:
  • ID или име на експеримента
  • Run ID
  • Параметри и стойности
  • Метрики и стойности
  • Етикети
  • Други атрибути, които са свързани с пистите

Изпълненията могат да бъдат филтрирани по статус, начален час, краен час и продължителност с помощта на API за търсене на MLflow. Това улеснява филтрирането през много изпълнения и намирането на конкретни изпълнения, от които потребителите се интересуват.

Функция за търсене в MLflow

Използвайте функцията mlflow.search_runs() за достъп до API за търсене на MLflow. Тази функция приема различни аргументи като следните:







  • ID или име на експеримента
  • Филтриране на низ или текст
  • Максималният брой изпълнения за връщане се определя от аргумента max_results

Опростен вариант на клаузата WHERE на SQL (Език за структурирани заявки) е филтърният низ или текст. Може да се използва за указване на критериите, по които искаме да сортираме сериите.



Синтаксис на функцията MLflow Search_Runs().

Действителният идентификатор или име на експеримента, в който искаме да търсим, трябва да бъде заменен с „experiment_id или experiment_name“ в следния пример. Променливата search_criteria позволява въвеждане на критерии за търсене по желание. Тези критерии могат да бъдат определени от показатели, тагове, параметри или допълнителни характеристики. Основният синтаксис на функцията search_runs() е както следва:



# Импортирайте API за търсене mlflow, за да използвате функцията search_runs

импортиране mlflow

# Предоставете някакъв идентификатор или име на експеримент (не е задължително; )

exp_id = „ИД или ИМЕ на експеримента“

# Определете критериите за търсене за писти

низ за_търсене = 'metrics.accuracy > 0,8 И params.learning_rate = '0,01' И params.efficiency_rate > '80''

# Извършете търсенето

бяга = mlflow. search_runs ( експериментални_идентификатори = exp_id , филтър_низ = низ за_търсене )

# Показване на резултатите

печат ( 'Резултати от търсенето:' )

печат ( бяга )

Извършете търсене, като използвате множество критерии

1. Търсене по метрична стойност

Изпълненията могат да бъдат филтрирани по стойностите на конкретни показатели, като се използва полето за показатели в API за търсене на MLflow. Колекция от имена на показатели, разделени със запетаи, се появява в полето за показатели. Например следният филтърен низ намира всички изпълнения със стойност на точност, по-голяма от 0,9:





метрика. точност > 0,9

Пълният списък с показатели, налични за използване в полето за показатели, е даден, както следва:

  • точност
  • аук
  • f1
  • прецизност
  • припомням си
  • карта
  • logloss
  • класификационна_грешка
  • multi_class_logloss

Освен това потребителите могат да филтрират изпълненията по диапазон от стойности на показателя, като използват полето за показатели. Например следващият филтърен низ намира всички изпълнения, които имат мярка за точност със стойност между 0,4 и 0,8:



метрика. точност МЕЖДУ 0,4 И 0,8

В полето за показатели операторите И и ИЛИ комбинират показателите, за да намерят сериите с точност на показателите и стойности на f1 над 0,3 и 0,8:

метрика. точност > 0,3 И показатели. f1 > 0,8

2. Търсене по стойност на параметър

Използвайте полето params в API за търсене на MLflow, за да извършите търсене по стойност на параметър. Имената и стойностите на параметрите са изброени в полето params със запетаи. В този пример горепосоченият филтърен низ намира всички изпълнения с параметър num_boost_round, които имат стойност 100:

параметри. num_boost_round = '100'

Още няколко примера за низове за търсене на стойности на параметри:

  • params.num_boost_round = 900
  • params.learning_rate МЕЖДУ 0,001 И 0,01
  • params.num_boost_round='70' И params.learning_rate='0.01'

3. Търсене по тагове

Ето пример за търсене, използващо тагове:

критерии за търсене = 'tags.mlflow.source.type = 'речник''

Пример за матрицата и стойностите на параметрите за изпълнение на функцията Mlflow.search_runs()

Нека разгледаме пример за настройване на MLflow експеримент, записване на стартирания и след това използване на mlflow.search_runs() за започване на търсене. За да разберете напълно кода, изпълнете следните стъпки:

Стъпка 1: Създайте MLflow експеримент

Започваме с настройка на MLflow експеримент. Той извлича съществуващия експеримент, ако експериментът вече съществува. Ако не, създава нов.

Обяснение на кода:

Библиотеката MLflow се импортира в първия ред на кода, а experiment_name е зададено на „Моят първи MLflow експеримент“ в следващия ред. Когато experiment_name се предаде на функцията „mlflow.get_experiment_by_name“, тази функция връща „Няма“, ако експериментът не съществува, и обект на експеримента в противен случай.

Проверете за съществуването на експеримента в условния оператор. Ако експериментът вече съществува, задайте experiment_id. В противен случай използвайте „mlflow.create_experiment“, за да създадете нов експеримент. ID на експеримента се връща от тази функция. Покажете идентификатора на експеримента на екрана на конзолата или терминала в края на експеримента. Копирайте следния код в бележника и запазете файла с желаното име и разширение “.py”:

# импортиране на библиотека mlflow

импортиране mlflow

# Създайте или извлечете експеримента

exp_name = „Моят първи MLflow експеримент“

# Извлечете експеримента по име с помощта на функцията mlflow get_experiment_by_name

експ = mlflow. get_experiment_by_name ( exp_name )

# Проверете дали експериментът вече не съществува

ако експ е Нито един :

# Създайте нов експеримент и предайте името на експеримента на функцията mlflow.create_experiment

exp_id = mlflow. създайте_експеримент ( exp_name )

# Показване на съобщението за успех на екрана

печат ( „Експериментът не съществува. Експериментът е създаден успешно!“ )

друго :

# Извличане на experiment_id на съществуващия експеримент

exp_id = експ. експеримент_ид

печат ( „Експериментът вече съществува!“ )

# Показване на ID на експеримента

печат ( „ID на експеримента:“ , exp_id )

Сега стартирайте програмата в командния ред или прозореца на терминала, като използвате компилатора на Python и въведете „Python“ и след това името на файла, което в този случай е „MyFirstMlflowExperiment.py“. Когато експериментът се стартира за първи път, той все още не съществува. Така MLFlow създава такъв и отпечатва идентификатора на експеримента на екрана на конзолата:

Стартирайте отново кода, за да проверите дали не създава нови експерименти и да покажете идентификатора на вече съществуващите. Следната екранна снимка показва, че експериментът вече съществува:

Стъпка 2: Регистрирайте изпълненията с показатели и параметри

Нека сега се опитаме да регистрираме някои изпълнения с показателите и параметрите за току-що установения експеримент. В сценарий от реалния свят ние разработваме моделите за машинно обучение и записваме съответната информация, като например показатели и параметри, в края на всяко изпълнение. Тук точността се използва като матрична стойност и в този случай тя е 0,95. Стойностите на параметъра за обучение и коефициент на ефективност са съответно 0,01 и 90. Ето кода:

# Стартирайте изпълнение на MLflow, за да регистрирате показатели и параметри

с mlflow. start_run ( експеримент_ид = exp_id ) :

# Вашият код за машинно обучение тук (това е само симулиран пример)

модел_точност = 0,95

скорост на_машинно_обучение = 0,01

процент_ефективност = 90

# Регистрирайте показатели и параметри

mlflow. log_metric ( 'точност' , модел_точност )

mlflow. log_param ( 'скорост на учене' , скорост на_машинно_обучение )

mlflow. log_param ( 'ефективност' , процент_ефективност )

Резултатът, когато се изпълни горепосоченият код, се вижда тук. Резултатът е същият като преди:

Стъпка 3: Извършете търсене с помощта на Mlflow.search_runs()

И накрая, извършваме търсене в изпълненията, които са регистрирани с помощта на няколко параметъра и показваме резултатите на екрана на терминала:

# Определете критериите за търсене за писти

дефиниране на_критерии за_търсене = 'metrics.accuracy > 0,8 И params.learning_rate = '0,01' И params.efficiency_rate = '90''

# Извършете търсенето

бяга = mlflow. search_runs ( експериментални_идентификатори = exp_id , филтър_низ = дефиниране на_критерии за_търсене )

# Показване на резултатите

печат ( 'Резултати от търсенето:' )

печат ( бяга )

Предупреждение, което се отнася до инструмента Git, се произвежда от изпълнението на функцията search_runs:


Добавете малко код в горната част на файла на Python, за да деактивирате това предупреждение. Ето кратката част от кода:

импортиране mlflow

импортиране Вие

Вие . приблизително [ „GIT_PYTHON_REFRESH“ ] = 'тихо'

Функцията „mlflow.search_runs“ се изпълнява успешно, след като бъдат добавени тези редове код:

Заключение

Функцията „mlflow.search_runs“ позволява на потребителите бързо да изследват и оценят експериментите с машинно обучение, да анализират много изпълнения и да определят оптималните вариации на хиперпараметри или модели, които водят до желаните резултати. Това е ефективен инструмент за наблюдение, планиране и анализ на работния процес на машинно обучение.