メモ
Organization およびリポジトリの GitHub Models は パブリック プレビュー であり、変更される可能性があります。
GitHub Models を使用すると、企業が制御、コンプライアンス、コスト効率を維持しながら、開発者は AI を利用したアプリケーションを大規模に構築できます。
なぜ GitHub Models?
- 一元的なモデル管理: Organization 全体の開発者が使用できる AI モデルとプロバイダーを制御します。
- AI 開発を高速化: プロンプトとモデルのプロトタイプ作成、評価、最適化を迅速に行えます。
- **API アクセス:**GitHub Models REST API を使用して、エンタープライズ ワークフローを自動化および統合します。
- カスタム モデル統合: 独自の LLM API キーを使用して外部モデルまたはカスタム モデルを接続し、既存の支払い方法、クレジット、プロバイダーに合わせて調整しながら、 GitHub Modelsで使用できるモデルの柔軟性と制御を組織に提供します。
- ガバナンスとコンプライアンスの管理: Organization の標準を適用し、モデルの使用状況を監視します。
- コスト最適化: 高価なモデルによる予期しないコストを回避します。
- コラボレーション: 標準的な GitHub 開発プラクティスを使用して、プロンプトと結果を共有します。
- セキュリティに重点を置いたアーキテクチャ: データはGitHubおよびAzure内に残り、モデル プロバイダーと共有されないことにご安心ください。
- ビジュアル インターフェイス: 技術者以外のチーム メンバーも、開発者と一緒に貢献できます。
- バージョン 管理: プロンプトとモデルの変更はすべて、標準の GitHub コミットとプル要求フローを経て、プロンプトが変更されたタイミングと理由を把握できます。
「GitHub モデルについて を参照してください。
大規模な GitHub Models を使用するためのベスト プラクティス
次のベスト プラクティスは、組織全体で GitHub Models を効果的に使用するのに役立ちます。
ガバナンスとコンプライアンスの観点から AI モデルを比較および評価する
使用できる AI モデルを、会社のガバナンス、データ セキュリティ、コンプライアンスの要件に照らしてレビューおよび比較します。 これは、Models 対応の GitHub リポジトリ、または https://github.com/marketplace?type=models の GitHub Marketplace にある GitHub Models カタログで実行できます。 次のような考慮事項があります。
- ガバナンスとセキュリティ: 各モデルが GDPR、SOC 2、ISO 27001 などの標準と規制に準拠しているかどうかを検査し、同意を得て明示的にログされない限り、データが organization の外部に保持されないようにします。
- モデルのパフォーマンス: 内部データセットでベンチマーク評価を実行し、推論、コンテキスト保持、ハルシネーション率を評価します。
- API 制御と可視性: チームまたは組織レベルで、使用量のクォータ、プロンプトの検査、およびレート制限をきめ細かく制御する必要があります。
- コストの最適化: トークンの価格、推論速度、階層化使用のためのモデル バリアントの可用性が含まれます。 たとえば、アーキテクチャの議論には高度なモデルを使うのに対し、テスト ケースの生成にはより安価なモデルを使用できます。
使用するモデルを決定したら、組織内のaccessをそれらのモデルのみに制限できます。チームのモデル使用状況の管理 を参照してください。
チーム間でプロンプトを最適化して共有する
開発者は、 GitHub Models のプロンプト エディターを使用して、プロンプトを作成および調整できます。 Teams は、 GitHub 開発ワークフローと統合される安定した非運用環境で、さまざまなプロンプトバリエーションとモデルを試すことができます。 ビジュアル インターフェイスにより、技術者以外の関係者も、開発者と一緒に貢献できます。 「プロンプト エディターの使用を参照してください。
軽量な評価ツールを使うと、チームは待機時間、関連性、根拠などの一般的なメトリック間で結果を比較したり、カスタム エバリュエータを作成したりできます。 コード、テスト、ドキュメント、コード レビューの提案の作成など、特定の生成 AI ユース ケースについてプロンプトとモデルのパフォーマンスを比較します。
チームが効果的なプロンプトを作成すると、YAML ファイルとして保存し、 GitHub pull request を使用してレビューのために共有できます。 コミットされたプロンプトは他のチームやワークフローからアクセスでき、会社の標準と一貫性を保つことができます。 プロンプト管理に対するこの一元化された共同作業アプローチにより開発が加速され、organization 全体でベスト プラクティスを適用するのに役立ちます。
モデルの使用コストを評価して最適化する
AI を利用したアプリケーションの導入が拡大し、AI モデルが改善されたら、 GitHub Models を使用して、さまざまなモデルとモデルの更新のコストとパフォーマンスを評価します。 Organization のニーズに最もコスト効率の高いオプションを選び、複数のチームにわたり使用量の拡大に応じて経費を管理します。
プログラムによる管理に GitHub Models REST API または拡張機能を使用する
すべてのチームのリソースをより効率的に管理するには、 GitHub Models REST API を利用して次のことができます。
- 組織設定の管理と更新: 一貫性とコンプライアンスを確保するために、複数のチームのアクセス許可とガバナンス設定accessモデルをプログラムで更新します。
- プロンプトの一覧表示と取得: さまざまなチームで使われているプロンプトの一覧表示、取得、監査を行い、使用状況を監視し、成功したプロンプトを共有し、ベスト プラクティスの中央リポジトリを維持します。
- モデル推論要求の実行: 頻度ペナルティ、最大トークン、応答形式、プレゼンス ペナルティなどの特定のモデルとパラメーターの推論要求を実行します。
これらの拡張機能を使って推論要求を実行し、プロンプトを管理することもできます。
- GitHub CLI 用の GitHub Models 拡張機能
- ギットハブ コパイロット チャット 用の GitHub Models 拡張機能
- GitHub Models VS Code 拡張機能
監視、反復処理、統合
組み込みのガバナンス機能を使うと、モデルの使用状況を監視し、会社のポリシーに継続的に準拠することができます。 監査ログにより、モデルやプロンプトにアクセスまたは変更したユーザーを確認できます。 GitHub Models リポジトリ統合により、すべての利害関係者が共同作業を行い、AI を利用したアプリケーションを継続的に反復処理できます。
例: GitHub ModelsでGitHub Actionsを使用して問題を要約する
大規模なソフトウェア開発プロジェクトでは、技術的な詳細が詰まった issue を抱えていることがよくあります。 GitHub ModelsとGitHub Actionsを使用して、AI を利用した問題の概要をロールアウトできます。
前提条件: 組織内の GitHub Models を有効にし、個々のリポジトリで使用できるようにするモデルと発行元を設定します。
-
リポジトリにプロンプトを作成する
リポジトリの [Models] タブで、プロンプト エディターを使ってプロンプトを作成します。
システム プロンプトの例:
あなたは、GitHubの問題のサマライザーです。 重要な技術的なポイントや重要な質問を強調してください。
ユーザー プロンプトの例:
この問題の概要 - {{input}}
-
プロンプトで実行して反復処理する
プロンプトを実行します。 [Variables] ペインに、
{{input}}の値としてサンプルの issue コンテンツをいくつか入力します。さまざまなモデル (OpenAI GPT-4o など) を試して、結果を比較します。 最大トークン数や温度などのパラメーターを調整します。 結果に満足するまで繰り返します。
-
必要に応じて、より広範なテストを実行する
[Compare] ビューでは、複数のプロンプトを異なるモデルに対して同時に実行し、グリッド ビューで結果を比較できます。 また、エバリュエータを定義して使い、結果に特定のキーワードが含まれているか、その他の基準を満たしているかを確認することもできます。
-
プロンプトをコミットする
プロンプトに名前を付け、変更をコミットして pull request フローに進みます。 たとえば、プロンプトに
summarizeという名前を付けると、リポジトリのルート レベルに次のようなsummarize.prompt.yamlファイルが作成されます。messages: - role: system content: >- You are a summarizer of GitHub issues. Emphasize key technical points or important questions. - role: user content: 'Summarize this issue, please - {{input}}' model: openai/gpt-4o modelParameters: max_tokens: 4096Pull request がレビューされ、マージされると、リポジトリ内の誰でもプロンプトを使用できるようになります。
-
ワークフローでプロンプトを呼び出す
ワークフローの作成の詳細については、「ワークフローの書き込み」を参照してください。
ワークフローでプロンプトを呼び出すには、
models: readアクセス許可を設定する必要があります。以下は、新しく作成された issue に AI によって生成された概要をコメントとして追加するワークフローの例です。
YAML name: Summarize New Issue on: issues: types: [opened] permissions: issues: write contents: read models: read jobs: summarize_issue: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install gh-models extension run: gh extension install https://github.com/github/gh-models env: GH_TOKEN: ${{ github.token }} - name: Create issue body file run: | cat > issue_body.txt << 'EOT' ${{ github.event.issue.body }} EOT - name: Summarize new issue run: | cat issue_body.txt | gh models run --file summarize.prompt.yml > summary.txt env: GH_TOKEN: ${{ github.token }} - name: Update issue with summary run: | SUMMARY=$(cat summary.txt) gh issue comment ${{ github.event.issue.number }} --body "### Issue Summary ${SUMMARY}" env: GH_TOKEN: ${{ github.token }}name: Summarize New Issue on: issues: types: [opened] permissions: issues: write contents: read models: read jobs: summarize_issue: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Install gh-models extension run: gh extension install https://github.com/github/gh-models env: GH_TOKEN: ${{ github.token }} - name: Create issue body file run: | cat > issue_body.txt << 'EOT' ${{ github.event.issue.body }} EOT - name: Summarize new issue run: | cat issue_body.txt | gh models run --file summarize.prompt.yml > summary.txt env: GH_TOKEN: ${{ github.token }} - name: Update issue with summary run: | SUMMARY=$(cat summary.txt) gh issue comment ${{ github.event.issue.number }} --body "### Issue Summary ${SUMMARY}" env: GH_TOKEN: ${{ github.token }} -
監視と反復処理
GitHub Models プロンプト エディターを使用して、アクションのパフォーマンスを監視し、プロンプトとモデルの選択を反復処理できます。 CLI 拡張機能を使用してローカルでテストしたり、 API を使用してプロンプトとモデルの設定をプログラムで更新したりすることもできます。
また、モデルの応答をリポジトリ内のファイルとして保存して、時間の経過と共にモデルのパフォーマンスをレビューして反復処理することも検討してください。 これにより、要約の品質を継続的に向上させ、チームのニーズを満たすことができます。