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

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

...

...

アルゴリズム問題の分析プロセス

[[384555]]トピックを理解する最近アルゴリズムの問​​題をたくさん見ていますが、小さな問題を...

謎の企業が米国で初めて「脳コンピューターインターフェース」の人体実験を承認された。頭蓋骨を開けずに2時間で埋め込むことができる。

マスクは嫉妬しているのか?彼のニューラリンクは技術的にははるかに進んでおり、豚やサルを使った実験では...

AIで開発効率を高めるVSCode拡張機能9選

人工知能は今年もテクノロジー分野で人気を博し続けています。特に、大規模モデルはソフトウェア開発を含む...

人工知能の急速な発展により、小売業界は第5の変革期を迎えている。

[[252330]]人工知能の急速な発展は、新しい小売業者に力を与え、小売業界の「人、商品、場所」...

Google は NLP モデルのデバッグを許可しており、必要なのは「ドラフト ペーパー」だけです。

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

AI および機械学習プロジェクトはどの程度安全ですか?

[[355693]]人工知能と機械学習はメリットをもたらす一方で、新たな脆弱性ももたらします。この...

アルゴリズムから離れた「ジレンマ」に直面し、専門家はシナリオベースの洗練されたガバナンスの実行を提案している。

アルゴリズムは人間の行動に基づいて「ロックイン効果」を生み出します。この法律では、ユーザーにパーソナ...

人工知能:ニューノーマルにおける成長促進要因

SHRMのレポートによると、中小企業経営者の43%がパンデミック中に事業を生き残るための新たな方法を...

RSAは過去2世紀で最も重要なアルゴリズムの1つです

Diffie-Hellman暗号化アルゴリズムの欠点[[225219]]前回の記事では、Diffie...

Transformer モデルを使用した時系列予測の Pytorch コード例

時系列予測は永続的なトピックです。自然言語処理の分野での成功に触発されて、トランスフォーマー モデル...

人工知能の発展と未来

人工知能(AI)技術の継続的な発展により、さまざまなAI製品が徐々に私たちの生活に入り込んできました...