当前位置: 首页 > news >正文

青岛网站制作公司哪家正规企业门户网站建设流程

青岛网站制作公司哪家正规,企业门户网站建设流程,北京官方网站网,深圳哪个区最繁华大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析 一、大模型开发整体流程1. 何为大模型开发定义核心点核心能力 2. 大模型开发的整体流程1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析步骤一#xff1a;项目规划与… 大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析 一、大模型开发整体流程1. 何为大模型开发定义核心点核心能力 2. 大模型开发的整体流程1. 设计2. 架构搭建3. Prompt Engineering4. 验证迭代5. 前后端搭建 二、项目流程简析步骤一项目规划与需求分析1.项目目标2.核心功能3.确定技术架构和工具 步骤二数据准备与向量知识库构建1. 收集和整理用户提供的文档。2. 将文档词向量化3. 将向量化后的文档导入Chroma知识库建立知识库索引。 步骤三大模型集成与API连接步骤四核心功能实现步骤五核心功能迭代优化步骤六前端与用户交互界面开发步骤七部署测试与上线步骤八维护与持续改进 三、项目架构简析1. 整体架构2. 代码结构3. 项目逻辑4. 各层简析4.1 LLM 层4.2 数据层4.3 数据库层4.4 应用层4.5 服务层 项目仓库地址 项目学习地址 一、大模型开发整体流程 1. 何为大模型开发 定义 将开发以LLM为功能核心通过LLM的强大理解能力和生成能力结合特殊的数据或业务逻辑来提供独特功能的应用。 核心点 通过调用 API 或开源模型来实现核心的理解与生成通过 Prompt Enginnering 来实现大语言模型的控制 在大模型开发中我们一般不会去大幅度改动模型而是将大模型作为一个调用工具。通过 Prompt Engineering、数据工程、业务逻辑分解等手段来充分发挥大模型能力适配应用任务而不会将精力聚焦在优化模型本身上。这因此作为大模型开发的初学者我们并不需要深研大模型内部原理而更需要掌握使用大模型的实践技巧。 核心能力 指令理解与文本生成提供了复杂业务逻辑的简单平替方案。 传统 AI大模型开发开发将复杂业务逻辑拆解对于每一个子业务构造训练数据与验证数据训练优化模型形成完整的模型链路来解决整个业务逻辑。用 Prompt Engineering 来替代子模型的训练调优。通过 Prompt 链路组合来实现业务逻辑用一个通用大模型 若干业务 Prompt 来解决任务评估思路训练集上训练、测试集调优、验证集验证初始化验证集Prompt、收集BadCase、迭代优化Prompt 2. 大模型开发的整体流程 1. 设计 确定目标在进行开发前我们首先需要确定开发的目标即要开发的应用的应用场景、目标人群、核心价值。对于个体开发者或小型开发团队而言一般应先设定最小化目标从构建一个 mvp最小可行性产品开始逐步进行完善和优化。 设计功能在确定开发目标后需要设计本应用所要提供的功能以及每一个功能的大体实现逻辑。虽然我们通过使用大模型来简化了业务逻辑的拆解但是越清晰、深入的业务逻辑理解往往也能带来更好的 Prompt 效果。同样对于个体开发者或小型开发团队来说首先要确定应用的核心功能然后延展设计核心功能的上下游功能例如我们想打造一款个人知识库助手那么核心功能就是结合个人知识库内容进行问题的回答那么其上游功能的用户上传知识库、下游功能的用户手动纠正模型回答就是我们也必须要设计实现的子功能。 2. 架构搭建 搭建整体架构目前绝大部分大模型应用都是采用的特定数据库 Prompt 通用大模型的架构。我们需要针对我们所设计的功能搭建项目的整体架构实现从用户输入到应用输出的全流程贯通。一般来说我们推荐基于 LangChain 框架进行开发。LangChain 提供了 Chain、Tool 等架构的实现我们可以基于 LangChain 进行个性化定制实现从用户输入到数据库再到大模型最后输出的整体架构连接。 搭建数据库个性化大模型应用需要有个性化数据库进行支撑。由于大模型应用需要进行向量语义检索一般使用诸如 chroma 的向量数据库。在该步骤中我们需要收集数据并进行预处理再向量化存储到数据库中。数据预处理一般包括从多种格式向纯文本的转化例如 pdf、markdown、html、音视频等以及对错误数据、异常数据、脏数据进行清洗。完成预处理后需要进行切片、向量化构建出个性化数据库。 3. Prompt Engineering Prompt Engineering优质的 Prompt 对大模型能力具有极大影响我们需要逐步迭代构建优质的 Prompt Engineering 来提升应用性能。在该步中我们首先应该明确 Prompt 设计的一般原则及技巧构建出一个来源于实际业务的小型验证集基于小型验证集设计满足基本要求、具备基本能力的 Prompt。 4. 验证迭代 验证迭代验证迭代在大模型开发中是极其重要的一步一般指通过不断发现 Bad Case 并针对性改进 Prompt Engineering 来提升系统效果、应对边界情况。在完成上一步的初始化 Prompt 设计后我们应该进行实际业务测试探讨边界情况找到 Bad Case并针对性分析 Prompt 存在的问题从而不断迭代优化直到达到一个较为稳定、可以基本实现目标的 Prompt 版本。 体验优化在完成前后端搭建之后应用就可以上线体验了。接下来就需要进行长期的用户体验跟踪记录 Bad Case 与用户负反馈再针对性进行优化即可。 5. 前后端搭建 前后端搭建完成 Prompt Engineering 及其迭代优化之后我们就完成了应用的核心功能可以充分发挥大语言模型的强大能力。接下来我们需要搭建前后端设计产品页面让我们的应用能够上线成为产品。前后端开发是非常经典且成熟的领域此处就不再赘述我们将主要介绍两种快速开发 Demo 的框架Gradio 和 Streamlit可以帮助个体开发者迅速搭建可视化页面实现 Demo 上线。 二、项目流程简析 以下我们将结合本实践项目与上文的整体流程介绍简要分析本项目开发流程如下 步骤一项目规划与需求分析 1.项目目标 基于个人知识库的问答助手 2.核心功能 上传文档、创建知识库选择知识库检索用户提问的知识片段提供知识片段与提问获取大模型回答流式回复历史对话记录 3.确定技术架构和工具 LangChain框架Chroma知识库大模型使用 GPT、Claude、科大讯飞的星火大模型、文心一言、Chat-GLM2等前后端使用 Gradio 和 Streamlit。 步骤二数据准备与向量知识库构建 本项目实现原理如下图所示图片来源过程包括 加载本地文档读取文本文本分割文本向量化Query 向量化向量匹配最相似的 top k个匹配出的文本作为上下文和问题一起添加到 prompt中提交给 LLM做生成回答 1. 收集和整理用户提供的文档。 用户常用文档格式有 pdf、txt、doc 等首先使用工具读取文本通常使用 langchain 的文档加载器模块可以方便的将用户提供的文档加载进来也可以使用一些 python 比较成熟的包进行读取。 由于目前大模型使用 token 限制我们需要对读取的文本进行切分将较长的文本切分为较小的文本这时一段文本就是一个单位的知识。 2. 将文档词向量化 使用文本嵌入Embeddings对分割后的文档进行向量化使语义相似的文本片段具有接近的向量表示。然后存入向量数据库这个流程正是创建索引index的过程。 向量数据库对各文档片段进行索引支持快速检索。这样当用户提出问题时可以先将问题转换为向量在数据库中快速找到语义最相关的文档片段。然后将这些文档片段与问题一起传递给语言模型生成回答。 3. 将向量化后的文档导入Chroma知识库建立知识库索引。 Langchain集成了超过30个不同的向量存储库。我们选择 Chroma 向量库是因为它轻量级且数据存储在内存中这使得它非常容易启动和开始使用。 将用户知识库内容经过 embedding 存入向量知识库然后用户每一次提问也会经过 embedding利用向量相关性算法例如余弦算法找到最匹配的几个知识库片段将这些知识库片段作为上下文与用户问题一起作为 prompt 提交给 LLM 回答。 步骤三大模型集成与API连接 集成GPT、Claude、星火、文心、GLM等大模型配置API连接。编写代码实现与大模型API的交互以便获取问题答案。 步骤四核心功能实现 构建 Prompt Engineering实现大模型回答功能根据用户提问和知识库内容生成回答。实现流式回复允许用户进行多轮对话。添加历史对话记录功能保存用户与助手的交互历史。 步骤五核心功能迭代优化 进行验证评估收集 Bad Case。根据 Bad Case 迭代优化核心功能实现。 步骤六前端与用户交互界面开发 使用 Gradio 和 Streamlit 搭建前端界面。实现用户上传文档、创建知识库的功能。设计用户界面包括问题输入、知识库选择、历史记录展示等。 步骤七部署测试与上线 部署问答助手到服务器或云平台确保可在互联网上访问。进行生产环境测试确保系统稳定。上线并向用户发布。 步骤八维护与持续改进 监测系统性能和用户反馈及时处理问题。定期更新知识库添加新的文档和信息。收集用户需求进行系统改进和功能扩展。 整个流程将确保项目从规划、开发、测试到上线和维护都能够顺利进行为用户提供高质量的基于个人知识库的问答助手。 三、项目架构简析 1. 整体架构 经过上文分析本项目为搭建一个基于大模型的个人知识库助手基于 LangChain 框架搭建核心技术包括 LLM API 调用、向量数据库、检索问答链等。项目整体架构如下 如上本项目从底向上依次分为 LLM 层、数据层、数据库层、应用层与服务层。 LLM 层主要基于四种流行 LLM API 进行了 LLM 调用封装支持用户以统一的入口、方式来访问不同的模型支持随时进行模型的切换数据层主要包括个人知识库的源数据以及 Embedding API源数据经过 Embedding 处理可以被向量数据库使用数据库层主要为基于个人知识库源数据搭建的向量数据库在本项目中我们选择了 Chroma应用层为核心功能的最顶层封装我们基于 LangChain 提供的检索问答链基类进行了进一步封装从而支持不同模型切换以及便捷实现基于数据库的检索问答服务层分别实现了 Gradio 搭建 Demo 与 FastAPI 组建 API 两种方式来支持本项目的服务访问。 2. 代码结构 本项目的完整代码存放于 project 目录下实现了项目的全部功能及封装代码结构如下 ​ -project ​ -readme.md 项目说明 ​ -llm LLM调用封装 ​ -self_llm.py 自定义 LLM 基类 ​ -wenxin_llm.py 自定义百度文心 LLM ​ -spark_llm.py 自定义讯飞星火 LLM ​ -zhipu_llm.py 自定义智谱 LLM ​ -call_llm.py 将各个 LLM 的原生接口封装在一起 ​ -embedding embedding调用封装 ​ -zhipu_embedding.py 自定义智谱embedding ​ -data 源数据路径 ​ -database 数据库层封装 ​ -create_db.py 处理源数据及初始化数据库封装 ​ -chain 应用层封装 ​ -qa_chain.py 封装检索问答链返回一个检索问答链对象 ​ -chat_qa_chian.py封装对话检索链返回一个对话检索链对象 ​ -prompt_template.py 存放多个版本的 Template ​ -serve 服务层封装 ​ -run_gradio.py 启动 Gradio 界面 ​ -api.py 封装 FastAPI ​ -run_api.sh 启动 API 3. 项目逻辑 用户可以通过run_gradio或者run_api启动整个服务服务层调用qa_chain.py或chat_qa_chain实例化对话检索链对象实现全部核心功能服务层和应用层都可以调用、切换prompt_template.py中的 prompt 模板来实现 prompt 的迭代也可以直接调用call_llm中的get_completion函数来实现不使用数据库的 LLM应用层调用已存在的数据库和 llm 中的自定义 LLM 来构建检索链如果数据库不存在应用层调用create_db.py创建数据库该脚本可以使用 openai embedding 也可以使用embedding.py中的自定义 embedding。 4. 各层简析 4.1 LLM 层 LLM 层主要功能为将国内外四种知名 LLM APIOpenAI-ChatGPT、百度文心、讯飞星火、智谱GLM进行封装隐藏不同 API 的调用差异实现在同一个对象或函数中通过不同的 model 参数来使用不同来源的 LLM。 在 LLM 层我们首先构建了一个 Self_LLM 基类基类定义了所有 API 的一些共同参数如 API_Keytemperature 等然后我们在该基类基础上继承实现了上述四种 LLM API 的自定义 LLM。同时我们也将四种 LLM 的原生 API 封装在了统一的 get_completion 函数中。 在上一章我们已详细介绍了每一种 LLM 的调用方式、封装方式项目代码中的 LLM 层封装就是上一章讲解的代码实践。 4.2 数据层 数据层主要包括个人知识库的源数据包括 pdf、txt、md 等和 Embedding 对象。源数据需要经过 Embedding 处理才能进入向量数据库我们在数据层自定义了智谱提供的 Embedding API 的封装支持上层以统一方式调用智谱 Embedding 或 OpenAI Embedding。 在上一章我们也已详细介绍了 Embdding API 的调用及封装方式。 4.3 数据库层 数据库层主要存放了向量数据库文件。同时我们在该层实现了源数据处理、创建向量数据库的方法。 我们将在第四章详细介绍向量数据库、源数据处理方法以及构建向量数据库的具体实现。 4.4 应用层 应用层封装了整个项目的全部核心功能。我们基于 LangChain 提供的检索问答链在 LLM 层、数据库层的基础上实现了本项目检索问答链的封装。自定义的检索问答链除具备基本的检索问答功能外也支持通过 model 参数来灵活切换使用的 LLM。我们实现了两个检索问答链分别是有历史记录的 Chat_QA_Chain 和没有历史记录的 QA_Chain。 我们将在第五章讲解 Prompt 的构造与检索问答链的构建细节。 4.5 服务层 服务层主要是基于应用层的核心功能封装实现了 Demo 的搭建或 API 的封装。在本项目中我们分别实现了通过 Gradio 搭建前端界面与 FastAPI 进行封装支持多样化的项目调用。 我们将在第六章详细介绍如何使用 Gradio 以及 FastAPI 来实现服务层的设计。
http://www.zqtcl.cn/news/886500/

相关文章:

  • 网站建设课程小结二建证考试需要什么条件
  • 比较好的商城网站设计品牌策划案
  • 自适应科技公司网站模板做网站的公司深
  • 网站怎么吸引流量用淘宝做公司网站
  • asp做的网站后台怎么进去老河口城乡建设局网站
  • 中铁建设集团有限公司官方网站wordpress质感
  • 那个网站点击率高pc网站自动生成app
  • 东莞营销型网站建站淘金企业网站建设
  • 怎么用模板做网站手机python编程软件
  • 做视频网站都需要什么软件下载广东网站建设哪家专业
  • 开淘宝的店铺网站怎么做网页设计需要学什么书
  • 如何做收费网站微信小程序开发教程详解
  • 软件下载网站如何履行安全管理义务网站合同书
  • 普宁17网站一起做淘宝网站建设 丽水
  • 网站注册需要多少钱wordpress缓存失败
  • 西安h5响应式网站施工企业安全生产管理规范最新版
  • 电商平台网站建设如何安装网站模版
  • wordpress攻击跳转seo营销软件
  • 广东中山市做网站python做的网站如何部署
  • VPS做镜像网站wordpress 安装七牛
  • 雄安做网站优化的公司小程序开发公司哪里强
  • 做的网站没有注册国家建设部网站倪虹
  • 中英文网站怎么实现做网站有名的公司
  • 先网站开发后软件开发显示网站运行时间代码
  • 品牌网站制作流程图百度网页版入口页
  • 哪些人需要做网站网站开发工程师 招聘
  • 东莞网站建设多长时间如何将网址提交到一些权重比较高的网站
  • 阳江网站seo公司wordpress建站博客
  • 我想做京东网站淘宝怎么做的wordpress淘宝联盟转链
  • 虚拟钱包对接网站开发视频教程营销型网站建设要懂代码吗