WindowsというOSを使い続ける上で、更新プログラムは避けて通れない。Windows 10もソフトウェアである以上、機能拡張や仕様変更に伴って発生するバグを完全に駆逐することはできず、品質更新プログラムの適用が必要となる。だが、毎月の更新プログラム適用は万人を満足させるものではない。PCの使用頻度が低いユーザーの「PCを起動したら、また更新プログラムだ」との嘆きはよく聞く。

そのためMicrosoftは機械学習を利用して、適切なPCの再起動タイミングを導き出すと発表したのは、ビルド18204のころだ。2019年4月には一定の成果を示した記事を公表し、その「一定の成果」をWindows 10 バージョン1903で示した。

当初の発表から約1年たった米国時間2019年9月26日、Microsoftは更新プログラム体験の向上に関する技術的見解を公式ブログで発表。Microsoftの説明によれば、Windows 10 バージョン1803から取り組みをスタートし、PC全体の信頼性など6つ領域で測定を開始したという。続くWindows 10 バージョン1903では、測定領域を35カ所に拡大。その結果、旧バージョンへのロールバックは半分、カーネルクラッシュは半分以上、デバイスドライバーを起因とする問題は5分の1へと低下している。

  • Windows Weekly Report

    機械学習を用いた品質更新プログラムでは、適用時のトラブルが減っている(画像はすべて公式ブログから抜粋)

機械学習に必要なモデルは、数百万台のPCから取得したOS診断データと、更新プログラム適用後に発生したロールバックやカーネルクラッシュ、ドライバー関連のトラブルを検知したときの診断情報を用いてラベルを付与。この学習データには、PCのハードウェアスペックやWindows 10のバージョン情報などを含んでおり、予測精度の向上につながったそうだ。

  • Windows Weekly Report

    機械学習の学習モデルに用いられるデータの一例

仮に、ユーザーがフィードバックを送らなくとも、Microsoftエンジニアが問題の重要度を識別し、調査や対策を可能にすることが本プロジェクトの根底にあるのだろう。機械学習を用いた成果はOSにとどまらず、早期にWindows 10で発生している問題を列挙し、修正結果を報告する「Windowsリリース正常性ダッシュボード」の存在も大きい。半期チャネル(*)でWindows 10を利用しているユーザーであれば、有益な情報が多く掲載されている。

(*)半期チャネル
Windows 10の更新に関する設定のひとつ。おおまかにいうと、年2回の機能更新プログラム(過去に大型アップデートと呼ばれていたものに近い)と、毎月の品質更新プログラム(セキュリティ更新を含む)で運用すること。

機械学習を用いた更新プログラム体験をさらに向上させるには、「多くの作業が必要だ」とMicrosoftも述べているが、OSが正常起動しないといった重大なバグは減ったように感じる読者も少なくないだろう。だが、軽微なバグは以前よりも増えたようだ。例えば筆者の半期チャネル環境では、マルチディスプレイ環境におけるスリープ復帰時に、ウィンドウ位置を記録するアプリケーションの描画位置が変わる問題が発生している。

OSは基本ソフトと呼ばれるように、ユーザーがハードウェアを扱いやすくすることが主要な目的と機能だ。加えて各OSベンダーは、ユーザーの利便性を向上させる機能を求める声に応えてきた。はるか昔「新しいWindowsはサービスパックがリリースされてから導入するのが常識」などとされていたこともあったが、時代はとうに過ぎた。Microsoftが選択した機械学習を用いたアプローチは正しい選択である。

阿久津良和(Cactus)