私たちの課題
作成者: Sualeh Asif の 研究
更新: 私たちはさらにいくつかの問題について書きました。
短く具体的な問題の箇条書き(順不同):
- より良いコンテキスト: コードエディタには多くの情報源があります。開いているファイル、意味的に類似したコード片、記号的に関連するクラス、lint出力、実行トレース、git履歴、入力履歴、外部ドキュメントなどです。私たちは、モデルがユーザーの質問に最も関係するものを即座に理解できるようにしたいと考えており、この課題を解決するために高速なカスタム再ランカーモデルを現在トレーニングしています。各リクエストごとに、あらゆるソースから50万トークンを収集し、再ランカーを用いて最も関連性の高い8千トークンに絞り込みます。これはモデルの課題であると同時に、今後ますますインフラの課題でもあります。
- “編集のためのコパイロット”: GitHub Copilot は、新しいコードを書いているときに低エントロピーなキー入力を大幅に削減するうえで非常に有用ですが、既存のコードブロックに対して小さく単純な変更を行う場面で、同様に低エントロピーなキー入力を節約する助けにはなりません。たとえば、単なる F2 による記号的なリネームでは手に余る、ほんの少し複雑なリネームに必要なナビゲーション、削除、入力のキー操作を考えてみてください。私たちは、UX(コーディング中にさりげなく提示される差分)とモデル側(コスト、レイテンシ、知能面の課題から、単なるプロンプトでは不十分)の双方でのイノベーションが必要になります。
- 制約付きのインライン型エージェント: OpenAI の Code Interpreter を思い浮かべてください。ただし、大規模なコードベース向けのエンジニアリング用です。あなたは数ステップで動く制約付きエージェントに指示を出し、エージェントは検索・記述・実行まで行い、その過程で適宜あなたにフィードバックを求めます。これを実現する最初のステップとして、現在取り組んでいるのは、数十万トークン規模のフォルダで動作するこの種のエージェントの実装です。これがうまくいけば、対象を拡大し、コードベース全体で機能するようスケールさせます。
- バグ検出: ここには2つのモードがあります。(1) バックグラウンドでは、Cursor が常に受動的にファイルをスキャンし、潜在的なバグを見つけます。(2) デバッグセッションに本格的に取り組んでいるときは、Cursor があなたの支援を受けながら能動的にバグを特定します。ここでは収集すべき興味深いデータが多数あります。
- より大きな編集: Cursor は、ファイル全体、さらにはディレクトリ全体まで、あなたの代わりに変更できるべきです。これは、機能面と UX の両面での課題です。高速化のためには、すべてを書き直すことなく、どの部分を変更すべきかを見抜けるだけの賢さがモデルに必要です。使い勝手を高めるには、変更内容をパース可能なリアルタイムの形式で表示する必要があります。
- スケール: 2023年10月12日現在、14億のベクターと15万のコードベースをインデックス化しています。年末までにおそらく10倍に成長する見込みです。Rustで非常に高速なMerkleツリー方式のコードベース同期エンジンは既に構築済みで、近いうちにカスタムのインデキシングシステムを構築する必要があるかもしれません。
将来のアイデア:
- Time warp:今後15分間に行う予定のファイル横断のコード変更を予測して表示します。挿入・削除を一括承認するキーボードショートカットを1回で実行できます。
- 理解:私たちのモデルは、どんなコードベースに含まれるあらゆる概念も、重みの中に深く理解しているべきです。
- リーダーモード:任意の詳細度のドキュメントと、必要に応じて解説しながら関連するコード経路を案内するボットにより、コード理解を手間なく行えます。
- 疑似コードモード:コードの「アウトライン」表現を編集すると、その変更が自動的にソースレベルへ反映されます。
- スタックトレースに悩む必要はもうありません:IDEが状況を理解し、あなたのためにコードを自動修正します。
今考えている課題をすべて挙げようとしましたが——そして、1日12時間自分たちで使うプロダクトを作ることの素晴らしさの一つでもありますが——常に新しいアイデアが生まれ、優先順位も入れ替わるため、これを最終的なロードマップと捉えるべきではありません。とはいえ、私たちが毎日何に頭脳リソースを費やしているかの感触はお伝えできるはずです。
ここまで読み進めていただいたということは、私たちが取り組んでいる課題に興味をお持ちかもしれませんね :) もしそうであれば、ぜひ私たちの仲間に加わることをご検討ください!私たちと一緒に働くことをきっと気に入っていただける理由を、いくつかご紹介します。
- 多くの人が Cursor を気に入って使っています。 初期の成長にはとても満足しています。
- ここでは本当に優秀な人たちと働けます。 私たちはタレント密度を重視しています。一緒に働くメンバーは皆、本当に優れた人材です。
- AIコーディングは巨大な市場です。 そして、私たちなら勝てます。
- 楽しい。 これは私たちにとってとても重要です。好きな仲間と働くのは楽しいし、Cmd-Shift-R を押して即座にユーザーの反応が得られるようなプロダクトを作るのも楽しい。自分自身がコーディング中のターゲットユーザーだからこそです。そして、プログラミングの退屈な部分をすべて自動化していくために、毎日少しずつ前進するのも楽しいのです。
- 私たちは全力で取り組みます。 こうした課題に取り組めることを幸運に感じ、解決に向けて全力を注ぐことを楽しんでいます。