当前位置:   article > 正文

动手学大模型应用开发_学习笔记(三)——大模型开发流程及架构

大模型应用开发

大模型开发

概念

        以大语言模型为功能核心(指令理解 与 文本生成)、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用。

        在这个过程中,一般不会大幅度改动模型,而是将大模型作为一个调用工具,通过 Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力,适配应用任务。

整体思路

        用 Prompt Engineering 来替代子模型的训练调优,通过 Prompt 链路组合来实现业务逻辑,用一个通用大模型 + 若干业务 Prompt 来解决任务。

评估思路

        直接从实际业务需求出发构造小批量验证集,设计合理 Prompt 来满足验证集效果。然后,不断从业务逻辑中收集当下 Prompt 的 Bad Case,并将 Bad Case 加入到验证集中,针对性优化 Prompt,最后实现较好的泛化效果。

 

一般流程

  1. 确定目标: 确定要开发的应用的应用场景、目标人群、核心价值。对于个体开发者或小型开发团队而言,一般应先设定最小化目标,从构建一个 mvp(最小可行性产品)开始,逐步进行完善和优化。
  2. 设计功能:确定应用的核心功能,然后延展设计核心功能的上下游功能。
  3. 搭建整体架构:基于 LangChain 框架开发特定数据库+ Prompt + 通用大模型的架构,实现从用户输入到数据库再到大模型最后输出的整体架构连接。
  4. 搭建数据库:收集数据并进行预处理,再向量化存储到数据库中。数据预处理一般包括从多种格式向纯文本的转化。完成预处理后,需要进行切片、向量化构建出个性化数据库。
  5. Prompt Engineering:明确 Prompt 设计的一般原则及技巧,构建出一个来源于实际业务的小型验证集,基于小型验证集设计满足基本要求、具备基本能力的 Prompt。
  6. 验证迭代:通过不断发现 Bad Case 并针对性改进 Prompt Engineering 来提升系统效果、应对边界情况。
  7. 前后端搭建:设计产品页面,让我们的应用能够上线成为产品。快速开发 Demo 的框架:Gradio 和 Streamlit。
  8. 体验优化:进行长期的用户体验跟踪,记录 Bad Case 与用户负反馈,再针对性进行优化。

项目流程

  1. 项目规划与需求分析:确定项目目标、核心功能、技术架构和工具(LangChain框架、Chroma知识库、GPT、科大讯飞的星火大模型、文心一言、GLM、Gradio、Streamlit

  2. 数据准备与向量知识库构建:收集和整理数据,向量化数据,导入知识库,建立知识库索引

  3. 大模型集成与API连接:集成大模型,配置 API 连接,实现与大模型 API 的交互

  4. 核心功能实现:构建 Prompt Engineering,实现大模型回答功能,根据用户提问和知识库内容生成回答

  5. 核心功能迭代优化:进行验证评估,收集 Bad Case,根据 Bad Case 迭代优化核心功能实现

  6. 前端与用户交互界面开发:使用 Gradio 和 Streamlit 搭建前端界面

  7. 部署测试与上线:部署问答助手到服务器或云平台,确保可在互联网上访问;进行生产环境测试,确保系统稳定,上线并向用户发布

  8. 维护与持续改进:监测系统性能和用户反馈,及时处理问题;收集用户需求,进行系统改进和功能扩展

项目架构


LLM 层:基于四种流行 LLM API 进行了 LLM 调用封装,支持用户以统一的入口、方式来访问不同的模型,支持随时进行模型的切换;


数据层:包括个人知识库的源数据以及 Embedding API,源数据经过 Embedding 处理可以被向量数据库使用;


数据库层:为基于个人知识库源数据搭建的向量数据库;


应用层:为核心功能的最顶层封装,基于 LangChain 提供的检索问答链基类进行了进一步封装,从而支持不同模型切换以及便捷实现基于数据库的检索问答;


服务层:实现了 Gradio 搭建 Demo 与 FastAPI 组建 API 两种方式来支持本项目的服务访问。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/862727
推荐阅读
相关标签
  

闽ICP备14008679号