Інтеграція H2O.ai AutoML для автоматичного навчання моделей

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Інтеграція H2O.ai AutoML для автоматичного навчання моделей
Середній
від 1 дня до 3 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Інтеграція H2O.ai AutoML для автоматичного навчання моделей

H2O.ai AutoML — одна з найбільш зрілих промислових платформ AutoML із вбудованим стекінгом, leaderboard та підтримкою distributed training на кластері Spark/Hadoop.

H2O AutoML - ключові можливості

Що робить H2O AutoML:

  • Автоматично запускає алгоритми: GBM, XGBoost, Random Forest, Deep Learning, GLM, Stacked Ensembles
  • Будує Stacked Ensemble з найкращих моделей
  • Leaderboard із сортуванням за обраною метрикою
  • Крос-валідація вбудована за умовчанням

Базова інтеграція

Python клієнт:

import h2o
from h2o.automl import H2OAutoML
import pandas as pd

def run_h2o_automl(train_df: pd.DataFrame,
                    target_col: str,
                    max_models: int = 20,
                    max_runtime_secs: int = 600) -> dict:
    """
    H2O AutoML полный pipeline.
    """
    # Инициализация (локально или на кластере)
    h2o.init(nthreads=-1, max_mem_size='8G')

    # Конвертация в H2OFrame
    h2o_train = h2o.H2OFrame(train_df)

    # Типы колонок
    for col in train_df.select_dtypes(include=['object']).columns:
        h2o_train[col] = h2o_train[col].asfactor()

    if train_df[target_col].nunique() <= 20:
        h2o_train[target_col] = h2o_train[target_col].asfactor()

    feature_cols = [c for c in train_df.columns if c != target_col]

    # Запуск AutoML
    aml = H2OAutoML(
        max_models=max_models,
        max_runtime_secs=max_runtime_secs,
        seed=42,
        sort_metric='AUC',
        balance_classes=True,
        stopping_metric='AUC',
        stopping_rounds=5
    )
    aml.train(x=feature_cols, y=target_col, training_frame=h2o_train)

    # Leaderboard
    lb = aml.leaderboard.as_data_frame()

    # Лучшая модель
    best_model = aml.leader

    # MOJO для production деплоя
    mojo_path = best_model.save_mojo(path='/tmp/h2o_mojo/')

    return {
        'leaderboard': lb,
        'best_model_id': best_model.model_id,
        'best_auc': lb.iloc[0]['auc'],
        'mojo_path': mojo_path
    }

Production деплой H2O MOJO

Java-based інференс без H2O сервера:

import subprocess
import json

def deploy_h2o_mojo_rest_api(mojo_path: str, port: int = 8080):
    """
    H2O MOJO: компилируется в Java-артефакт, работает без Python и H2O.
    Подходит для встраивания в Java/Scala микросервисы.
    """
    # Запуск H2O Scoring Server (REST API для MOJO)
    cmd = [
        'java', '-cp', 'h2o-genmodel.jar:scoring-server.jar',
        'hex.genmodel.tools.PredictCsv',
        '--mojo', mojo_path,
        '--input', '/dev/stdin'
    ]
    # В production: используется h2o-mojo-scoring-server Docker образ

    return {'endpoint': f'http://localhost:{port}/predict', 'format': 'CSV/JSON'}

def predict_with_mojo_api(endpoint: str, features: dict) -> dict:
    import requests
    response = requests.post(f'{endpoint}', json={'features': features})
    return response.json()

Інтеграція з Spark (H2O Sparkling Water)

Distributed training на Spark кластері:

# pysparkling — H2O на Spark
from pysparkling import H2OContext
from pysparkling.ml import H2OAutoML as SparkH2OAutoML
from pyspark.sql import SparkSession

def h2o_sparkling_automl(spark_df, target_col: str):
    """
    H2O Sparkling Water: AutoML на Spark DataFrame.
    Подходит для датасетов > 10 млн строк.
    """
    spark = SparkSession.builder.getOrCreate()
    hc = H2OContext.getOrCreate()

    automl = SparkH2OAutoML(
        maxModels=30,
        labelCol=target_col,
        maxRuntimeSecs=3600
    )
    automl.fit(spark_df)

    leaderboard = automl.getAllModelsParams()
    return automl, leaderboard

Терміни: H2O AutoML baseline + leaderboard + MOJO export - 3-5 днів. Sparkling Water кластерний запуск, кастомні метрики, continuous retraining pipeline – 2-3 тижні.