ファインチューニングされたモデルによって、組織はコーディングのやり方や内部言語に合わせて特別に調整されたコード提案を受け取ることができるようになります。
私たちの使命は、ユビキタスで信頼でき、さらに各組織のニーズに合わせて独自にカスタマイズされたAIアシスタントを作ることです。リポジトリインデックスや ナレッジベースなどの機能を統合することで、私たちはGitHub Copilotを強化し、より文脈に即したパーソナライズされた支援を提供してきました。
そして今回、このミッションをさらに一歩進め、GitHub CopilotEnterpriseの限定公開ベータとしてモデルのファインチューニングを可能にしました。この新機能により、企業ユーザーは、独自のコードベースやコーディング手法に合わせてGitHub Copilotをカスタマイズし、特定のニーズに沿った関連性、品質、一貫性のあるコード補完サポートを提供できるようになります。
ファインチューニングされたGitHub Copilotのパワー
GitHub Copilotはすでに、開発者や組織のソフトウェア構築方法に大きな影響を与えており、目覚ましい成果を上げています。Accenture社との調査によると、GitHub Copilotを使用した開発者は、プルリクエストが8%増加し、プルリクエストのマージ率が15%向上し、ビルドの成功率が84%増加しました。また、90%の開発者がGitHub Copilotを使用することで仕事にやりがいを感じ、95%がGitHub Copilotを使用することでコーディングがより楽しくなったと回答しています。これらの結果は、GitHub Copilotが組織全体の生産性、コード品質、開発者の幸福を促進する上で有効であることを浮き彫りにしています。
モデルのファインチューニングは、カスタマイズにおける次の大きな飛躍を意味し、今回この機能をインラインのコード補完エクスペリエンスに直接拡張しています。GitHub Copilotをプライベートなコードベースでトレーニングし、チームがGitHub Copilotの提案とどのようにやり取りしたかを示すテレメトリを組み込むことで、ファインチューニングされたモデルは、リアルタイムコーディングでシームレスに動作するレイテンシで、GitHub Copilotを組織固有のコーディング環境に適応させます。GitHub Copilotは、モジュール、関数、レガシー言語や独自言語などの希少言語、内部ライブラリに精通するようになり、構文的に正しいだけでなく、チームのコーディングスタイルや標準により深く沿ったコード案を提供します。
GitHub Copilotをあなたのニーズに合わせてカスタマイズ
内部 API、特殊なフレームワーク、独自の言語、厳格なコーディングスタイルに依存しているようなどのような組織でも、ファインチューニングされたモデルを活用できます。例えば、COBOL のようなレガシー言語を使用する金融機関では、ファインチューニングされたモデルを活用して固有のコーディング要件に対応できます。一方、テクノロジーやヘルスケアのように、コンプライアンスやセキュリティの標準を実施するために内部ライブラリに依存することが多い業界では、組織のポリシーに沿ったクラウドリソースのデプロイを保証するなど、コーディングの精度と効率に有意義な改善が見られます。このような業種であれ、その他の業種であれ、ファインチューニングされたモデルを使用することで、GitHub Copilotは固有のニーズに合わせてカスタマイズされた強力なツールになります。
きめ細かく調整されたモデルを使用すると、開発者は調整の必要性が少ないコード提案を受け取ることができるため、新しいチームメンバーがより迅速にチームに参加できるようになり、経験豊富な開発者は修正よりも作成に集中できるようになります。これは、より適切で高品質な一貫性のあるコーディングサポートを提供することで、GitHub Copilotを組織にとってさらに役立つツールにするための大きな前進です。
GitHub Copilotのカスタムモデルをどのようにファインチューニングするか
私たちがGitHub Copilotのカスタマイズの旅を続けているのは事実であり、カスタマイズをどのように実装するかが本当に重要であることも知っています。GitHub Copilot Enterpriseは最初にリポジトリインデキシングとナレッジベースを手に入れました。これはどちらもRAG(retrieval-augmented generation)という軽量な検索手法で、モデル全体を再トレーニングすることなく、モデルの元のトレーニングデータ以外のソースから情報を収集するために使用されます。RAGは最新の出力でチャット体験を向上させるのに効果的ですが、リアルタイムのコード補完に必要なパフォーマンス要求を満たしていません。ファインチューニングにより、コード補完エクスペリエンスに初めてカスタマイズを導入し、GitHub Copilotがインラインコーディングに必要なスピードで文脈に応じた提案を提供できるようにしました。
LoRA(低ランク近似)法を使用して各モデルをカスタマイズし、教師あり学習(Supervised Learning)段階で最も重要なモデルパラメータのサブセットを微調整することで、モデルをより管理しやすく効率的にします。ユーザーにとって、これは従来のファインチューニング手法と比較して、より速く、より手頃な価格でトレーニングできることを意味します。さらに、ファインチューニングのプロセスには、GitHub Copilotからの提案とチームのやり取りから得られた洞察が組み込まれているため、モデルを組織固有のニーズに密接に合わせることができます。
カスタムモデルをトレーニングするたびに、インラインコード補完のベースモデルが使用されます。ベースモデルをアップグレードすると、ファインチューニングが可能になり次第、将来のカスタムモデルの再トレーニングは自動的に新しいモデルにロールフォワードされます。ファインチューニングのプロセスはAzure OpenAI Serviceを利用しており、トレーニングパイプライン全体を通してスケーラビリティとセキュリティを提供しています。
ファインチューニングされたモデルのセキュリティとプライバシー
私たちは、プライバシーとセキュリティが最も重要であることを知っています。そのため、企業が必要とする規模でファインチューニングされたモデルのためのデータセキュリティステップを組み込むための重要なステップを踏みました。重要なことは、お客様のデータは常にお客様のものであるということです。他のお客様のモデルのトレーニングに使用されることはなく、お客様のカスタムモデルは非公開のまま、完全にコントロールすることができます。
トレーニングプロセスを開始すると、お客様のリポジトリデータと遠隔測定データはトークン化され、一時的にAzureトレーニングパイプラインにコピーされます。このデータの一部はトレーニングに使用され、別のセットは検証と品質評価のために確保されます。ファインチューニングプロセスが完了すると、モデルはベースラインモデルを上回ることを保証するために一連の品質評価を受けます。これには、新しいモデルがお客様のリポジトリ固有のコード提案を改善することを確認するための、お客様の検証データに対するテストも含まれます。
モデルがこれらの品質チェックに合格した場合、Azure OpenAIにデプロイされます。このセットアップにより、複数のLoRAモデルを互いにネットワーク的に分離したまま、大規模にホストすることができます。プロセスが完了すると、一時的なトレーニングデータはすべてのサーフェスから削除され、通常の推論チャネルを通じてデータフローが再開されます。 GitHub Copilotプロキシサービスは、開発者のコード補完に正しいカスタムモデルが使用されることを保証します。
限定パブリックベータへの参加方法
モデルのファインチューニングは現在、限定的なパブリックベータを実施しており、ウェイティングリストに登録されたお客様を順次オンボードしています。すでにキャンセル待ちリストにご登録いただいているお客様には、オンボーディング・プロセスを進めてまいりますので、今しばらくお待ちくださいますようお願い申し上げます。まだウェイティングリストに登録されていない方は、こちらをクリックしてください。
The post Fine-tuned models are now in limited public beta for GitHub Copilot Enterprise appeared first on The GitHub Blog.