みなさんこんにちは、カソンです。 テクノロジー系のブログをよく読む友人なら、 Webpilot [1]をよくご存知かもしれません。これは、「Web ページのコンテンツについて質問できる AIGC ブラウザ プラグイン」です。 彼の役割は何ですか? たとえば、技術記事を読む前に、まず Webpilot に記事の内容を要約するように依頼すると、要約を読んだ後に読みやすくなります。 このプロジェクトは非常に有用であり、コードはオープンソースであるため、その実装原則を調べないのは不合理です。さらに、著者チームが残した面白い情報もいくつか見つかりました。Webpilot の寄稿者コラムには、プロジェクトのメイン プログラマーは実際には ChatGPT だったと書かれていました。 コードは ChatGPT によって書かれたものなので (そう仮定しましょう)、手動でコードを読む必要はありません。 今日は、AIGC を試して、プロジェクトのソース コードを読んでから AIGC に学習させてみましょう。 アプリケーションの選択現在、コード関連の AIGC アプリケーションの操作対象は、主に次のような「コード スニペット」または「特定のコード ファイル」です。
しかし、アプリケーションがプロジェクト全体を理解できるようにしたいので、アプリケーションは「コード スニペット」または「特定のコード ファイル」と「コード間の依存関係」の両方を理解する必要があります。結局のところ、コード ロジックは通常、複数のファイルにまたがります。たとえば、プロジェクトに次のようなメソッド fnA があるとします。
したがって、fnA 関連の質問をするときは、AIGC アプリケーションのコンテキストに少なくとも次の情報が含まれている必要があります。
そうして初めて、良い質問に答えることができるのです。 同様の効果を実現するために、業界では埋め込みが一般的に行われています。これは、「コンテンツ エンティティを低次元のベクトルにマッピングし、ベクトル間の類似性によってコンテンツの関連性を判断する」というものです。 例えば、オープンソースプロジェクトpdfGPT[2]はPDF文書を受け取り、ユーザーは文書の内容について質問することができます。 文書は数百ページにも及ぶことがあり、GPT が一度に受信できるトークンの数には限りがあります。「ユーザーの質問に基づいて文書全体から回答を検索する」という目標をどのようにして達成するのでしょうか。この原則は大まかに次のように要約できます。
上記の「PDF文書を解析する」というアイデアに従って、コードを解析するためのアプリケーション、bloop[3]を見つけました。 ブループの紹介Bloop は pdfGPT に少し似ていますが、コード リポジトリを受け取り、ユーザーがコード リポジトリについて質問する点が異なります。 公式サイトからbloopデスクトップアプリをダウンロードした後、Githubアカウントをバインドして無料で使用してください。
私は Webpilot プロジェクト (ソース コードを学習するプロジェクト) をフォークし、ここで bloop に Webpilot を直接同期させます。
これで、Webpilot プロジェクトについて bloop に質問することができます。最初の質問を見てみましょう。
残念ながら、最初の文は間違っています。Webpilot は「Web ページのコンテンツについて質問できる AIGC ブラウザ プラグイン」であり、テキストを画像に変換するプログラムではありません。 Webpilot プロジェクトには確かに MidJourney (プロンプトワードに基づいて画像を生成する AIGC アプリケーション) に関連するコードがありますが、この回答は明らかに一般化されています。 これは、Bloop が役に立たないことを意味しますか?あまり。 先ほど、Embedding 実装方法では、「質問内容に関連するコンテンツ」のみを取得し、そのコンテンツに基づいてモデルに質問できると述べました。モデルが質問する前にコード ロジックを完全に理解する必要はありません。 つまり、上記の「fnA について質問する」という例では、Embedding を使用した後、次の情報を統合してモデルに入力します。
モデルは上記の情報に基づいて質問に答えます。 モデルがプロジェクト コード ロジックを理解した後で「fnA 関連の質問」に回答する代わりに。 したがって、エラー質問をするときは、次のようなヒントを与える必要があります。
このように、bloop は手がかりに基づいた埋め込みを通じて関連コンテンツを見つけることができます。 「このプロジェクトを簡単に紹介する」を「README の情報に従ってこのプロジェクトの目的を紹介する」に変更すると、bloop は私たちが望んでいた答えを返してくれました。 その中でも、README は私たちが与えるヒントです。 bloopでソースコードを読むブループとの会話は、答えを探すだけでなく、ブループにさらなる手がかりを与えることにもなります。たとえば、bloop が次のように答えるとします。
結局、答えは私たちだけでなく、bloop 自体にも当てはまります。答える前、彼は Webpilot で何ができるのか知りませんでした。これに答えた後、次の質問に進むことができます。
この時点で、bloop は重要な情報を教えてくれます。アプリケーションのメイン ロジックは useAskAi メソッドにあります。 次に、Webpilot の実装原理を理解するために、bloop に useAskAi メソッドを詳しく説明してもらいましょう。 さて、次のような質問について考えてみましょう。
ブループは正しい答えを言えるでしょうか?答えは「そうでもない」です。 これは少し直感に反します。結局のところ、プログラマーの観点から見ると、コード ブラウザーとしての bloop は、モジュールの依存関係を静的に分析することで答えを見つけることができます。 ただし、bloop は埋め込み技術に基づいて実装されています。 bloop の最下位レベルにはモジュール依存関係グラフはなく、「コード ブロックに対応する低次元ベクトル」が存在します。 したがって、bloop は「useAskAi メソッドを使用するモジュール」をいくつか見つけることができますが、間違ったモジュールが見つかったり、すべてを見つけられなかったりする可能性があります。 要約するBloop は、埋め込みテクノロジーに基づいたコード質疑応答ツールです。このツールに質問するときは、いくつかの原則に従う必要があります。
悪い質問: プロジェクトについて簡単に説明してください。 良い質問です。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選をシェア!
あるアナリスト会社は、生成型AIという熱狂的な分野にとって来年は現実を突きつけられる年になると予測し...
[[407672]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
社会が人工知能の時代に入り、機械が生活のほぼあらゆる側面に浸透する中、攻撃者が AI をどの程度悪用...
AI がまた本を出版しました。今回は専門家向けの教科書です。科学技術系出版社のひとつ、ドイツのシュ...
アリババのダルマ人工知能研究所は最近、深セン衛星テレビと共同で「Show AI Life」という新製...
近年、新型コロナウイルスやロシア・ウクライナ戦争、エネルギー危機など、世界規模の問題が次々と発生し、...
[[381496]]ロボティック プロセス オートメーションにより、ワークフローが合理化され、レガシ...
1. ミュージックXRメーカーMusic XR Makerは、テンセントミュージック初のオーディオお...
発見とは何でしょうか? 数学には古くからある疑問があります。新しい数学的手法が発見された、あるいは発...
近年、ブロックチェーン、自動運転、人工知能といった概念がテクノロジーの世界で頻繁に話題になっています...
[[335747]]コンピュータプログラミングはかつてないほど簡単になりました。当初、プログラマー...