​LLM大模型从入门到精通(7)--企业大模型开发流程​

一、大模型项目开发的两种方式

        2023年以来,随着ChatGPT的火爆,使得LLM成为研究和应用的热点,但是市面上大部分LLM都存在一个共同的问题:模型都是基于过去的经验数据进行训练完成,无法获取最新的知识,以及各企业私有的知识。因此很多企业为了处理私有的知识,主要借助一下两种手段来实现:

1 利用企业私有知识, 基于开源大模型进行微调

2 基于LangChain集成向量数据库以及LLM搭建本地知识库的问答(RAG)

二、大模型开发整理流程

2.1、什么是大模型开发

        我们将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。

        开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用 API 或开源模型来实现核心的理解与生成,通过 Prompt Enginnering 来实现大语言模型的控制,因此,虽然大模型是深度学习领域的集大成之作,大模型开发却更多是一个工程问题。

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

在这里插入图片描述

大模型开发与传统的AI 开发在整体思路上有着较大的不同。

  • 传统AI 开发:首先需要将复杂的业务逻辑依次拆解,对于每个子业务构造训练数据与验证数据,对于每个子业务训练优化模型,最后形成完整的模型链路来解决整个业务逻辑。
  • 大模型开发:用 Prompt Engineering 来替代子模型的训练调优,通过 Prompt 链路组合来实现业务逻辑,用一个通用大模型 + 若干业务 Prompt 来解决任务,从而将传统的模型训练调优转变成了更简单、轻松、低成本的 Prompt 设计调优。

大模型开发与传统 AI 开发在评估思路上也有了质的差异。

  • 传统 AI 开发:构造训练集、测试集、验证集,通过在训练集上训练模型、在测试集上调优模型、在验证集上最终验证模型效果来实现性能的评估。
  • 大模型开发:更敏捷、灵活,不会在初期显式地确定训练集、验证集,而是直接从实际业务需求出发构造小批量验证集,设计合理 Prompt 来满足验证集效果。然后,不断从业务逻辑中收集当下 Prompt 的 Bad Case,并将 Bad Case 加入到验证集中,针对性优化 Prompt,最后实现较好的泛化效果。

在这里插入图片描述

在这里插入图片描述

2.2、大模型开发整体流程

在这里插入图片描述

2.2.1、设计

        包括确定目标,设计功能。
        确定目标:在进行开发前,需要确定开发的目标,即要开发的应用的应用场景、目标人群、核心价值。一般应先设定最小化目标,从构建一个 mvp(最小可行性产品)开始,逐步进行完善和优化。

        设计功能:确定开发目标后,设计本应用所要提供的功能,首先确定应用的核心功能,然后延展设计核心功能的上下游功能;例如,想打造一款个人知识库助手,核心功能就是结合个人知识库内容进行问题的回答,上游功能——用户上传知识库、下游功能——用户手动纠正模型回答,就是子功能。

2.2.2、架构搭建

        搭建整体架构:搭建项目的整体架构,实现从用户输入到应用输出的全流程贯通。包括搭建整体架构和搭建数据库。

        目前,绝大部分大模型应用都是采用的特定数据库+ Prompt + 通用大模型的架构。

        推荐基于 LangChain 框架进行开发。LangChain 提供了 Chain、Tool 等架构的实现,可以基于 LangChain 进行个性化定制,实现从用户输入到数据库再到大模型最后输出的整体架构连接。

        搭建数据库: 大模型应用需要进行向量语义检索,一般使用诸如 chroma 的向量数据库。搭建数据库需要收集数据并进行预处理,再向量化存储到数据库中。数据预处理一般包括从多种格式向纯文本的转化,例如 pdf、markdown、html、音视频等,以及对错误数据、异常数据、脏数据进行清洗。完成预处理后,需要进行切片、向量化构建出个性化数据库。

2.2.3、Prompt Engineering

        明确 Prompt 设计的一般原则及技巧,构建出一个来源于实际业务的小型验证集,基于小型验证集设计满足基本要求、具备基本能力的 Prompt。

        优质的 Prompt 对大模型能力具有极大影响,需要逐步迭代构建优质的 Prompt Engineering 来提升应用性能。

2.2.4、验证迭代

        验证迭代在大模型开发中是极其重要的一步,指通过不断发现 Bad Case 并针对性改进 Prompt Engineering 来提升系统效果、应对边界情况。在完成上一步的初始化 Prompt 设计后,应该进行实际业务测试,探讨边界情况,找到 Bad Case,并针对性分析 Prompt 存在的问题,从而不断迭代优化,直到达到一个较为稳定、可以基本实现目标的 Prompt 版本。

2.2.5、前后端搭建

        完成 Prompt Engineering 及其迭代优化之后,就完成了应用的核心功能,可以充分发挥大语言模型的强大能力。接下来搭建前后端,设计产品页面,让应用上线成为产品。

        两种快速开发 Demo 的框架:Gradio 和 Streamlit,可以帮助个体开发者迅速搭建可视化页面实现 Demo 上线。

        在完成前后端搭建之后,应用就可以上线体验了。接下来就需要进行长期的用户体验跟踪,记录 Bad Case 与用户负反馈,再针对性进行优化即可。

三、项目流程简析

        基于个人知识库的问答助手介绍项目流程。

        项目原理:项目原理如下图所示,过程包括加载本地文档 -> 读取文本 -> 文本分割 -> 文本向量化 -> question向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。

在这里插入图片描述

3.1、项目规划与需求分析

1、项目目标:基于个人知识库的问答助手

2、核心功能:
1、上传文档、创建知识库;
2、选择知识库,检索用户提问的知识片段;
3、提供知识片段与提问,获取大模型回答;
4、流式回复;
5、历史对话记录

3、确定技术架构和工具:

1、LangChain框架
2、Chroma知识库
3、大模型使用 GPT、科大讯飞的星火大模型、文心一言、GLM 等
4、前后端使用 Gradio 和 Streamlit。

3.2、数据准备与向量知识库构建

3.2.1、收集和整理用户提供的文档

用户常用文档格式有 pdf、txt、doc 等,首先使用工具读取文本,通常使用 langchain 的文档加载器模块,也可以使用 python 比较成熟的包进行读取。

由于目前大模型使用 token 的限制,需要对读取的文本进行切分,将较长的文本切分为较小的文本,这时一段文本就是一个单位的知识。

3.2.2、将文档词向量化

使用文本嵌入(Embeddings)对分割后的文档进行向量化,使语义相似的文本片段具有接近的向量表示。然后,存入向量数据库,这个流程正是创建 索引(index) 的过程。

向量数据库对各文档片段进行索引,支持快速检索。这样,当用户提出问题时,可以先将问题转换为向量,在数据库中快速找到语义最相关的文档片段。然后将这些文档片段与问题一起传递给语言模型,生成回答。

3.2.3、将向量化后的文档导入Chroma知识库,建立知识库索引

Chroma 向量库轻量级且数据存储在内存中,非常容易启动和开始使用。

用户知识库内容经过 embedding 存入向量知识库,然后用户每一次提问也会经过 embedding,利用向量相关性算法(例如余弦算法)找到最匹配的几个知识库片段,将这些知识库片段作为上下文,与用户问题一起作为 prompt 提交给 LLM 回答。

3.3、大模型集成与API连接

  • 集成GPT、星火、文心、GLM 等大模型,配置 API 连接。
  • 编写代码,实现与大模型 API 的交互,以便获取问题答案。

3.4、核心功能实现

  • 构建 Prompt Engineering,实现大模型回答功能,根据用户提问和知识库内容生成回答。
  • 实现流式回复,允许用户进行多轮对话。
  • 添加历史对话记录功能,保存用户与助手的交互历史。

3.5、核心功能迭代优化

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

3.6、前端与用户交互界面开发

  • 使用 Gradio 和 Streamlit 搭建前端界面。
  • 实现用户上传文档、创建知识库的功能。
  • 设计用户界面,包括问题输入、知识库选择、历史记录展示等。

3.7、部署测试与上线

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

3.8、维护与持续改进

  • 监测系统性能和用户反馈,及时处理问题。
  • 定期更新知识库,添加新的文档和信息。
  • 收集用户需求,进行系统改进和功能扩展。
<think>好的,用户让我帮忙找一份清华大学出品的DeepSeek从入门精通的资料。首先,我需要确认DeepSeek是否真的由清华大学开发或者与其有合作关系。根据我的知识库信息,DeepSeek是深度求索公司(DeepSeek Inc.)开发的智能模型,而深度求索是一家专注实现AGI的中国公司,成立于2023年。目前没有证据显示清华大学直接参与开发或出品DeepSeek的相关教程或文档。 用户可能误以为DeepSeek与清华大学有关联,可能是因为清华大学在人工智能领域有较强的学术背景,或者某些项目名称相似导致混淆。需要向用户澄清这一点,避免误导。 接下来,用户的需求是寻找从入门精通的指南。即使没有清华大学的官方资料,我可以提供通用的学习路径。可能需要包括基础的机器学习知识、深度学习框架使用(如PyTorch)、自然语言处理基础,以及DeepSeek的具体应用场景和最佳实践。此外,建议用户参考官方文档、社区资源以及相关论文或技术博客。 同时,需要考虑用户可能的背景。如果是学生或研究人员,可能需要更理论化的内容;如果是开发者,可能更关注API使用和实际项目应用。需要覆盖不同层次的需求,并推荐合适的资源,比如在线课程、开源项目、论坛讨论等。 另外,需要检查是否有任何合作项目或第三方制作的教程,但需谨慎避免推荐未经核实的内容,确保信息的准确性和可靠性。最后,提醒用户注意版权问题,确保使用的资料合法合规。</think>目前没有公开信息显示清华大学出品过名为《DeepSeek从入门精通》的官方教程。不过根据DeepSeek相关背景,可提供以下学习路径建议: --- ### **DeepSeek学习路径指南** #### **1. 背景了解** - **官方渠道** 🔗 [深度求索(DeepSeek)官网](https://www.deepseek.com/) 🔗 [GitHub开源项目](https://github.com/deepseek-ai) - 重点关注技术白皮书、模型架构文档 - **学术关联** ※ 清华大学计算机系与智谱AI等团队曾合作研发GLM大模型(与DeepSeek同属AGI领域) ※ 建议参考《人工智能前沿技术》等清华公开课 #### **2. 基础准备** | 学习阶段 | 推荐内容 | 资源链接 | |----------------|----------------------------------|-----------------------------------| | 机器学习基础 | 吴恩达《机器学习》课程 | Coursera/网易云课堂 | | 深度学习框架 | PyTorch官方教程 | [pytorch.org](https://pytorch.org)| | 大模型原理 | 《预训练语言模型》专著 | 电子工业出版社 | #### **3. DeepSeek专项学习** - **官方资源** ✅ 模型API文档 ✅ 开源代码解读(如DeepSeek-MoE) ✅ 技术博客(关注低参微调、多模态对齐等特性) - **实践项目** ```python # 示例:API调用 from deepseek import LLM model = LLM(model_name="deepseek-chat") response = model.generate("解释强化学习") ``` - **社区资源** 🚀 Hugging Face模型库 🚀 知乎/掘金技术专栏 🚀 AI Studio实战案例 #### **4. 进阶研究** - 论文精读:《DeepSeek MoE: Towards Ultimate Expert Specialization in Mixture-of-Experts》 - 清华大学交叉信息研究院相关讲座 - 国际顶会论文(NeurIPS/ICLR等) --- #### **⚠️ 重要提示** 1. 警惕非官方渠道的"内部资料" 2. 学术引用需核对论文来源 3. 企业合作项目需通过正规渠道申请 建议通过**深度求索官方技术社区**获取最新学习资源。如需清华相关AI课程资源,可访问: 🔗 [清华大学开放课程平台](https://www.xuetangx.com/) 🔗 清华计算机系《人工智能导论》公开课
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥兜兜有糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值