データ分析の活用シーンが広がっている。それに伴い、データサイエンティストの業務負荷軽減とともに、省電力化やCO2排出量削減など環境問題の解決が企業に求められている。ポイントは、データ活用業務で多くの時間を要する前処理のプロセス改革だ。NECは、表形式データ分析のグローバルスタンダード「pandas(パンダス)」の弱点を解消する、高速データフレームライブラリ「FireDucks」を開発。自動最適化に加え、マルチスレッド化によりインテル® Xeon® スケーラブル・プロセッサーの全コア並列活用により、ベンチマークテストにおいてpandasに対して最大996倍の高速化を実現。圧倒的性能と導入しやすさで注目が集まっている。
データ分析で本来業務の時間は全体のわずか2割
データ分析の課題は、AI(人工知能)や機械学習のパフォーマンス、クオリティに焦点が当たりがちだ。しかし、根本的課題として解決すべきは、AI活用の前段階にある。「データ分析は、8割が前処理と言われています。データサイエンティストが本来業務に集中できる時間はわずか2割しかないというのが現状です」と、NECの石坂一久氏は指摘し付け加える。「重要な観点は、データ分析の活用拡大に伴う、コスト増大。消費電力増加による環境問題などの解決も、前処理のプロセス改革で大きな成果をもたらすことができるという点です」
データ分析の前処理を効率化するために、NECが注目したのがデータを分析可能なかたちにするデータの整備だ。課題について石坂氏は言及する。「データサイエンティストは、データの理解に加え、機械学習のモデルに入力する特徴量データの作成を行います。予測精度に影響する特徴量は試行錯誤を伴うものです。扱うデータ量の増加、AIや機械学習の高度化は計算量増加につながります。コンピュータ処理に時間がかかり、待ち時間が多くなるとともに、計算コスト(たとえば、クラウドのコスト)、消費電力増加の要因となります」
データの前処理は、データ分析業務の8割を占める
NEC
セキュアシステムプラットフォーム研究所
主任研究員
石坂 一久 氏
データ整備の課題解決では、処理時間の短縮が重要なポイントとなる。データ分析で多く利用されているのが、Excelなど表形式データだ。総務省「デジタルデータの経済的価値の計測と活用の現状に関する調査研究」(2020)でも、分析に活用しているデータは、顧客データ、統計データ、センサーデータ、POSデータなど表形式データが多いとしている。
NEC
セキュアシステムプラットフォーム研究所
主任研究員
石坂 一久 氏
AI研究開発やデータ分析で用いられるプログラミング言語Python。そのなかでも、表形式データ分析において、世界で標準的に利用されているのがpandasだ。ダウンロード数は月間2億回以上に及ぶ。データサイエンティストであれば知らない人はいないと言えるだろう。「広く利用されているのですが、pandasは速度が遅いという弱点があります」と石坂氏は話し、説明を加える。「pandasは多くの処理をシングルスレッドで実行し、マルチコアCPUの性能を生かせないという課題があります。また、コンピュータの処理能力を高めるアクセラレータ非対応です。さらに、処理が最適化されていないプログラムもそのまま実行されるため、スキルによって処理スピードに差が生じます」
2つの高速化の掛け合わせでpandasの弱点を解消
pandasの弱点を解消するのが、NECが開発した高速データフレームライブラリFireDucksだ。NECが30年以上にわたりスーパーコンピュータ開発で培ってきた、高性能プログラミング技術と高速化ノウハウが生かされている。FireDucksは、2つの高速化の掛け合わせで性能を高めている。
1つ目の高速化は、自動最適化だ。「従来型のライブラリは、ユーザーが呼び出した順にライブラリ関数が実行されます。FireDucksは、呼び出された関数を即実行するのではなく、自動最適化してから実行し高速化を実現します。処理全体を見渡して必要となるデータを処理するといった専門化の工夫を、自動で行ってしまうものです。並列処理や処理手順などプログラム高速化に向けた研究は、世界的に進められています。しかし、高度な専門知識が必要となるため広く普及していません。FireDucksは、経験の少ないデータサイエンティストでも表形式データの高速処理を実現できます」(石坂氏)。
2つ目の高速化は、全コアの並列活用だ。「pandasは、1つのスレッドで1つのプログラムを利用するシングルスレッドです。インテル® Xeon® スケーラブル・プロセッサーのマルチコアのうち1つのコアしか利用できないことが速度のボトルネックとなっています。FireDucksは、複数の処理を並行して行うマルチスレッドで動作できるため、インテル® Xeon® スケーラブル・プロセッサーのすべてのコアを利用し、大量のデータを並列かつ効率的に処理します」(石坂氏)。
FireDucksのマルチスレッド化、自動最適化と、インテル® Xeon® スケーラブル・プロセッサーのマルチコア、
高メモリ帯域という2つの高速化によりpandasの弱点を解消した
pandasに対して最大996倍の高速化を実現
FireDucksは、インテル® Xeon® スケーラブル・プロセッサーを使って開発。「マルチスレッド化の効果を最大化するためには、マルチコア、高メモリ帯域のCPUを選択する必要がありました」と石坂氏は話す。第4世代インテル® Xeon® スケーラブル・プロセッサーを使ったベンチマークは、驚くべき結果となった。データベース分野でよく使われるTPC-Hベンチマークで、22種類のデータ分析タスクの実行時においてFireDucks導入とpandasのみとで性能比較を実施。その結果、コード変更なしでpandasに対し最大996倍、平均103倍の高速化が図れた。
FireDucksと第4世代インテル® Xeon® スケーラブル・プロセッサーの組み合わせにより、pandasに対して飛躍的な高速化が図れた
FireDucksのアドバンテージは、性能だけではない。pandasとの互換性もメリットが大きい。既存プログラムの修正や、新たなスキルを習得する必要もない。Pythonのpandasのまま高速化を実現できるため、使いやすく、導入も短時間で完了する。
2023年に、トヨタテクニカルディベロップメント株式会社はPoC(概念実証)でFireDucksを評価した。同社はAIを用いて要因解析を行うツール「Spicy MINT」を開発している。このツールを使って様々な解析を行う中で、データの前処理に時間がかかることが大きな課題となっていた。pandasとの互換性により、テストも含め導入時間はわずか30分。3カ月後には前処理時間の7割削減を実現。その後、最新版に切り替えたことで9割削減が図れた。データサイエンティストは前処理を気にする必要がなくなり、データ分析のみに集中できるようになった。
ほかの事例では、処理時間削減により、使った分だけ料金が発生するクラウドコスト削減、CO2排出量削減につながったとの声も寄せられている。
LLM(大規模言語モデル)により自然言語からpandasプログラムを生成する動きも急速に進んでいる。pandasと互換性のあるFireDucksの活用シーンも広がっていくだろう。また、増え続けるデータ量に伴い、前処理のさらなる高速化が求められる。石坂氏は、「FireDucksの高速化は、インテル® Xeon® スケーラブル・プロセッサーの進化とともにあります」と強調する。FireDucksを使った pandasにおいて、インテル® Xeon® スケーラブル・プロセッサーの世代間の性能比較では、第3世代から第4世代で2.1倍性能が向上した。
インテル® Xeon® スケーラブル・プロセッサー自身の性能比較において、第5世代は第4世代と比べてAI処理で1.42倍、第3世代との比較ではAI処理で14倍。第5世代と第3世代のAI処理性能における大きな差は、第4世代からアクセラレータのサポートを開始したことに起因する。インテル® Xeon® スケーラブル・プロセッサーの性能向上に合わせて、マルチスレッド化したFireDucksの高速化は今後加速していく。
NECでは、FireDucksに関してエンタープライズサポートを提供する予定だ。NECサーバーを利用した推奨モデルも検討している。FireDucksによる消費電力・CO2排出量の削減は、NECが目指す社会像である「地球と未来を守る」における取り組みの一環だ。データ分析の高度化に応えながら、脱炭素社会の実現に貢献する。