Skip to main content

使用模型优化 AI 支持的应用

了解如何测试模型并优化 AI 支持的应用程序的提示。

随着新的 AI 模型定期发布,为应用程序选择合适的模型可能会很具挑战性。 ** ** ** **GitHub Models 通过使你能够将不同模型和提示变体与示例输入进行对比,同时使用内置评估程序来验证模型输出,从而帮助你优化 AI 支持的应用程序。

我们将通过示例方案构建 AI 支持的助手,帮助用户了解如何从命令行使用 Git。 我们将逐步比较不同的模型,并了解如何优化提示变体以提高输出质量。

注意

测试提示

          **
          **通过“GitHub Models Comparisons”视图,可调整用于测试模型输出的模型参数和提示。

1.创建示例存储库

          **
          **
          **
          **可以直接从任何存储库中的“Models”选项卡访问“Comparisons”视图,但在本指南中,我们将创建一个作为测试环境的新存储库。
  1. 导航到新仓库页面
  2. 在“Owner”下,确保已选择你的用户帐户。
  3. 在“Repository name”字段中,键入 models-playground
  4. 在说明字段下,选择“Private”,设置存储库可见性****。
  5. 单击“创建存储库”。

2.创建新提示

  1.        **
           **在新存储库的主页上,单击“Models”选项卡。
    
  2.        **
           **在“Prompts”部分中,单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> 新建提示”。
    
  3. 从左上角的下拉菜单中选择一个模型。

3.编写系统提示

系统提示是一组指令,用于定义 AI 模型在与用户交互之前的角色、行为和限制。 在此示例中,我们将使用 AI 支持的应用程序,该应用程序介绍如何从命令行使用 Git。

          **
          **在“System prompt”字段中,复制并粘贴以下文本:
Text
You are an expert at using the Git version control system. I will ask questions looking for guidance on the best way to perform tasks using Git, and you will give clear, step-by-step answers that explain each step you are recommending.

注意

** **如果“System”文本字段不可编辑,尝试在上面的模型下拉菜单中选择另一个模型。 并非所有模型都支持修改系统提示。

4.编写用户提示

用户提示是在与 AI 系统对话过程中向其提出的直接问题或发出的指令,AI 系统会对此作出响应。

          **
          **在“User prompt”字段中,复制并粘贴以下文本:
Text
I want to learn how to use Git from the command line. 

5.输入示例数据

          ``“User prompt”中的 **** 变量充当示例输入的占位符。 
          **
          **若要管理此占位符,可单击“Variables”按钮并输入以下文本:
Text
When should I use rebase or merge?

6.运行示例提示

  1. 在右上角,单击****“ 播放”。
  2. 对模型或提示进行更改,然后再次运行提示以查看获得的结果。

针对一个提示测试不同的模型

          **
          **现在,使用“Comparisons”视图确定哪个模型对于我们的应用程序而言性能最优。 通过此视图,可使用相同的输入测试不同模型,从而揭示出这些模型在准确性、创造性、语气、推理能力和可靠性等方面的差异。 这可帮助我们选择在质量、速度、成本和一致性方面最能满足我们需求的模型。
  1. 在左上角,单击“比较”。

  2. 若要比较不同的模型,请单击 添加提示,然后选择 复制原始提示以复制您现有的系统和用户提示。 创建至少两个原始提示的副本来评估三个不同的模型。

  3. 在每个提示旁边,单击 。 ** **从“Model”下拉菜单中,为每个创建的提示选择一个不同的模型。

  4.        **
           **单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> Add inputs”,为示例输入创建新行。
    
    • 单击“添加输入”。 然后,在“Input”字段中复制并粘贴以下文本:

      Text
      How do I modify the most recent commit message in my current branch?   
      
    • ****再次单击 添加输入 ,然后粘贴以下输入:

      Text
      How do I move a specific commit from one branch to a different branch?
      
    •     **
          **再次单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> 添加输入”,并粘贴以下输入:
      
      Text
      How do I find the author of a specific commit in a repository's history?
      
  5.        **
           **在右上角单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Run”以运行提示。
    
  6.        **
           **
           **
           **
           **
           **针对提示使用不同的模型,记录不同模型中“Latency”、“Input”和“Output”标记的用量。
    

使用特定模型测试各种提示变体

如果要使用特定 AI 模型构建应用程序,需要确保响应是可预测且可靠的。 测试提示变体有助于:

  •         **
            **优化性能和质量:措辞中的细微变化也可能影响响应质量。 通过测试变体,可发现能获得最佳响应的措辞。
    
  •         **
            **明晰指令:通过改变提示的措辞,可以确定模型最清楚理解的是哪个版本。
    
  •         **
            **适配特定模型行为:可以根据特定模型理解语言的方式来调整输入。
    
  •         **
            **验证输出格式:可能会需要列表、段落、代码块形式或特定语调。 测试提示变体可帮助强制应用特定的结构或样式。
    

让我们现在使用 GitHub Models 在特定模型中用于测试提示变体与用户输入的匹配。

1.添加提示变体

          **
          **对于此示例方案,为每列选择同一模型,但通过编辑现有提示的“User prompt”字段来提供不同的提示变体。 在每个提示旁边,单击由铅笔图标表示的按钮 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-pencil" aria-label="pencil" role="img"><path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path></svg>。

1. ** **单击“提示 2”中的 。 然后,在“User prompt”字段中复制并粘贴以下文本:

```text copy
I want to learn how to use Git from the command line, but explain it to me like I am five years old.   
```

1. ** **单击“Prompt 3”中的 ,然后粘贴以下输入:

```text copy
I want to learn how to use Git from the command line. Give me instructions in the form of a haiku. 
```

2.运行提示变体

  1.        **
           **在右上角单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Run”以运行提示。
    
  2. 尝试使用不同的提示变体,并比较模型提供的输出类型。

评估模型输出

我们测试了GitHub Models 中的不同模型和提示变体,下一步是解释和比较结果,以便针对 AI 支持的应用程序制定明智决策。

当你在示例方案中运行模型时,每次运行后都会显示“输入”和“输出”标记的用量以及“延迟”。 标记的用量很重要,因为它直接影响成本、性能和模型限制。****

  • 由于大多数模型都按标记收取输入和输出费用,使用的标记越多,成本越高。
  • 每个模型还都存在最大标记数限制(称为上下文窗口),如果超过此限制,可能会导致错误或响应被截断。
  • 较长的提示会减慢响应时间或降低明晰程度,而简洁的提示通常能生成更好、更高效的输出。

使用 GitHub Models 来测试标记使用量和延迟,有助于保持在限制范围内、控制成本,并提高 AI 支持的应用程序的整体效能。

使用评估者来判断输出

根据所评估的提示数量和模型数量,手动进行模型输出的排序可能会不堪重负。 ** **为帮助评估每个模型输出的质量,可以使用评估程序对结果在明晰程度、准确性和相关性等关键维度上进行评分。 可以自定义评估标准,或使用内置的评估程序自动对输出进行评分,这样能更轻松地识别出性能最优的模型和提示变体。

          **
          **对于此示例方案,使用“字符串检查”评估程序来检查输出中是否存在某个字符串。
  1. “Prompts” 字段的右下角,单击 添加评估器”,然后选择 字符串检查”。

  2. “Name” 字段中,输入“Amend check”,然后为 “Value” 字段复制并粘贴以下输入:

    Text
    git commit --amend
    
  3.        **
           **在右上角单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Run”以运行提示。
    
  4. 提示输出现在会显示PassFail标签,由此告知哪个模型包含所需的字符串。

若要详细了解预生成的评估程序,例如相似度、有据性和相关性,请参阅 评估 AI 模型

后续步骤

现在,你已了解如何使用 GitHub Models 测试模型、优化提示和评估输出,现在已可开始为 AI 支持的应用程序生成提示。 创建提示后,可通过将 .prompt.yml 文件提交到存储库来进行存储、共享以及版本控制。 这可使提示始终处于版本控制之下,并实现轻松的提示协同处理和模型优化。 有关详细信息,请参阅“在 GitHub 存储库中存储提示”。

加入社区

若要提问和共享反馈,请参阅这篇 GitHub Models 讨论文章
若要了解其他人如何使用 GitHub Models,请访问 GitHub Community 模型讨论