1745484940
2025-04-24 06:02:00
大きな言語モデル(LLMS) より多くのコードをより速く書くのに役立つAIツールを有効にしましたが、これらのツールにますます複雑なタスクを引き受けるように依頼すると、明らかになる制限があります。プログラミング言語のニュアンスを理解したり、複雑な依存関係を依存したり、コードベース固有のコンテキストに適応するなどの課題は、より低品質のコードにつながり、ボトルネックをラインに引き起こす可能性があります。
桁、のメンバー Nvidia Inceptionプログラム、コードライティング、テスト、レビューのためにAI搭載エージェントとソフトウェアの品質ワークフローを強化および自動化するマルチエージェントコードインテグリティプラットフォームです。
Qodoのビジョンの核となる原則は、AIが深い文脈的認識で動作する場合にのみ、AIがソフトウェアの整合性の有意義な改善を促進できるという信念です。コードは単独で記述されていません。複雑なアーキテクチャ、進化する依存関係、および特定のコーディング標準内に存在します。 AIが開発者を効果的に支援するには、構文だけでなく、コードベースの意図、パターン、およびより広い構造を理解する必要があります。
QodoはAIエージェントをAdvancedの基礎に構築することでこれを達成します 検索された生成(rag)、インデックスと分析、すべて最先端の(SOTA)コード埋め込みモデルによって駆動されます。この専門コード埋め込みモデル – でトレーニングされています nvidia dgx– AIがコードをより効果的に理解および分析し、関連性の高いコンテキストを取得して、LLMが正確なコード提案、信頼できるテスト、洞察力に富んだコードレビューを生成できるようにすることを可能にします。
コード固有のパイプラインの必要性
大規模な複雑なコードベースは絶えず変化しており、コンテキストのインデックス作成は進行中のプロセスです。
Qodoは、コードとテストの生成が常にリポジトリの最新の状態に基づいていることを確認するために、新鮮なインデックスを継続的に維持するための堅牢なパイプラインを構築しました。このパイプラインには、コードベースからファイルを取得すること、セグメントに検索されたファイルをチャンキングすること、埋め込みに自然言語の説明を追加して、AIがコンテキストを理解しやすくすることが含まれます。
コード固有のRAGパイプラインの1つの課題は、大規模なコードファイルを意味のあるセグメントにchunりることです。チャンクは自然言語のテキストでは比較的単純です。パラグラフと文は、意味的に意味のあるセグメントを作成するための明らかな境界点を提供します。
ただし、素朴なチャンキング方法は、コードの意味のあるセグメントを正確に描写するのに苦労しており、境界定義と無関係または不完全な情報の包含の問題につながります。 LLMに無効または不完全なコードセグメントを提供すると、実際にパフォーマンスを損ない、幻覚を増やすことができます。
Qodoは、言語固有の静的分析を使用してチャンクを実装して、ノードをより小さなチャンクに再帰的に分割し、遡及処理を実行して削除された重要なコンテキストを再添加します。この方法により、コード構造を尊重するチャンクの作成を可能にし、関連する要素をまとめます。
もう1つの重要な課題は埋め込むことです。多くの既存の埋め込みモデルでは、自然言語のクエリに基づいて関連するコードの例を正確に取得することは困難です。などの多くの汎用埋め込みモデル E5、構文、可変依存関係、制御フロー、API使用量などのコード固有の要素ではなく、言語パターンに焦点を当てます。これにより、無関係または不正確な検索結果とコード検索につながりますが、AIコーディングエージェントを有効にするには関連性と精度が重要です。
コードの埋め込みモデル
で 検索された生成(rag) システム、 埋め込みモデル テキストを意味的な意味をキャプチャする高次元ベクトルに変換することにより、重要な役割を果たします。これらの埋め込みはaに保存されます ベクトルデータベース 効率的な類似性検索を有効にし、ユーザークエリに応答するときに、システムがナレッジベースから最も関連性の高い情報を取得できるようにします。

コード固有のタスクの場合、プログラミング言語とソフトウェアドキュメントの両方でトレーニングされた埋め込みモデルを使用することは特に戦略的です。このようなモデルは、コード構文、機能名、および技術用語のニュアンスをよりよく理解し、関連するコードスニペットまたはドキュメントのより正確な検索につながります。
この特殊な埋め込みモデルは、ソフトウェア開発のコンテキストでのRAGシステムのパフォーマンスを大幅に向上させ、コードの完了、バグ検出、および技術文書の生成を改善するのに役立ちます。

LLMSと比較して、埋め込みモデルは大幅に小さく、したがって、複数のGPUでより効率的に分布することができます。これにより、ハードウェアリソースをより適切に活用し、トレーニング時間を速くする可能性があります。そのため、モデル全体が各GPUワーカーで複製され、データのバッチが複数のGPUに分割されるデータ並列分散トレーニングに適しています。
Qodoは、aを使用して埋め込みモデルを訓練しました nvidia dgx 8x A100 80GBノード。 BFLOAT16でのトレーニングにより、256の大きなマイクロバッチサイズを使用することができ、収束率とトレーニング時間を高速化できました。これは、特にバッチ内のネガに依存する場合、対照的な損失を使用してモデルを埋め込むために重要です。
バッチサイズが大きいほど、モデルはより多様な一連の否定的な例をサンプリングできます。これは、効果的な学習に不可欠です。その多様性は、モデルが類似のインスタンスと異なるインスタンスをよりよく区別するのに役立ち、表現品質の改善につながります。
Qodo微調整された2つの埋め込みモデル、 dig-embed-1-1.5b そして dig-embed-1-7b、Qwenに基づいて、Alibaba Cloudが開発し、幅広いAIタスクを実行するように設計されたオープンソースLLMです。彼らはソタの精度を達成し、抱きしめる顔をリードしました MTEB::それぞれのサイズのカテゴリに両方のモデルを備えたCoirリーダーボード(図4)。
NDGC 情報検索の品質を評価するために使用される特定のメトリックです。

ケーススタディ:内部コード検索
NvidiaとQodoの最近のコラボレーションは、実際のユースケースを通じてQodoのソリューションの価値を示しています。この作業は、プライベートコードリポジトリを検索するためのNvidiaの内部RAGソリューション(Genie)の1つの精度を高めることに焦点を当てていました。最終目標は、NVIDIAの内部コードリポジトリでLLMベースのクエリを実行して、正確で正確な応答を生成することでした。
この目標を達成するために、Genie Project Pipelineの既存の業界標準コンポーネントをQodoの専門的な代替品に置き換え、Nvidiaの内部コードリポジトリをマイニングするシステムの能力を向上させ、優れた結果をもたらしました。
次のQodoコンポーネントがパイプラインに統合されました。
- gitlabおよびgithubのコードインデクサー
- コードラグレトリバー
- 埋め込みモデル(dig-embed-1-7b))
前述のように、コード固有のRAGソリューションを構築することの課題の1つはチャンクです。大規模なコードファイルは、テキストチャンクが処理とストレージに最適なサイズであることを確認するために、自然停止ポイントで分割する必要があります。それ以外の場合、重要な関連するコードセクションがコンテキストが外れている場合、検索プロセスは失敗します。

最終的なパイプラインは、Nvidiaの内部Slackシステムに統合され、専門家のC ++開発者は、関心のあるリポジトリに基づいて詳細な技術的な質問をし、堅牢な回答を受け取ることができます。
図6と7は、各パイプラインからの出力の例を示しています。それぞれ、オリジナルとQodoとのコラボレーションで構築されています。図6の強調表示された長方形は、元のパイプラインが特定のデータポイントで応答できなかったことを示しています。

図7は、はるかに詳細な結果を示しています。

テストには、次の一般的なグラフィックスパブリックSDKを使用しました。
使用しました ラガス これらのデータセットに基づいて合成質問を生成し、どの応答がより正確で、技術的な詳細があるかを比較するために。 3行のペアのそれぞれは、リストのSDKリポジトリの1つに対応しています。各列は、各セルの値に忠実さに基づいて正しい応答の数が含まれ、関連性に応答する質問の内訳を表します。各行の最終セルは、正しい応答の総数を示しています。

結論7
Qodoの埋め込みモデルを試すことができます。 dig-embed-1-1.5b そして dig-embed-1-7b、顔を抱きしめます。
彼らの仕事を加速したいスタートアップは、 Nvidia Inceptionプログラム。
詳細については、次のリソースを参照してください。
#スポットライトQodoはNVIDIA #DGXを使用して効率的なコード検索を革新します