Home
Login

SQLとAIを組み合わせたコンパイラ。SQL構文を拡張し、機械学習モデルのトレーニング、予測、評価をサポート。

Apache-2.0Go 5.2ksql-machine-learning Last Updated: 2024-04-18

SQLFlow プロジェクト詳細

プロジェクト概要

SQLFlow は、SQL プログラムを Kubernetes 上で実行されるワークフローにコンパイルするコンパイラです。SQL 構文を拡張することで、トレーニング、予測、モデル評価、モデル解釈、カスタムジョブ、数理計画などの AI タスクをサポートします。

プロジェクトアドレス: https://github.com/sql-machine-learning/sqlflow

コア機能

1. SQL と AI の完璧な融合

SQLFlow は、従来の機械学習開発における課題を解決します。

  • 従来の ML アプリケーション開発には、データエンジニア、データサイエンティスト、ビジネスアナリストなど、複数の役割が必要
  • Python、SQL、SAS、Julia、R などの複数のプログラミング言語を習得する必要がある
  • ツールと開発環境の断片化によるエンジニアリングの困難さ

SQLFlow により、SQL スキルを持つエンジニアは高度な ML アプリケーションを開発できます。

2. 幅広い互換性

サポートされるデータベースシステム:

  • MySQL
  • MariaDB
  • TiDB
  • Apache Hive
  • Alibaba MaxCompute

サポートされる機械学習フレームワーク:

  • TensorFlow
  • Keras
  • XGBoost

3. 拡張された SQL 構文

SQLFlow は標準 SQL 構文を拡張し、機械学習関連のキーワードとステートメントを追加することで、ユーザーが SQL で直接以下を実行できるようにします。

  • モデルトレーニング (TO TRAIN)
  • モデル予測 (TO PREDICT)
  • モデル評価
  • 特徴量エンジニアリング

使用例

モデルトレーニングの例

SELECT *
FROM iris.train
TO TRAIN DNNClassifier
WITH model.n_classes = 3, model.hidden_units = [10, 20]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

モデル予測の例

SELECT *
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;

アーキテクチャ設計

SQLFlow の全体的なアーキテクチャは、以下の特徴を備えています。

1. 拡張性

  • 特定の SQL エンジンではなく、複数の SQL エンジンをサポート
  • ユーザー定義関数 (UDF) に基づいて構文拡張を構築しない
  • 複雑な機械学習モデルとツールキットをサポート

2. 柔軟性と使いやすさ

  • 最先端のアルゴリズムを構成および実行するのに十分な柔軟性
  • 特徴量交差 (feature crosses) などの高度な機能をサポート
  • 学習が容易で、使用のハードルを低減

3. 分散実行

出力は、Kubernetes クラスタ上で分散実行される Argo ワークフローであり、以下を保証します。

  • 高可用性
  • 水平方向への拡張性
  • エンタープライズレベルのデプロイメントサポート

技術的優位性

1. 既存のソリューションとの違い

Microsoft SQL Server: 機械学習サービスを提供しますが、外部スクリプトとして R または Python が必要

Teradata SQL for DL: RESTful サービスを提供し、拡張された SQL SELECT 構文から呼び出すことができます

Google BigQuery: CREATE MODEL ステートメントを通じて SQL で機械学習を有効にします

SQLFlow の利点は次のとおりです。

  • 完全に拡張可能なソリューション
  • 複数の SQL エンジンとの互換性
  • 複雑な機械学習モデルのサポート
  • SQL ステートメントに Python または R コードを埋め込む必要がない

2. ワークフロー統合

  • SQL プログラムを Kubernetes ワークフローにコンパイル
  • Argo ワークフローオーケストレーションのサポート
  • クラウドネイティブアーキテクチャ設計

コミュニティとエコシステム

学術サポート

オープンソースエコシステム

SQLFlow は完全なオープンソースエコシステムを備えています。

  • メインプロジェクト:sql-machine-learning/sqlflow
  • Python クライアント:sql-machine-learning/pysqlflow
  • Zeppelin 統合:sql-machine-learning/zeppelin-sqlflow
  • 公式サイト:sql-machine-learning.github.io

適用シーン

SQLFlow は、特に以下のシナリオに適しています。

  • エンタープライズデータ分析チームが ML 開発のハードルを下げたい場合
  • SQL クエリで直接機械学習を実行する必要があるビジネスシナリオ
  • データ処理と機械学習のワークフローを統合したい組織
  • 拡張可能でクラウドネイティブな ML ソリューションを必要とする企業

まとめ

SQLFlow は、SQL と AI を完璧に組み合わせることで、データ専門家にとって強力で使いやすい機械学習プラットフォームを提供します。機械学習の使用のハードルを下げるだけでなく、クラウドネイティブアーキテクチャを通じてエンタープライズレベルの拡張性と信頼性を保証します。データワークフローに機械学習機能をシームレスに統合したい組織にとって、SQLFlow は理想的な選択肢です。