Chapter 78
欢迎使用 VS Code 的 AI 工具包
欢迎使用 VS Code 的 AI 工具包
AI Toolkit for VS Code 集成了来自 Azure AI Studio 目录及 Hugging Face 等其他目录的多种模型。该工具包简化了使用生成式 AI 工具和模型构建 AI 应用的常见开发任务,功能包括:
- 快速开始模型发现和试玩。
- 使用本地计算资源进行模型微调和推理。
- 使用 Azure 资源进行远程微调和推理。

[Private Preview] 一键为 Azure Container Apps 配置,支持在云端运行模型微调和推理。
现在,让我们开始你的 AI 应用开发:
本地开发
准备工作
- 确保主机已安装 NVIDIA 驱动。
- 如果使用 HF 数据集,运行
huggingface-cli login。 Olive关键设置说明,涉及任何修改内存使用的配置。
激活 Conda
由于我们使用的是共享的 WSL 环境,需要手动激活 conda 环境。完成此步骤后即可运行微调或推理。
conda activate [conda-env-name] 仅基础模型微调
如果只想尝试基础模型而不进行微调,激活 conda 后可以运行以下命令。
cd inference
# Web browser interface allows to adjust a few parameters like max new token length, temperature and so on.
# User has to manually open the link (e.g. http://0.0.0.0:7860) in a browser after gradio initiates the connections.
python gradio_chat.py --baseonly模型微调与推理
打开开发容器中的工作区后,打开终端(默认路径为项目根目录),运行以下命令对选定数据集进行 LLM 微调。
python finetuning/invoke_olive.py 检查点和最终模型将保存在 models 文件夹中。
接下来,可以通过 console、web browser 或 prompt flow 使用微调后的模型进行聊天推理。
cd inference
# Console interface.
python console_chat.py
# Web browser interface allows to adjust a few parameters like max new token length, temperature and so on.
# User has to manually open the link (e.g. http://127.0.0.1:7860) in a browser after gradio initiates the connections.
python gradio_chat.py要在 VS Code 中使用 prompt flow,请参考此快速入门。
模型微调
接下来,根据设备是否有 GPU,下载以下模型。
使用 QLoRA 启动本地微调会话时,从我们的目录中选择要微调的模型。
| 平台 | 是否有 GPU | 模型名称 | 大小 (GB) |
|---|---|---|---|
| Windows | 是 | Phi-3-mini-4k-directml-int4-awq-block-128-onnx | 2.13GB |
| Linux | 是 | Phi-3-mini-4k-cuda-int4-onnx | 2.30GB |
| WindowsLinux | 否 | Phi-3-mini-4k-cpu-int4-rtn-block-32-acc-level-4-onnx | 2.72GB |
注意 下载模型不需要 Azure 账号。
Phi3-mini (int4) 模型大小约为 2GB-3GB,下载时间取决于网络速度,可能需要几分钟。
首先选择项目名称和位置。 然后从模型目录中选择模型。系统会提示下载项目模板,之后点击“配置项目”调整各种设置。
Microsoft Olive
我们使用 Olive 在 PyTorch 模型上运行 QLoRA 微调。所有设置均预设为默认值,以优化本地微调过程中的内存使用,但你可以根据实际情况进行调整。
微调示例和资源
[Private Preview] 远程开发
前提条件
- 要在远程 Azure Container App 环境中运行模型微调,确保订阅有足够的 GPU 容量。可提交支持工单申请所需容量。了解更多 GPU 容量信息
- 如果使用 HuggingFace 私有数据集,确保拥有HuggingFace 账号并生成访问令牌
- 在 AI Toolkit for VS Code 中启用远程微调和推理功能标志
- 打开 VS Code 设置,选择 文件 -> 首选项 -> 设置。
- 导航到 扩展,选择 AI Toolkit。
- 选择 "Enable Remote Fine-tuning And Inference" 选项。
- 重载 VS Code 使设置生效。
设置远程开发项目
- 执行命令面板中的
AI Toolkit: Focus on Resource View。 - 进入 Model Fine-tuning 访问模型目录。为项目命名并选择本地存储位置,然后点击 "Configure Project"。
- 项目配置
- 避免启用 "Fine-tune locally" 选项。
- Olive 配置设置将显示预设默认值,请根据需要调整填写。
- 继续点击 Generate Project。此步骤利用 WSL 并设置新的 Conda 环境,为未来支持 Dev Containers 做准备。
- 点击 "Relaunch Window In Workspace" 打开远程开发项目。
注意: 该项目目前仅支持在 AI Toolkit for VS Code 中本地或远程运行。如果创建项目时选择了 "Fine-tune locally",则仅在 WSL 中运行,不支持远程开发。反之,不启用 "Fine-tune locally",项目将仅限于远程 Azure Container App 环境。
配置 Azure 资源
开始前,需要为远程微调配置 Azure 资源。通过命令面板运行 AI Toolkit: Provision Azure Container Apps job for fine-tuning。
可通过输出通道显示的链接监控配置进度。
[可选] 将 Huggingface Token 添加到 Azure Container App Secret
如果使用私有 HuggingFace 数据集,可将 HuggingFace 令牌设置为环境变量,避免在 Hugging Face Hub 手动登录。
使用命令 AI Toolkit: Add Azure Container Apps Job secret for fine-tuning,将 Secret 名称设置为 HF_TOKEN,并使用你的 Hugging Face 令牌作为 Secret 值。
运行微调
执行 AI Toolkit: Run fine-tuning 命令启动远程微调任务。
查看系统和控制台日志,可通过输出面板中的链接访问 Azure 门户(更多步骤见在 Azure 上查看和查询日志)。也可以在 VSCode 输出面板直接查看控制台日志,运行命令 AI Toolkit: Show the running fine-tuning job streaming logs。
注意: 任务可能因资源不足而排队。如果日志未显示,执行
AI Toolkit: Show the running fine-tuning job streaming logs命令,等待一段时间后再次执行以重新连接日志流。
微调过程中将使用 QLoRA,为模型创建 LoRA 适配器以供推理使用。 微调结果将存储在 Azure Files 中。
配置推理端点
适配器训练完成后,使用简单的 Gradio 应用与模型交互。
与微调过程类似,需要通过命令面板执行 AI Toolkit: Provision Azure Container Apps for inference 配置远程推理的 Azure 资源。
默认情况下,推理的订阅和资源组应与微调时使用的保持一致。推理将使用相同的 Azure Container App 环境,访问微调步骤中生成并存储在 Azure Files 的模型和模型适配器。
部署推理端点
如果需要修改推理代码或重新加载推理模型,请执行 AI Toolkit: Deploy for inference 命令。此操作会将最新代码同步到 Azure Container App 并重启副本。
部署成功后,可点击 VSCode 通知中的“Go to Inference Endpoint”按钮访问推理 API。或者,在 ./infra/inference.config.json 文件中的 ACA_APP_ENDPOINT 以及输出面板中找到 Web API 端点。现在你可以使用该端点评估模型。
高级用法
有关 AI Toolkit 远程开发的更多信息,请参阅远程微调模型和使用微调模型进行推理文档。
免责声明:
本文件使用 AI 翻译服务 Co-op Translator 进行翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议使用专业人工翻译。对于因使用本翻译而产生的任何误解或误释,我们概不负责。
