第252回 SORACOM公式ブログ

ソラコム公式ブログ

IoTの「時系列データ」をChatGPTで分析・未来予測するには? ― IoT-Tech Meetup レポート

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「IoTの「時系列データ」をChatGPTで分析・未来予測するには? ― IoT-Tech Meetup レポート」を再編集したものです。

こんにちは、ソラコムの松下(ニックネーム:Max)です。

IoTではセンサーを用いて現場をデータ化します。例えば冷蔵庫内の温湿度の測定や、来店客数の計測が挙げられます。これらは定期的に計測するため、データは「時系列」すなわち、時間によって並ぶデータです。

一般的には、この時系列データに対して回帰分析等で将来の予測、例えば温度の上昇具合や来客数の増減を予測します。昨今では、機械学習(Machine Learning)を用いて複雑な分析や予測も可能となりましたが、いずれにしても専門的な知識が必要です。

5月30日に開催した、IoTや周辺技術の知見をエンジニア向けに共有するイベント「IoT-Tech Meetup 第1回【ChatGPT × IoT】」では、時系列データを生成系AI「ChatGPT」で分析・未来予測する利点や気を付けたいポイント、そして具体的な方法を紹介しました。その概要や資料をお伝えします。

IoT-Tech Meetupとは?

「IoT-Tech Meetup」は、ソラコムが持つIoTや周辺技術の知見を、主にエンジニアの方に共有する事を目的としてシリーズ開催する無料のオンラインセミナーです。セミナーは、プレゼンテーションの他にQAも用意して、参加者の学びを深めていきます。

「IoT-Tech Meetup」が取り扱うテーマは、Raspberry Pi(ラズパイ)やM5Stack、クラウド型カメラといったハードウェアから、サーバーレスIoTやAIといったクラウド・ソフトウェア、そしてMatter等のIoT向け規格、法規やオープンソースライセンスといったあらゆる面で、IoTを活用するエンジニアの方に役立つ内容を企画・定期開催しています。

IoT-Tech Meetupの開催情報は、ソラコムのオンラインセミナー一覧、もしくは connpass のソラコムページで随時発信しています。

【セッション1】 IoTの振り返りと、IoTが産み出すデータ形式のおさらい

ここからは5月30日のレポートです。
私からは、IoT自体の全体像の振り返りと、IoTが産み出すデータ形式について紹介しました。

まず、IoTにおいてデータとは「今の状態」と「過去の傾向=時系列」と2つの系統がある事を解説しました。今回フォーカスしている「時系列データ」とは過去から現在までの記録ですが、本当に知りたいことは「未来はどうなるのか」という点にあります。

そこで冒頭で解説した通り、一般的には回帰分析やMLを用いる事になりますが、専門的な知識の部分をChatGPTに分析・未来予測させるのが今回の取り組みです。

セッションの終わりでは、ChatGPTを分析・未来予測に用いる利点と、気を付けたい点を解説しました。

  • 利点
    • 事前学習が不要
    • 理由を回答させることで、妥当性を人間が検証可能
  • 気を付けたい点
    • 与えるデータサイズの調整
    • 冪等(べきとう)性が無い(同じデータから別の予測が導き出される可能性がある)

Maxの資料はSpeaker Deckで公開しています。

【セッション2】 時系列データをChatGPTで読み解いてみる

時系列データをChatGPTで分析・未来予測させる具体的な手段については、ソラコム ソリューションアーキテクト 内田(ニックネーム:jet)より解説しました。

まず ChatGPTの全貌を理解するため、基礎となっている LLM(Large Language Model 大規模言語モデル)とChatGPTの関係性を紹介しています。ChatGPTを使用する際に目にする「GPT-3」や「GPT-4」がどういった位置づけなのかが一目でわかる図です。

続いて、ChatGPTに期待できることを3つに分類しました。具体的には「データの解釈と説明」「異常検出のアラート」「自然言語クエリ(問いと答え)」です。

これらを踏まえて、jetよりデモを紹介しました。

まずはAPIの全体像と動作確認を兼ねて、Pythonを用いてWeb上のChatGPTと同様に会話をするデモです。「おっす」という入力に反応してChatGPTから「こんにちは、どうも。」という回答が返ってきています。

このあとは「役割(role)」を与えることで、回答内容が変化することを確認しています。具体的には ChatGPT に対して「あなたは漫画のキャラクターです」と役割を指示したうえで「おっす」と入力すると、回答が変化しました。roleの指示を調整することで、好みの回答が得られることがわかりました。

続いてのデモは、実際の時系列データをChatGPTに分析させる様子です。日付と温度・湿度のデータをChatGPTに与えた上で「なにかわかりますか?」という分析を促す問いを投げたところ、下図のように日時の範囲や温度、湿度に対する一般的な分析結果を回答しています。

このように、まず洞察を得ることが可能なこともこのデモからわかりました。

これら二つの結果を基に、さらなるデモを行っています。roleに「分析結果をJSONで返す」を与えて時系列データを分析させます。その時の指示(プロンプト)は以下の通りです。

また、ChatGPTに異常値の検出をさせて、結果をSlackに通知するデモも行っています。

通知を送るための詳しい構成は後述の資料をご覧ください。

まとめとしては、以下の内容で締めくくられています。

  • 専門的な知識や勘所がわからなくても、新しい発見やひらめきが得られる
  • LLM にすべて任せられるわけでは無いので、試してみる必要はある
  • トークン(実質文字数)をうまく削減することで多くのデータ読み込みが見込める

総じて、時系列データの分析・未来予測にChatGPTを活用することが見いだせたというご紹介になりました。

jetの資料はSpeaker Deckで公開しています。

Q&A

Q: プログラミングとChatGPTを連携しようとすると、チャット特有の機械処理しにくい回答フォーマットが課題になりそうです。出力を確実にJSONのような機械処理しやすいフォーマットにする方法はありますか?

A: LangChain というフレームワークを利用する手段があります。同フレームワークは様々な機能を持っていますが、そのうちの1つに「希望するフォーマットが得られるまで繰り返し問いを投げる」というものがあります。しかし、何度も問いを投げることになり、API利用費がかさむ可能性があるため注意が必要です。そのため Usage limits(費用による上限設定)を設定することをおすすめします。OpenAI のアカウント設定から Billing > Usage limits で設定できます。

Q: トークンを減らすために、日時表現を変えてからChatGPTになげるとかは効果ありそうですか。

A: 非常に効果が見込めると考えられます。例えば「2023-01-01 00:00:00」よりも「01/01 00:00」と不要な情報を削減する手法です。具体的なトークン数は Tokenizer で計測できます。

Q: デモで紹介いただいた Google Colaboratory のコードを紹介いただくことは可能ですか?

A: OpenAIが提供しているAPIを体験する環境の1つとして、Google Colaboratoryは適していると考えています。後日になりますが、当該部分を当ブログで紹介したいと思いますので、ご期待ください。

次回のIoT-Tech Meetupは6/13(火)「GIS・位置情報活用の基礎」

すでに次回のIoT-Tech Meetupの開催が決定しています。
6月13日19時スタートで、GPSをはじめとした位置測位技術の基礎知識と事例や、位置測位を用いた開発の基礎知識と具体例を共有していきます!

すでにお申し込みページはオープンしています。お気軽にご参加ください。

7月開催!IoTの大型カンファレンス「SORACOM Discovery 2023」

7月5日と7月6日の2日間にわたってお届けするIoTカンファレンス「SORACOM Discovery 2023」でも、多くの技術セッションをご用意しています。こちらにもぜひご参加ください!

― ソラコム松下 (max)

投稿 IoTの「時系列データ」をChatGPTで分析・未来予測するには? ― IoT-Tech Meetup レポートSORACOM公式ブログ に最初に表示されました。

過去記事アーカイブ

2024年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月