2024-10-07
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
マシンハートコンピレーション
著者: オマル・ハッタブ
編集者:エッグソース、全庵
論文を書いていますか?それはほんの小さな一歩です。
大学院では、多くの人が自分の研究をどのように構成すればよいか迷うことがよくあります。すでに混雑している人工知能の分野に変化をもたらすために、研究をどのように実施すべきでしょうか?
長期的なプロジェクト、適切なコードのリリース、よく考えられたベンチマークは十分な動機にならないと信じている人が多すぎます。場合によっては、それをすぐに罪悪感を持って実行し、その後「本当の」研究に戻ることもあります。
最近、スタンフォード大学の nlp グループの博士課程候補者であるオマール・ハッタブ氏は、影響力のある研究を行うことに関する一流の ai 学者の考えについて論じたブログ投稿を公開しました。
彼が何を言ったか見てみましょう:
研究の影響にはさまざまな形がありますが、ここではオープンソースの作業 (モデル、システム、フレームワーク、ベンチマークなど) を通じて ai に対する研究の影響を測定することにのみ焦点を当てます。私の目標の一部は、アイデアを洗練し、具体的な提案を記録し、フィードバックを収集することなので、声明をより簡潔にします。他にアイデアがある場合は、コメント欄で議論してください。
まず、基本原則は次のとおりです。
論文ではなくプロジェクトに焦点を当てましょう。
より発展の余地のある適切な問題を選択することで、「穴を掘る」ことができます。
2 歩先を考えて、迅速に繰り返します。
自分の作品を公開し、アイデアを宣伝してください。
自分自身のモチベーションを高める方法を見つける: オープンソース研究を成長させるためのヒントを紹介します。
新しい論文のプロジェクトへの投資を続けてください。
5 番目のポイント「オープンソース研究を開発するためのヒント」は、それ自体が長い記事になる価値があります。それについては次回の投稿で書くかもしれません。
プロジェクトに集中する
紙ではなく
これは、他のすべての基礎となる重要な考え方です。
初心者の学生は、最初の数本の論文を発表することに重点を置きます。これは理にかなっています。これは、研究を実施し、最初の方向性を模索し、初期の進歩を実証する方法を学ぶ方法です。しかし、これは最終的には去らなければならない段階です。長期的には、あなたの成果と成長は、論文の膨大な数よりも、あなたの影響力とあなたが伝える全体的な研究の背景に依存します。
残念なことに、あまりにも多くの博士課程の学生が、潜在的に影響を与える可能性のある行動のほとんどを「やる気が無い」ものと見なしています。このことに私は混乱しましたが、これらの行為が次の論文の出版を遅らせる可能性があるということを意味していることに気づきました。しかし、次の論文をすぐに出版できるかどうかは、それほど重要ではありません。
自分の仕事を一連の独立した論文として考えるのではなく、自分自身に問いかけてみることをお勧めします。自分が導こうとしているより大きなビジョンは何で、その中のサブフィールドやパラダイムは何でしょうか?自分の仕事にどのような変化をもたらしたいですか?したがって、ベンチマークを調査して確立するために個別の論文を公開する一方で、より大きなビジョンについては意図的に反復する必要があります。この問題は紙に掲載されているよりもはるかに大きくする必要があり、まだ完全には解決されていない問題であることは確かです。
これを行う 1 つの方法は、オープン ソース ドメインで維持する一貫した成果物 (モデル、システム、フレームワーク、ベンチマークなど) を中心に研究論文を構成することです。この戦略は、「いくつかの実験を実行し、短期間のクイック リポジトリを公開する」よりもコストがかかりますが、実際に影響を与える問題を見つける必要があり、行う新しい研究が実際に一貫性があり有用であることを確認するのに役立ちます。労力はかかりません。開発および保守してきた成果物には役に立たない小さな機能やトリックを導入することは危険です。
改善の余地が大きい適切な質問を選択してください
「穴を掘る」ことができる
あなたが書いたすべての論文が無期限に投資する価値があるわけではありません。多くの論文は 1 回限りの探索的な論文です。大規模なプロジェクトに発展する可能性のある方向性を見つけるには、次の基準を使用します。
まず、問題は最先端のものでなければなりません。さまざまな方法で定義できますが、aiこの分野における効果的な戦略は、2 ~ 3 年後には「ホット」になるが、まだ主流にはなっていない問題領域を見つけることです。
第 2 に、問題には大きな穴を掘る可能性、つまり多くの下流の問題に潜在的な影響を与える可能性がある必要があります。基本的に、これらの質問の結果は、多くの人にとって有益であるか、興味を引く可能性があります。研究者や人々は、何が自分たちの目標を達成するのに役立つかに関心があるため、あなたの質問は、他の人が何かを構築したり、研究や生産の目標を達成したりするのを支援するようなものかもしれません。このフィルターを適用して、理論的基礎、システム インフラストラクチャ、新しいベンチマーク、新しいモデル、その他多くのものを研究できます。
第三に、問題にはより大きなマージンを残さなければなりません。システムの速度が 1.5 倍、または効率が 5% 向上する可能性があると人々に伝えても、おそらく面白くないでしょう。私の意見では、少なくとも何年ものハードワークを経て、何かを高速化する、たとえば 20 倍高速化または 30% 効率化できるという希望がゼロではない問題を見つける必要があります。もちろん、成功するためにそこまで到達する必要はありません。最初の論文を出版したり、最初の作品をリリースしたりするために完全に到達するまで待つべきではありません。
あまり抽象的になりたくないので、colbert を使って説明しましょう。 2019年末、bertを検索に適用する研究が非常に人気がありましたが、これらの手法は非常に高価です。このアプローチの効率を大幅に向上させることはできるだろうか、という疑問が自然に生まれます。これが良い質問である理由は何でしょうか?
まず、非常に前置きです。 2021 年 (1 年半後) までに、多くの研究者が bert に基づく効率的な検索アーキテクチャを模索することになると正しく予測できます。第二に、開発の余地がたくさんあるということです。新しい ml パラダイムはこのような傾向があります。これは、そのような取り組みのほとんどが最初は効率を無視しているためです。実際、元のアプローチではクエリに応答するのに 30 秒かかる可能性がありましたが、現在では 1,000 倍速い 30 ミリ秒で高品質の取得を完了できます。第三に、ファンアウトが大きいです。スケーラブルな検索は優れた「基礎」問題です。誰もが検索ツールの上に何かを構築する必要がありますが、それを構築したいと思う人はほとんどいません。
2歩先を考える
素早く繰り返します
適切な問題を解決したので、目の前にある簡単な解決策をアプローチとして急いで選択しないでください。ある時点で、少なくとも多くの人が最終的には「明白な」アプローチを検討するでしょう。
代わりに、少なくとも 2 歩先を考えてください。このタイムリーな問題が最終的に主流になったときに、ほとんどの人が選択するであろう道を特定します。次に、パス自体の制限を特定し、それらの制限を理解して対処するように努めます。
これは実際にはどのように見えるのでしょうか? colbert のケースをもう一度見てみましょう。 bert を使用して効率的な取得プログラムを構築する明白な方法は、ドキュメントをベクトルにエンコードすることです。興味深いことに、2019年末までにこれを達成したのは限られたir作業のみでした。たとえば、このカテゴリで最も引用されている著作物 (dpr) は、2020 年 4 月に最初のプレプリントをリリースしたばかりです。
これを踏まえると、2019 年に行うべき正しいことは、bert を介して優れた単一ベクトル ir モデルを構築することだと考えるかもしれません。対照的に、ほんの 2 歩先を考えると、遅かれ早かれ誰もが単一ベクトルのアプローチを構築することになりますが、この単一ベクトルのアプローチは根本的にどこで行き詰まっているのでしょうか?実際、この問題は後のインタラクション パラダイムと広く使用されるモデルにつながりました。
別の例として、dspy を使用できます。 2022 年 2 月、ヒントがますます強力になるにつれ、人々は以前のように微調整するのではなく、検索ベースの品質保証にヒントを使用したいと考えていることが明らかになりました。そのためには当然手法を確立する必要があります。さらに 2 歩進んで、このようなアプローチはどこで行き詰まっているのでしょうか?結局のところ、「取得してから生成する」(または rag) アプローチが、おそらく lm を伴う最も単純なアプローチです。
人々がそれに興味を持っているのと同じ理由で、(i) より複雑なモジュールの組み合わせを表現すること、(ii) 基礎となる lm の自動プロンプトまたは微調整を通じて何をすべきかを理解することへの関心がますます高まっていることは明らかです。結果として生じる複雑なパイプラインを監視または最適化します。これがdspyです。
このルールの後半は「迅速に反復する」です。おそらくこれが、私のアドバイザーのマテイ・ザハリア (スローン賞受賞者で apache spark の創設者) が博士課程の最初の週に私に与えた最初の研究アドバイスでした。それは、迅速に反復してフィードバックを得ることができるトピックを特定することです (遅延や遅延など)。問題のスコア) バージョンを確認すると、パズルを解く可能性が大幅に高まります。これは、2 歩先のことを考えている場合に特に重要ですが、それは困難で不確実です。
自分の作品を公開する
あなたのアイデアを浸透させましょう
この時点で、良い問題を発見したことになります。素晴らしい問題を発見して洞察力に富んだ記事を書くまで、繰り返しを続けます。次の論文に進まないでください。代わりに、自分の仕事の結果を世に送り出すことに集中し、1 つの論文の発表だけでなく、積極的に研究している全体像について人々と実際に交流するよう努めてください。さらに良いのは、重要なアイデアを捉えた、あなたが構築および保守している便利なオープンソース ツールについて人々に知らせることです。
一般的な最初のステップは、arxiv で論文のプレプリントを公開し、次に論文の出版を通知する「投稿」を公開することです。これを行うときは、具体的で実質的でわかりやすい主張から投稿を始めるようにしてください。目的は、本質的に価値のない論文を発表したことを人々に伝えることではなく、重要な主張を直接的かつ魅力的な方法で伝えることです。 (はい、それが難しいことはわかっていますが、それは必要なことです)。
おそらくもっと重要なことは、プロセスは最初の「起動」で終わるのではなく、単なる始まりにすぎないということです。皆さんが現在、論文だけでなくプロジェクトに投資していることを考えると、皆さんのアイデアや科学コミュニケーションは、単独の論文出版をはるかに超えて、年間を通じて継続されるでしょう。
大学院生が自分の研究についてツイートするのを手伝うとき、最初の投稿が期待したほどの注目を集められないことは珍しくありません。学生は多くの場合、これを自分の研究を発表することへの恐怖が正当化されていると見なし、次の論文に進むべきであるという別の兆候として受け取ります。明らかに、この考えは間違っています。
この問題に粘り強く取り組むことが非常に理にかなっていることを示す、個人的な経験、二次的な経験、観察が豊富にあります(ちなみに、そうする人は多くありません)。つまり、まれな例外を除いて、良いアイデアを牽引するには、さまざまな文脈で重要なことを何度も人々に伝え、コミュニティが時間の経過とともに成長するまで、またはそのアイデアが吸収されるまで、自分のアイデアとそのアイデアの提供を継続的に改良する必要があります。この分野は、これらのアイデアがより容易に理解される開発の適切な段階に達しています。
興奮を集める
オープンソース研究を公開するためのヒント
あなたの研究について人々を興奮させるのは良いことですが、オープンソース ツールの公開、貢献、開発を通じて、関連する下流アプリケーションにアイデアを提供することは、多くの場合、より大きな影響を与える可能性があります。
これを行うのは簡単ではありません。コード ファイルを readme とともに github にアップロードするだけでは十分ではありません。優れたリポジトリはプロジェクトの「ホーム」となり、公開するどの論文よりも重要です。
優れたオープンソース研究には、ほぼ独立した 2 つの品質が必要です。まず、それは優れた研究であり、斬新で、タイムリーで、範囲が広く、正確である必要があります。第二に、明確な下流ユーティリティと低摩擦を備えている必要があります。
これが最も重要な部分です。人々はあらゆる「間違った」理由で、あなたの oss 作品を繰り返し避けます (そして他の人は繰り返し使用します)。たとえば、あなたの研究は客観的には「最先端」かもしれませんが、おそらく人々は摩擦の少ない代替案を優先するでしょう。逆に、大学院生は、たとえば、最も創造的な部分を最大限に活用していないため、人々があなたのツールを使用する理由の要点を見逃していることがよくあります。これは抵抗する価値のあるものではありませんが、理解し、改善する必要があるものです。
これを踏まえて、研究成果をオープンソース化する際に注目すべきマイルストーンをいくつか挙げてみたいと思います。
マイルストーン 0: 公開されたコンテンツを利用可能にする
誰も実行できないコードを公開しても意味がありません。あなたの研究分野において、これらの人々はあなたの成果を再現したいと考えており、あなたの研究の範囲を超えて、あなたの研究結果を引用するかもしれません。これらの人々は、他のタイプのユーザーよりも忍耐強くなります。それでも、コードにパッチを適用するのがどれだけ簡単かによって、学術的な影響に大きな差があることがわかります。
マイルストーン 1: 公開されたコンテンツを役立つものにする
あなたのリリースが、あなたの専門分野の人々だけでなく、そのプロジェクトを実際に使用して他のものを構築したいと考えている聴衆にとっても有益であることを確認する必要があります。人工知能の研究において、このマイルストーンが自然に起こることはほとんどありません。人々が解決しようとしている問題 (研究、生産など) と、ai の取り組みがどこに役立つかを考えることに多くの時間を割り当てる必要があります。これを正しく行うことができれば、プロジェクトの設計から公開された api、ドキュメントやサンプルの提供に至るまで、多くのメリットが得られます。
マイルストーン 2: リリースを分かりやすくする
これは ai 研究者にとっては難しいことですが、すべてが技術的に利用可能である程度説明可能な便利なバージョンであっても、潜在的なユーザーの大多数がこれを見つけるとは限らないことを理解する必要があります。バージョンは理解しやすく、ユーザーを維持するのに十分です学習したり試したりすることに取り組んでいます。
有名な ai 学者の andrej karpathy は、この問題について次の記事を書きました。「何かを構築すると、そこに到達するためにスロープを構築する必要がある。」 ben clavie もこれについて詳しく書いており、colbert で私たちが行った作業を取り入れて、colbert をより親しみやすくすることに大きく貢献してくれました。
マイルストーン 3: 明白な代替案が失敗した理由を解明し、辛抱強く待つ
まずは2歩先を考えることから始めました。これは私の意見では非常に重要ですが、同時に、ほとんどの人が、まだ明確に観察できない問題の解決策がなぜ必要なのか理解できないことを意味します。長期にわたるあなたの仕事の一部は、ケースを構築することだと思います。証拠を収集し、明白な代替案(一度に 1 ステップずつ考える)が失敗する理由をわかりやすい方法で説明します。
マイルストーン 4: ユーザーのタイプを理解し、これを成長に活用する
私が colbert と dspy を始めたとき、私の最初の聴衆は研究者とプロの ml エンジニアでした。時間が経つにつれて、私はそれを手放し、より多くの聴衆にリーチできることを理解しましたが、彼らは異なるものを求めています。何かを行う前に、さまざまなカテゴリの潜在的なユーザーを間接的または直接的にブロックしないでください。この状況は人々が思っているよりもはるかに一般的です。
次に、ユーザーを探すときは、2 つのタイプのユーザー間のバランスを見つける必要があります。一方で、高度なユースケースを扱う専門ビルダーは多額の投資を必要とするかもしれませんが、研究という意味で特定のユースケースを推進する傾向があり、それが報われる可能性があります。一方、公開ビルダーは通常、ml の専門家ではありませんが、学習内容を公開して構築して共有することが多く、大規模な成長の大きな割合を占めるため、最初の仮説学習についてさらに深く考えるようになります。両方必要です。
マイルストーン 5: 関心を成長するコミュニティに変える
oss 作業の真の成功は、コミュニティの存在と、ユーザーの努力に関係なくコミュニティが継続的に成長することにあります。一般に、優れたコミュニティは有機的である必要がありますが、投稿やディスカッションを歓迎したり、関心を投稿や何らかのフォーラム (discord や github など) に変える機会を探したりするなど、その形成を支援するために積極的に取り組む必要があります。
マイルストーン 6: 関心をアクティブで協力的なモジュール式の下流プロジェクトに変換する
おそらく、初期段階の oss プロジェクトでは、当初のビジョンにあるすべての問題が解決されるわけではありません。適切に設計されたプロジェクトには、多くの場合、研究共同作業 (またはその他の取り組み) を開始できるようにする複数のモジュール部分があり、新しいチーム メンバーがプロジェクトを進めるだけでなく、プロジェクトの重要な部分を所有できるようになり、プロジェクトをより迅速に、またはより大きな影響力を与えることができます。彼らのアイデアを活用しながら、プロジェクトを劇的に改善します。たとえば、dspy には現在、ジャストインタイムの最適化、プログラミングの抽象化、強化学習の研究開発を主導する別のチームがあります。外部アプリケーション プログラミング インターフェイス、基盤となる検索インフラストラクチャ、コア モデリングなどの colbert のコンポーネントは、主にさまざまなプロジェクトのさまざまな人々によって推進されています。
さあ、まとめてください。オープンソースの研究を採用するには、優れた研究とオープンソースの優れた結果が必要です。このバランスを取るのは難しいですが、一度正しく理解できれば、非常にやりがいのあるものになります。個人的には、これを理解して理解するのに長い時間がかかりました。これは、博士課程の指導教官である chris potts 氏と matei zaharia 氏からの度重なるフィードバックと、heather miller 氏と jeremy howard 氏からの貴重な意見のおかげです。
研究を評価する基準は、以前の知識と比較した「増分」ですが、その「増分」を有意義に活用するには、ソフトウェア自体が効果的でなければなりません。ソフトウェアが効果的であるためには、そのドキュメントも効果的である必要があります。ソフトウェアを実際に見せない限り、人々はそのソフトウェアを使用するための下流の方法をすべて理解することはできません。つまり、これらのタスクが独立したコミュニティによって開発されるようになるまでです。
そうは言っても、このセクションで最も重要なスキルは「公開する」こと、実際に公開し、頻繁に公開し、そこから学ぶことです。
新しい論文を出版する
独自のプロジェクトへの投資を継続する
5 番目のルールを読むと、「大学院生はどこでオープンソース ソフトウェアにそんなに多くの時間を費やしているのでしょうか?」という疑問が自然に生まれます。いつになったら本当の研究ができるようになるのでしょうか?
実際的な答えは、オープンソースに費やされる時間のほとんどは、新しくて刺激的な研究を行うために使用できるということです。この 2 つは見た目ほど分離していません。なぜそんなことを言うのですか?
まず、この種のオープンソース ソフトウェア作業の最前線に立つことで、新しい問題を非常に早い段階で直感的に特定できるようになります。そうしない場合よりも直感的に問題を理解できるようになります。さらに、構築したコミュニティでは、多くの場合、独自のメソッド プロトタイプに対する直接フィードバックが提供され、問題の重要性を理解している有能な協力者にアクセスできるようになります。また、この分野で出版するすべての新しい論文が確実に読者に届き、既存のプラットフォームを強化するための便利な「配布チャネル」にもアクセスできるようになります。
たとえば、「colbert」は2020年初頭の単なる論文ではありません。現在、おそらく 10 件ほどのフォローアップ関連論文があり、トレーニングの改善、メモリ使用量の削減、より高速な検索インフラストラクチャ、ドメインの適応性の向上、下流の nlp タスクとのマッチングの向上に投資しています。同様に、dspy は論文ではなく、プログラミングの抽象化、ヒントの最適化、およびダウンストリーム プログラムに関する論文のコレクションです。これらの論文の多くはさまざまな優れた著者によって書かれており、オープンソース ソフトウェア チャネルを通じて多くの読者を獲得することなどにより、彼らの研究は多大な影響を与えています。
したがって、優れたオープンソース ツールは、新しい研究者や貢献者が探索、所有、開発できるモジュール式の作品を作成できます。
参考原文:https://github.com/okhat/blog/blob/main/2024.09.impact.md