Skip to content

Latest commit

 

History

History
227 lines (164 loc) · 8.2 KB

File metadata and controls

227 lines (164 loc) · 8.2 KB

AITK中的Phi家族

AI Toolkit for VS Code 通过整合来自Azure AI Foundry Catalog和其他目录(如Hugging Face)的尖端AI开发工具和模型,简化了生成式AI应用的开发。您可以浏览由GitHub Models和Azure AI Foundry Model Catalogs支持的AI模型目录,下载模型到本地或远程环境,进行微调、测试,并将其用于您的应用程序。

AI Toolkit预览版将在本地运行。无论是本地推理还是微调,都取决于您选择的模型。您可能需要具备GPU,例如NVIDIA CUDA GPU。此外,您还可以直接使用AITK运行GitHub模型。

入门指南

了解如何安装Windows子系统Linux

以及更改默认发行版

AI Toolkit GitHub Repo

安装AI Toolkit

AI Toolkit作为Visual Studio Code扩展提供,因此您需要先安装VS Code,然后从VS Marketplace下载AI Toolkit。 AI Toolkit在Visual Studio Marketplace中可用,可以像其他VS Code扩展一样安装。

如果您不熟悉安装VS Code扩展,请按照以下步骤操作:

登录

  1. 在VS Code的活动栏中选择扩展
  2. 在扩展搜索栏中输入“AI Toolkit”
  3. 选择“AI Toolkit for Visual Studio Code”
  4. 点击安装

现在,您已准备好使用此扩展!

系统会提示您登录GitHub,请点击“允许”继续。您将被重定向到GitHub登录页面。

请登录并按照步骤完成流程。成功完成后,您将被重定向回VS Code。

安装扩展后,您会在活动栏中看到AI Toolkit图标。

让我们探索可用的操作!

可用操作

AI Toolkit的主侧边栏组织为以下部分:

  • 模型
  • 资源
  • 实验室
  • 微调
  • 评估

这些功能都可以在资源部分找到。要开始,请选择模型目录

从目录下载模型

在从VS Code侧边栏启动AI Toolkit后,您可以选择以下选项:

AI toolkit model catalog

  • 模型目录中找到支持的模型并下载到本地
  • 模型实验室中测试模型推理
  • 模型微调中本地或远程微调模型
  • 通过AI Toolkit命令面板将微调后的模型部署到云端
  • 评估模型

Note

GPU与CPU

您会注意到模型卡显示了模型大小、平台以及加速器类型(CPU、GPU)。对于至少拥有一个GPU的Windows设备,请选择仅针对Windows优化的模型版本。

这确保您使用的是针对DirectML加速器优化的模型。

模型名称格式为

  • {model_name}-{accelerator}-{quantization}-{format}

要检查您的Windows设备是否有GPU,请打开任务管理器,然后选择性能选项卡。如果有GPU,它们会以“GPU 0”或“GPU 1”等名称列出。

在实验室中运行模型

设置好所有参数后,点击生成项目

下载模型后,在目录中的模型卡上选择加载到实验室

  • 开始下载模型
  • 安装所有必要的前置条件和依赖项
  • 创建VS Code工作区

Load model in playground

在应用中使用REST API

AI Toolkit附带了一个本地REST API Web服务器,运行在端口5272,使用OpenAI聊天完成格式

这使您可以在本地测试您的应用,而无需依赖云端AI模型服务。例如,以下JSON文件展示了如何配置请求体:

{
    "model": "Phi-4",
    "messages": [
        {
            "role": "user",
            "content": "what is the golden ratio?"
        }
    ],
    "temperature": 0.7,
    "top_p": 1,
    "top_k": 10,
    "max_tokens": 100,
    "stream": true
}

您可以使用Postman或CURL(客户端URL)工具测试REST API:

curl -vX POST http://127.0.0.1:5272/v1/chat/completions -H 'Content-Type: application/json' -d @body.json

使用Python的OpenAI客户端库

from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:5272/v1/", 
    api_key="x" # required for the API but not used
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "what is the golden ratio?",
        }
    ],
    model="Phi-4",
)

print(chat_completion.choices[0].message.content)

使用.NET的Azure OpenAI客户端库

通过NuGet将Azure OpenAI客户端库添加到您的项目中:

dotnet add {project_name} package Azure.AI.OpenAI --version 1.0.0-beta.17

添加一个名为OverridePolicy.cs的C#文件到您的项目中,并粘贴以下代码:

// OverridePolicy.cs
using Azure.Core.Pipeline;
using Azure.Core;

internal partial class OverrideRequestUriPolicy(Uri overrideUri)
    : HttpPipelineSynchronousPolicy
{
    private readonly Uri _overrideUri = overrideUri;

    public override void OnSendingRequest(HttpMessage message)
    {
        message.Request.Uri.Reset(_overrideUri);
    }
}

接下来,将以下代码粘贴到您的Program.cs文件中:

// Program.cs
using Azure.AI.OpenAI;

Uri localhostUri = new("http://localhost:5272/v1/chat/completions");

OpenAIClientOptions clientOptions = new();
clientOptions.AddPolicy(
    new OverrideRequestUriPolicy(localhostUri),
    Azure.Core.HttpPipelinePosition.BeforeTransport);
OpenAIClient client = new(openAIApiKey: "unused", clientOptions);

ChatCompletionsOptions options = new()
{
    DeploymentName = "Phi-4",
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant. Be brief and succinct."),
        new ChatRequestUserMessage("What is the golden ratio?"),
    }
};

StreamingResponse<StreamingChatCompletionsUpdate> streamingChatResponse
    = await client.GetChatCompletionsStreamingAsync(options);

await foreach (StreamingChatCompletionsUpdate chatChunk in streamingChatResponse)
{
    Console.Write(chatChunk.ContentUpdate);
}

使用AI Toolkit进行微调

  • 从模型发现和实验室开始
  • 使用本地计算资源进行模型微调和推理
  • 使用Azure资源进行远程微调和推理

使用AI Toolkit进行微调

AI Toolkit问答资源

请参考我们的问答页面,了解最常见的问题和解决方案

免责声明
本文档使用 AI 翻译服务 Co-op Translator 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能会包含错误或不准确之处。应以原始语言的文档为权威来源。对于关键信息,建议使用专业的人工翻译服务。我们对因使用此翻译而导致的任何误解或误读不承担责任。