最大の効率: 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選をシェア!

ブログ    
ブログ    

推薦する

業界の未来を牽引する8つのデジタル変革トレンド

さらに、2024 年までに、産業企業は自己管理テクノロジーと再設計された運用プロセスを組み合わせるこ...

AES暗号化アルゴリズムの強度が弱まった

この脆弱性は、広範囲にわたる暗号分析を行った3つの大学とマイクロソフトの研究者によって発見されたが、...

デジタルホーム: IoTとAIで家電をもっとスマートに

洗濯機、照明、スピーカー、テレビ、カメラなど、日常的に使用するデバイスが、離れた場所からあなたと通信...

Jia Jiayaのチームが世界初の70B長文大規模言語モデルをオープンソース化し、ProMaxを使って論文や小説を直接読めるようにした。

皆さん、大規模言語モデル(LLM)の長年の課題がついに解決されました!つい最近、香港中文大学とMIT...

...

強化学習の概念から応用まで包括的に理解する

週末ですが、まだ充電中です。今日は強化学習について見ていきます。ただし、ゲームで使うつもりはありませ...

中国のAI特許申請数が米国を上回った!我が国の最新の5Gの成果:世界をリードする技術

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

...

...

ニューラルスタイル転送アルゴリズムで絵を描くことを学習する人間は、芸術分野で人工知能に負けるのでしょうか?

人工知能はますます多用途になり、すでに私たちの仕事のすべてを人工知能が引き継ぐことができるようです。...

顔認識を禁止した後、サンフランシスコは検察官の事件処理を支援するためにAIを活用

最近、海外メディアの報道によると、サンフランシスコ市は7月1日に導入予定の「偏見削減ツール」を発表し...

Nvidia の新しいブラック テクノロジーが「Minecraft」のモザイクをリアルな大ヒット作に変える

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...