ChatGPTを使用してテストデータを分析する

Ari Mahpour
|  投稿日 十月 18, 2023  |  更新日 七月 1, 2024
ChatGPTを使用してテストデータを分析する

ChatGPTを使用した自動テストでは、テスト機器と簡単に通信するためのテストスクリプトやソフトウェアライブラリを生成AIが書く簡単な方法について話しました。テストスクリプトの自動化に慣れた今、テストデータの処理も自動化する時が来ました。ChatGPTを使用したデータ分析は、シンプルで効率的に行うことができます。この記事では、最近のバッテリーテストから得た新鮮なテストデータを使って、それをどのように行うかを見ていきます。

背景

最近、スマートバッテリーのプロファイルをテストし、特に以下のレポートレジスタの正確さを確認したかったです。

  1. 温度
  2. 電圧
  3. 電流

 

テストスクリプトから取得した出力データはCSV形式だったので、Microsoft Excelにインポートするのは簡単でした。ほとんどのエンジニアと同様に、洗練されたテーブル、チャート、いくつかのExcelの魔法のような数式を使ってデータを見つけることができたでしょう。しかし、実際には、一連の質問をして、探しているデータを返してくれるアシスタントが欲しいと思いました。

AIとその自然言語モデルを使えば、私のデータについて平易な英語で質問し、探している結果を得ることができます。さらに素晴らしいことに、GPT-4に追加されたAdvanced Data Analysisプラグイン(以前は「Code Interpreter」と呼ばれていました)は、私の指示を処理する際に書かれたPythonコードを表示するだけでなく、PythonのMatplotlibライブラリを使用してデータをグラフ化することもできます。ここで言及しているのはChatGPTの有料バージョンですが、ChatGPTの無料バージョン(または他の生成AIシステム)でも、ほとんどの情報を得ることができます。

試みの段階

始める前に、私のAIが何ができて何ができないかを感じ取りたかったです。CSVテストデータをChatGPTにアップロードし、「バッテリーから報告された平均温度は何ですか?」などの単純な質問をしました。提供したデータセットが大きすぎることがすぐにわかりました。私には2つの選択肢がありました:データをトリミングするか、データに対してローカルで実行するコマンドを提供してもらうかです。私は両方を行うことにしました。Advanced Data Analysisプラグインを使用すると、そのマシンで実行するコードスニペット(Pythonで)を提供します。トリミングされたファイルをGPT-4に提供すると、データの分析を開始できました。

この記事を通じて、ローカルでより大きなデータセットに対して実行できるコードのスニペットが表示されます。ChatGPTが最初にコードを実行することは、最初にChatGPTが登場したときに欠けていた重要な要素です。頻繁に機能しない生成されたコードを得ていました。Advanced Data Analysisを使用すると、失敗後に自身を修正しようとするため、それが起こることがなくなりました。

データを初めて読み込むときは、少し様子を見るのが良いでしょう。まず、ChatGPTに私のデータを分析させ、何ができるか教えてもらいます:

初期データの読み込み

図1: 初期データの読み込み

その後、私が見たいと思うであろう提案をしてくれます:

分析提案

図2: 分析提案

相関行列に興味があります。温度が電圧や電流とどのように相関しているか知りたいので、尋ねます:
温度、供給電圧/電流、負荷電圧/電流の間の相関を示してください。

すべての変数がどのように相関しているかについて、きれいな分析を提供してくれます:

相関行列

図3: 相関行列

そして、ChatGPTにプロットしてもらうと、以下のようになります:

相関行列のプロット

図4: 相関行列のプロット

いくつか余計な相関が出てきますが、それは無視しても構いません。

データ検証

データ探索を行った今、データセットの検証に移りたいと思います。上述の通り、スマートバッテリーが内部の電圧と電流をどの程度正確に報告しているかを把握したいです。これを追跡する最も簡単な方法は、私の計測器から供給および負荷電力を読み取り、報告されたバッテリー電力と比較することです。ケーブルを通る損失や充電器の効率低下があるので、両者の相関を見てから精度を判断します。

ChatGPTが提供する自然言語モデルは非常に優れていますが、完璧ではありません。完全に理解できない概念もあります。統計分析を依頼すると通常は何をすべきか理解していますが、単純なエンジニアリング用語は常に理解しているわけではありません。このため、下流での問題を防ぐために、できるだけリクエストを単純にするようにしています。ChatGPTに3つの新しい列を作成するよう依頼します:

3つの新しいデータ列を作成しましょう:

  1. 供給電力: 供給電圧 * 供給電流
  2. 負荷電力: 負荷電圧 * 負荷電流
  3. バッテリー電力: abs(電圧 * 電流)/1000/1000

負荷電力が0の場合(つまり、DC電子負荷がテスト対象デバイスから電流を引き出していない場合)は充電していることを示す必要があります。負荷電力が非ゼロの場合は、バッテリーを放電していることを示します。再度、GPT-4を混乱させないために、このようにリクエストに記載します:

負荷電力が非ゼロの場合に限り、負荷電力とバッテリー電力をタイムスタンプに対してプロットしてください

得られた結果は素晴らしいプロットです:

負荷とバッテリーのプロット

図5: 負荷とバッテリー電力のプロット

データが良好であることがわかったので、相関関係やその他の分析を依頼できます:
二つの間の相関関係を示してください(非ゼロの設定のみ)

相関計算

図6: 相関計算

他の統計を求めるとき:
二つの間の平均差、標準偏差、および分散は何ですか(非ゼロのみ)[パーセンテージで]

負荷とバッテリー電力の統計

図7: 負荷とバッテリー電力の統計

これにより、ケーブル損失がほとんどないため、二つが密接に結びついているという私の推測を検証することができます。次に、充電部分に同じ分析を行います:

負荷電力が0の場合に、供給電力とバッテリー電力をタイムスタンプに対してプロットする同じ分析を行いましょう

供給とバッテリー電力のプロット

図8: 供給とバッテリー電力のプロット

ご覧の通り、いくつかのグリッチがあります。これは、スマートバッテリーのテレメトリが私の計測器と同期していないためです。理想的には、電子負荷をオフにして電源をオンにして充電モードに移行し、その後数秒待ってからテレメトリを収集するべきです。これは、バッテリーと充電器の間で「交渉」される一連のコマンドがあるためです。これは、USB-C Power Deliveryの簡易版と考えてください(概念に馴染みがある場合)。

残念ながら、私のテレメトリ収集スクリプトにそれを組み込んでいなかったので、フィルタリングする必要がある異常が発生しています。しかし、心配無用です、ChatGPTもそれを処理できます。いくつかの反復を経て、私はAIに何がグリッチと見なされ、何がそうでないか(例えば、標準的な統計分析機能では考慮されていない外れ値)を「学習」させる「訓練」を行い、その知識を適用します:

供給電力とバッテリー電力のフィルター処理されたプロット

図9: 供給電力とバッテリー電力のフィルター処理されたプロット

同じ統計を求めると、完全な内訳が得られます:

供給電力とバッテリー電力のフィルター処理されたプロットの統計 供給電力とバッテリー電力のフィルター処理されたプロット1の統計


図10: 供給電力とバッテリー電力のフィルター処理されたプロットの統計

これは良いニュースです。ケーブルと電源コンバータの両方に損失があるため、値の間にはより大きな差があることを期待しています。

データスクラビング

ChatGPTは、異常を探すことでデータのスクラバーとしても機能します。過去には、温度レジスタが少し異常を示したことがあります。「データにグリッチが見られるか教えて」とChatGPTに尋ねると、次のように返答します:

温度データの異常を探す

図11: 温度データの異常を探す

これは、グリッチを特定する良い出発点となります。この特定のテストでは、温度レジスタが正しく機能しているように見えます。この電力効率グラフをChatGPTにプロットしてもらうことを考えてみてください:

電力効率のプロット

図12: 電力効率のプロット

私のデータにはいくつかの異常があることが明らかです。効率が100%を超えることは確かに不可能で、GPT-4もそれを知っています:

ChatGPTの異常に対する見解

図13: ChatGPTの異常に対する見解

調査の結果、通信バス全体に確かに不具合があったことがわかりました。効率が100%を超えるデータポイントをすべて除外するようにChatGPTに依頼します。この時点で、フィルタリングされたデータをダウンロードするリンクを要求したり、再度プロットしたり、さらにフィルタリングしたりすることができます。

結論

この記事では、テストレポートからのテストデータを分析、フィルタリング、操作するためにChatGPTをどのように利用できるかを見てきました。テストデータをアップロードしてChatGPTに何ができるかを尋ねることから始め、データの検証とクリーニングに移りました。ここでの重要なポイントは、自然言語を使用してデータセットを通じたガイド付きの探索を自分たちに提供できることです。今後数ヶ月で、AIスペースの他のプレイヤーがこのような機能をアプリケーションに組み込んで提供し始めるでしょう。このペアリングのエコシステムに移行するにつれて、私たちはAIを使用して分析をサポートし、ガイドすることになり、私たちを置き換えるのではありません。データ処理においてAIがより普及するにつれて、個人としての能力は成長し、無数の可能性と潜在能力が解き放たれます。

筆者について

筆者について

Ariは、設計、デバイスパッケージ、テスト、および電気、機械、およびソフトウェアシステムの統合において幅広い経験を持つエンジニアです。彼は、設計/デザイン、検証、テストのエンジニアをまとめて団結したグループとして機能させることに情熱を注いでいます。

関連リソース

関連する技術文書

ホームに戻る
Thank you, you are now subscribed to updates.