面向开发人员的开源 AI
开源与 AI:共筑变革之力
人工智能(AI)和机器学习运维(MLOps)正在重塑应用与开发流程。
基于 AI 模型的创新解决方案,为内容创作、决策流程优化及用户体验个性化开辟了全新可能。现代 MLOps 工作流可简化 AI 模型在生产环境中的集成、部署与管理,从而确保其可靠运行且性能出色。AI 与 MLOps 协同作用,可帮助开发人员提升敏捷性,并凭借动态应用、高效工作流和更短的开发周期,快速响应不断变化的业务需求。
开源 AI 工具在灵活性和定制化方面为开发团队带来了显著优势。这些工具可帮助开发人员修改和调整智能应用,通过量身定制的解决方案来满足业务需求。开源项目依托广泛的用户和贡献者社区,鼓励他们展开协作,从而持续推动关键 AI 技术的持续改进和新功能开发。这种适应性使企业组织能够根据自身需求定制 AI 工具,这也是需要专业功能的项目的理想选择。
规划开发策略
要让基于 AI 的应用取得切实成效,需采用结构化的开发流程。流程中的每一步都需要审慎考量,以确保应用既能实现预期目标,又能负责任且高效地运行。从设定明确的目标,到选择合适的模型,再到确保合乎道德规范,这些步骤可帮助您创建出强大、可靠的基于 AI 的解决方案。
- 明确 AI 目标。首先,清晰界定您的基于 AI 的应用所要解决的问题。确定该应用需要执行的具体任务。这些任务可能涉及生成、分类、对话、总结或代码相关功能。
- 评估可用数据。全面评估您的数据,因为数据的质量和范围会决定模型的成败。 生成式 AI 模型通常需要大规模的训练数据集,而预测性 AI 模型使用较小规模的带标签数据集也能取得良好效果。确保数据具有相关性、多样性和代表性,能够涵盖您的应用将遇到的各种场景。同时,需解决数据中存在的缺失或偏差问题,以避免出现偏颇或不准确的结果。
- 分析 AI 任务。根据应用需求选择合适的 AI 方法。生成式 AI 模型擅长处理细腻的语言理解、创意内容生成、数据增强以及实时交互等任务,非常适合内容创作、对话式 AI 和文本摘要等场景。对于具有明确输出的结构化任务(包括图像分割和欺诈检测),卷积神经网络(CNN)和决策树等预测性 AI 模型可缩短实时应用的推理时间。在某些情况下,结合使用这两种方法可能会更为有效。例如,客户支持聊天机器人可以使用预测性 AI 模型进行意图分类,同时使用生成式 AI 模型进行自然语言处理。
- 选择合适的模型。借助第三方应用编程接口(API)或托管服务提供的即用型 AI 模型,您可以高效地为应用添加高级 AI 功能。这些模型可帮助您集成自然语言处理、图像识别和预测性分析等复杂功能,您自身则无需具备广泛的 AI 或机器学习专业知识。第三方 API 和托管服务还简化了模型训练和维护流程,从而帮助您提供可提高用户参与度和应用性能的 AI 功能。
- 确保符合道德规范。基于 AI 的应用常常会处理敏感数据,并且可能会对决策产生重大影响。因此,务必审慎考量应用的行为和预测所涉及的道德影响;还应优先保障透明度、公平性和问责制,以避免意外后果,同时赢得用户的信任。
本电子书的适用读者
本电子书面向初级和中级开发人员及数据科学家,旨在助力他们在项目中应用开源 AI 工具、平台和策略。本书重点阐述实际开发环节,将指导您完成模型选择、集成、优化和部署,助力打造基于 AI 的创新应用。
打造基于 AI 的创新应用
AI 涵盖了一系列服务于不同目的的技术。其中,预测性 AI 和生成式 AI 是创建智能应用的关键技术,各自具备不同的功能。预测性 AI 侧重于分析现有数据,以预测未来结果或趋势。它根据历史数据来预测事件、行为或条件,帮助用户基于可能的情景做出明智决策。生成式 AI 则基于从现有信息中学习的规律,生成新的内容或数据。它可以生成与训练数据相似的文本、图片或其他媒体,为内容创作与个性化服务提供创新解决方案。简而言之,预测性 AI 助力洞察未来可能,而生成式 AI 则基于习得规律生成新颖输出。
预测性 AI
构建基于 AI 的应用往往始于为任务选择合适的模型。就预测性 AI 而言,这意味着需要选择契合您需求的预训练模型或架构。常见的模型包括用于图像分类的 ResNet、用于目标检测的 YOLO(You Only Look Once),以及用于异常检测的孤立森林(Isolation Forest)。在选择模型时,务必综合考量模型的规模、复杂性与推理速度(经过训练的模型基于新输入数据进行预测的速度)。如果您的企业组织已具备成熟的 AI 实践,则还可以选择利用企业自有数据构建专属的预测性 AI 模型。此外,借助 OpenCV、scikit-learn、TensorFlow 和 PyTorch 等开源库和深度学习框架,您可以高效地将内部和外部模型与基于 AI 的应用集成。
数据准备和模型评估是接下来的关键步骤。通过全面分析数据,可以更好地了解其特征并解决任何潜在问题。尝试不同的模型架构或预训练权重,有助于在性能和推理速度之间找到最佳平衡点。而基于独立的测试数据集进行严格验证,则可确保模型具备良好的泛化能力。
选定并验证模型后,开发流程便进入优化与部署阶段。您可能需要使用规模调整和规范化等技术对数据进行预处理。在使用预训练模型时,基于特定数据集进行微调至关重要。而在某些情况下,后处理技术能够改进模型输出。通过监控生产环境中的模型性能(包括推理响应时间和资源使用情况),您可以高效地重新训练和优化模型,以保持其有效性。对模型进行数据偏移监控,有助于确保在推理过程中遇到的数据与用于训练或调优模型的数据之间没有显著差异。
由于预测性 AI 模型的推理速度通常比生成式 AI 模型更快,往往更适用于实时应用。将预测性 AI 与生成式 AI 相结合,可以构建更全面的解决方案。不过,这些解决方案也可能会导致模型运行耗时延长、复杂度上升。
生成式 AI
开发基于生成式 AI 的应用的第一步,是选择合适的大语言模型(LLM)。目前有多种开源模型可供选择,包括 Bidirectional Encoder Representations from Transformers(BERT)、Text-to-Text Transfer Transformer(T5)和 Granite 模型,每种模型针对不同任务都有其独特优势。选择与应用目标相契合的 LLM 至关重要。例如,Granite-7B-Starter 可以进行微调,以总结保险相关的文本,重点提取风险因素、承保范围与责任条款;而 BERT 则在情感分析方面表现出色。
评估模型性能至关重要,因为对于与您的应用相关的任务,LLM 在准确性、流畅性和整体效率方面存在差异。此外,GPT-3 及部分 Granite 衍生版本这类高性能模型可能需要大量计算资源,包括成本高昂的图形处理单元(GPU)资源,因此必须在资源需求、现有基础架构与预算之间做好平衡。同时,若能获得充足的高质量数据进行微调,可确保 LLM 达到满足应用需求的最优性能。
Langchain 等框架简化了将 LLM 集成到应用中的过程,让您能够专注于核心应用逻辑。这些框架提供了用于提示工程和模型链式调用的工具,同时通过记忆或上下文增强了基于 LLM 的组件。
选择最佳的 LLM 和框架后,即可在应用中添加生成式功能。这一过程包括优化模型的性能,并设计精确有效的提示来引导 AI 交付预期结果。建立强大的反馈循环对于实现持续改进至关重要,可确保模型随着时间的推移不断调整并增强其输出。
提示用于引导 LLM 生成预期输出。通过设计清晰简洁的提示、使用结构化指令模板以及采用链式调用等技术来引导 LLM 处理复杂任务,可显著提升模型效果。这些策略可确保 AI 模型即使在多步骤交互中,也能生成一致且相关的响应。
基于人类反馈的强化学习(RLHF)循环对于微调 LLM 至关重要。部署模型后,收集用户交互,并利用这些反馈来优化 LLM 性能。这一迭代过程有助于模型从错误中学习并持续改进,从而在适应实际用例的过程中,不断提升输出结果的准确性与相关性。
微调可进一步自定义预训练的 LLM,使其适配特定领域或任务。通过基于规模较小、任务特定的数据集训练模型,您可以提升其性能,并自定义输出以满足应用要求。借助 Hugging Face Transformers 等工具,您可以充分利用预训练模型的知识,同时根据自身需求对其进行优化。InstructLab 的模型对齐方法则可以帮助您使模型的输出与企业组织价值观或用户需求保持一致,确保响应内容准确且符合上下文。
检索增强生成(RAG)将 LLM 与信息检索系统相结合,使模型在生成内容时能够访问和整合外部来源的相关数据。这种方法可提高输出的事实准确性和连贯性,常用于借助内部和企业数据来增强 LLM 结果。Langchain 的内置 RAG 功能可简化这一过程,尤其在搭配 Granite 模型使用时,能够生成准确且贴合上下文的响应。
代理是指在特定环境中自主运行以实现特定目标的系统。这些系统通过整合交互式和自适应行为,可以动态调整其运行上下文,以响应不断变化的条件。这也使它们能够处理复杂的任务并做出实时决策。开发此类代理需要构建多组件系统,以根据 AI 模型的输出来规划、执行和评估行动。通过编排复杂的任务,包括实时决策制定以及外部 API 和数据源集成,可以增强系统的运维能力。
模型链式调用可将多个 AI 模型或流程连接成一个连贯的工作流,其中每个模型都基于前一个模型的输出进行构建。该方法有助于开发能够通过多步骤交互来处理复杂任务的应用。通过协调有序地运用不同模型的功能,您可以构建出符合自身需求的高效系统。
您还需要对集成 AI 的应用工作流进行全面评估,以确保为用户提供友好且高效的使用体验。对整个系统进行严格的测试有助于识别并解决任何问题或低效环节,进而优化应用功能与可用性。这一迭代过程不仅可以提高性能,还可以使应用更贴合用户的需求与预期。
如何评估和比较 LLM
- 生成提示。创建多样化的提示来评估模型的创造力和生成能力。优化提示,以针对各种场景引出最佳回答和输出。
- 使用数据进行实验。使用您应用特有的专有数据测试模型。调整提示和设置,以优化模型执行特定任务的性能。
- 进行性能基准测试。 根据实验结果,评估和比较模型性能。
示例 1:客户支持聊天机器人
- 问题:服务型企业组织需要全天候快速且高效地处理客户的疑问和问题。
- 数据:聊天记录、产品文档和知识库文章
- 模型:采用针对对话场景与意图分类优化的 Granite-7B-Starter 模型,并通过 RAG 增强知识检索能力
- 道德考量:保障数据隐私、减少偏见,并确保对用户的透明度
- 部署与迭代:部署聊天机器人,监控交互情况,收集反馈意见,重新训练模型,并定期更新知识库。
利用第三方 API 构建聊天机器人
- 模型服务:通过 Quarkus REST 客户端调用 OpenAI ChatGPT API
- 其他考量:意图分类与知识库集成
示例 2:保险承保风险评估
- 问题:企业组织需要通过自动总结复杂的保险文件来简化承保流程。
- 数据:一套完整的保险文件,包括保单、理赔单和医疗报告
- 模型:针对保险领域的文本总结进行微调的 Granite-7B-Starter 模型,能够重点提取风险因素、承保范围及责任条款
- 道德考量:以准确性为首要原则,同时确保遵守法律法规,并严格维护数据隐私
- 部署与迭代:将模型集成到承保工作流中,收集反馈意见,并优化模型以提升风险评估能力。
使用第三方 API 评估保险风险
- 模型服务:通过 Quarkus REST 客户端调用 Google Gemini API
- 其他考量:模型微调与数据预处理
了解提示工程、微调、RAG 和代理等技术,对于开发基于 AI 的创新应用至关重要。每种方法都提供了不同的工具和策略,用于应对复杂的挑战,并改进基于 AI 的应用的交互功能。成功运用这些技术将有助于打造更智能、响应更迅速且更高效的 AI 系统,从而达成关键的业务目标。
红帽® OpenShift® AI 基于红帽 OpenShift 而构建,是一个支持构建、训练、微调、部署和监控模型及应用的全面平台,同时能够满足现代 AI 解决方案在工作负载和性能方面的需求。它包含可提升 AI 开发效率的工具与环境:
- Jupyter Notebook 和 PyTorch 可简化实验与协作开发流程,从而助力从原型到生产的平滑过渡。
- 红帽 OpenShift Pipelines 可自动执行持续集成/持续部署(CI/CD)工作流,确保顺畅且高效地交付模型。
- 增强型监控与可观测性工具可实时跟踪模型性能和运行状况,并监控数据偏移和偏差,从而支持主动调整与维护。
红帽 OpenShift AI 还可简化基于 AI 的应用在混合云环境中的开发与部署。其增强的模型服务功能,包括对 KServe、vLLM 和文本生成推理服务器(TGIS)等模型服务器和运行时的支持,可帮助您轻松、灵活地部署 AI 模型。红帽 OpenShift AI 将模型服务功能拓展到边缘位置,让您能够在资源受限的环境中交付基于 AI 的解决方案。此外,凭借对硬件加速器的自助服务访问权限,您可以快速迭代并优化应用。
红帽企业 Linux® AI 是一个基础模型平台,可无缝开发、测试和运行 Granite 系列 LLM,从而为企业应用提供有力支撑。该平台还支持跨混合云环境的可移植性,让您可通过红帽 OpenShift AI 扩展 AI 工作流。
此外,Podman Desktop AI Lab 扩展为在本地开发和测试基于 AI 的应用提供了简化的配置方案,让您能够准确、高效地模拟生产环境。
准备就绪,高效开发
利用红帽 OpenShift AI,即刻开始构建依托 AI 的应用。
红帽 OpenShift AI 能够简化复杂的工作流,缩短开发周期,并拓展部署选项。随着构建和部署 AI 模型所需的时间和工作量不断减少,您可以专注于创新,在更短的时间内打造出引人注目的解决方案。
免费开始使用红帽 OpenShift AI
在免费的开发人员沙盒中,即刻体验红帽 OpenShift AI。
了解如何使用红帽 OpenShift AI
获取各种 AI 用例的交互式学习路径。