Skip to main content

GitHub Models を使って Enterprise 内で AI を利用したアプリケーションを開発する

Enterprise 内の AI 開発を効率化します。

この機能を使用できるユーザーについて

Organization owners and enterprise owners

メモ

Organization およびリポジトリの GitHub Models は パブリック プレビュー であり、変更される可能性があります。

GitHub Models を使うと、Enterprise は制御、コンプライアンス、コスト効率を維持しながら、開発者が AI を利用したアプリケーションを大規模に構築できるようになります。

GitHub Models を選ぶ理由

  •         **一元的なモデル管理:** Organization 全体の開発者が使用できる AI モデルとプロバイダーを制御します。
    
  •         **AI 開発を高速化:** プロンプトとモデルのプロトタイプ作成、評価、最適化を迅速に行えます。
    
  •         **API アクセス:** GitHub Models REST API を使用して、企業ワークフローを自動化および統合するために使用します。
    
  •         **カスタム モデルの統合:** 独自の LLM API キーを使って外部モデルまたはカスタム モデルを接続すると、organization は既存の支払方法、クレジット、プロバイダーとの整合性を保ちながら、GitHub Models で使用できるモデルをより柔軟に制御できるようになります。
    
  •         **ガバナンスとコンプライアンスの管理:** Organization の標準を適用し、モデルの使用状況を監視します。
    
  •         **コスト最適化:** 高価なモデルによる予期しないコストを回避します。
    
  •         **Collaboration:** 標準の GitHub 開発プラクティスを使用してプロンプトと結果を共有します。
    
  •         **セキュリティに重点を置いたアーキテクチャ:** データは GitHub 内に残り、Azureであり、モデル プロバイダーと共有されていないことに安心してください。
    
  •         **ビジュアル インターフェイス:** 技術者以外のチーム メンバーも、開発者と一緒に貢献できます。
    
  •         **Version control:** すべてのプロンプトとモデルの変更は、標準の GitHub コミットおよびプル要求フローを経て、プロンプトが変更されたタイミングと理由を把握できます。
    

GitHub モデルについて を参照してください。

GitHub Models を大規模に使うためのベスト プラクティス

次のベスト プラクティスは、organization 全体で GitHub Models を効果的に使う上で役立ちます。

ガバナンスとコンプライアンスの観点から AI モデルを比較および評価する

使用できる AI モデルを、会社のガバナンス、データ セキュリティ、コンプライアンスの要件に照らしてレビューおよび比較します。 これは、GitHub の Models 対応リポジトリや、GitHub Marketplace の GitHub Models カタログ (https://github.com/marketplace?type=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 Copilot チャット 用の GitHub Models 拡張機能
  • GitHub Models VS Code 拡張機能

監視、反復処理、統合

組み込みのガバナンス機能を使うと、モデルの使用状況を監視し、会社のポリシーに継続的に準拠することができます。 監査ログにより、モデルやプロンプトにアクセスまたは変更したユーザーを確認できます。 GitHub Models リポジトリの統合により、すべての関係者が AI を利用したアプリケーションで共同作業を行い、継続的に反復処理を行うことができます。

例: GitHub Models と GitHub Actions を使って issue を要約する

大規模なソフトウェア開発プロジェクトでは、技術的な詳細が詰まった issue を抱えていることがよくあります。 GitHub Models と GitHub Actions を使って、AI を利用した issue の概要をロールアウトできます。

          **前提条件:** Organization 内で GitHub Models を有効にし、個々のリポジトリで使用できるようにするモデルと公開元を設定します。

1. リポジトリにプロンプトを作成する

リポジトリの [Models] タブで、プロンプト エディターを使ってプロンプトを作成します。

システム プロンプトの例:

あなたは、GitHubの問題のサマライザーです。 重要な技術的なポイントや重要な質問を強調してください。

ユーザー プロンプトの例:

この issue を要約してください - {{input}}

  1.        **プロンプトで実行して反復処理する**
    

    プロンプトを実行します。 [Variables] ペインに、{{input}} の値としてサンプルの issue コンテンツをいくつか入力します。

    さまざまなモデル (OpenAI GPT-4o など) を試して、結果を比較します。 最大トークン数や温度などのパラメーターを調整します。 結果に満足するまで繰り返します。

  2.        **必要に応じて、より広範なテストを実行する**
    

    [Compare] ビューでは、複数のプロンプトを異なるモデルに対して同時に実行し、グリッド ビューで結果を比較できます。 また、エバリュエータを定義して使い、結果に特定のキーワードが含まれているか、その他の基準を満たしているかを確認することもできます。

  3.        **プロンプトをコミットする**
    

    プロンプトに名前を付け、変更をコミットして 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: 4096
    

    Pull request がレビューされ、マージされると、リポジトリ内の誰でもプロンプトを使用できるようになります。

  4.        **ワークフローでプロンプトを呼び出す**
    

    ワークフローの作成の詳細については、「ワークフローの書き込み」を参照してください。

    ワークフローでプロンプトを呼び出すには、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@v5
    
          - 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 }}
    
  5.        **監視と反復処理**
    

    GitHub Models プロンプト エディターを使って、アクションのパフォーマンスを監視し、プロンプトとモデルの選択を反復処理できます。 CLI 拡張機能を使用して、ローカルでテストすることもできます。 または、 GitHub Models REST API 他の %} API を使用して、プロンプトとモデルの設定をプログラムで更新します。

    また、モデルの応答をリポジトリ内のファイルとして保存して、時間の経過と共にモデルのパフォーマンスをレビューして反復処理することも検討してください。 これにより、要約の品質を継続的に向上させ、チームのニーズを満たすことができます。