ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

大模型应用开发全流程:从初始构思到实验、效果评估和产品化!

大模型应用开发全流程:从初始构思到实验、效果评估和产品化! 简介本文提供了构建大型语言模型原生应用的全面指南强调了标准化流程的重要性。文章介绍了LLM工程师所需的多领域技能以及自下而上和自上而下两种开发方法。重点阐述了实验思维、提示工程、模型选择等优化策略以及如何通过健全性测试确保质量。最后讨论了从实验到产品化的关键步骤包括反馈循环、成本控制和可调试性等生产环境注意事项为开发者提供了构建高质量LLM应用的实用框架。大型语言模型 (LLM) 正迅速成为现代人工智能的基石。然而目前还没有既定的最佳实践而且通常情况下先驱者们缺乏明确的路线图需要重新发明轮子或陷入困境。在过去的两年中我帮助了许多组织利用大型语言模型构建创新应用。通过这些经验我开发了一种用于创建创新解决方案的经过实战检验的方法参考了 LLM.org.il 社区的见解我将在本文中分享这种方法。本指南提供了一个“清晰的路线图”用于在大型语言模型原生开发的复杂环境中导航。你将学习如何从构思到实验、评估和产品化从而释放你创造突破性应用的潜力。使用 Dall-E3 创建为什么标准化流程至关重要大型语言模型领域发展迅速有时我们每天都会听到新的突破性创新。这既令人兴奋也让人感到混乱——你可能会在过程中迷失方向不知道该做什么或如何将你的新奇想法变为现实。长话短说如果你是一位想要有效构建大型语言模型原生应用的人工智能创新者经理或从业者那么本文就是为你准备的。实施标准化流程有助于启动新项目并提供以下几个关键优势标准化流程——标准化流程有助于团队成员保持一致并确保新成员顺利入职尤其是在这种混乱的情况下。定义明确的里程碑——以一种直接的方式跟踪你的工作、衡量进度并确保你走在正确的道路上确定决策点——大型语言模型原生开发充满了未知数和“小型实验” [见下文]。明确的决策点可以让我们轻松降低风险并始终保持精益的开发工作。大型语言模型工程师的必备技能与软件研发中任何其他既定角色不同大型语言模型原生开发绝对需要一个新角色大型语言模型工程师或人工智能工程师。大型语言模型工程师是一个独特的混合型人才需要具备来自不同既定角色的技能软件工程技能——与大多数软件工程师一样大部分工作都涉及将乐高积木拼凑在一起并粘合在一起。研究技能——正确理解大型语言模型原生的实验性质至关重要**。虽然构建“炫酷的演示应用”很容易但从“炫酷的演示”到实用解决方案的距离需要实验和敏捷性。深入的业务/产品理解——由于模型的脆弱性了解业务目标和流程至关重要而不能局限于我们定义的架构。对大型语言模型工程师来说对人工流程进行建模的能力是一项黄金技能。在撰写本文时大型语言模型工程仍然是一个全新的领域招聘可能非常具有挑战性。寻找具有后端/数据工程或数据科学背景的候选人可能是个好主意。软件工程师可能会期待更平稳的转型因为与传统的数据科学工作相比实验过程更具“工程性”而不是那么“科学”。话虽如此我也见过很多数据科学家成功转型。只要你接受你需要学习新的软技能你就走在正确的道路上大型语言模型原生开发的关键要素与经典的后端应用例如 CRUD不同这里没有循序渐进的秘诀。与“人工智能”中的所有其他事物一样大型语言模型原生应用需要研究和实验思维方式。要驯服这头野兽你必须分而治之将你的工作分解成更小的实验尝试其中的一些实验然后选择最有希望的实验。我怎样强调研究思维方式的重要性都不过分。这意味着你可能需要投入时间来探索一个研究方向然后发现它“不可行”、“不够好”或“不值得”。这完全没问题——这意味着你走在正确的道路上。拥抱实验流程的核心有时你的“实验”会失败然后你稍微调整一下工作方向另一个实验就取得了更大的成功。这就是为什么在设计最终解决方案之前我们必须从简单的事情开始并对冲风险。定义“预算”或时间表。让我们看看在 X 周内我们可以做什么然后再决定是否以及如何继续。通常情况下2-4 周的时间足以了解基本的 PoC。如果看起来很有希望就继续投入资源改进它。实验——无论你选择自下而上还是自上而下的实验方法你的目标都是最大限度地提高结果成功率。到第一次实验迭代结束时你应该有一些 PoC利益相关者可以使用的和你实现的基线。回顾——在我们研究阶段结束时我们可以了解构建此类应用的可行性、局限性和成本。这有助于我们决定是否将其产品化以及如何设计最终产品及其用户体验。产品化——遵循标准的软件工程最佳实践并实施反馈和数据收集机制开发项目的生产就绪版本并将其与解决方案的其余部分集成。基于 LLM 的应用程序开发生命周期图片由作者提供为了更好地实施以实验为导向的流程我们必须在处理和构建这些实验时做出明智的决定从零开始使用大型语言模型: 自下而上的方法虽然许多早期使用者很快就投入到使用 Langchain 或类似工具构建的“最先进的”多链代理系统中但我发现“自下而上的方法”通常会产生更好的结果。从精简开始非常精简拥抱“一个提示掌控一切”的理念。虽然这种策略可能看起来非传统并且一开始可能会产生糟糕的结果但它为你的系统建立了一个“基线”。从那里开始不断迭代和完善你的提示采用提示工程技术来优化结果。当你发现精简解决方案中的弱点时通过添加分支来解决这些缺点从而拆分流程。在设计我的大型语言模型工作流程图或大型语言模型原生架构的每个“叶子”时我遵循_魔法三角形_³ 来确定在何处以及何时剪断分支、拆分分支或加粗根部通过使用提示工程技术并更充分地利用资源。自下而上方法的图示图片由作者提供例如要使用自下而上的方法实现“自然语言 SQL 查询”我们将首先简单地将模式发送到大型语言模型并要求它生成一个查询。自下而上方法的示例图片由作者提供通常这与“自上而下的方法”并不矛盾而是作为它之前的另一个步骤。这使我们能够展示快速获胜并吸引更多项目投资。预先了解全局自上而下的策略“我们知道大型语言模型工作流程并不容易为了实现我们的目标我们最终可能会得到一些工作流程或大型语言模型原生架构。”自上而下的方法认识到了这一点并从一开始就设计大型语言模型原生架构并从一开始就实现其不同的步骤/链。这样你可以将工作流架构作为一个整体进行测试并充分利用所有资源而不是单独优化每个叶子。自上而下的方法流程一次性设计架构、实施、测试和度量图片由作者提供例如要使用自上而下的方法实现“自然语言 SQL 查询”我们将在开始编码之前就开始设计架构然后直接进行完整的实现自上而下方法的示例图片由作者提供找到合适的平衡点当你开始尝试大型语言模型时你可能会从一个极端开始过于复杂的自上而下或超级简单的一次性。实际上没有绝对的赢家。理想情况下你将在编码和试验模型之前定义一个好的 SoP¹ 并模拟一个专家。实际上建模非常困难有时你可能无法接触到这样的专家。我发现很难一开始就确定一个好的架构/SoP¹所以值得在投入大量资源之前进行一些轻量级的实验。然而这并不意味着所有东西都必须过于精简。如果你已经事先了解到某些东西必须分解成更小的部分——那就去做吧。在任何情况下在设计解决方案时你都应该利用魔法三角形³ 范式并正确地模拟手动流程。优化你的解决方案充分利用资源在实验阶段我们不断地优化并添加更多“复杂性层级”提示工程技术– 如 Few Shots、角色分配甚至是动态 Few-shot扩展上下文窗口从简单的变量信息到复杂的 RAG 流程可以帮助改进结果。试验不同的模型– 不同的模型在不同的任务上表现不同。此外大型语言模型通常成本效益不高值得尝试更针对特定任务的模型。提示精简– 我了解到对 SoP¹特别是提示和请求的输出进行“精简”通常可以改善延迟。通过减少提示大小和模型需要经历的步骤我们可以减少模型需要生成和输出的内容。你会感到惊讶但提示精简有时甚至可以提高质量请注意精简也可能导致质量下降因此在这样做之前设置健全性测试非常重要。将流程拆分成更小的步骤也非常有益并且可以更容易、更可行地优化 SoP¹ 的子流程。请注意这可能会增加解决方案的复杂性或损害性能例如增加处理的标记数量。为了减轻这种情况目标是使用简洁的提示和更小的模型。根据经验当系统提示的巨大变化对 SoP¹ 流程的这一部分产生更好的结果时通常最好进行拆分。榨取 AI 的潜力 (使用 Dall-E3 创建)大型语言模型实验的剖析就我个人而言我更喜欢使用 Python、Pydantic 和 Jinja2从一个简单的 Jupyter Notebook 开始_精简_使用 Pydantic从模型中定义输出的模式。使用Jinja2编写提示模板。定义结构化的输出格式使用YAML²。这将确保模型遵循“思考步骤”并以我的 SoP 为指导。使用你的 Pydantic 验证来确保此输出如果需要请重试。稳定你的工作– 使用 Python 文件和包将你的代码构建成功能单元。在更广泛的范围内你可以使用不同的工具例如 openai-streaming 来轻松利用流式传输和工具LiteLLM 来拥有跨不同提供商的标准化大型语言模型 SDK或 vLLM 来服务开源大型语言模型。使用健全性测试和评估来确保质量健全性测试评估项目的质量并确保您没有降低您定义的特定成功率基准。将您的解决方案/提示视为一条短毯子——如果您拉伸过度它可能会突然无法涵盖以前涵盖的某些用例。为此请定义一组您已经成功涵盖的案例并确保保持这种状态或者至少值得这样做。将其视为表格驱动测试可能会有所帮助。评估“生成性”解决方案例如编写文本的成功比将 LLM 用于其他任务例如分类、实体提取等要复杂得多。对于这些类型的任务您可能希望让更智能的模型例如 GPT4、Claude Opus 或 LLAMA3–70B充当“评判者”。尝试使输出在“生成性”输出之前包含“确定性部分”也可能是一个好主意因为这些类型的输出更容易测试cities: - New York - Tel Aviv vibes: - vibrant - energetic - youthful target_audience: age_min:18 age_max:30 gender: both attributes: - adventurous - outgoing - culturally curious text: Both New York and Tel Aviv buzz with energy, offering endless activities, nightlife, and cultural experiences perfect for young, adventurous tourists.有一些前沿的、有希望的解决方案值得研究。我发现它们在评估基于 RAG 的解决方案时特别相关请查看 DeepChecks、Ragas 或 ArizeAI。做出明智的决定回顾的重要性在每个主要/时间框架的实验或里程碑之后我们都应该停下来就如何以及是否继续采用这种方法做出明智的决定。此时您的实验将有一个明确的成功率基线并且您将了解需要改进的地方。这也是开始讨论此解决方案的产品化含义并开始“产品工作”的好时机这在产品中会是什么样子有哪些限制/挑战您将如何减轻它们您当前的延迟是多少够好吗用户体验应该是什么您可以使用哪些 UI 小技巧流式传输有帮助吗代币的估计支出是多少我们可以使用较小的模型来减少支出吗什么是优先事项是否有任何挑战是不可逾越的假设我们实现的_基线_“足够好”并且我们相信我们可以缓解我们提出的问题。在这种情况下我们将继续投资和改进该项目同时确保它永远不会退化并使用健全性测试。从实验到产品将您的解决方案变为现实最后但并非最不重要的一点是我们必须将我们的工作产品化。与任何其他生产级解决方案一样我们必须实施生产工程概念例如日志记录、监控、依赖项管理、容器化、缓存等。这是一个巨大的世界但幸运的是我们可以借鉴经典生产工程中的许多机制甚至采用许多现有工具。话虽如此重要的是要格外注意涉及 LLM 原生应用程序的细微差别反馈循环——我们如何衡量成功是简单的“竖起大拇指/向下”机制还是更复杂地考虑采用我们解决方案的机制收集这些数据也很重要将来这可以帮助我们重新定义我们的健全性“基线”或者使用 动态少样本 或微调模型来微调我们的结果。缓存——与传统的 SWE 不同当我们在解决方案中加入生成方面时缓存可能非常具有挑战性。为了缓解这种情况请探索缓存类似结果例如使用 RAG和/或减少生成输出通过使用严格的输出模式的选项成本跟踪——许多公司认为从“强大模型”例如 GPT-4 或 Opus开始非常诱人但是在生产中成本可能会迅速上升。避免对最终账单感到惊讶并确保测量输入/输出标记并跟踪您的工作流程影响如果没有这些做法——祝您以后分析它好运可调试性和跟踪——确保您已设置正确的工具来跟踪“错误”输入并在整个过程中对其进行跟踪。这通常涉及保留用户输入以供以后调查和设置跟踪系统。请记住“与传统软件不同人工智能会在静默中失败”结束语您在推进 LLM 原生技术中的作用这可能是本文的结尾但肯定不是我们工作的结尾。LLM 原生开发是一个迭代过程涵盖更多用例、挑战和功能并不断改进我们的 LLM 原生产品。在您继续人工智能开发之旅时请保持敏捷大胆实验并牢记最终用户。与社区分享您的经验和见解我们将共同推动 LLM 原生应用程序的可能性界限。不断探索、学习和构建——可能性是无限的。希望本指南成为您 LLM 原生开发之旅中的宝贵伴侣我很想听听您的故事——在下面的评论中分享您的胜利和挑战。¹SoP——标准操作程序借鉴自神奇三角形³的概念²YAML——我发现使用 YAML 来构建输出在 LLM 中效果更好。为什么我的理论是它减少了不相关的标记并且行为更像是母语。本文深入探讨了这个主题。³神奇三角形——LLM 原生开发的蓝图请继续关注并在发布蓝图时关注我以阅读。如何学习AI大模型我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。1.AI大模型学习路线图2.100套AI大模型商业化落地方案3.100集大模型视频教程4.200本大模型PDF书籍5.LLM面试题合集6.AI产品经理资源合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】
返回列表