未来总是由开发者开始。他们决定了创新的速度,在今天这个生成式人工智能的时代,这一点从未如此真实。我们已经看到GenAI对我们构建应用程序和与同事协作的方式产生了深远的影响。更多的开发人员将被授权使用技术进行创作,因为他们有机会获得教练的指导,指导他们完成学习旅程的每个阶段。用户的期望也在迅速变化,所以今天的最终用户希望他们的应用程序已经知道他们的环境和历史,甚至预测他们的下一步。
很多变化即将发生!但是,当我们被技术债务压垮并陷入困境时,很难找到时间来学习。开发人员必须不断地在工具之间切换上下文,这影响了他们的认知和注意力。我们知道,即使情况很好,开发人员每天也只花2个小时编码,在切换上下文后,他们需要23分钟才能重新集中注意力。这里,再加上随机会议来收集您需要的资源,会让您在一天结束时感到筋疲力尽,并对效率低下感到沮丧。所有这些都让工作失去了乐趣,也让开发软件变得很辛苦。
但我们知道有一条通往开发者幸福的道路——开发者可以更多地专注于编码,而不是运维;在那里他们可以以创造力的速度进行创新;他们可以快速发展,而不必担心管理他们的应用程序所依赖的基础设施。
开发者的快乐 = 置身于不被打扰的开发流程中
我们的指导原则之一是将最好的工具带到您身边——您的代码编辑工具中——这样您就可以保持在流程中!在本周的 Build 大会上,我们宣布了一些非常惊人的开发者体验,将为您作为开发者的生活带来更多的快乐和更少的辛劳。
首先,我们宣布 Visual Studio 17.10 正式发布。在这个版本中。我们把 GitHub Copilot 插在 IDE 的任何地方,所以它改变了您在应用程序中编写、学习、测试、搜索和修复代码的方式。
我们还宣布了 Azure 的 GitHub Copilot 预览,这是一个扩展,与 Visual Studio Code 和 Visual Studio 中的 GitHub Copilot Chat 无缝集成,将 Azure 专业知识带到您的指尖!使用 GitHub Copilot for Azure,您可以了解 Azure 资源和最佳实践;探索和管理 Azure 资源;解决问题,查找相关日志和代码。GitHub Copilot for Azure 建立在我们引入 GitHub Copilot 的通用可扩展性层面上。很快您就不需要上下文切换了,因为所有您喜欢的工具都将集成到您的代码中!稍后会详细介绍……
.NET Aspire 通过多项目管理、内置 HTTP 弹性、健康检查、OpenTelemetry 以及通过 Visual Studio、VS Code 和 Azure Developer CLI 进行的轻松多节点部署等工具,为云原生开发提供了最佳实践。.NET Aspire 使您可以轻松地开始使用模板和一组精心设计的组件,这些组件基于我们在微软内部的主观的技术栈,并与 .NET 社区共同开发。
使用 .NET Aspire,可以很容易地使用服务发现和一个全新的开发人员仪表板来构建和调试,以查看实时遥测和指标,并在诊断问题上站稳脚跟。您可以使用单个命令运行和部署,以启动和运行多个服务。能够在 C# 中表达应用程序拓扑,使得能够轻易进行云部署。
许多伟大的创新将您的所有工具中最好的带到您身边——您最喜欢的代码编辑器工具——因此您可以保持在流程中!
在过去的一年里,我们见证了历史上最关键的技术创新之一的诞生:生成人工智能(GenAI)。它改变了用户对每一种体验的期望,并继续塑造企业如何将技术视为快速增长的推动者。
我们将所有或部分使用人工智能功能的应用称为“intelligent app,智能应用”。智能应用改变体验和操作的方式可以成为竞争优势。它首先考虑用例,在这些用例中,您的数据可以提供可操作的见解,从而改进您的流程或用户体验。这是一个巨大的范式转变——它正在改变我们如何与技术互动的用户期望。自然语言是新的用户界面;我们只是和它说话。我可以问它问题,它已经有了我的上下文或我的历史背景,它甚至可以预测我的需求。这些应用程序通过在生产过程中不断学习而不断改进。这意味着传统的开发人员内部和外部循环也在发展,以便在部署到生产环境后推动评估周期和持续学习。
无论您是使用 GPT3、Phi-3 这样的基础模型,还是构建自己的自定义机器学习,或者是通过微调来增强现有的模型,这些应用程序都超越了基于您点击、轻击、收听或观看事件的内容推荐算法。智能应用程序从用户的输入和数据中学习,随着时间的推移不断改进,同时关注重要的人工智能最佳实践。
对于我们的开发人员工具和应用程序构建块,我们的目标是......
- 使构建 GenAI 应用程序更加容易
- 减少构建、管理和发展 GenAI 应用程序所需的工作量
- 支持端到端的应用程序开发生命周期,包括构建智能应用程序所需的新任务——如评估模型、提示和准备数据
- 同时根据我们的 DevOps 和平台工程最佳实践维护企业级安全性、可伸缩性、合规性和治理
今天,我们宣布了 AI Toolkit for Visual Studio Code 工具包。这个工具包帮助 AI 工程师开发和部署智能应用程序,使他们能够在 VS Code 中探索、获取、评估和集成小型和大型语言模型。您可以使用本地硬件来尝试、运行和评估最先进的小型语言模型(SLMs),比如 Phi-3。它利用了我们在 Windows 上的机器学习堆栈上的深度投资,提供了在笔记本电脑、Dev Box 或 Azure AI 计算上无缝运行任何模型的总包体验。虽然它目前在 Windows 上运行得最好,但很快就会支持 MacOS !
除了提供一个平台来托管您的应用程序, Azure App Platform 还提供了您通常做构建和操作 GenAI 应用程序需要完成的不同的任务所需的基本的构建块,包括利用 Azure OpenAI 和托管模型在您的应用程序;构建增强的 Copilot;试验和优化;托管自定义模型并用您的数据对其进行微调。
所有的功能都是相互集成的,您可以无缝地一起使用它们。例如,您可以合并实验和使用 Vector DB 插件为您的 GenAI 应用程序运行在任何我们的 App Platform 服务。
以下是 Azure 在人工智能时代发展的一些方式:
- 当您开始扩展应用程序集时,您可能希望跟踪多个应用程序的令牌使用情况,或者确保单个应用程序不会消耗整个TPM配额。Azure API Management引入了新的功能,以增强生成式AI部署的可扩展性和安全性。其中包括用于公平使用和优化资源分配的Azure OpenAI令牌限制策略,作为API的Azure OpenAI终结点的一键导入,用于高效流量分配的负载均衡器,以及用于保护后端服务的断路器。
- API 扩张在 API 治理、安全性、可塑性和重用方面提出了重大挑战。如果没有集中的清单,API 可能会变得孤立,导致 API 重用不良,缺乏与组织 API 设计和组织流程的一致性,以及增加对安全漏洞的脆弱性。大多数 GenAI 应用程序通过 API 使用 LLMs,所以 GenAI 的时代是 API-first 的时代。Azure API Center 提供集中的 API 清单,以实现无缝发现、重用和治理,而无需考虑 API 类型、生命周期阶段或部署位置。
- Azure Container Apps 现在在扩展上包含安全沙箱:当您构建运行来自不受信任来源的代码或命令的应用程序时,您必须确保代码在其自己的隔离环境中运行。如果 LLM 生成您需要评估的代码,那么执行该代码的最佳方法是什么?动态会话提供了安全的、短暂的沙箱,称为“sessions,会话”,用于运行潜在的恶意代码。每个会话运行在自己的 Hyper-V 虚拟化边界中——确保与其他会话和资源完全隔离。
您可以在 Build Book of News 中阅读所有这些 Azure 公告和更多信息。
因此,我们已经介绍了一些新的工具和经验,它们可以帮助您保持在流程中,并开始构建智能应用程序。现在让我们讨论一下平台工程的实践如何帮助组织保持安全性和兼容性,以及开发人员如何专注于他们的代码。
开发人员希望能够自服务环境、工作流和基础设施,他们有信心遵守组织的最佳实践和需求。这只是停留在流程中的一个方面。
去年11月,我们发布了平台工程指南。在非常基本的层面上,平台工程是一组模式和实践,帮助实现企业软件交付的现代化。如果执行得当,这些模式和实践可以成为开发团队和运营团队之间的粘合剂——在整个产品制造生命周期中,在团队之间创建更多的凝聚力和流程。
在最好的情况下,平台工程使团队能够实现扩展并减少交付商业价值所需的时间,同时消除辛劳,促进自给自足,并减少满足更广泛的操作和组织标准所需的认知负荷。
通过实施策略、安全监控和可观察性,组织可以管理他们的应用资产,以获得更好的成本控制和降低风险,同时提供出色的开发人员体验。
GitHub Copilot 现在是为平台工程提供无与伦比的开发人员体验的完美平台。通过新的可扩展性功能,GitHub Copilot 可以与您在 GitHub repos 中定义的产品目录进行增强和落地,其中包含模板,工作流,API 和示例,这些示例为开发人员提供了正确开始的自动化和策略实施,开发人员可以在 Copilot Chat 中使用自然语言用户界面发现和部署它们。
Microsoft Dev Box 是一项 Azure 服务,可以让开发人员自助访问预配置的、特定于项目的开发人员工作站,它一直是我们平台工程方法的关键部分。通用汽车和西门子医疗(中国)等公司(以及超过2.5万名微软开发人员)使用 Dev Boxes,将环境设置从几天减少到几分钟,鼓励合作和实验。有了预安装的工具和源代码,开发人员就可以快速地开始编写代码。
对于开发团队,我们最近添加了带有特定于每个项目的项目级目录的标准化模板。我们还有一个新的 Dev Box 映像服务,团队可以使用 config-as-code 创建和维护自定义映像,以确保整个团队拥有一致的环境。
Azure Deployment Environments 现在为客户提供更加无缝的体验,使他们能够利用其新的可扩展性模型快速轻松地利用流行的基础设施即代码(IaC, Infrastructure-as-Code)框架,并根据其组织需求执行或自定义部署。
这些功能为开发团队提供了更多的控制来定制环境模板,以满足他们团队特定的需求,并为平台工程师提供了额外的方法来构建他们喜欢的IaC格式的模板。
但是跨团队的一致环境并不意味着开发人员的体验不能个性化。
Windows 中新的 Dev Home 功能可以轻松创建个性化的、一致的环境,并与 Microsoft Dev Box 完美配合。创建、连接和自定义 Dev Bbox 很简单,可以将经常使用的 Dev Box 固定到任务栏或开始菜单中,并将工具添加到您的配置或您正在为团队构建的配置中。
我们的使命是帮助开发者取得更多成就。我们的愿景是使他们能够在几秒钟内建立一个完整的工程系统,从任何设备贡献,为任何平台构建,与任何人合作,并充满信心地扩展。在人工智能时代,开发人员和他们的团队可以进入该领域,比以往更快地学习新技术,以他们的创造力的速度探索可能的事情,并分享他们的专业知识,以加速整个团队的影响。
原文链接:https://devblogs.microsoft.com/visualstudio/maximizing-joy-and-minimizing-toil-with-great-developer-experiences/
有一条通往开发者幸福的道路——开发者可以更多地专注于编码,而不是运维;在那里他们可以以创造力的速度进行创新;他们可以快速发展,而不必担心管理他们的应用程序所依赖的基础设施。
这一章介绍通过扩写,改写,以及回译等半监督样本挖掘方案对种子样本进行扩充,提高种子指令样本的多样性和复杂度,这里我们分别介绍Microsoft,Meta和IBM提出的三个方案。