NotionがAI機能を開発する方法(ライナス・リー)
(youtube.com)-
ライナス・リーのAI開発経験
- ライナス・リーはNotionでリードAIエンジニアとして働いている。
- Notion以前には、NLP、機械学習、HCIに関する研究を多く行い、プロトタイピングや執筆も活発に行っていた。
- NotionではQ&A、Autofill、AI Writing機能を開発し、潜在空間モデルに関する研究も進めてきた。
-
NotionのAI開発概要
- ライナス・リーは大学時代から、さまざまなWeb開発や生産性ツールを開発してきた。
- 2022年のあいだ独学でAI関連の論文を読み、研究を始めた。
- 2022年10月、NotionのAI Writerベータプロジェクトに参加することになった。
- Notion入社当時、AIチームは4人で構成されていたが、現在は約20人まで成長した。
- ライナス・リーが参加した主要プロジェクトはAI Writer、Autofill、Q&Aで、それぞれ2023年2月、5月、11月にリリースされた。
- 今後Notion AIは、エージェント技術を通じて使い勝手をさらに改善していく計画だ。
-
NotionのオフィスとAIチームの紹介
- Notionはサンフランシスコとニューヨークにオフィスを構えており、サンフランシスコのオフィスは昼食やイベント用スペースとして活用されている。
- ニューヨークのオフィスはライナス・リーが暮らし働く場所で、洗練されたデザインの業務環境を誇る。
- NotionのAI機能開発は2013年に始まり、CEOとCTOが直接プロダクト開発に参加している。
- 2022年秋のAIチームのミーティング写真には、マネージャー、CEOのIvan、CTOのSimon、プロダクトマネージャーやデザイナーたちがQ&Aセッションを進める様子が写っている。
- AIプロダクト開発では品質と評価が重要な要素であり、リサーチベンチマークから実運用までのスペクトラムを踏まえた評価手法を用いている。
- Notionはベンチマークと実データのあいだで性能を確認し、モデル性能をプログラムによるテストで正確に評価する。
- 評価項目には、特定の単語、信頼性、キーワードの含有有無、正確な言語性能などがある。
-
NotionのAIプロダクト開発
- 人手による評価は、Notion AIプロダクト開発の重要な要素である。
- テストデータセットでは人間がデータを確認し、プログラムによるテストを通じてプロダクトを検証する。
- プロダクト開発後は、ユーザーのフィードバックに基づく継続的なモニタリングが必要となる。
- AIは、ユーザーの失敗事例の収集や質問応答などを効果的に行える、さまざまなレベルの機能を提供する必要がある。
- 高品質なAIプロダクト開発の核心は、改善とデータの質にある。だからこそ現実世界のデータをモデルに合わせることが重要だ。
- Notionチームは、エンジニア、研究者、デザイナー、プロダクトマネージャーが一緒に改善機能を議論しながら開発する。
- GPT-4のようなモデルを使って成果物の質を高めるため、改善モデルを継続的に改良している。
-
Notion AI機能の開発プロセス
- NotionのAIエンジニアたちは、情報収集とデータ構成を通じてモデルを開発する。そのため、データを徹底的に分析し、ユーザー要件に合わせる必要がある。
- Notionユーザーの会議ノートやWebページなどの情報を整理する方法を研究しながらデータセットを構築する。これはAIモデルの性能に影響するためである。
- 研究を通じてQ&Aのようなユースケースを特定し、モデルをテストする。そうすることでユーザーの質問に対して効果的な回答を提供できるようにする。
- GPT-4やクラウドモデルなどを使ってプロトタイプシステムを開発する。そしてこれを社内でテストし、初期の問題点を把握する。
- 社内利用を通じて収集した失敗事例を分析し、それをもとにデータセットとモデルを改善する。こうして反復的なテストとフィードバックによってモデルの精度を高める。
-
NotionのAIモデル開発と評価手順
- モデルの反復プロセスには、プロンプトの修正、モデルの微調整、そして言語モデルパイプラインの第2段階を追加する作業が含まれる。
- 開発段階で問題を解決したと判断したら再度デプロイし、より多くの失敗事例を収集して反復を続ける。
- 社内環境で入出力の品質が満足できるレベルに達するまで、このプロセスを繰り返す。
- ある時点でプロダクトをベータプログラムを通じて少数のユーザーに公開し、ユーザーフィードバックと自動収集されたログデータを監視する。
- データセット構築の初期段階では、実際の利用事例を十分に反映しているか確認するために、さまざまな方法を使う。
-
AI機能開発の初期段階
- プロトタイプを作り、社内AIチームとテストする。
- そのため社内利用を通じて多様な入力と事例を収集する。
- 初期の入力セットは、必ずしも現実の事例を完全に代表している必要はない。
- 社内テスト後、より広いユーザー層に展開して、徐々に現実的なデータを確保する。
- 予測される失敗事例にもとづいて初期データセットを構築することもできる。
- 言語サポート機能を開発する際には、既存のQAデータセットを外国語に翻訳して利用する。
-
内部および外部テストを通じたデータ収集と評価
- 初期データセットは完全に現実的である必要はない。だからこそテストを通じてより良いデータを収集する。
- プロトタイプを社内または小規模な外部ユーザーにテストしてもらい、誤った出力例をさまざまな方法で収集する。
- キーワードまたは出力構造にもとづく評価をプログラムで実施し、すべてのAI推論についてログを残す。これにより失敗した出力を確認し分析できる。
- ユーザーインタビューを通じて実際の利用事例を理解し、想定外の使われ方を発見できる。
- たとえばAutofill機能の社内テスト中、多くの社員が翻訳目的で使っていることが判明し、その機能をより最適化された翻訳版として開発した。
-
AIプロダクトのフィードバックと評価方法
- いいね・よくないねのフィードバックボタンは、ユーザーにとってあまり有用ではなく、頻繁には使われない。
- また、Notionのユーザー規模では、このようなフィードバックボタンだけで十分なデータを確保することはできない。
- ただし、他のユースケースでは見つからなかった例外的な事例を捉えられることがあり、一部では役に立つ。
- 社内では、敵対的テストを通じてモデルの予期しない入力に対する性能を評価している。
- 敵対的テストは、モデルの性能限界を把握し、問題が発生する地点を特定するのに有用である。
- 実使用データを通じて、モデルの強みと弱みを継続的に監視する。
-
AIプロダクト開発の核心要素
- 最も重要なのは評価とログである。
- 包括的で、完全に再実行可能なログを構築する必要がある。
- 実運用中に発生した悪い出力例や社内テスト結果を通じて、パイプラインを再構築しデバッグできる。
- 各事例は開発環境で再実行し、新しいプロンプトやモデルでテストして解決策を探す。
- 問題を解決した後、その事例はテストデータセットに追加され、同じ問題が再発しないよう防ぐ。
-
AI開発における重要な教訓
- プロダクトを早く使い始め、頻繁にテストすることで、タスクへの理解を洗練させる必要がある。
- AIにおける差別化要因は、モデル性能ではなくタスク理解である。
- エンドユーザー向けのAIアプリケーションを構築する際、AIチームはタスクの難しさとモデルの限界を深く理解しなければならない。
- タスクを細かく分解し、モデルが頻繁に失敗する部分と自然にうまくできる部分を把握することが重要だ。
- プロダクトを頻繁に使い、出力を分析しながらモデルの誤りの原因を理解することが、タスクの難しさを理解する最善の方法である。
-
AIプロダクト開発時の注意点
- プロダクト仕様には、インターフェースや機能だけでなく、評価基準と良い出力値の基準も明記すべきである。
- 評価基準は、プロダクト担当者、エンジニア、研究者のあいだの主要なコミュニケーションポイントとして使われる。
- 従来の機械学習の経験は、LLMや生成AIモデルにも適用でき、思った以上に多くの洞察を与えてくれる。
- ただし従来の機械学習では大規模データセットを扱い、クラスターや大きな部分集合を分析する一方で、言語モデルでは個別の失敗事例や個別ログをより頻繁に確認する。
- そのため、言語モデルの作業には異なるツールとワークフローが必要になる。
-
AIモデル評価の重要性とアプローチ
- 評価においては、ユーザーと彼らが実際に行っていることこそが真実の源である。
- したがって、評価資料は社内外の利用データにもとづき、実際のユースケースを反映している必要がある。
- 評価プロセスにおける重要な課題は、システムがうまく動作してほしいすべての入力空間を十分に含めるようにすることである。
- 自動評価パイプラインを構築すれば、後で大量のデータを処理する際に時間を節約できるが、初期段階ではチームメンバーが直接出力を確認し理解することが重要だ。
- これは、モデルの失敗原因や特定タスクに対するモデルの傾向を把握するのに役立つ。
-
AIチームの構成方法
- 主なアプローチは2つあり、1つ目は既存の機械学習チームをAIチームへ転換する方法である。
- そうすると、データ、検証、ベンチマークに集中するチームになりうる。そのため、ユーザー要求と現実世界の期待に合うよう評価することが重要である。
- 2つ目は、既存のエンジニアチームがOpenAI APIなどの言語モデルAPIを学ぶ方法で、Notionもこの方法を採用した。そのため初期のAIチームは主にWebエンジニアで構成されていた。
- このようなチームの利点は、ユーザー理解とテスト実験に強みを持つことだ。ただし、厳密な評価と高品質データセットの重要性を学ぶ必要があった。
- また、データセット維持においては良い衛生習慣とワークフローが重要であり、高品質なデータポイントを確保することが不可欠である.
まだコメントはありません。