注意
GitHub Models for organizations and repositories is in 公共预览版 and subject to change.
GitHub Models 允许开发人员大规模构建 AI 驱动的应用程序,同时企业保持控制、合规性和成本效益。
为何使用 GitHub Models?
- 集中式模型管理:控制组织中的开发人员可以使用哪些 AI 模型和提供程序****。
- 快速 AI 开发:快速原型制作、评估以及优化提示和模型****。
- 治理和合规性控制:强制实施组织的标准和监视模型使用情况****。
- 成本优化:避免高价模型带来的意外成本****。
- 协作:使用标准 GitHub 开发做法共享提示和结果****。
- 以安全为中心的体系结构:请放心,你的数据保留在 GitHub 和 Azure 中,并且不会与模型提供程序共享****。
- 可视化界面:允许非技术团队成员与开发人员一起贡献内容****。
- API 访问:使用 GitHub Models REST API 自动执行操作并与企业工作流集成****。
- 版本控制:所有提示和模型更改将经过标准的 GitHub 提交和拉取请求流,以便了解提示的更改时间和原因****。
请参阅“About GitHub Models”。
大规模使用 GitHub Models 的最佳做法
比较和评估用于治理和合规性的 AI 模型
根据公司的治理、数据安全性和合规性要求,查看和比较可用的 AI 模型。 可以在启用模型的任何 GitHub 存储库中或 GitHub Marketplace 的 GitHub Models 目录 (https://github.com/marketplace?type=models) 中执行此操作。 注意事项可能包括:
- 治理和安全性:检查每个模型是否符合 GDPR、SOC 2 和 ISO 27001 等标准和法规,并确保数据不会保留在组织外部,除非得到明确同意****。
- 模型性能:对内部数据集运行基准评估,以评估推理、上下文保留和幻觉率****。
- API 控制和可见性:需要在团队或组织级别对使用配额、提示检查和速率限制进行精细控制****。
- 成本优化:包括令牌定价、推理速度以及模型变体是否可用于分层用途****。 例如,与用于体系结构讨论的高级模型相比,可以使用更便宜的模型来测试用例生成。
确定要使用的模型后,可以将组织中的访问设置为仅限这些模型,请参阅“管理团队的模型使用情况”。
跨团队优化和共享提示
开发人员可以使用 GitHub Models 中的提示编辑器来创建和优化提示。 Teams 可以在与 GitHub 开发工作流集成的稳定非生产环境中试验不同的提示变体和模型。 可视化界面允许非技术利益干系人与开发人员一起贡献内容。 请参阅使用提示编辑器。
轻型评估工具使你的团队能够比较常见指标(例如延迟、相关性和基础性)的结果,或者,你可以创建自定义评估程序。 比较特定生成式 AI 用例的提示和模型性能,例如创建代码、测试、文档或代码评审建议。
当团队创建有效的提示时,他们可以将其保存为 YAML 文件,并共享这些文件以供使用 GitHub 拉取请求进行评审。 提交的提示可供其他团队和工作流访问,并且可与公司的标准保持一致。 这种集中且协作的方法可促使管理加速开发,有助于在整个组织中强制实施最佳做法。
评估和优化模型使用成本
随着 AI 驱动的应用程序的采用增长和 AI 模型的改进,请使用 GitHub Models 来评估不同模型和模型更新的成本和性能。 为组织的需求选择最经济高效的选项,并在多个团队的用量缩放时管理费用。
使用 GitHub Models REST API 或扩展进行编程管理
若要更高效地管理所有团队的资源,可以利用 GitHub Models REST API 来:
- 管理和更新组织设置:一次性以编程方式更新多个团队的模型访问权限和治理设置,以确保一致性和合规性****。
- 列出和检索提示:列出、检索和审核不同团队使用的提示,以监视使用情况、共享成功提示和维护最佳做法的中心存储库****。
- 运行模型推理请求:针对特定模型和参数(例如频率惩罚、最大令牌数、响应格式和出现惩罚)运行推理请求****。
还可以使用这些扩展来运行推理请求和管理提示:
- 适用于 GitHub CLI 的 GitHub Models 扩展
- 适用于 GitHub Copilot Chat 的 GitHub Models 扩展
- GitHub Models VS Code 扩展
监视、循环访问和集成
借助内置治理功能,可以监视模型使用情况,并确保持续符合公司策略。 审核日志提供已访问或修改模型和提示的人员的相关信息。 GitHub Models 存储库集成允许所有利益干系人协作并持续循环访问 AI 驱动的应用程序。
示例:将 GitHub Models 与 GitHub Actions 配合使用来总结议题
大型软件开发项目通常包含充满技术细节的议题。 可以使用 GitHub Models 和 GitHub Actions 推出 AI 驱动的议题摘要。
先决条件:在组织中启用 GitHub Models,并设置要可供各个存储库使用的模型和发布程序****。
-
在存储库中创建提示
在存储库的“Models”选项卡中,使用提示编辑器创建提示。
示例系统提示:
你是 GitHub 议题的摘要生成器。 强调关键技术要点或重要问题。
示例用户提示:
总结此议题 - {{input}}
-
运行和循环访问提示
运行提示。 在“Variables”窗格中提供一些示例议题内容作为
{{input}}
的值。尝试不同的模型(例如 OpenAI GPT-4o)并比较结果。 调整最大令牌数和温度等参数。 循环访问,直到对结果满意。
-
(可选)运行更广泛的测试
使用“比较”视图可以同时针对不同模型运行多个提示,并在网格视图中查看结果的比较情况。 还可以进行定义并使用评估程序来确保结果包含某些关键字或满足其他标准。
-
提交提示
为提示命名并提交更改以完成拉取请求流。 例如,如果将提示命名为
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: gpt-4o modelParameters: max_tokens: 4096
查看和合并拉取请求后,提示将可供任何人在存储库中使用。
-
在工作流中调用提示
有关创建工作流的信息,请参阅“写入工作流”。
需要设置
models: read
权限以允许在工作流中调用提示。下面是一个示例工作流,该工作流将 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@v4 - 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@v4 - 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 扩展执行本地测试,或使用 GitHub Models REST API 以编程方式更新提示和模型设置。
还可以考虑将模型响应保存为存储库中的文件,以便查看并循环访问模型随时间推移的性能。 这样便可以不断提高摘要的质量,并确保它们满足团队的需求。