みなさんこんにちは、カソンです。 テクノロジー系のブログをよく読む友人なら、 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選をシェア!
さらに、2024 年までに、産業企業は自己管理テクノロジーと再設計された運用プロセスを組み合わせるこ...
この脆弱性は、広範囲にわたる暗号分析を行った3つの大学とマイクロソフトの研究者によって発見されたが、...
洗濯機、照明、スピーカー、テレビ、カメラなど、日常的に使用するデバイスが、離れた場所からあなたと通信...
皆さん、大規模言語モデル(LLM)の長年の課題がついに解決されました!つい最近、香港中文大学とMIT...
週末ですが、まだ充電中です。今日は強化学習について見ていきます。ただし、ゲームで使うつもりはありませ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
人工知能はますます多用途になり、すでに私たちの仕事のすべてを人工知能が引き継ぐことができるようです。...
最近、海外メディアの報道によると、サンフランシスコ市は7月1日に導入予定の「偏見削減ツール」を発表し...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...