W&B Reportsで実現するチームコラボレーションの効率化
こんにちは。Weights & Biases Japanの山本です。W&Bといえば実験管理ツールとしてご存知のMLエンジニアの方も多いかと思いますが、得られた実験結果をチームのメンバーと共有する際は皆様はどのようにされているでしょうか?W&Bは優れた可視化機能を備えていることもあり、スクリーンショットを撮ってGoogle DocsやMS Wordに貼り付けたくなるかもしれませんが、実はそのような必要はありません。W&B Reportsを使えば、より洗練されたレポートの作成と共有が簡単にできます。
本稿でご紹介するW&B ReportsはML開発におけるチームコラボレーションを飛躍的に促進する強力な製品機能で、OpenAI様やCohere様など強い企業ほど本機能の活用が進んでおり、ベストプラクティスとなっています。"勝ち組企業"の秘訣の一部でも見出して頂ければと思います。
W&B Reportの活用事例
W&B Reportの機能をご紹介する前に、公開されている実際の活用事例をいくつか見てみましょう。単純に結果だけを共有するのではなく、その結果に至る情報の全てを高品質でインタラクティブなレポートとして共有できることがわかるかと思います。
StableLM-3B-4E1T: Stability AIによる英語向けLLM「StableLM-3B-4E1T」に関する詳細なレポートです。モデルアーキテクチャから学習データセット、学習方法、評価結果に至るまで実際のチャートも交えて細部まで解説されています。
MONAIを用いた胸部セグメンテーションチュートリアル: 株式会社Elithの井上さんによる医学分野で注目される深層学習フレームワークのMONAIのチュートリアルです。弊社で推進しているレポート投稿キャンペーンの投稿者様第一号として、コード例や学習曲線、テーブルによる可視化まで用いた素晴らしいレポートを投稿して頂きました。
llm-jp-eval リーダーボード: LLM-jp様によるLLMの言語能力評価結果のリーダーボードです。開発と運営にはW&B Japanもご協力させて頂いております。
Nejumi LLMリーダーボード: W&B Japanで運営するLLMリーダーボードもW&B Reports機能を用いて作成されています。単に評価結果を順位表にするだけでなく、各モデルがどのような出力をした結果そのスコアに至ったかを閲覧者自身が個別に確認できるトレーサビリティが高く評価されていますが、この点はW&B Reportsならではと言えるでしょう。
この他にもW&BのFully Connectedでは、W&Bのレポート機能を用いた質の高いレポートが多数公開され、多くのAI開発者が日々ここから情報収集をしたり、情報の発信をしています。こちらも是非ご覧ください。
W&B Reportsの基本的な機能
レポート作成を開始する
では、さっそく始めましょう。レポートを作成したいプロジェクト画面の右上の「Create report」ボタンをクリックして、レポートにインポートする対象のチャートを選択します。この際に「Filter run sets」の項目でレポート作成時点以前のRunのみを含めるか、あるいは以降に追加された分も含めて全てのRunを対象とするのかを選択することができます。前者を選択した場合にはある時間断面で切り出した記録として有用ですし、後者であれば常にタイムリーに更新されるダッシュボード代わりに利用することもできます。
あるいは、個別のテーブルの右上の「More actions」から「Add to report」をクリックして新規レポートを作成、ないし既存のレポートに挿入することができます。つまり、一つのレポートに二つ以上のプロジェクトからチャートを挿入することもできます。
レポート編集画面が立ち上がると、選択したチャートが配置されたドラフトが表示されます。プロジェクト画面と同様にチャートの大きさや配置は自由に変更できますので、お好みのレイアウトにセットしましょう。
W&B Reportsの多様な機能
W&B Reportsは、App UIでのNotionライクな直感的な操作によって簡単に構築と編集を行うことができます。レポートは様々な「ブロック」から構築され、これらのブロックの中にはテキスト、画像、埋め込みビジュアル、実験からのプロットなど、様々な情報を盛り込むことができます。いくつか例を挙げてみましょう。
Panel Grid : 特に「Panel Grid」は、パネルや実験セットを組み合わせて表示するための特別なブロックです。レポート中で「/」を入力するだけで、ドロップダウンメニューが表示され、そこから「Panel Grid」を選択することで、ラインプロットや散布図など、W&Bがサポートする任意のパネルを追加することができます。これらはプロジェクト画面と同様にインタラクティブに分析が可能なチャートですので、画像をドキュメントに貼り付けるよりもより多くのインサイトをチームに波及させることができるでしょう。
なお、今回の場合はレポート作成元のプロジェクトから選択したチャートがPanel Gridに既に配置された状態ですが、別途追加することもできます。
Code: コードブロックをレポートに追加することも非常に簡単です。レポートに「/」を入力してドロップダウンメニューから「Code」を選択します。さらに、コードブロックの右側にあるプログラミング言語の名前をクリックすれば、使用する言語に合わせてシンタックスハイライトも設定できます。
Markdown: W&B Reportsは、Markdownをサポートしているので、レポートの中でリッチなテキスト表現を活用できます。
リッチメディア: X (Twitter) やYouTube、SoundCloudなどのURLをコピペすることで、レポート内に直接そのコンテンツを埋め込むことができます。これにより、レポートがより情報量豊富かつ視覚的になります。
共有・権限管理とコラボレーション
作成したレポートは適切な権限管理の元でチームの同僚や場合によっては社外の技術者やクライアントと共有することなどもできます。例えば前者であれば開発チームの週次レポート、後者としては共同研究の進捗共有や技術チュートリアルとしての活用が可能です。また、受託開発において依頼元が受託先にW&Bを活用してもらうことで自社にデータを残しつつ、W&Bレポートで定期的な報告を受けるという使い方もあります。
レポートにはコメントをつけることが可能ですので、チームメンバーで実験結果について議論しすることでコラボレーションが促進されます。また、開発進行中の議論が実験と紐付けて記録することで、ある意味ソフトな面でもトレーサビリティを高めてくれているとも言えるでしょう。
Python APIを用いた自動レポート作成
W&B ReportsはPython APIにも対応しているため、例えば、実験が終了すると自動でレポートを生成・更新することなども可能です。これにより、定期的な実験結果の共有や、大量の実験データからのレポート作成の労力を大幅に削減することができます。以下はPanel Gridに折れ線グラフと散布図を配置している例ですが、このようにブロックをリスト形式で並べていくことで直感的に使うことができます。クイックスタート用のColabがありますので、ぜひ試してみてください。
import wandb
import wandb.apis.reports as wr
report = wr.Report(
project="report-editing",
title="An amazing title",
description="A descriptive description.",
)
blocks = [
wr.PanelGrid(
panels=[
wr.LinePlot(x="time", y="velocity"),
wr.ScatterPlot(x="time", y="acceleration"),
]
)
]
report.blocks = blocks
report.save()
W&B Report Challenge🏆
こちらの記事でご紹介しているとおり、みなさまに公開レポートを書いていただき、その中から年間の最優秀レポートの著者に景品を進呈するW&B Report Challengeを開催中です。是非奮ってご参画ください。
まとめ
W&B Reportsは、MLプロジェクトの進行においてチームのコラボレーションを促進し、チーム全体の生産性と情報の透明性の飛躍的な向上に貢献します。また、これまでにない形での情報共有・発信を可能にするプラットフォームとして広く技術コミュニティに貢献するポテンシャルを秘めています。本稿を読んでくださった皆様も、是非ともW&B Reportsをご活用頂ければ幸いです。