Fioneではじめる機械学習〜導入

QiitaにFioneではじめる機械学習〜導入を書きました。

Fioneの基本的な使い方をまとめました。Fioneを利用すれば、ブラウザ上でポチポチと、データをアップロードすれば、機械学習で予測モデルが作成できて、それをDockerで予測API化までできてしまう、というのがわかると思います。Fioneはオープンソース機械学習プラットフォームH2Oを利用しているので、AI関連の専門知識がなくても、精度が高い予測モデルが作成できると思います。

世の中にはAutoML関連で様々なプロダクトがあると思いますが、Fioneの目指すところは専門知識がなくても機械学習をできてしまう、というところ狙っています。なので、データをとりあえずアップロードすれば予測モデルが生成され、それが利用しても良いレベルの予測モデルなのかを教えてくれて、使えるなら予測APIとして利用したいシステムに組み込んで利用できる感じで、専門知識がなくても使えるような感じです。

Fioneは日々改善しているので、何かフィードバックなどあれば、フォーラムに気軽に投稿してください。

Fione 13.6.0 betaのリリース

docker-composeとして提供しているので、zipとかのリリース物はないのですが、v13.6.0というタグを打ちました。というわけで、Fioneを13.6.0 betaとしてリリースすることができました。タグにはベータとは書きませんが、まだまだ使いながら進化していくと思われるので、しばらくはbetaを名乗っておこうとは考えています。

現状では、クイックスタートにもあるように、AutoMLでポチポチやっていけば学習モデルができます。それをDockerにしてAPIにするのでも良いし、テストファイルをアップロードしてKaggleにサブミットできるファイルを生成するのでも良いし、画面でポチポチとやればいろいろとできると思います。

ひとまず、リリースしましたが、今後やっていきたいこととしては、

  • 過去のKaggleコンペのデータを適用する流れをQiitaに書いてみる
  • セッションのクリアなどの処理が怪しいので、そこら辺を整備
  • アップロードしたデータの可視化
  • 学習結果の保存
  • テキストデータを処理できるようにする

あたりの課題を認識しています。他にもいろいろとある気もしますが、いろいろと使ってもらって、フィードバックとかをもらいながら改善できると良いかなと考えています。何かあれば、フォーラムに投げていただければと。

あとは、基本的にはFione自体はオープンソースなので、自由に使ってもらえればよいかと思いますが、Fessのように商用サポートも提供しているので、Fioneを使ったりして、AIや機械学習の仕事があれば、株式会社コードリブズにお知らせいただければと思います!

Fess AutoML: Fione

Fioneというのをはじめました。ここ数ヶ月でFessにいろいろと機能を追加してきましたが、これを作るためだったとも言えます。

Fioneは簡単にいうと、Fessで実現するAutoMLです。結構前から作ろうとは思っていたものの、時間も経ってしまい、昨年末に株式会社コードリブズも始めたし、そこでの主力商品として出していくためにも、今回作った感じです。一応、株式会社コードリブズはオープンなテクノロジーで世の中を効率化していく、というのをモットーとしているので、Fione自体はApacheライセンスで提供するので自由に使ってもられば良いと思います。Fessと同様にコンサルティングやサポートで運営していければ良いと考えています。

Fioneの技術的なところでは、現時点では、Fess, Elasticsearch, H2O, MinIOで構成されています。なんで、Fessなのか?というのもあるかもしれませんが、Fessは10年近くやってきていることもあり、アーキテクチャはかなり汎用的に作られていて、全文検索システムを超えて、機能を差し込んだりも可能です。ゼロからそれなりのものを作ると時間もかかるので、Fessの拡張機能としてFioneは作りました。Fessの商用版のN2 SearchもFessに差し込む形で機能拡張をして販売しているので、仕組み的には同じ感じです。直近では、Fessのインデックスを作ったりはできませんが、どこかのタイミングでは検索との連携は考えています。

Fioneが目指している世界観は、5分でできる機械学習環境、という感じで、専門家でなくても、知識発見ができそうなデータがあれば、特徴や予測とかがそれなりにできる感じを作りたいと考えています。AutoML系のプロダクトやサービスがいろいろと出てきていますが、わかっている人には良いのかもしれませんが、まだまだいろいろな壁が存在していると考えています。Fessも利用者とSolrやElasticsearchの距離を縮めてきたと思っていますが、Fioneも利用者と機械学習の距離を縮めて、業務の効率化などを実現できる環境を提供出れば良いと思っています。

将来的にはFessのインデックスを作れるようにして、データの検索をできるようにしようと思いますが、それ以外のところを見ていくと、AutoMLの機能はH2O.aiを使っています。なので、FessからH2OのAPIを叩いて実行しています。H2OのREST APIも謎の部分があったりして、たまに怪しい挙動をするかもしれませんが、謎が解けるまでは運用回避的な対応しかできないかもしれません…。とはいえ、AutoMLの機能面はきちんと実行できるので、そこはH2Oに頼ろうかと思っています。AutoML周りではFioneとしては前処理部分で独自の機能を追加していくことは考えています。あとは、MinIOはデータの置き場とか、結果の保存とか、その辺のデータを置く場所として利用しています。Fessを含めて、それらの依存しているものたちはスケールアウトがしやすいものばかりだと思うので、全体的に大規模化とかもできるかなと考えています。

ドキュメントは近いうちに書いていこうかと思いますが、現時点でのFioneの提供方法や実行方法はdocker-fioneで提供して、docker-composeで簡単に実行して試せる状態にしていこうと思っています。今のところはH2OのAutoMLの処理の流れに近いものになっていて、わかる人しか使えない雰囲気なので、これは早めに改善していこうと考えています。

という感じで、もう少し手軽に使えるようになったら、使い方を書いていこうと思います。