HeatWavejp Meetup #09 イベントレポート

目次

HeatWavejp Meetup #09
誰でもできる機械学習と生成AIを試してみよう! HeatWave AutoMLとGenAIのお話。

会場の様子

2024年8月28日(水)にMySQL HeatWave MySQLユーザーコミュニティ第9回イベントを開催しました。
HeatWavejpは、MySQL HeatWave MySQLの良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。

今回のイベントレポートは、スマートスタイル技術部の高橋が担当します!

オープニング&HeatWave 概要

登壇者:内藤 達也(スマートスタイル)、山﨑 由章 氏(HeatWavejp)

オープニング
まずはHeatWavejp運営の内藤さんからのご挨拶です。当日は台風の予報でしたが、進路が遅く東京に到達しなかったため、無事会場で開催することができました。内藤さんから、Zoomでリモート参加の皆さんは、自分の命を大切にしてください!と大袈裟な呼びかけがありました。

今回のテーマは「誰でもできる機械学習と生成AIを試してみよう!」ということで、HeatWaveの機能である機械学習やAutoMLを紹介する内容でした。どのような発表があるのか楽しみです。

HeatWave概要
HeatWavejpの山﨑さんから、初めて参加される方向けにHeatWaveの概要説明をしていただきました。今回のテーマでもある機械学習(AutoML、生成AI)を意識した機能拡張がされたサービスであることが強調されました。

最新アップデート情報

登壇者:中村 謙太 氏 (スマートスタイル)

スマートスタイルの中村さんから、HeatWaveおよびOCIのリリースノートから最新情報を共有いただきました。

HeatWave on AWSで試用期間30日間の無料トライアルが使用可能となりました。ちょっとだけ試して検証してみたい、HeatWaveを触ったことない方でも気軽に使用できます。
他にも新機能の追加が発表されました。
・HeatWave on AWSでPrivateLinkが作成可能に。
・Autopilot Index Advisorによるセカンダリインデックスの提案機能。
昨今サイバー攻撃やセキュリティインシデントが話題となっています。セキュリティ機能の拡充には目が離せません。


MySQL HeatWaveの呼称がHeatWaveに変更になった件について

登壇者:山崎 由章 氏 (HeatWavejp)

HeatWavejpの山﨑さんから、本日2回目のご登壇です。
以前まで「MySQL HeatWave Database Service」と呼ばれていた名称が「HeatWave」へと変更になりました。少々紛らわしいですね。公式ホームページ等では表記が変わっているのか確認していきます。

まずオラクルのホームページ、HeatWaveの紹介ページを見てみます。
https://oracle.com/jp/heatwave/
サービスの総称はHeatWaveとなっており、

その下にスクロールすると
HeatWave GenAI
HeatWave MySQL
HeatWave Lakehouse
HeatWave AutoML
の4つのソリューションがラインナップされています。

次にオラクルのホームページ、MySQLの紹介ページを見てみます。
https://www.oracle.com/jp/mysql/
HeatWave MySQLの表記が確認できます。

次にMySQLのホームページです。
https://www.mysql.com/jp/
HeatWaveの表記が確認できます。

次は、ドキュメントを見てみましょう。HeatWaveのドキュメントは2か所にあります。
一つ目はMySQLドキュメント内にあるHeatWave User Guide。
https://dev.mysql.com/doc/heatwave/en/

HeatWave GenAI
HeatWave MySQL
HeatWave Lakehouse
HeatWave AutoML
の4つのソリューションがラインナップされています。

二つ目はOCIドキュメント内にあるHeatWaveの記述箇所です。
https://docs.oracle.com/ja-jp/iaas/mysql-database/doc/heatwave.html

HeatWaveという表記が確認できます。

また、OCIコンソール画面ではHeatWave MySQLの表記にちゃんと変更されています。
どれも抜け目ありませんね。

ここで呼称についてひとつ疑問が生じます。HeatWaveノードを追加していない、通常のMySQLマネージドサービス(MDS)はどう呼べばいいの?
HeatWavejpユーザ会では、
・HeatWaveを使わない場合 → MDS
・HeatWaveを使っている場合 → HeatWave
と区別する提案がなされています。
少々ややこしい話でしたが、図やホームページを使いながら視覚的に分かりやすい発表だと感じました。


OracleDatabaseエンジニアがHeatWaveのAutoMLを試してみた

登壇者:露木 淳 氏、羽田 久美子 氏(NTTデータ先端技術)

機械学習の知識については、基本的な操作がわかる程度の初心者ユーザと話す羽田さんと露木さん。

機械学習の入門書である『スッキリわかるPythonによる機械学習入門』の練習問題から、タイタニック号の乗客の生存予測と、アヤメの判別をHeatWave AutoMLで実施していただきました。

アヤメの判別は、HeatWave AutoMLの分類モデルを使用して予測していきます。

テーブル作成、データ登録、訓練データとテストデータの分割は手動で行います。
その後は手順通りにモデル作成、予測の実行、予測の説明、モデル評価の流れで進めていきます。

分類結果は上手くいきませんでした。なぜか全て1種類のアヤメと判別されてしまいました。原因を探すため、予測の説明(ML_EXPLAIN)を見返してみるとid列を除外したほうが良さそうということがわかりましたので、exclude_column_listを指定してモデルを再作成します。

そうすると、今度は良い評価率となりました。予測の説明(ML_EXPLAIN)を見ると、花びらの長さ列のみを参考にしていることがわかりました。他の列も参考にしたいので、include_column_listに全部の列を指定したモデルを再作成し、評価を比較してみました。

比較結果は、excludeとincludeどちらを指定してもスコア値で差がでなかったです。理由としてはテストデータが少なかったせいだと予想されています。

総評として、機械学習が全くわからないエンジニアでもAutoMLによるデータ分析ができるが、一方で、意図しない結果が出たときに、機械学習の基礎知識があったほうが対応しやすいという結論になりました。

また、AutoMLが自動で処理した内容についても言及してくださいました。例えば、性別を数値に変換するデータ前処理はAutoMLが自動で処理してくれたため、対応が不要だったとのことでした。


HeatWave AutoML で利用できる機械学習の概要とレコメンデーションの紹介

登壇者:高橋 宣幸 氏、笠原 佳多 氏(スマートスタイル)

前半の登壇者は笠原さんです。
HeatWave AutoMLの紹介ですが、題材はアヤメの判別。偶然にも、前のセッションと丸被りしていました。またアヤメ…という笑いが会場で起こります。

最初に機械学習とは何かという説明がありましたから入ります。初心者に優しい導入です。
アヤメの判別は、機械学習の中でも教師あり学習の分類モデルに当たるそうです。

基本的な流れや結果は前のセッションと同様なので割愛させていただきますが、モデルの説明(MLEXPLAIN*)の解説部分で、花びらの長さ列が結果に影響を多く与えていることについて、特徴量の重要度の値を用いて説明の深掘りがありました。

重要度は-1から1までの値であり、1に近いほど影響を多く与えます。花びらの長さ列の重要度は0.99で限りなく1に近い値ですので、ほとんど花びらの長さ列だけを見ればアヤメの分類ができてしまうというカラクリだそうです。

後半の登壇者は、高橋さんです。

チュートリアルを見ながら進めることで、簡単にHeatWaveで動く機械学習アプリが作成できる、映画レコメンデーションアプリの作成方法講座「Build a Movie Recommendation App with Machine Learning in MySQL HeatWave」を紹介実施してくださいいただきました。

所要時間の目安は2時間とあり、実際には3時間ほどでできたそうです。
HeatWave AutoMLと、ローコード開発プラットフォーム(Oracle APEX)を用いて作成されていました。していきます。

10万件の映画データセットをgrouplensというサイトからダウンロードしてきます。データ構造はシンプルなものになっており、ユーザID、映画ID、5段階評価の3列のみです。ユーザのまだ見ていない映画の中でオススメの映画をレコメンドする機械学習の推論モデルを作成します。

また、アプリケーション側には、映画のタイトルと画像を表示します。Oracle APEXのおかげでコーディングなしで実装できました。

オススメ映画の結果が変わることを期待して、15件ほどデータを追加してみます。
同じジャンルの映画を視聴して高評価を付けた場合は、オススメ映画の傾向は全く変わりませんでした。
また、違うジャンルの映画を視聴して高評価を付けた場合は、オススメ映画がガラッと変わりました。

作ってみた感想としては、機械学習にかかる時間が思ったより短く感じたそうです。また、Oracle APEXで全くコーディングせずにアプリ画面を作成できたのも驚くべき点です。HeatWave MySQLを活用すれば、データベースにあるデータを使って数時間で簡単に機械学習ができてしまう、説得力のある素晴らしいセッションでした。


HeatWave GenAI で社内データを徹底活用(できるのか)

登壇者:成田 優隆 氏(スマートスタイル)

最後のセッションです。AutoMLからテーマが変わってGenAIの話になります。

HeatWave GenAIを使用して、簡単に生成AIを作成できるそうです。
HeatWave GenAIでは、LLMが2種類提供されています。Llama(Llama2-7b)、Mistral(mistral-7b)。7bは7billionのことで、パラメータ数が70億であることの表記です。ChatGPTなどに比べてパラメータ数が少ないのではないか?という疑問が浮かび上がりますが、パラメータ数が少ないというのは決して悪いことではなく、特定領域に限ったデータを扱うのに最適だとのことです。

HeatWave GenAIのRAG機能を活用し、自前のデータを登録することでLLMをカスタマイズ拡張していきます。

登録するデータは、OCIオブジェクトストレージからインポートできます。

VERCTOR STORE LOADコマンドでロードしようとしたらエラーが発生してしまいました。おそらく日本語などのマルチバイト文字が原因かと思い、英語に置換してからやり直すと、無事ロードできたようです。

まずは用意されたLLMそのままの状態で動作テストを行います。質問に対して10秒ほどで回答が返ってきました。ChatGPTなどに比べて若干のラグがあることを認めなければならないようです。

次にRAGを有効化して、自前のデータを投入したモデルで、どのような結果が返ってくるのか確認してみました。
ここで、投入するデータにあえて嘘の情報を教え込ませてみました。「MySQLは有料のソフトウェアであり、MySQLのロゴはサルです。」と入れ知恵した結果はどうでしょうか?
RAGの生成AIにMySQLについて質問すると、嘘の回答がそのまま返ってきてしまいました。嘘情報を丸呑みした支離滅裂な回答に会場から笑いが起きます。

総評として、マルチバイトに未対応であることや、嘘の情報をそのまま返してしまう場合があるため、ユーザー自身による信憑性チェックが必要であることに言及されていました。

懇親会・まとめ

美味しい料理を楽しみながら、日常業務の話題やHeatWaveの将来性について、活発な意見交換がありました。

HeatWavejp Meetup#09も無事大盛況で終了いたしました!
難しそうなイメージの機械学習がHeatWaveなら簡単にできてしまうという実感が湧きました。
HeatWaveの魅力をより多くの方々に知っていただけるよう、今後も活動を継続してまいります。次回のMeetupでは、本記事をご覧の皆様にもご参加いただけることを心よりお待ちしております。

Please join us !

 

よかったらシェアしてね!
  • URLをコピーしました!
目次