nikkie-ftnextの日記

イベントレポートや読書メモを発信

Google ColabからGitHubに保存したノートブックが「Invalid Notebook」となってGitHubでレンダーされない事象を解決する(2025年6月時点)

はじめに

七尾百合子さん、お誕生日 82日目 おめでとうございます! nikkieです。

ModernBERTをGoogle Colabでファインチューニングした際の裏話です

目次

まとめ

  • Google Colabの「Save a copy to GitHub」でコミットしたノートブックがGitHubで「Invalid Notebook」と表示される問題に直面
  • 今回は.metadata.widgets."application/vnd.jupyter.widget-state+json"に空のstateを追加する方法で解決

絶望の「Invalid Notebook」

ModernBERTを素振りし、Google ColabからGitHubリポジトリにコミットしたnikkie氏(File→Save a copy to GitHub1)。

GitHub「Invalid Notebook」

There was an error rendering your Notebook: the 'state' key is missing from 'metadata.widgets'. Add 'state' to each, or remove 'metadata.widgets'.

膝から崩れ落ちました orz

ModernBERTの素振りで全て出し尽くしていた私は o3 + Web search にすがります。

(上のスクショ)
Google Colabで作ったノートブック https://github.com/ftnext/practice-dl-nlp/blob/master/bert_exercise/modernBERT_synthetic_domain_text_classification.ipynb がGitHubで「Invalid Notebook」と表示されて困っています。解決策を調べてください

.metadata.widgets."application/vnd.jupyter.widget-state+json"に空のstateを追加する

ズバリなdiscussionを見つけてきてくれました。
ありがとう〜、最高です!

いくつか解決策が共有されている中で私が選んだのはこちら2
https://github.com/orgs/community/discussions/155944#discussioncomment-12923686

jq '.metadata.widgets."application/vnd.jupyter.widget-state+json" += {"state": {}}' notebook.ipynb > temp_notebook.ipynb

mv temp_notebook.ipynb notebook.ipynb

ローカルでコマンドを実行し、コミットしてpushしたところ、Invalid Notebookは解消しました!🙌

他の解決方法:出力の削除

上記discussionでは出力を削除する方法も紹介されています。

終わりに

ModernBERTの素振りで全て出し尽くしたので、o3が解決策を見つけてきてくれて大変助かりました。
ヤクの毛刈り感があったのですが、o3に代行してもらう体験がよすぎました。
今後のブログ執筆や発表準備でも検索代行は有力な選択肢です。

事象自体はこの4月くらいから発生しているようです。
GitHubで公開されてるnotebookが見られないことがあるな〜」と思っていたのですが、forkしてcodespacesでこのコマンドを実行するようなworkaroundが浮かびました(プルリクも送っちゃえるかも)

今週見たこちらのツイートでo3をまず選べたのも大きかったです。