【MindsDB】LLMとデータベースを簡単に繋げられるオープンソース

MindsDB LLM OSS

売上管理や顧客情報など、データとしてはどんどん蓄積されているけれど、分析調査や業務の効率化などにうまく活かせていない。日々の分析業務を簡単に自動化できればいいなと思いませんか?

MindsDBを使えば、売上予測や在庫の最適化、顧客の分類などを自動化することができるんです!

今回はMindsDBの概要から導入方法、チュートリアルのサンプルプログラムの解説、料金プランなどをご紹介します。

なんと、いま使っているデータベースと連携しており、今すぐに使えます。
その方法までわかりやすく解説しているので、ぜひ最後までご覧ください!

目次

MindsDBの概要

MindsDBは機械学習モデルを構築し、データ予測や自動機械学習(AutoML)などを行うためのオープンソースのフレームワークです。

MindDBの主な特徴は次の5つです。

  1. 自動機械学習(AutoML)
    MindsDBはユーザーがモデル設計をしなくてもデータから自動的に機械学習モデルを構築することができます。つまり、ユーザーはトレーニングデータと予測したい対象を指定するだけでMindsDBが最適なモデルを生成してくれます。
  2. SQLのようなクエリ言語
    MindsDBはSQL文に似たクエリ言語で操作可能なので、新たな専門言語を身につける学習コストが少なくて済みます。
  3. 直感的でわかりやすいインターフェース
    専用のエディタからプログラムの入力や実行が可能なのもMindsDBの特徴のひとつ。ブラウザがあればすぐに機械学習モデルの構築が可能です。もちろん、コマンドラインインターフェース(CLI)も提供されています。
  4. 様々なデータベースと連携可能
    MindsDBはMySQLやPostgreSQL、Microsoft SQL Server、Oracleといった主要なデータベースだけでなくMongoDBといったNoSQLデータベース、CSVファイルやJSONファイルといったデータフォーマットにも対応しています。
  5. JavaScriptやRubyなどからも利用できる
    MindsDBはPythonをベースに作られているフレームワークですが、REST APIを使うことによりJavaScriptやRuby、C#などからも利用することができます。

これだけ高機能なMindsDBですが、オープンソースなので無料で使えるというのが嬉しいですよね。

機械学習の知識がなくてもデータ予測や分析の自動化を手軽に進めることができるため、まずは試してみましょう!

なお、オープンソースUIについて知りたい方はこちらをご覧ください。
【ChatBot UI】ChatGPT APIをウェブ上から利用できるオープンソースUI!使い方~カスタマイズ方法まで

MindsDBの料金体系

MindsDBはオープンソースのプロジェクトになるので、ご自身の環境にインストールする場合費用はかかりません。

ただ、オープンソースということなので利用に関しては自己責任となる上、使用できるリソースやパフォーマンスに限りがあったり、専門のサポート窓口が用意されていないなど業務で利用するには少し不安な部分もあるかもしれません。

しかし、MindsDBにはそれらの問題を一挙に解決できる「スタータープラン」という有料プランが用意されています!

スタータープランは1時間あたり0.7ドルの従量課金制となっており、専用のインスタンスや計算リソースが割り当てられます。

また、業務で重要となるセキュリティ対策やバックアップにも対応し、MindsDBコアチームのサポートも受けられるなどのサービスが提供されていますので、本格的に運用される際は検討してみてください。

MindsDB料金表:Simple Pricing for powerful AI

MindsDBの使い方

MindsDBは、MindsDB Cloudを使う方法やPythonのpipを使ってWindosやMacにインストールする方法などがありますが、今回はマニュアルに沿ってDockerにてセットアップを行います。

公式マニュアル:Setup for Docker

まずはターミナルを開き、下記のコマンドを入力すると自動でインストールが始まります。

docker run -p 47334:47334 -p 47335:47335 mindsdb/mindsdb

なお、MindsDBをDockerで使う場合、Dockerの設定でメモリが8GB以上であること、HDDに20GB以上の空きがあることが動作条件となるのでご注意ください。

回線速度にもよりますが、30分ほどでインストールが完了し、MindsDBが立ち上がります。

インストール完了後にブラウザでDocker上のリンク127.0.0.1:47334にアクセスするとMindsDBのエディターにアクセスすることができます。

【MindsDBの画面構成】

  1. ナビゲーター
    ファイルやデータベースにアクセスできる
  2. エディター
    ここにプログラムを書く
  3. リザルト
    実行した結果が出力される
  4. データインサイトボタン
    生成したデータを可視化する
  5. Learning Hub
    目的別のチュートリアルが表示される

※上記画面構成の呼び方は便宜上、筆者が付けたものであり公式の呼び方ではありません。

とてもシンプルな画面構成となっていて、一般的なコードエディターと同じように使えるというのもハードルが低くてありがたいですね。

なお、AIを使いこなすための知識について知りたい方はこちらをご覧ください。
AIリテラシーとは?AIリテラシーを身につけるべき理由やおすすめの資格5選を紹介

MindsDBを実際に使ってみた

では、実際にMindsDBのエディターを使ってチュートリアルの「Forecast Quarterly House Sales(四半期別住宅販売の予測)」をやってみましょう!

データベースへ接続する

必要なデータはすでに用意されていますので、まずはデモ用のデータベースに接続します。

下記のコードをコピーして中央のエディターに貼り付けたあと、上の「Run」のボタンを押してください。MindsDBで使う言語はSQLのようなクエリなのでわかりやすいですよね。

CREATE DATABASE example_db
WITH ENGINE = "postgres",
PARAMETERS = {
"user": "demo_user",
"password": "demo_password",
"host": "3.220.66.106",
"port": "5432",
"database": "demo"
};

すると、下部のリザルト画面に実行結果が表示されます。

「接続成功」という旨のメッセージが表示されましたね。

これで、外部のデータベース上でクエリを実行できる準備ができました。

データの確認方法

次に、機械学習モデルのトレーニングに使うデータをプレビューしてみましょう。

こちらに関しても、すでにデータベースに入っているデータを参照します。

SELECT *
FROM example_db.demo_data.house_sales
LIMIT 10;

上記コードをエディターに入力しRunボタンをクリックすると、今回はメッセージではなくデータベースの中身がテーブル形式でリザルト画面に表示されました。

さらに、「Data Insights」のボタンに緑色の丸が付き、クリックできるようになっているので押してみましょう。

テーブルのデータがグラフ化され、見やすくなっていますね!

ただ、何度か試してみたのですが、同じコードでもData Insightのボタンをクリックできないときがありました。
その時はブラウザをリロードしてからRunのボタンをクリックするとData Insightが見れるようになったので試してみてください。

以上がMindsDBの基本的な使い方になります。

機械学習モデルの作成

次に、MindsDBのメインである機械学習モデルを作ってトレーニングしましょう。

CREATE MODEL構文を使って、どのクエリをトレーニングに使用し、何を予測したいかを指定します。

今回はMA、つまり住宅販売における中央価格の移動平均であるMA列というのを予測したいと仮定しています。

CREATE MODEL
mindsdb.house_sales_model
FROM example_db
(SELECT * FROM demo_data.house_sales)
PREDICT ma
ORDER BY saledate
GROUP BY bedrooms, type

— 四半期が対象なので、次の四半期を予測するために過去2年間を見ます

WINDOW 8
HORIZON 4;

モデルを作成中は左下に進捗状況が表示されるほか、下記コマンドでもステータスを確認できます。

DESCRIBE house_sales_model;

モデル作成のステータスが完了になれば、特定の期間の予測を生成できるようになります。

予測データの生成

今回はLATESTキーワードを使って最新のトレーニングデータの直後の予測を生成してみます。

SELECT m.saledate as date, m.ma as forecast
FROM mindsdb.house_sales_model as m
JOIN example_db.demo_data.house_sales as t
WHERE t.saledate > LATEST AND t.type = 'house'
AND t.bedrooms=2
LIMIT 4;

リザルト画面に3ヶ月ごとの予測データが出力されます。

typeをhouseからunitに変更したり、bedroomsの数字を変えてRunボタンをクリックするとそれぞれのパターンに応じた予測データが生成されるので試してみてください

ワークフローの自動化

さらにMindsDBを使って今までのワークフローを自動化することも可能です。

CREATE JOBコマンドでジョブを作ることができます。

CREATE JOB retrain_model_and_save_predictions (
RETRAIN mindsdb.house_sales_model
FROM example_db
(SELECT * FROM demo_data.house_sales)
USING
join_learn_process = true;
CREATE TABLE my_integration.rentals_{{START_DATETIME}} (
SELECT m.saledate as date, m.ma as forecast
FROM mindsdb.house_sales_model as m
JOIN example_db.demo_data.house_sales as t
WHERE t.saledate > LATEST
LIMIT 4
)
)
END '2023-10-30 00:00:00'
EVERY 2 days;

上記は2023年10月30日まで、2日おきに予測データを生成するというコマンドになります。

注意点としてはジョブを実行する前に、MindsDBにデータベースを接続して、書き込みアクセス権を持つユーザーでテーブル作成ができることを確認してください。

MindsDBを使ってChatGPTと連携してみた

ここからは、MindsDBとChatGPTを連携させていきましょう!

API Keyの取得

MindsDBでChayGPTを使うには、まずAPI Keyを取得する必要があるので、その方法から説明します。

まず、以下のリンクからOpenAIの公式サイトにアクセスします。

リンク:OpenAI Platform

右上のアカウントのアイコンをクリックし、View API Keysを選択します。

Create new secret keyをクリックして、名前を入力すると、API keyを取得できます。

なお、API Keyではこの画面でしか表示、コピーができないので、必ずコピーして保存しておきましょう。

連携

API Keyの取得ができたら、いよいよMindsDBに連携させていきます。

連携の方法は、以下の公式ドキュメントを参考にしました。

参考サイト:extract-insights-from-text-inside-databases-using-openai-gpt3-and-mindsdb-integration

まず、以下のSQLでOpenAI Engineを使用してMindsDBモデルを作成します。

CREATE MODEL questions_without_context_model

PREDICT answer

USING

    engine = ‘openai’,

    question_column = ‘question’,

    api_key = ‘YOUR_OPENAI_API_KEY’;

実行が完了すると、以下のような結果が返ってきます。

これでモデルの構築は完了です。

以下のSQLを実行することで、質問とそれに対する回答を得ることができます。

SELECT question, answer

FROM questions_without_context_model

WHERE question = ‘ここに質問を入力します’’;

ChatGPTは日本語に対応しているので、質問は日本語でもOKです。

しっかりとした応答をしてくれました。

これで、MindsDBでChatGPTが使えるようになりました!

この方法以外にも、ChatGPTと連携する方法はいくつかあり、使い方も様々ですので、気になった方は是非やっていてください!

いかがだったでしょうか?

今回はチュートリアルのデータベースを利用しているので馴染みのないデータも表示されていますが、MindsDBを使えば簡単に機械学習と予測データの生成ができるということを感じていただけたかと思います。

なお、そもそもAPIについて知りたい方はこちらをご覧ください。
ChatGPT APIとは?使い方や料金体系、できること、おすすめ活用事例15選を紹介

MindsDBの評価

日本語対応非対応
使う職業マーケッター・アナリスト
オススメ度★★★★
今後も使いたいかMindsDBは簡単に機械学習や予測データの生成ができ、広い分野において業務効率化という目的に利用するには適切なツール。ただ、英語表記のみで日本語で書かれたドキュメントが少ないためそのあたりが不便だと感じました。
しかしながら、オープンソースということで費用がかからないのは大きなメリット。
とりあえず売上予測や顧客分析を機械学習で試してみたいという方には試す価値ありです。
サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • Hiromi Sai

    ChatGPTメディア運営 / テクニカルライター リベラルアーツ専攻。大学休学中は、Webマーケティング会社のマネージャーとしてライター、ディレクター100名のマネジメントをする。南米のチリとタイでの長期居住歴を持つ。

  • URLをコピーしました!
  • URLをコピーしました!
目次