登壇者の自己紹介とアジェンダの紹介

青田雅輝氏:みなさん、こんにちは。今日は、「日本経済新聞社におけるWandBの活用例」というテーマでお話しさせていただきます。スピーカーは、日本経済新聞社、日経イノベーション・ラボの青田が務めさせていただきます。この発表自体は、(スライドを示して)ここに書いてある3人で作っているので、内容はちょっと多岐にわたります。

最初に本発表の流れを紹介させてください。まず自己紹介と会社紹介をさせてください。その後、本日のメインディッシュとして、3点のトピックを用意しています。

1つ目が、学術研究の実験管理についてです。2つ目が、画像圧縮アルゴリズムの探索についてです。3つ目が、動画像生成のフロー管理についてです。最後にまとめて発表を終わろうと思っています。

最初に、自己紹介をさせてください。青田雅輝と申します。日経イノベーション・ラボという研究開発の部署にいます。業務では、画像系のタスクを扱うことがけっこう多いです。それだけをやっているわけではなく、SQLや生存分析などいろいろ幅広くやっています。連名の山田(山田健太氏)や石原(石原祥太郎氏)と同じ部署です。

コンペティションに出場することが趣味で、「Kaggle」だと主に自然言語処理のコンペでKaggle Masterを取っていたりとか、競技プログラミングだと「AtCoder」で水色を取得していたりしています。最近は、音楽生成が個人的に熱くて、音楽生成系のコンペなどに参加しています。

日本経済新聞社におけるデータサイエンティストの役割とは?

会社の紹介をちょっとさせてください。日本経済新聞社とは、新聞を中核とする事業持株会社です。何をやっているかというと、雑誌、書籍、電子メディア、データサービスなど、たくさん書いてあるのですが、ここで伝えたいのは、要はいろいろやっているよということです。

(スライドを示して)この右のほうにいろいろアイコンを出していますが、見たことがあるアイコンとか、「あっ、これも日経だったんだ」というものがいくつかあるのではないでしょうか。要はいろいろなサービスをやっていて、いろいろなデータを持っているということです。

その中で、データサイエンティストというのはどういう役割で、どういう取り組みをしているかを紹介いたします。

日経の保有する多種多様なデータを駆使して、事業の持つ価値を高める仕事をしています。扱うデータというのは、新聞記事のデータ、新聞記事のテキストや画像のデータ、非上場も含めた企業の情報なども含まれていて、けっこういろいろな企業があります。いろいろな企業や、ユーザーの行動ログ、属性情報など、多岐にわたります。

扱う技術は機械学習、それに含まれる自然言語処理や画像処理、または、地理空間の処理などです。

ツールとしては、PythonやR、必要だったらスプレッドシートを使うこともあります。クラウド環境としては、「GCP」や「AWS」、SQLの環境としては「Redash」を使う人が多いです。こういうふうに目的や状況に合わせて、最適なデータや技術・ツールを選定して仕事を進めています。

扱うデータセットは、大きく分けると主に2種類あって、まず1つ目が、ユーザーに関する情報です。これの特徴として、日経では多くのサービスで共通の「日経ID」を導入しています。このIDを使って、属性情報や行動ログを記録しています。

また、独自にリアルタイムデータ処理基盤「Atlas」というものを構築しています。先ほど紹介した日経IDで蓄えられたデータは、リアルタイムでこのAtlasというデータベースに送信されていて、すぐさま分析に用いることができます。

このデータは、けっこう規模が大きいです。時間的には、2010年から日経電子版の提供を開始していて、10年以上の期間のデータがあります。また、ID会員数は1,000万以上あるので、けっこうな規模かなと思っています。

2つ目のデータが、主にコンテンツに関する情報ですね。記事データや企業情報などのデータなのですが、それを取得できるAPIが充実しています。

量も、例えば記事データであれば約40年分のテキストデータがあって、紙面画像のデータに関しては、約147年分存在します。もういつの時代なのかちょっとわからないですね、これぐらい昔だと。

「WandB」の活用事例1 学術研究の実験管理

長く会社紹介しちゃったので、いよいよ本日のメインディッシュである「WandB」を利用した社内事例の紹介をいたします。

1つ目の事例としては、学術研究の実験管理についてです。日経では、中長期的な技術課題を見据えて学術研究に挑戦中です。ここでは、マルチモーダル情報でニュース記事のクリック率を予測した研究を例に、WandBの活用事例を紹介いたします。

具体的な研究のタイトルは、(スライドを示して)こちらの下に書いてあるので、興味がある方はちょっと検索してみてください。

一応、研究の概要だけ、すごくざっくり説明いたします。やることは、マルチモーダルな情報を使って、クリック率を予測することです。マルチモーダルな情報が何かというと、左に書いてあるような見出し、サムネイル、本文などで、それらのメタ情報を使って、最終的には、クリック率を予測するという研究内容になります。

こういう研究をしていく上で、論文ではこういう表をよく見かけるじゃないですか。この表を作るのはけっこう大変だと。結果の記録に課題を感じています。

例えば、(スライドを示して)この表の一番左には、どんなモデルを使ったかが示されていて、その1個右の列には、feature、特徴量、どういう特徴量を使って、どれぐらい増やしたらどうなったかが記録されていて、右2列には、評価指標の数字が記録されています。

こういった特徴量とモデルの設定を漏れなく正確に記録したいんですね。これの管理がすごく大変だという課題感がありました。なので、すべての実験結果をWandBで管理することにしました。

例えば、先ほどのCTRの一対比較の性能を評価するための記録を例として挙げると、モデルのハイパーパラメーターや特徴量の設定値などを記録したり、その学習の時に用いた目的関数や、訓練したモデルの最終的な評価を多数の評価関数を使ってすべて記録しておくみたいなことをしています。

それだけではなく、定性的な考察のために、実際に入力した画像、見出し……見出しは文章のことなのですが、その文章のBERTのアテンションを可視化もしています。

ちょっと例を見せると、BERTのアテンションはこんな感じですね。これ一応、2つ例を見せていて、ABテストみたいになっていて、上のほうの文章では、文章の最後に「、市場の見方」という文言が追加されているのですが、この最後の文言があるかないかで比較みたいなことができる。この場合は、「市場の見方」に強くアテンションがかかっています。

この例だと、モデルが予測したCTRと本当に計測したCTRの大小関係が一致したので、モデルは、最後の「市場の見方」に注目して推論して、その結果、きちんと合っていたんだなみたいな解釈に役立ちます。

また、WandBを用いると、論文執筆時の振り返りが簡単になります。実際に、実験をする時と論文執筆時って、けっこう間隔が空くことが多いと思うんですよね。

例えば、投稿して査読結果を受けて、また改訂する時とか、国内、国際、論文誌に何回も投稿する時に、論文誌に近いところでは、もう実験をだいぶ昔にやっているという状況があると思います。そういう時にも簡単に振り返りができるというところが魅力だと感じました。

また、著者間で結果を共有しやすいのも非常にメリットに感じています。WandBのサイト上で結果が自動的に同期されるので、著者間でコミュニケーションコストが削減されます。

「WandB」の活用事例2 画像圧縮アルゴリズムの探索

というわけで、次は、2つ目の事例にいきます。

次は、画像圧縮アルゴリズムの話をしようと思います。したいことは、効率的な画像圧縮アルゴリズムとそのパラメーターの探索です。

ちょっと、機械学習の話ではないのですが、機械学習とはちょっと似たようなタスクで、こういう時にもWandBって使えるよということをお話ししようと思っています。

なぜ画像圧縮アルゴリズムをやるのかというと、日経では毎日けっこう膨大な量の画像データがユーザーに送信されています。

どれぐらいのオーダーかというと、もう数十TBのオーダーです。これは1日あたりなので、とんでもなく費用がかかるという課題感があります。

そういうアルゴリズム探索をやりたいのですが、実験管理上どういう課題点があるかというと、アルゴリズム探索もパラメーターによっては、実験にけっこう時間がかかるんですね。なので、定期的に進行状況を確認したり、確認するのに集中力が削がれたりなど、そういう課題感がありました。

また、新しいアルゴリズムをどんどん試して、試したら、すぐさま過去の実験と重ねて比較がしたいんですよね。それと重ねての比較が、今までは可視化しにくかったという課題がありました。

後でお見せしますが、特に画像圧縮では、画質と容量がトレードオフなので、単一指標での比較が困難です。

どういうことかというと、(スライドを示して)この右の図のように説明できます。この図の見方ですが、横軸が容量で縦軸が画質の良さです。もちろん、横軸が小さければ圧縮後の容量が小さくなり、画質も当然落ちるということを可視化しています。

ここでは、実験を2つ可視化していて、紫色の「exp007」と書いているグラフを見ると、容量が小さいほうは緑の実験と比べると画質が良さそう。また、容量が大きいほうでは、あまり差がなさそうみたいなことが解釈可能です。

こういうふうに解釈する必要があるので、いろいろな実験を対話的に調べたいという需要がありました。なので、WandBを導入して、こういった恩恵を受けました。

いろいろなログを、ひたすらwandb.logに入れるだけで、例えば、後で対話的に可視化が可能だったり、当初重要視しなかった指標も後から作図が可能というところにメリットを感じています。

容量、画質だけではなく、圧縮速度などの指標も、今回のプロジェクトでは、後から重要視されたのですが、この圧縮速度もログに送信していたため、再実験の必要もなく簡単に後から可視化ができました。

なので、WandBを用いた結果、可視化の手間を考えずに高速に実験を回すことができました。また、実験完了の通知をメールや「Slack」などを仕込むことができ、即座に結果が確認可能というところも魅力に感じています。

追加実験をする時にも、枠組みに載せるだけで簡単に新たに追加実験できるので、そこが魅力ですね。よく言われる、1実験1スクリプトの枠組みに非常に合っていると思います。

その結果、画像の圧縮に良さそうな圧縮アルゴリズムとそのパラメーターを高速に見つけることができました。余談ですが、理想的には、通信コストを半分ぐらいにできるものが見つかりました。

「WandB」の活用事例3 動画像生成フロー管理

最後に、3つ目の事例について紹介します。3つ目の事例は、みなさん大好き、生成AIのお話です。

動画像生成フロー管理にWandBっを使っています。日経でも生成AIによるさまざまな表現の可能性を模索しています。今回は動画生成の管理にWandBを利用しているので、その紹介をさせてください。ちなみに、この流れているのが実際に生成したアニメっぽいものです。

動画生成では、多くのパラメーターの試行錯誤や呼び出しが必要になると思います。動画生成を違う言葉で言い換えると、複数フレームの画像生成と言い換えることができます。この時に、フレーム間で同一性を保持することが必要になります。

同一性とは何かというと、例えば、人物の髪型が動画の途中で変わらないとか、瞳の色が変わらないとか、物の形が変わらないとか、ふにゃふにゃにならないとか、そういったものが同一性です。

フレーム間で同一性を保持することが必要なんですが、そのためには、使ったモデル、パラメーター、プロンプトの管理が不可欠になります。

WandBを導入する前は、「Notion」で管理していたのですが、手動でコピペをしまくっていたので、けっこうミスの温床になっていました。なので、WandBを導入しました。

その結果、パラメーターや生成画像までを丸ごと自動管理することが可能になりました。WandBはWebベースなので、PCを開かずにスマホやタブレットで見られるんですよね。

なので、例えばリモートサーバーで、とにかくたくさん生成してから、後で一気に確認していいものだけ選ぶみたいな運用が可能になりました。結果としては、再現性のある動画像生成が可能になりました。

画像生成でよく使われる、「ControlNet」や「LoRA」や「Diffusion」という組み合わせにおいて、プロンプトと各種ハイパーパラメーターが同一であればほぼ同じ画像が出てくるんですよね。WandBを用いてそれらのログを取れるようになったので、同一性や再現性が確保できるようになりました。

また、動画生成、アニメ生成などをしていると、あるシーンのリテイクなどが飛んでくることがあるのですが、あるシーンを修正するとしても、パラメーターだったりプロンプトだったりが残っているので、そこを呼び出して、また微調整をすることで簡単に対処が可能になりました。

また、オリジナルの絵柄みたいなものを作りたい場合があると思いますが、そういうオリジナルのLoRAのトレーニングの状況にも便利に活用しています。

まとめ

最後に、ちょっとまとめます。前半では、日本経済新聞社の紹介をいたしました。さまざまな形式のデータを保有していて、データ活用を進めていますという主張です。

また、後半では、いくつかのプロジェクトで実験管理上生じる問題や手間をWandBを用いて軽減していることを紹介しました。

具体的には、学術研究の実験管理や、画像圧縮のアルゴリズム探索の話など、動画像生成のフロー管理の話でした。

最後に、ちょっとだけ宣伝させてください。日経で採用をやっています。興味がある方がいたら、カジュアル面談ができるので、このURL、もしくは「HACK The Nikkei」で調べていただければと思います。採用ページにつながります。

では、自分の発表は以上になります。ご清聴ありがとうございました。

(会場拍手)