最大の効率: AIがソースコードを読み取って教えてくれる

最大の効率: AIがソースコードを読み取って教えてくれる

みなさんこんにちは、カソンです。

テクノロジー系のブログをよく読む友人なら、 Webpilot [1]をよくご存知かもしれません。これは、「Web ページのコンテンツについて質問できる AIGC ブラウザ プラグイン」です。

彼の役割は何ですか?

たとえば、技術記事を読む前に、まず Webpilot に記事の内容を要約するように依頼すると、要約を読んだ後に読みやすくなります。

このプロジェクトは非常に有用であり、コードはオープンソースであるため、その実装原則を調べないのは不合理です。さらに、著者チームが残した面白い情報もいくつか見つかりました。Webpilot の寄稿者コラムには、プロジェクトのメイン プログラマーは実際には ChatGPT だったと書かれていました。

コードは ChatGPT によって書かれたものなので (そう仮定しましょう)、手動でコードを読む必要はありません。

今日は、AIGC を試して、プロジェクトのソース コードを読んでから AIGC に学習させてみましょう。

アプリケーションの選択

現在、コード関連の AIGC アプリケーションの操作対象は、主に次のような「コード スニペット」または「特定のコード ファイル」です。

  • Githubコパイロット
  • カーソル

しかし、アプリケーションがプロジェクト全体を理解できるようにしたいので、アプリケーションは「コード スニペット」または「特定のコード ファイル」と「コード間の依存関係」の両方を理解する必要があります。結局のところ、コード ロジックは通常、複数のファイルにまたがります。たとえば、プロジェクトに次のようなメソッド fnA があるとします。

  • a.jsで定義
  • b.js および c.js での使用

したがって、fnA 関連の質問をするときは、AIGC アプリケーションのコンテキストに少なくとも次の情報が含まれている必要があります。

  • プロジェクトの全体的なステータス。
  • a.js、b.js、c.js のコード。

そうして初めて、良い質問に答えることができるのです。

同様の効果を実現するために、業界では埋め込みが一般的に行われています。これは、「コンテンツ エンティティを低次元のベクトルにマッピングし、ベクトル間の類似性によってコンテンツの関連性を判断する」というものです。

例えば、オープンソースプロジェクトpdfGPT[2]はPDF文書を受け取り、ユーザーは文書の内容について質問することができます。

文書は数百ページにも及ぶことがあり、GPT が一度に受信できるトークンの数には限りがあります。「ユーザーの質問に基づいて文書全体から回答を検索する」という目標をどのようにして達成するのでしょうか。この原則は大まかに次のように要約できます。

  1. PDF ドキュメントを小さなコンテンツ チャンクに分割します。
  2. コンテンツ ブロックは、埋め込みによって低次元ベクトルにマッピングされ、保存されます。
  3. ユーザーが質問すると、まずその質問が低次元ベクトルにマッピングされます。
  4. 3 の低次元ベクトルをすべての「保存されている低次元ベクトル」と比較して、相関が最も高いベクトルを見つけます。
  5. 「ユーザーの質問」と「ユーザーの質問と最も相関の高いベクトルに対応するコンテンツブロック」を組み合わせて、LLMに質問します。
  6. 答えを得る。

上記の「PDF文書を解析する」というアイデアに従って、コードを解析するためのアプリケーション、bloop[3]を見つけました。

ブループの紹介

Bloop は pdfGPT に少し似ていますが、コード リポジトリを受け取り、ユーザーがコード リポジトリについて質問する点が異なります。

公式サイトからbloopデスクトップアプリをダウンロードした後、Githubアカウントをバインドして無料で使用してください。

注意: bloop は、すべてのパブリック リポジトリとプライベート リポジトリに対する読み取りおよび書き込み権限を要求します。関心のある学生は私のように新しい Github アカウントを登録できます。

私は Webpilot プロジェクト (ソース コードを学習するプロジェクト) をフォークし、ここで bloop に Webpilot を直接同期させます。

このステップでは、bloop 内でコード ファイルの低次元ベクトルを作成する必要があります。

これで、Webpilot プロジェクトについて bloop に質問することができます。最初の質問を見てみましょう。

このプロジェクトについて簡単に紹介します。

残念ながら、最初の文は間違っています。Webpilot は「Web ページのコンテンツについて質問できる AIGC ブラウザ プラグイン」であり、テキストを画像に変換するプログラムではありません。

Webpilot プロジェクトには確かに MidJourney (プロンプトワードに基づいて画像を生成する AIGC アプリケーション) に関連するコードがありますが、この回答は明らかに一般化されています。

これは、Bloop が役に立たないことを意味しますか?あまり。

先ほど、Embedding 実装方法では、「質問内容に関連するコンテンツ」のみを取得し、そのコンテンツに基づいてモデルに質問できると述べました。モデルが質問する前にコード ロジックを完全に理解する必要はありません。

つまり、上記の「fnA について質問する」という例では、Embedding を使用した後、次の情報を統合してモデルに入力します。

  • プロジェクト全体の状況
  • a.js、b.js、c.js のコード
  • ユーザーの質問

モデルは上記の情報に基づいて質問に答えます。

モデルがプロジェクト コード ロジックを理解した後で「fnA 関連の質問」に回答する代わりに。

したがって、エラー質問をするときは、次のようなヒントを与える必要があります。

  • ファイル名
  • 関数名
  • 変数名

このように、bloop は手がかりに基づいた埋め込みを通じて関連コンテンツを見つけることができます。

「このプロジェクトを簡単に紹介する」を「README の情報に従ってこのプロジェクトの目的を紹介する」に変更すると、bloop は私たちが望んでいた答えを返してくれました。

その中でも、README は私たちが与えるヒントです。

bloopでソースコードを読む

ブループとの会話は、答えを探すだけでなく、ブループにさらなる手がかりを与えることにもなります。たとえば、bloop が次のように答えるとします。

Webpilot を使用すると、Web ページと自由形式の会話をしたり、他のユーザーと自動討論を行ったりすることができます...

結局、答えは私たちだけでなく、bloop 自体にも当てはまります。答える前、彼は Webpilot で何ができるのか知りませんでした。これに答えた後、次の質問に進むことができます。

「Web ページと自由形式の会話を行う」というロジックはどこで定義されていますか?

この時点で、bloop は重要な情報を教えてくれます。アプリケーションのメイン ロジックは useAskAi メソッドにあります。

次に、Webpilot の実装原理を理解するために、bloop に useAskAi メソッドを詳しく説明してもらいましょう。

さて、次のような質問について考えてみましょう。

useAskAi メソッドはどのモジュールで使用されますか?

ブループは正しい答えを言えるでしょうか?答えは「そうでもない」です。

これは少し直感に反します。結局のところ、プログラマーの観点から見ると、コード ブラウザーとしての bloop は、モジュールの依存関係を静的に分析することで答えを見つけることができます。

ただし、bloop は埋め込み技術に基づいて実装されています。 bloop の最下位レベルにはモジュール依存関係グラフはなく、「コード ブロックに対応する低次元ベクトル」が存在します。

したがって、bloop は「useAskAi メソッドを使用するモジュール」をいくつか見つけることができますが、間違ったモジュールが見つかったり、すべてを見つけられなかったりする可能性があります。

要約する

Bloop は、埋め込みテクノロジーに基づいたコード質疑応答ツールです。このツールに質問するときは、いくつかの原則に従う必要があります。

  • Bloop により多くの手がかりを与えるために、できるだけ詳しく記入してください。

悪い質問: プロジェクトについて簡単に説明してください。

良い質問です。README の情報に基づいて、このプロジェクトの目的を説明してください。

  • 「詳細なビジネスロジックの質問」をする場合は、段階的に質問することができます。

悪い質問: 「Web ページとの自由形式の会話」を実現するにはどうすればよいでしょうか?

いい質問ですね:

  • READMEの情報に従って、このプロジェクトの目的を紹介します。
  • 「Web ページとの自由形式の会話」はどのように機能しますか?

一言でまとめると、bloop はあなたのプロジェクトについて多くのことを知っていますが、彼に質問するときは、まずあなたの質問が彼の知識のどの部分に関連しているかを理解してもらう必要があります。

上記の操作ができれば、bloop は強力なソースコード読み取りアシスタントになります。

参考文献

[1] Webpilot: https://github.com/webpilot-ai/Webpilot.

[2]pdfGPT: https://github.com/bhaskatripathi/pdfGPT.

[3] ブループ:https://bloop.ai/.

<<:  この AI ツールは最近、大騒ぎになっています!試してみますか?

>>:  海外のAIは使えない?国内お宝AIツール6選をシェア!

ブログ    
ブログ    
ブログ    

推薦する

CCS Insight の予測: 生成 AI は 2024 年までに人気がなくなる

あるアナリスト会社は、生成型AIという熱狂的な分野にとって来年は現実を突きつけられる年になると予測し...

MITとマイクロソフトはAI向けにLeetCodeプログラミング問題集をカスタマイズした

[[407672]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

AI対詐欺: フィッシング戦術の新時代の幕開け

社会が人工知能の時代に入り、機械が生活のほぼあらゆる側面に浸透する中、攻撃者が AI をどの程度悪用...

...

AI による執筆の歴史を振り返ると、AI が人間の執筆作業に取って代わるまでにはどのくらい時間がかかるのでしょうか?

AI がまた本を出版しました。今回は専門家向けの教科書です。科学技術系出版社のひとつ、ドイツのシュ...

Dharma AI Labが3つのスマートデバイスをリリース、Tmall Genieがオンラインに

アリババのダルマ人工知能研究所は最近、深セン衛星テレビと共同で「Show AI Life」という新製...

物流業界を変える7つの技術トレンド

近年、新型コロナウイルスやロシア・ウクライナ戦争、エネルギー危機など、世界規模の問題が次々と発生し、...

...

ロボティック プロセス オートメーションについて知っておくべき 10 のこと

[[381496]]ロボティック プロセス オートメーションにより、ワークフローが合理化され、レガシ...

...

音楽駆動型デジタルヒューマン技術の詳細な説明

1. ミュージックXRメーカーMusic XR Makerは、テンセントミュージック初のオーディオお...

AIを使って新薬を「発見」し、研究開発を加速させる

発見とは何でしょうか? 数学には古くからある疑問があります。新しい数学的手法が発見された、あるいは発...

ブロックチェーン、自動運転、人工知能の戦いが始まった。次にホットスポットになるのはどれか?

近年、ブロックチェーン、自動運転、人工知能といった概念がテクノロジーの世界で頻繁に話題になっています...

インテルがコードの類似性を評価するAIシステムを開発、コンピューターのセルフコーディング性能を40倍向上

[[335747]]コンピュータプログラミングはかつてないほど簡単になりました。当初、プログラマー...