【ITニュース解説】Mauka: when is it actually okay to go outside? (TabPFN + Gemma, running on my laptop)
2026年10月12日に「Dev.to」が公開したITニュース「Mauka: when is it actually okay to go outside? (TabPFN + Gemma, running on my laptop)」について初心者にもわかりやすく解説しています。
ITニュース概要
インドの都市で最適な外出時間をAIが予測する「Mauka」アプリが登場。空気の質・気温・降水量を基準に、TabPFNとGemmaモデルを使い、明日の良い時間帯を個人情報不要でローカル予測する。ユーザーは条件をカスタマイズ可能だ。
ITニュース解説
インドの特定の都市では、一日の中で快適に屋外で過ごせる時間が限られており、その時間帯は日々変化する。日中は暑すぎたり、冬には空気が悪かったり、モンスーンの時期には雨が降ったりと、単に「外に出て少し過ごす」というアドバイスは簡単なことではない。このような課題を解決するため、「Mauka(マウカ)」というアプリが開発された。Maukaはヒンディー語で「チャンス」や「瞬間」を意味し、ユーザーが明日、屋外で過ごすのに最も適した時間帯を予測し、教えてくれる。
このアプリの基本的な機能は、明日の午前5時から午後9時までの各時間について、屋外で快適に過ごせる確率を予測することである。その結果をもとに、最も良い時間帯を「ストリップ(帯)」形式で視覚的に表示し、さらに短いテキストメッセージで具体的なアドバイスを提示する。たとえば、「明日の最適な時間は05:00から09:00です」といった具合だ。この「良い時間」の定義は、アメリカの空気質指数(US AQI)が100以下、体感温度が8度から35度の間、そして実質的な雨がない(降水量0.5mm以下)という3つの条件がすべて満たされることである。これらの条件は開発者自身が定めたもので、必要であれば設定ファイルで簡単に変更できる。アプリの画面は意図的にシンプルに作られており、ユーザーはアプリを開いて一行のアドバイスを読んだらすぐに閉じられるようになっている。
Maukaの大きな特徴は、その技術的な仕組みが完全にローカルで動作することにある。つまり、ユーザーの個人情報やデータが外部のサーバーに送信されることは一切ない。また、APIキーの登録や利用ごとの課金も発生しないため、一度セットアップすれば無料で使い続けられる。このような「プライバシー・バイ・デフォルト」の考え方は、将来的に個人の行動パターンや健康情報を利用する可能性のあるツールにとって、非常に重要な設計思想である。
このアプリは、過去の気象データと空気質データを活用している。具体的には、Open-Meteo APIから無料で提供されている時間ごとの気象データ「ERA5」と、コペルニクス大気監視サービス(Copernicus CAMS)の空気質履歴データを取得し、それをローカルのPCにCSVファイルとして保存する。これらのデータは「表形式データ」と呼ばれる形式であり、Maukaはそれを基に明日の「良い時間」を予測する。
予測の中核を担うモデルは「TabPFN(Table-Proxy-Free Network)」である。これは表形式データに特化した事前学習済みの機械学習モデルで、データセットが比較的小規模な問題に適している。開発者は、TabPFNの有効性を検証するため、いくつかの他のモデルとも比較している。比較対象には、今日と同じ状況が明日も続くとする「Persistence(永続性)」や、過去の月と時間の平均的な状況から予測する「Climatology(気候学)」といった単純なベースラインモデルに加え、より高度な機械学習モデルである「Logistic Regression(ロジスティック回帰)」や「Gradient Boosted Trees(勾配ブースティング木)」も含まれる。
モデルの評価は、データを時間で区切り、直近の一定期間をテストデータとして利用することで行われた。ランダムにデータを分割するのではなく、過去のデータで学習し、未来のデータを予測するという、実際の運用に近い方法がとられている。テストはインドの4つの都市(バンガロール、チェンナイ、ムンバイ、ウダイプール)で行われ、結果は「AUC(曲線下面積)」と「Brier Score(ブライアスコア)」という二つの指標で評価された。AUCはモデルの識別能力(良い時間を正確に良いと、悪い時間を正確に悪いと区別する能力)を示し、値が高いほど良い。Brier Scoreは予測の正確さを示し、値が低いほど良いとされている。
テスト結果を見ると、TabPFNは全ての都市で最も優れたBrier ScoreとAUCを示し、他の学習モデル(ロジスティック回帰や勾配ブースティング木)も、単純なベースラインモデル(PersistenceやClimatology)を明確に上回っていた。しかし、TabPFNと勾配ブースティング木の性能差はわずかであり、開発者はこの差を示唆的ではあるが、決定的なものとは捉えていない。これは、一度のテスト実行と特定のデータ分割によるものであり、より厳密な検証が必要であるという見解である。
予測された「良い時間」の情報をユーザーに伝える短いメッセージ(ナッジ)は、ローカルで動作する小型の言語モデル「Gemma(ジェマ)」によって生成される。具体的には、パラメータ数が10億程度の「gemma3:1b」というモデルが、Ollamaというツールを通じてユーザーのPC上で実行される。このモデルは、英語、ヒンギッシュ(英語とヒンディー語の混ざった言葉)、ヒンディー語でメッセージを生成できる。
しかし、初期の開発段階では、Gemmaモデルが問題を起こした経験もある。天気の数値情報を直接与えると、「太陽が輝いている」とか「気分を高めよう」といった、データにない情報を勝手に作り出したり、明日の予測なのに「今日」と言及したりすることがあったのだ。このような「幻覚」(hallucination)と呼ばれる現象は、小規模な言語モデルではしばしば発生する課題である。この問題を解決するため、開発者はGemmaモデルに与える情報を、最適なウィンドウの時間帯と確率のみに限定し、さらに生成されたテキストが特定のベストウィンドウの時間を含んでいるか、またはでっち上げられた主張を含んでいないかをチェックする「ガードレール(安全装置)」を導入した。もし生成されたテキストがこのチェックに失敗した場合、アプリは一度再試行し、それでも失敗すればあらかじめ用意されたシンプルなテンプレートのメッセージに切り替えるようにしている。
このプロジェクトからはいくつかの重要な学びがあったと開発者は語っている。一つは「強力なベースラインモデルの重要性」である。今日と同じ状況が明日も続くという単純なPersistenceモデルでも意外と高い予測精度が出ることがあり、開発するモデルがそれを明確に上回らなければ、導入する価値がないことを意味する。二つ目は「小規模モデルにはガードレールが必要である」ということだ。単に賢いプロンプト(指示文)を与えるよりも、生成されたアウトプットがデータと一致しているかをチェックする方が、幻覚を防ぐ上で効果的だったという。そして三つ目は、「正直な小さな成功でも十分である」ということだ。TabPFNが最高の性能を示したとはいえ、その差はわずかであったが、開発者はそれを過大評価せず、ありのままを報告することを重視している。
Maukaの開発は、Hacktoberfestというオープンソースのイベントの一環として行われた。このプロジェクトは、AIアシスタント(Claude)の助けを借りて進められたが、最終的なテストとレビューは開発者自身が行っており、コードリポジトリには9つのテストが含まれる。オープンイノベーションの観点からも、このアプリは多くのメリットを提供している。データ、予測の閾値、そして評価結果の全てが公開されており、誰もがその正当性を検証したり、自分自身のニーズに合わせて「良い」の定義を変更したりすることが可能である。例えば、喘息を持つ人は、空気質の上限をより厳しく設定できる。また、Gemmaモデルの切り替えは設定一つで可能であり、新しい都市の追加もコード一行で対応できるなど、非常に柔軟な設計になっている。
今後の展望としては、より多くの都市への対応、ユーザーが自分で閾値を設定できる機能、そしてユーザー自身の屋外活動ログから学習してパーソナライズされた予測を提供するバージョンの開発が挙げられている。Maukaは、気象と空気質データに基づき、明日外で過ごすのに適した時間を予測するTabPFNの利用と、ローカルで動作し英語、ヒンギッシュ、ヒンディー語でアドバイスを生成するGemmaの利用という点で、それぞれ評価されている。このプロジェクトは、最新のAI技術を個人のPC上で動作させ、日常生活の具体的な課題を解決し、かつプライバシーと透明性を両立させるという、現代のソフトウェア開発において重要な方向性を示している。