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

【LLM相关知识点】关于LLM项目实施流程的简单整理(一)

【LLM相关知识点】关于LLM项目实施流程的简单整理(一)

文章目录

  • 【LLM相关知识点】关于LLM项目实施流程的简单整理(一)
    • 零、学习计划梳理:结合ChatGPT从零开始学习LLM & 多模态大模型
    • 一、大模型相关应用场景和头部企业
    • 二、近几年大模型的演化路线和关键技术
      • 1、大模型演化路线
      • 2、大模型关键技术
        • 1)Transformer
        • 2)Sparse Transformer
        • 3)MoE(专家混合)& Switch Transformer
        • 4)Diffusion Model(扩散模型)
        • 5)LoRA(低秩适配)
        • 6)LLaMA
    • 三、LLM大模型项目落地
      • 0、前期知识储备(多多益善,包括机器学习 & 强化学习 & 深度学习 & 推广搜算法)
          • 1)深度学习
          • 2)机器学习
          • 3)推荐系统
          • 4)搜索系统
          • 5)检索增强生成(RAG)
          • 6)强化学习
      • 1、需求分析 - 以医疗领域为例,锚定智能导诊与问诊场景
        • 1)市场调研
        • 2)业务场景
        • 3)医疗数据分类
        • 4)需求痛点 及 场景构建
        • 5)场景锚定 及 数据准备
          • a)场景锚定
          • b)数据准备
      • 2、方案设计
        • 1)系统架构设计
        • 2)数据处理流水线设计
        • 3)技术选型
        • 4)模型流水线设计
      • 3、模型实现/模型评估/模型优化
        • 1)模型训练
          • a)模型参数量和训练时长
          • b)并行计算策略
          • c)预训练任务
        • 2)模型微调
          • a)使用RAG技术
          • b)构建和应用知识图谱
          • c)微调LLM模型
        • 3)模型评估
          • a)准确性与可靠性
          • b)安全性与隐私保护
          • c)性能效率
          • d)基准数据集
      • 4、模型部署
        • 1)模型量化
        • 2)模型部署
          • a)高性能计算环境下的部署
          • b)普通桌面计算机上的部署
          • c)移动设备上的部署
          • d)边缘计算设备上的部署
          • e)云服务中的部署
        • 3)模型推理
          • a)推理加速的技术
          • b)常用的推理框架
      • 5、应用开发
        • 1)开源LLM应用框架
        • 2)开源LLM低代码项目
        • 3)开源RAG工具
    • 四、关于LLM在各行业中的研究

零、学习计划梳理:结合ChatGPT从零开始学习LLM & 多模态大模型

  • 使用工具:FunBlocks AIFlow的思维导图,Deepseek的深度搜索,通义千问的联网搜索,ChatGPT的联网搜索

  • 短期目标:结合公司的战略部署,对自己新岗位所要做的事情有大致初步的了解,争取在近期快速适应新岗位,输出关于LLM领域的技术综述,并快速完成产品的迭代和项目的交付。

  • 周目标 以及 目标分解

    1、GPT辅助检索:

    • 1)快速了解近几年大模型有哪些应用场景,以及在各个场景中做得好的头部企业

    • 2)快速了解近几年大模型的演化路线、以及各个演化版本中所采用的关键技术

    2、人工搜索和知识点核查:

    • 收集关于LLM关键技术的官方学习资料(Github、arxiv、CCCF、综述等),对GPT整理的知识点进行纠正排错

    3、工程实践:

    • 参考教学资料,进行简单工程化实践

关于LLM项目落地的通用全流程如下:

复盘和流程优化
项目落地
需求分析
方案设计
定制化模型/模型评估/模型优化
应用开发
部署并测试
项目验收
整体调研
总结项目成果
收集团队/客户反馈数据
流程诊断:流程是否存在瓶颈/冗余/错误点
流程改进和持续优化
目标: 选应用场景 + 选合适模型
算法集成
项目验收
部署并测试
符合验收标准
联调测试
平台开发
模型微调:预处理->原模型->后处理
定制化模型
模型训练:端到端训练
模型评估
符合评估标准
数据分析/处理/挖掘...
方案设计
技术选型:模型选型/应用开发
设计整个方案的算法流水线,搭建整套定制化的模型
竞品分析
需求分析
数据准备:数据结构/假数据模拟/真实数据
筛选符合公司战略部署的相关应用场景
了解近几年大模型的应用场景,以及在各个场景中做得好的头部企业
筛选开源模型部署实践,检验效果
了解近几年大模型的演化路线,以及各个演化版本所采用的关键技术

一、大模型相关应用场景和头部企业

应用场景典型应用头部企业备注
自然语言处理 (NLP)文本生成、机器翻译、文本摘要、情感分析OpenAI、Google、AnthropicChatGPT、Google Bard 等,广泛应用于智能客服、内容创作等领域。
代码生成自动代码补全、代码生成、错误检测、代码解释OpenAI、GitHub (Microsoft)GitHub Copilot 提升开发效率,已成为开发者常用工具之一。
搜索引擎优化智能问答、精准信息检索、个性化推荐Google、MicrosoftBing 引入大模型驱动的问答模式,Google 集成 Bard 提升搜索体验。
内容生成与创作图像生成、视频生成、音频生成、文学创作OpenAI、Adobe、Stability AIDALL·E、Adobe Firefly、Stable Diffusion 引领图像生成,应用于广告、设计等。
教育与学习个性化学习计划、智能辅导Duolingo、Khan AcademyDuolingo Max 集成 ChatGPT 提供智能学习支持,Khanmigo 提供智能化学习工具。
金融科技风险评估、智能投顾、合规检查JPMorgan Chase、BloombergBloombergGPT 专注于金融领域,大模型在风险分析和金融信息生成方面表现优异。
医疗健康医疗文本生成、疾病诊断、药物研发DeepMind、Insilico MedicineAlphaFold 提供蛋白质结构预测,推动药物研发;Insilico 使用大模型加速药物研发周期。
游戏开发NPC 交互、剧情生成、场景设计Unity、Epic GamesUnity 引入 AI 助力场景和角色设计,Epic Games 用 AI 优化游戏体验。
法律科技合同审查、法律分析、智能文书生成Casetext、DoNotPayCasetext 使用大模型进行法律文件审查,DoNotPay 提供法律服务自动化。
客户服务智能客服、自动问答Salesforce、ZendeskSalesforce Einstein GPT 支持客户交互自动化,Zendesk 提供个性化客户支持服务。
零售与电商个性化推荐、销售预测、营销内容生成Amazon、AlibabaAmazon 用大模型优化推荐算法,阿里巴巴推出 M6 模型,用于生成商品描述、营销文案等。
制造与工业故障预测、优化生产流程Siemens、BoschSiemens 引入 AI 优化生产线,Bosch 用大模型预测设备维护需求。
智能硬件虚拟助手、智能家居控制Apple、AmazonSiri 和 Alexa 引入大模型改进用户交互体验,提升硬件与用户间的自然交互能力。

扩展阅读:

  • 沙丘智库《大模型应用跟踪月报(12月)》发布,洞察大模型最新落地进展 - 沙丘社区

  • 434个大模型案例,回顾2024年大模型落地进展 - 沙丘社区

  • 回顾2024:大模型落地进展、场景价值及最佳实践 - 沙丘社区

  • 大模型为软件工程带来新机遇:8个头部企业典型案例 - 沙丘社区

二、近几年大模型的演化路线和关键技术

1、大模型演化路线

在这里插入图片描述

2、大模型关键技术

1)Transformer
  • 底层原理:Transformer 模型通过自注意力机制(Self-Attention)和前馈神经网络(Feed-Forward Neural Network)来处理序列数据,能够并行计算,克服了传统循环神经网络(RNN)的局限性。

  • 相关论文:《Attention Is All You Need》

  • 推荐博客:《LLM大模型学习圣经:从0到1吃透Transformer技术底座》

扩展阅读

  • llm_interview_note/02.大语言模型架构/1.attention/1.attention.md at main · wdndev/llm_interview_note · GitHub
  • llm_interview_note/02.大语言模型架构/Transformer架构细节/Transformer架构细节.md at main · wdndev/llm_interview_note · GitHub

关键词

关键词
多头注意力机制 (Multi-head Attention Mechanism)
自注意力机制 (Self-Attention Mechanism)
位置编码 (Positional Encoding)
前馈神经网络 (Feedforward Neural Network)
残差连接 (Residual Connection)
层归一化 (Layer Normalization)
查询键值机制 (Query-Key-Value Mechanism)
序列到序列学习 (Seq2Seq Learning)
编码器-解码器架构 (Encoder-Decoder Architecture)
并行化处理 (Parallelization)

关系图谱

组成部分
依赖
依赖
组成部分
通过残差连接
辅助训练
优化性能
实现方式
目标
目标
多头注意力机制
自注意力机制
位置编码
查询键值机制
前馈神经网络
残差连接
层归一化
并行化处理
编码器-解码器架构
序列到序列学习

2)Sparse Transformer
  • 底层原理:Sparse Transformer 通过引入稀疏注意力机制,仅关注序列中的一部分,从而降低计算复杂度,适用于处理长序列数据。

  • 相关论文:《Generating Long Sequences with Sparse Transformers》

  • 推荐博客:《稀疏大模型简述:从MoE、Sparse Attention到GLaM》

扩展阅读

  • Transformer家族之Sparse Transformer | Rogerspy's Home

  • Sparse Transformer - 知乎专栏

关键词

关键词
稀疏注意力机制 (Sparse Attention Mechanism)
局部注意力 (Local Attention)
分块处理 (Block Processing)
长序列建模 (Long Sequence Modeling)
时间复杂度优化 (Time Complexity Optimization)
分层注意力 (Hierarchical Attention)
计算效率 (Computational Efficiency)
注意力窗口 (Attention Window)
稀疏矩阵 (Sparse Matrix)
可扩展性 (Scalability)

关系图谱

实现方式
实现方式
关联
实现方式
目标
目标
优化结果
提升效率
目标
稀疏注意力机制
局部注意力
分块处理
注意力窗口
稀疏矩阵
长序列建模
时间复杂度优化
分层注意力
计算效率
可扩展性

3)MoE(专家混合)& Switch Transformer
  • 底层原理:MoE 模型包含多个专家网络,每个输入仅激活部分专家,从而在保持模型容量的同时提高计算效率。

  • 相关论文:《Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer》

  • 推荐博客:《2.MoE经典论文简牍》

扩展阅读

  • https://github.com/wdndev/llm_interview_note/blob/main/02.大语言模型架构/1.MoE论文/1.MoE论文.md

  • llm_interview_note/02.大语言模型架构/2.MoE经典论文简牍/2.MoE经典论文简牍.md at main · wdndev/llm_interview_note · GitHub

  • llm_interview_note/02.大语言模型架构/3.LLM MoE :Switch Transformers/3.LLM MoE :Switch Transformers.md at main · wdndev/llm_interview_note · GitHub

关键词

关键词
专家网络 (Expert Networks)
门控网络 (Gating Network)
条件计算 (Conditional Computation)
模型容量 (Model Capacity)
负载均衡 (Load Balancing)
动态激活 (Dynamic Activation)
稀疏化 (Sparsity)
软路由 (Soft Routing)
高效训练 (Efficient Training)
可扩展性 (Scalability)

关系图谱

组成部分
动态控制
实现方式
关联
优化目标
优化结果
提升效率
实现
目标
专家网络
门控网络
条件计算
稀疏化
模型容量
负载均衡
动态激活
软路由
高效训练
可扩展性

4)Diffusion Model(扩散模型)
  • 底层原理:扩散模型通过逐步向数据添加噪声并学习去噪过程,生成高质量的数据样本,广泛应用于图像生成等领域。

  • 相关论文:《Denoising Diffusion Probabilistic Models》

扩展阅读

  • 扩散模型 (Diffusion Model) 之最全详解图解-CSDN博客

关键词

关键词
正向过程 (Forward Process)
逆向过程 (Reverse Process)
概率模型 (Probabilistic Model)
生成建模 (Generative Modeling)
马尔可夫链 (Markov Chain)
去噪 (Denoising)
噪声添加 (Noise Addition)
条件生成 (Conditional Generation)
稳定性 (Stability)
采样效率 (Sampling Efficiency)

关系图谱

核心机制
依赖
构建过程
依赖理论
操作内容
目标
优化目标
依赖
应用方向
正向过程
逆向过程
概率模型
生成建模
马尔可夫链
噪声添加
去噪
稳定性
采样效率
条件生成

5)LoRA(低秩适配)
  • 底层原理:LoRA 通过在预训练模型的权重矩阵上添加低秩矩阵,实现参数高效的微调,减少了微调所需的参数量。

  • 相关论文:《LoRA: Low-Rank Adaptation of Large Language Models》

  • 推荐博客:《低秩自适应(LoRA)原理、应用以及发展》

扩展阅读

  • llm_interview_note/05.有监督微调/4.lora/4.lora.md at main · wdndev/llm_interview_note · GitHub

关键词

关键词
参数高效微调 (Parameter-Efficient Fine-Tuning)
低秩分解 (Low-Rank Decomposition)
适配矩阵 (Adaptation Matrix)
冻结权重 (Frozen Weights)
内存优化 (Memory Optimization)
小数据集微调 (Small Dataset Fine-Tuning)
高效训练 (Efficient Training)
推理优化 (Inference Optimization)
权重插入 (Weight Injection)
可扩展性 (Scalability)

关系图谱

实现基础
构建方式
依赖
直接结果
目标
应用场景
提升性能
依赖实现
适应能力
参数高效微调
低秩分解
适配矩阵
冻结权重
内存优化
高效训练
小数据集微调
推理优化
权重插入
可扩展性

6)LLaMA
  • 底层原理:LLaMA 是一种高效的基础语言模型,采用改进的 Transformer 架构,专注于提高模型的训练效率和性能。

  • 相关论文:《LLaMA: Open and Efficient Foundation Language Models》

  • 推荐博客:《深入解析LLaMA如何改进Transformer的底层结构》

扩展阅读

  • llm_interview_note/02.大语言模型架构/llama 2代码详解/llama 2代码详解.md at main · wdndev/llm_interview_note · GitHub

  • llm_interview_note/02.大语言模型架构/llama 3/llama 3.md at main · wdndev/llm_interview_note · GitHub

关键词

关键词
高效训练 (Efficient Training)
基础模型 (Foundation Model)
改进的 Transformer 架构 (Enhanced Transformer Architecture)
稀疏注意力 (Sparse Attention)
低计算成本 (Low Computational Cost)
扩展性 (Scalability)
数据效率 (Data Efficiency)
多任务学习 (Multi-Task Learning)
推理优化 (Inference Optimization)
开放性 (Openness)

关系图谱

实现目标
核心依赖
提升效率
优化结果
目标方向
提高表现
适应性提升
扩展能力
直接关联
高效训练
基础模型
改进的 Transformer 架构
稀疏注意力
低计算成本
扩展性
数据效率
多任务学习
推理优化
开放性

三、LLM大模型项目落地

0、前期知识储备(多多益善,包括机器学习 & 强化学习 & 深度学习 & 推广搜算法)

1)深度学习
  1. 激活函数:激活函数引入非线性特性,使神经网络能够学习和表示复杂的模式。常见的激活函数包括ReLU、Sigmoid和Tanh等。

    扩展阅读:

    • LLMForEverybody/01-第一章-预训练/神经网络的激活函数(一)概述.md at main · luhengshiwo/LLMForEverybody · GitHub
  2. KL散度(Kullback-Leibler Divergence):一种用于衡量两个概率分布之间差异的指标,常用于模型优化和信息论领域。

  3. 正则化:通过在损失函数中添加惩罚项,防止模型过拟合,提升模型的泛化能力。常见的正则化方法有L1、L2正则化和Dropout等。

  4. 损失函数:用于衡量模型预测值与真实值之间差异的函数,是模型训练过程中优化的目标。常见的损失函数有均方误差(MSE)、交叉熵损失等。

  5. 优化器:用于调整模型参数以最小化损失函数的算法,如随机梯度下降(SGD)、Adam等。

    扩展阅读:

    • LLMForEverybody/01-第一章-预训练/神经网络的优化器(一)概述.md at main · luhengshiwo/LLMForEverybody · GitHub
  6. 评估指标:用于评估模型性能的指标,如准确率、精确率、召回率、F1-score等。

2)机器学习
  1. 机器学习概念:机器学习是研究如何使计算机从数据中学习,进而做出预测或决策的学科。

  2. 线性回归(Linear Regression)模型:用于预测连续变量的模型,通过拟合数据找到自变量与因变量之间的线性关系。

  3. 支持向量机(SVM):一种用于分类和回归的监督学习模型,通过寻找最佳超平面来分隔不同类别的数据。

  4. EM算法与聚类:EM(Expectation-Maximization)算法是一种迭代方法,用于含有隐变量的概率模型参数估计;聚类是将数据集划分为多个组的过程,使得同一组内的数据点相似度高,不同组间相似度低。

3)推荐系统
  1. 概要:推荐系统通过分析用户行为和偏好,向用户推荐可能感兴趣的物品或内容。

  2. 召回:从大量候选项中筛选出与用户偏好相关的初步推荐列表。

  3. 排序:对召回的候选项进行精细排序,确保最符合用户兴趣的项排在前面。

  4. 特征交叉:组合不同特征以捕捉复杂的交互关系,提升模型的表达能力。

  5. 行为序列:分析用户的历史行为序列,捕捉用户兴趣的动态变化,进行个性化推荐。

  6. 重排:在初步排序的基础上,结合更多信息对推荐结果进行进一步优化。

  7. 物品冷启动:针对新上线的物品,由于缺乏用户反馈,推荐系统需要利用物品的内容信息或相似性进行推荐。

4)搜索系统
  1. 开篇语:搜索系统旨在从大量数据中快速、准确地检索出满足用户查询的信息。

  2. 常见架构:包括数据爬取、解析、索引生成、查询处理、召回、排序等模块。

  3. 文档内容处理:对收集到的文档进行解析、清洗、特征提取等处理,为后续索引和检索做准备。

  4. 查询理解:对用户输入的查询进行分析,理解其意图,可能涉及分词、同义词扩展、纠错等。

  5. 召回:检索、粗排、多路召回:根据查询从索引中检索出相关文档,进行初步筛选,可能采用多种召回策略。

  6. 精排:对召回的文档进行精细排序,确保最相关的结果优先展示,通常使用复杂的排序模型。

  7. 补充模块:包括推荐、问答、摘要生成等功能,提升用户搜索体验。

5)检索增强生成(RAG)
  • RAG是一种结合检索和生成的模型架构,通过先检索相关文档,再基于检索结果生成回答,提升生成内容的准确性和丰富性。
6)强化学习
  • 强化学习基础

    强化学习是一种机器学习方法,旨在通过智能体(Agent)与环境的交互,学习如何采取行动以最大化累积奖励。其核心组件包括:

    • 状态(State):智能体对环境的感知。

    • 动作(Action):智能体在特定状态下可执行的行为。

    • 奖励(Reward):环境对智能体动作的反馈,指示该动作的好坏。

    • 策略(Policy):智能体从状态到动作的映射规则。

    智能体通过试错与环境交互,依据奖励信号调整策略,以实现目标。

  • 马尔可夫决策过程(MDP)

    MDP为强化学习提供了数学框架,描述了决策过程中的状态、动作、转移概率和奖励。其关键特性是“马尔可夫性”,即下一个状态仅取决于当前状态和动作,而与过去无关。值迭代算法是一种动态规划方法,通过迭代更新状态值函数,求解最优策略。

  • 表格型方法

    在有限状态和动作空间下,使用表格存储值函数或Q值。主要算法包括:

    • Q-learning

    • Sarsa

    • 蒙特卡洛方法

  • 策略梯度

    策略梯度方法直接对策略进行参数化,并通过梯度上升或下降优化参数,以最大化预期奖励。其目标是找到参数 θ 使得策略 πθ​ 的期望回报最大化。

  • 近端策略优化(PPO)算法

  • 深度Q网络(DQN)

  • DQN进阶技巧

    为提升DQN性能,提出了多种改进方法:

    • Double DQN:减轻Q值过高估计,使用双网络分离动作选择和评估。
    • Dueling DQN:分离状态价值和优势函数,提高估计效率。
    • 优先经验回放(PER):优先采样重要经验,提高样本效率。
    • Noisy DQN:在网络中引入噪声以促进探索。
  • DQN在连续动作空间的应用

    传统DQN适用于离散动作空间,本章探讨了如何将DQN扩展到连续动作空间的问题。一种方法是使用策略梯度方法,如深度确定性策略梯度(DDPG)算法。

  • 演员-评论员算法

    演员-评论员(Actor-Critic)方法结合了策略(Actor)和价值函数(Critic)的优点。Actor更新策略参数,选择动作;Critic评估当前策略的价值,提供反馈。A2C(Advantage Actor-Critic)是其中一种常见算法。

  • 稀疏奖励

    在许多实际问题中,奖励信号稀疏且延迟,导致学习困难。应对策略包括:

    • 奖励塑形:设计更密集的奖励信号,引导智能体学习。
    • 探索策略改进:如引入内在动机,鼓励智能体探索未知状态。
  • 模仿学习

    模仿学习通过学习专家示范的数据,直接获取策略,适用于难以手工设计奖励函数的任务。常见方法包括行为克隆和逆强化学习。

扩展阅读:

  • GitHub - wdndev/ai_interview_note: DL & ML & RS

  • GitHub - datawhalechina/easy-rl: 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/

1、需求分析 - 以医疗领域为例,锚定智能导诊与问诊场景

1)市场调研

目前,市场上已有多款结合大模型技术的智能客服系统应用于医疗领域。以下是部分竞品的功能特点:

  1. 百度健康与武汉协和医院联合打造的AI智慧门诊:该系统通过诊前多轮问询,利用多模态AI交互与病情整理,综合分析患者信息,提供智能导诊、报告解读、健康咨询等服务。

  2. 北大医院与中国电信合作的健康大模型:该系统集成了预约挂号、在线缴费、报告查询、院内导航及投诉建议等功能,依托健康大模型的强大支撑,推出了智能导诊、报告解读、健康咨询及智能客服等服务。

  3. 腾讯医疗大模型在仁济医院的应用:仁济医院运用腾讯行业大模型,以互联网医院适老化服务为重点,提升了智能客服的水平,为老年患者提供更温暖、便捷的医疗服务。

竞品优劣势对比

产品名称优势劣势
百度健康AI智慧门诊诊前多轮问询,综合分析患者信息,提供多样化智能服务。需要大量高质量数据进行模型训练,初期投入较大。
北大医院·中国电信健康大模型功能集成度高,依托健康大模型,提供全面的智能服务。系统复杂度高,维护成本较高。
腾讯医疗大模型在仁济医院的应用针对老年患者,提供适老化服务,提升用户体验。适用人群相对有限,需进一步拓展服务范围。

改进建议

  1. 数据积累与模型优化:通过持续收集患者咨询数据,优化大模型的训练,提升智能客服的准确性和可靠性。

  2. 多模态交互:结合语音、文字、图像等多种交互方式,提升用户体验,满足不同患者的需求。

  3. 个性化服务:根据患者的历史就诊记录和健康数据,提供定制化的健康建议和提醒,增强服务的针对性。

  4. 隐私保护:加强数据安全措施,确保患者隐私不被泄露,提升用户对智能客服的信任度。

2)业务场景

在医院智能客服系统的需求分析中,可结合大模型技术应用到如下场景

a)智能导诊

  • 利用大模型的自然语言处理能力,智能客服可以根据患者描述的症状,准确推荐相应的科室和医生,提升就诊效率。

b)在线问诊

  • 通过大模型,智能客服能够模拟医生的问诊过程,提供初步的健康建议,帮助患者判断是否需要线下就诊。

c)报告解读

  • 针对患者的检查报告,智能客服可以提供通俗易懂的解读,帮助患者理解自身健康状况

d)健康咨询

  • 智能客服可回答患者关于疾病预防、健康管理等方面的常见问题,提供个性化的健康指导

e)预约挂号

  • 通过与医院系统对接,智能客服可以协助患者进行预约挂号,减少排队时间,优化就诊流程
3)医疗数据分类

在医院的智能客服系统中,基于大语言模型可以处理多种类型的数据,常见的数据类型及其格式包括:

数据类型数据描述常见数据格式
电子病历(EMR)包含患者的诊断、治疗、用药等详细信息。结构化数据(如JSON、XML)、半结构化数据(如CSV)、非结构化数据(如文本文件)
检验检查报告包括血液、尿液等检验结果,以及影像学检查报告。文本文件、PDF、图像文件(如DICOM)
医学影像数据如X光片、CT、MRI等影像数据。DICOM、JPEG、PNG等图像格式
患者问诊记录患者与医生的对话记录,包含症状描述、病史等信息。文字记录(如TXT、DOCX)、音频文件(如WAV、MP3)
医院标准操作程序医院内部的流程规范和操作指南。文本文件(如DOCX、PDF)
医学知识库包含疾病、药物、治疗方案等医学知识的信息库。结构化数据(如数据库)、半结构化数据(如JSON、XML)
用户交互数据患者在智能客服系统中的提问、反馈等交互记录。文字记录(如TXT、LOG)
健康监测数据来自可穿戴设备或患者自我报告的健康指标,如心率、血压等。数值数据(如CSV)、时间序列数据
预约挂号信息患者的预约记录,包括预约时间、科室、医生等信息。结构化数据(如数据库记录)
药物研发数据包括药物试验结果、药物相互作用等信息。结构化数据(如数据库)、半结构化数据(如JSON、XML)
4)需求痛点 及 场景构建

在医院智能客服系统中,结合大语言模型(如ChatGPT)处理医疗数据,可以应用于以下场景,旨在解决相应的痛点问题:

应用场景应用场景描述解决的痛点问题
智能导诊与问诊通过分析患者的症状描述,智能客服可以初步判断可能的疾病,并引导患者前往相应的科室就诊。减少患者因不了解就诊流程或科室分工而导致的困惑,提高就诊效率。
医学知识问答为患者提供关于疾病、药物、治疗方案等方面的专业解答。满足患者对健康知识的需求,提供准确、可靠的信息,避免因网络上不准确的信息导致的误解。
健康管理与预防建议根据患者的健康数据,提供个性化的健康管理建议,如饮食、运动、定期检查等。帮助患者建立健康的生活方式,预防疾病的发生和发展。
医疗信息查询提供医院的科室介绍、医生信息、就诊流程、医保政策等查询服务。方便患者获取所需的医院信息,减少因信息不对称带来的不便。
预约挂号与提醒协助患者进行在线预约挂号,并提供就诊前的提醒服务。简化预约流程,减少排队时间,降低患者因遗忘就诊时间而错过预约的可能性。
心理咨询与支持为患者提供初步的心理健康评估和支持,必要时建议就诊。及时识别和干预心理健康问题,提供情感支持,减轻患者心理负担。
辅助诊断与决策支持通过分析患者的病历、检验结果等数据,辅助医生进行诊断和制定治疗方案。提高诊断的准确性和治疗效果,减少误诊漏诊的可能性。
药物研发与个性化用药利用大模型分析大量医学文献和临床数据,辅助新药研发,并根据患者的基因和病史,提供个性化的用药建议。缩短新药研发周期,降低成本,提高用药安全性和有效性。
5)场景锚定 及 数据准备
a)场景锚定

在当前智能导诊与问诊系统的发展中,应用大模型技术的关键切入点是患者的自然语言症状描述。通过对患者输入的症状信息进行自然语言处理,大模型可以准确理解患者的健康状况,并结合医学知识库,提供合理的就诊建议。

分析逻辑如下:

  1. 数据收集与预处理

    • 数据来源:收集大量的医疗文本数据,包括电子病历、问诊记录、医学文献等。
    • 数据清洗:对收集的数据进行清洗,去除噪声,确保数据质量。
    • 标注处理:对症状、疾病、科室等信息进行标注,构建高质量的训练数据集。
  2. 模型训练与优化

    • 预训练模型:采用如BERT等预训练语言模型,进行初步训练,使模型具备基础的语言理解能力。
    • 微调训练:在预训练模型的基础上,使用标注的医疗数据进行微调,使模型适应医疗领域的特定任务。
    • 模型优化:通过调整模型参数、引入注意力机制等方法,提高模型的准确性和泛化能力。
  3. 系统集成与应用

    • 症状识别:用户输入症状描述,系统通过大模型进行解析,提取关键症状信息。
    • 科室匹配:根据提取的症状信息,结合医学知识库,匹配相应的科室或疾病。
    • 反馈建议:向用户提供就诊建议,如推荐科室、可能的疾病信息等。

以下是智能导诊与问诊系统的用例图,该用例图展示了各个参与者(如患者、医生、管理员)与系统之间的交互,以及系统内部的主要功能模块。以下是对该用例图的详细解析:

参与者(Actors):

  • 患者:系统的主要用户,输入症状描述,获取导诊建议,并进行预约挂号。
  • 医生:查看预问诊记录,更新诊疗方案,确保患者得到准确的医疗建议。
  • 管理员:维护医学知识库,确保系统的医学信息准确且最新。

主要用例(Use Cases):

  1. 输入症状描述

    • 执行者:患者
    • 描述:患者通过系统输入自身的症状和不适信息。
    • 目的:为系统提供初步的健康状况信息,作为后续分析的基础。
  2. 分析症状

    • 执行者:系统
    • 描述:系统利用大模型技术对患者输入的症状描述进行自然语言处理,提取关键症状特征。
    • 目的:准确理解患者的健康问题,为后续的科室匹配提供依据。
  3. 匹配科室

    • 执行者:系统
    • 描述:基于症状分析结果,结合医学知识库,匹配最适合的科室或专业。
    • 目的:为患者提供准确的就诊建议,指引其前往合适的科室。
  4. 提供导诊建议

    • 执行者:系统
    • 描述:向患者反馈导诊建议,包括推荐的科室、可能的疾病信息等。
    • 目的:帮助患者了解自身状况,指导其下一步行动。
  5. 预约挂号

    • 执行者:患者
    • 描述:根据系统提供的导诊建议,患者选择相应科室和医生进行预约挂号。
    • 目的:简化就诊流程,方便患者及时就医。
  6. 生成预问诊记录

    • 执行者:系统
    • 描述:系统根据患者的症状描述和分析结果,生成预问诊记录。
    • 目的:为医生提供患者的初步健康信息,辅助诊断。
  7. 查看预问诊记录

    • 执行者:医生
    • 描述:医生在正式问诊前,查看系统生成的预问诊记录。
    • 目的:提前了解患者情况,提高诊疗效率。
  8. 更新诊疗方案

    • 执行者:医生
    • 描述:根据预问诊记录和实际问诊情况,医生更新或制定诊疗方案。
    • 目的:确保患者得到准确、个性化的治疗建议。
  9. 维护医学知识库

    • 执行者:管理员
    • 描述:定期更新和维护医学知识库,确保信息的准确性和时效性。
    • 目的:支持系统的症状分析和科室匹配功能,提升系统可靠性。

备注(Notes):

  • 分析症状

    • 说明:该功能模块使用大模型技术对患者的症状描述进行自然语言处理,提取关键症状特征。
  • 匹配科室

    • 说明:基于分析结果和医学知识库,匹配合适的科室或专业,确保患者得到准确的就诊建议。

在这里插入图片描述

b)数据准备

在智能导诊与问诊系统中,为了准确地分析患者的症状并提供适当的就诊建议,通常需要以下数据:

  1. 患者主诉信息:患者对自身症状的描述,包括主诉、现病史等。
  2. 既往病史:患者的过往疾病记录、手术史、过敏史等。
  3. 家族病史:家族成员中存在的遗传性或家族聚集性疾病信息。
  4. 生活习惯:患者的饮食、运动、吸烟、饮酒等生活方式信息。
  5. 检验检查结果:患者近期的实验室检验结果和影像学检查报告。
  6. 人口统计信息:患者的年龄、性别、职业等基本信息。
  7. 医学知识库:包含疾病、症状、诊疗方案等的专业医学知识库,用于支持系统的决策。

为了实现上述智能问诊系统,需要准备以下数据:

  1. 患者信息

    • 基本信息:包括姓名、性别、年龄、联系方式等。
    • 病史记录:既往疾病、手术史、过敏史、家族病史等。
    • 生活习惯:饮食、运动、吸烟、饮酒等生活方式信息。
  2. 症状描述数据

    • 文本数据:患者对自身症状的详细描述,包括主诉、现病史等。
    • 语音数据:如果系统支持语音输入,还需收集患者的语音描述数据。
  3. 医学知识库

    • 疾病信息:包括疾病的名称、症状、诊断标准、治疗方案等。
    • 科室信息:各科室的职责范围、常见疾病、诊疗流程等。
    • 药品信息:药品的名称、适应症、用法用量、不良反应等。
  4. 问诊对话数据

    • 历史问诊记录:医生与患者的对话记录,用于训练模型理解和生成自然语言对话。
    • 标注数据:对问诊对话进行标注,包括症状、诊断、建议等信息。
  5. 电子健康记录(EHR)

    • 检验检查结果:实验室检验结果、影像学检查报告等。
    • 诊疗记录:医生的诊断、治疗方案、随访记录等。
  6. 标准化数据集

    • 医学术语集:如ICD编码、药品分类等标准化术语集。
    • 知识图谱:构建疾病、症状、药品、科室等实体之间的关联关系。

2、方案设计

1)系统架构设计

层级功能设计:

  1. 用户交互层

    • 多渠道接入:支持通过网站、移动应用、电话等多种渠道与用户进行交互。
    • 自然语言处理:理解并处理用户的自然语言输入,确保准确的语义解析。
    • 对话管理:管理与用户的对话流程,确保交互的连贯性和有效性。
  2. 应用服务层

    • 智能导诊与问诊:根据用户描述的症状,提供初步的疾病判断和就诊建议。
    • 医学知识问答:回答用户关于疾病、药物、治疗等方面的常见问题。
    • 健康管理与预防建议:根据用户的健康数据,提供个性化的健康管理方案。
    • 医疗信息查询:提供医院科室、医生信息、就诊流程等相关查询服务。
    • 预约挂号与提醒:协助用户进行预约挂号,并提供就诊提醒服务。
    • 心理咨询与支持:提供初步的心理健康评估和支持,必要时建议就诊。
    • 辅助诊断与决策支持:为医生提供诊断建议和治疗方案的支持。
    • 药物研发与个性化用药:辅助新药研发,并根据患者情况提供个性化用药建议。
  3. 数据管理层

    • 用户数据管理:存储和管理用户的基本信息和交互记录。
    • 知识库管理:维护包含医疗信息、常见问题解答等内容的知识库。
    • 健康档案管理:管理用户的健康档案,记录健康数据和历史信息。
  4. 技术支持层

    • 模型训练与优化:对大语言模型进行训练和优化,提升系统性能。
    • 系统监控与维护:实时监控系统运行状态,确保系统稳定性和可靠性。
    • 安全与隐私保护:保障用户数据的安全,遵守相关隐私保护法规。
2)数据处理流水线设计

1. 数据清洗

  • 缺失值处理:针对缺失的数据,可采用删除、填充或插值等方法进行处理。

  • 重复数据去除:识别并删除重复的记录,确保数据的唯一性和准确性。

  • 异常值检测:使用统计方法或机器学习算法检测并处理异常数据点。

  • 数据标准化:将数据转换为统一的格式或量纲,便于后续分析。

2. 特征提取

  • 自然语言处理(NLP):对文本数据进行分词、词性标注、命名实体识别等处理,从中提取有用的信息。

  • 特征选择:使用算法选择对模型有显著影响的特征,减少数据维度,提高模型性能。

  • 特征工程:根据领域知识,对原始特征进行转换或组合,生成新的特征以提升模型效果。

3. 数据挖掘

  • 分类算法:如支持向量机(SVM)、决策树、随机森林等,用于疾病诊断或科室推荐。

  • 聚类算法:如K均值、层次聚类等,用于发现患者群体的潜在分组。

  • 关联规则挖掘:如Apriori算法,用于发现症状与疾病之间的关联关系。

  • 时间序列分析:用于分析患者病情随时间的变化趋势,预测疾病发展。

4. 模型评估与应用

  • 模型评估:使用准确率、召回率、F1值等指标评估模型性能。

  • 模型应用:将训练好的模型应用于实际的医疗问诊和导诊系统中,辅助医生决策。

3)技术选型

在考虑私有化部署以实现智能导诊和问诊功能时,选择合适的开源大语言模型至关重要。以下是一些适合的开源中文医疗大模型及其特点:

  1. 扁鹊 2.0

    • 简介:由华南理工大学未来技术学院和广东省数字孪生人重点实验室开源的中文医疗大模型。
    • 特点:基于 ChatGLM-6B 模型,经过全参数的精细指令微调,具备强大的中文医疗对话能力。
    • 应用场景:适用于智能导诊、预问诊、医学咨询等场景。
    • 开源地址:GitHub - scutcyr/BianQue: 中文医疗对话模型扁鹊(BianQue)
  2. ChatMed

    • 简介:基于 LlaMA-7B 模型
    • 特点:训练数据包括超过 50 万个在线问诊数据和 ChatGPT 的回复,能够很好地反映真实世界的用户/患者的问诊需求。
    • 应用场景:在线医疗咨询、智能问诊等。
    • 开源地址:GitHub - michael-wzhu/ChatMed: ChatMed: 中文医疗大模型,善于在线回答患者/用户的日常医疗相关问题!
  3. PULSE

    • 简介:开源的中文医疗大模型,采用约 400 万个中文医学与通用领域指令微调数据进行优化。
    • 特点:支持广泛的医疗领域自然语言处理任务,包括健康教育、医学问答等。
    • 应用场景:智能导诊、医学知识问答等。
    • 开源地址:暂未提供具体链接,可参考相关开源社区。

选择理由:

  • 开源可控:上述模型均为开源项目,支持私有化部署,方便根据具体需求进行定制和优化。

  • 中文医疗专用:这些模型专为中文医疗场景设计,经过大量医疗数据的训练,具备良好的中文理解和生成能力,能够准确处理医疗相关的自然语言输入。

  • 社区支持:开源模型通常有活跃的社区支持,能够及时获取更新和技术支持,降低开发和维护成本。

4)模型流水线设计

1. 数据准备与预处理

  • 数据收集:

    • 医学文本数据:电子病历、医学文献、临床指南、药品说明书等。

    • 多模态数据:医学影像(如X光、CT)、化验结果、患者描述等。

    • 知识图谱数据:疾病、症状、药品、治疗方案等实体及其关系。

  • 数据清洗与标注:

    • 清洗噪声数据,统一术语(如ICD-10编码)

    • 对问诊数据进行标注,生成监督学习所需的标签(如症状-疾病映射)。

  • 多模态数据对齐:

    • 将文本、图像、表格等多模态数据对齐,构建统一的多模态数据集。

2. 基础模型选择

  • 文本模型:选择开源大模型(如LLaMA、ChatGLM、GPT-J)作为基础语言模型。

  • 多模态模型:如果涉及图像或表格数据,选择支持多模态的模型(如CLIP、Flamingo)。

  • 检索模型:选择高效的检索模型(如DPR、BM25)用于知识检索。

3. 多模态知识图谱构建

  • 知识图谱构建:从医学文献、数据库和专家知识中提取实体(如疾病、症状、药品)和关系(如“症状-疾病”关联、“药品-适应症”关联)。

  • 知识图谱嵌入:使用图嵌入算法(如TransE、RotatE)将知识图谱中的实体和关系嵌入到向量空间。

  • 多模态知识融合:将知识图谱与文本、图像等多模态数据结合,增强模型对复杂医学问题的理解能力。

4. RAG(Retrieval-Augmented Generation)集成

  • 检索模块:使用检索模型(如DPR、BM25)从知识图谱或医学文献库中检索与用户问题相关的文档或知识片段。

  • 生成模块:将检索到的知识片段输入生成模型(如微调后的LLaMA或GPT),生成准确且上下文相关的回答。

  • 优化检索策略:通过强化学习或对比学习优化检索模块,确保检索到的知识片段与用户问题高度相关。

5. 模型微调与训练

  • 领域适应微调:

    • 使用医学领域的文本数据对基础模型进行微调,使其适应医学语言和知识。

    • 采用监督学习(基于标注数据)和自监督学习(如掩码语言建模)相结合的方式。

  • 多任务学习:同时训练模型完成多个任务(如疾病诊断、症状推理、治疗方案推荐),提升泛化能力。

  • 多模态融合训练:将文本、图像、表格等多模态数据输入模型,训练模型进行跨模态推理。

6. 自主学习与持续优化

  • 在线学习:通过用户反馈(如点赞、纠错)对模型进行在线微调,持续优化模型性能。

  • 主动学习:让模型主动识别不确定的案例,交由专家标注后加入训练集。

  • 模型蒸馏:将大模型蒸馏为轻量级模型,降低推理时延,同时保持较高的准确率。

8. 性能优化

  • 分布式计算:使用分布式训练和推理框架(如Ray、Horovod)加速模型训练和推理。

  • 缓存机制:对常见问题及其答案进行缓存,减少重复计算。

  • 硬件加速:使用GPU/TPU等硬件加速推理过程。

9. 评估与监控

  • 评估指标:使用准确率、召回率、F1分数、BLEU分数等指标评估模型性能。

  • 用户反馈:通过用户满意度调查和纠错反馈,持续改进模型。

  • 监控系统:实时监控模型的问答时延、准确

10. 安全与合规

  • 数据隐私:确保用户数据的隐私和安全,遵守相关法律法规(如GDPR、HIPAA)。

  • 模型可解释性:提供模型决策的可解释性,增强用户信任。

关于模型的流水线设计如下

在这里插入图片描述

在自然语言处理领域,大语言模型(LLM)知识图谱(Knowledge Graph, KG)检索增强生成(Retrieval-Augmented Generation, RAG) 是相互关联的技术,通常协同工作以提高问答系统的准确性和效率。

  • 1. 大语言模型(LLM):

    LLM是经过大量文本数据训练的模型,能够生成和理解自然语言。然而,LLM的知识受限于其训练数据,且可能存在信息更新不及时的问题。

  • 2. 知识图谱(KG):

    知识图谱是以图结构表示的知识库,其中节点代表实体(如人、地点、概念),边表示实体之间的关系。KG提供了结构化的、可查询的知识,能够为LLM提供准确且最新的信息。

    扩展阅读:

    • GitHub - husthuke/awesome-knowledge-graph: 整理知识图谱相关学习资料

    • 知识图谱基础 之 一.知识图谱基本概念 | 来唧唧歪歪(Ljjyy.com) - 多读书多实践,勤思考善领悟

  • 3. 检索增强生成(RAG):

    RAG是一种将信息检索与生成模型相结合的技术。它通过从外部知识源(如文档、知识库)中检索相关信息,增强LLM的生成能力,降低LLM的幻觉,提高回答的准确性和相关性。

    扩展阅读:

    • llm_interview_note/08.检索增强rag/rag(检索增强生成)技术/rag(检索增强生成)技术.md at main · wdndev/llm_interview_note · GitHub
    • LLMForEverybody/07-第七章-Agent/搭配Knowledge-Graph的RAG架构.md at main · luhengshiwo/LLMForEverybody · GitHub

关系与协同工作方式:

在实际应用中,LLM、KG和RAG并非简单的先后关系,而是相互补充、协同工作的。

  • 知识图谱与RAG的结合(Graph RAG):

    传统的RAG方法主要依赖于文本匹配,可能无法充分理解文本背后的语义和逻辑关系。为此,Graph RAG将知识图谱引入RAG体系,通过图结构表示实体及其关系,帮助LLM更好地理解信息之间的逻辑,从而生成更准确和智能的答案。

  • LLM与Graph RAG的协同:

    LLM负责自然语言的生成和理解,Graph RAG为其提供结构化的知识支持。通过在生成答案前检索并整合知识图谱中的相关信息,LLM能够生成更准确且上下文相关的回答。

总之,LLM、KG和RAG之间的关系并非简单的先后顺序,而是通过深度融合,形成一个高效的问答系统。知识图谱为LLM提供结构化的知识支持,RAG通过检索相关信息增强LLM的生成能力,三者协同工作,共同提升问答的准确性和效率。

生成回答时依赖RAG检索的知识
从知识库中检索结构化数据
从知识图谱中检索实体和关系
知识库为知识图谱提供数据支持
增强LLM的推理能力
处理多模态输入,如文本,图像
对齐与融合多模态数据
LLM
RAG
知识库
多模态知识图谱
多模态数据

3、模型实现/模型评估/模型优化

1)模型训练
a)模型参数量和训练时长

大型语言模型(LLM)的参数量、计算量、显存占用以及计算时间是评估其性能和资源需求的重要指标。这些因素不仅决定了模型的训练成本,还影响了推理阶段的效率。下面我们将详细探讨如何计算这些关键参数,并提供一些估算方法。

参数量

  • LLM的参数量通常指的是模型中可调整参数的数量,它是衡量模型复杂度的一个重要标准。根据文献,对于一个典型的Decoder-only架构(如GPT系列),其总参数量可以近似表示为 12 l d 2 12ld^2 12ld2,其中 l l l是Transformer块的数量,而 d d d则是隐藏层维度。此外,还需要考虑词表大小 V V V与嵌入维度d乘积得到的Token Embedding部分的参数量 V d Vd Vd。因此,整个模型的总参数量大约为 12 l d 2 + 13 l d + V d 12ld^2+13ld+Vd 12ld2+13ld+Vd,忽略了一次项后简化为 12 l d 2 12ld^2 12ld2

    序列模型(3)—— LLM的参数量和计算量_llm 参数量-CSDN博客

计算量(FLOPs)

  • 在训练过程中,每处理一个token就需要执行大量的浮点运算。具体来说,对于每个token,每个模型参数大约需要进行两次浮点数计算(一次乘法加一次加法)。考虑到激活重计算技术的应用,前向传递+ 后向传递 + 激活重计算所需的总计算量系数为4。这意味着如果我们要训练包含 D D D个token的数据集上的 N N N个参数,则总的计算量C约为$6ND $FLOPs;

    大模型训练:计算量与内存估算 - 知乎

显存占用:显存占用主要由以下几个方面构成:

  • 模型参数:这是最直观的部分,取决于模型本身的大小。例如,在FP16精度下,7B参数的模型大约需要14GB显存;而对于13B参数的模型,则分别需要26GB(FP16)、52GB(FP32)等不同级别的显存支持。

    大语言模型LLM推理及训练显存计算方法 - tommickey - 博客园。

  • 梯度:为了实现反向传播算法,必须保存每一层输出相对于输入的变化率,即梯度信息。这相当于额外增加了与模型参数相同数量级的显存需求。

  • 优化器状态:常用的AdamW优化器需要存储两倍于模型参数的空间来记录一阶和二阶动量,从而进一步增加了显存负担。

  • 中间激活值:包括但不限于attention mask、layer normalization的结果等临时变量,它们同样占据了相当一部分显存空间。

计算时间

  • 给定特定硬件配置下的GPU峰值性能(以TFLOPS计),可以通过以下公式粗略估计训练所需的时间:

    T = C R × U T = \frac{C}{R \times U} T=R×UC

    这里, T T T代表训练时间, C C C是之前提到的总计算量, R R R表示GPU的实际算力(考虑到了可能存在的利用率折扣),而U则是指 G P U GPU GPU利用率。例如,对于GPT3-175B这样的超大规模模型,在1000张40GB A100 GPU集群上完成300B tokens数据集上的训练大约需要77天

    大模型训练时长预算方法 - 百度智能云千帆社区

综上所述,准确地估算LLM的各项资源消耗有助于合理规划计算资源,降低开发成本,并确保项目按时交付。同时,随着技术的发展,诸如混合精度训练、分布式并行化等新技术也在不断涌现,使得我们可以更加高效地训练更大规模的语言模型。

扩展阅读:

  • 大模型训练时长预算方法 - 百度智能云千帆社区

  • 序列模型(3)—— LLM的参数量和计算量_llm 参数量-CSDN博客

  • 大语言模型LLM推理及训练显存计算方法 - tommickey - 博客园

  • LLM训练指南(二):模型参数、计算量、显存、计算时间计算

b)并行计算策略

在智能问诊和导诊系统中,大型语言模型(LLM)的参数量往往非常庞大,这不仅影响了模型训练的时间成本,也对计算资源提出了极高的要求。根据研究,随着模型参数量、数据集规模以及训练使用的计算量增加,模型性能能够稳步提高,即所谓的Scaling Law。然而,这也意味着更大的模型需要更多的训练时间和更强大的硬件支持。为了应对这一挑战,可以采用多种并行计算策略来加速LLM的训练过程。

针对上述问题,可以通过以下几种并行计算方法来优化LLM的训练:

  • 数据并行(Data Parallelism)

    这是最常见的一种并行化手段,它通过将训练数据分成多个批次,并分配给不同的处理器或机器来进行独立计算。每个节点使用相同的模型副本处理自己负责的数据部分,然后定期与其他节点同步参数以确保全局一致性。这种方法易于实现且计算效率高,但缺点是内存占用较大,因为它需要在每个节点上复制整个模型。对于智能问诊和导诊系统而言,如果模型能够在单个GPU内存中容纳,则可以直接进行训练;否则,可以考虑结合其他并行技术如ZeRO + CPU offloading来减少内存压力。

  • 张量并行(Tensor Parallelism)

    张量并行是指将大型矩阵乘法操作分解为较小的子任务,并分配给多个GPU同时执行。这种方式提高了内存利用率,因为它允许每个GPU只处理张量的一部分。不过,在每次前向传播和反向传播过程中都会引入额外的通信开销,因此需要保证较高的网络带宽。对于那些涉及大量矩阵运算的大规模LLM来说,张量并行是一个有效的加速方案。

  • 模型并行(Model Parallelism)

    当单个GPU无法容纳整个模型时,可以考虑使用模型并行。这种策略会将模型的不同层分配到多个GPU上运行,从而克服了单个设备内存限制的问题。例如,一个具有多层神经网络的大型LLM可以被拆分到几个GPU之间,每个GPU负责一部分连续层的计算。然而,模型并行在跨节点扩展性方面存在局限性,因为频繁的通信可能会成为瓶颈。

  • 流水线并行(Pipeline Parallelism)

    流水线并行是一种特殊的模型并行方式,它将神经网络划分为若干阶段,并让不同阶段的数据流依次经过各个处理单元。这样做的好处是可以充分利用硬件资源,尤其是在处理超深网络时效果明显。不过,流水线并行同样面临着通信延迟的问题,特别是当不同阶段位于不同物理位置时。

  • 零冗余优化器(Zero Redundancy Optimizer, ZeRO)

    为了解决传统并行方法中存在的内存消耗过大的问题,微软提出了零冗余优化器(ZeRO)。该技术通过在不同数据并行处理器之间划分模型状态(包括参数、梯度和优化器状态),可以在不显著增加通信开销的前提下大幅降低内存需求。具体来说,ZeRO有三种常见的实现方式:优化器状态分区(OS)、OS + 梯度分区(GP)、OS + GP + 参数分区。其中最后一种设置可以实现与数据并行程度成线性关系的内存减少,但会带来大约50%的额外通信量。

实际应用中,通常不会单独使用某一种并行计算方法,而是综合运用多种策略以达到最佳效果。例如,可以先利用数据并行快速启动训练,随后根据实际情况逐步引入张量并行或模型并行来进一步提升速度。此外,腾讯云提供的高性能存储解决方案也为大规模分布式训练提供了强有力的支持。总之,通过合理规划并行架构,并充分考虑到各组件间的交互特性,我们可以有效地缩短LLM的训练周期,进而加快智能问诊和导诊系统的开发进度。

扩展阅读:

  • llm_interview_note/04.分布式训练 at main · wdndev/llm_interview_note · GitHub
  • LLMForEverybody/01-第一章-预训练/大模型训练框架(一)综述.md at main · luhengshiwo/LLMForEverybody · GitHub
  • LLMForEverybody/05-第五章-显卡与并行/Transformer架构的GPU并行和之前的NLP算法有什么不同?.md at main · luhengshiwo/LLMForEverybody · GitHub

行业动态:

  • 2024.12 - 计算DeepSeekV3训练的MFU

  • 2025年01月23日 - 全球首个!中国电信完成千卡、千亿参数模型500公里联合训练试商用

c)预训练任务

在大型预训练模型(如BERT、GPT等)的训练过程中,预训练任务是模型在正式应用于特定任务之前,通过大规模数据学习通用特征和知识的过程。这些任务旨在让模型对语言进行深入理解,从而为后续的下游任务提供更好的表征。

常见的预训练任务包括:

  1. 掩码语言模型(Masked Language Model, MLM): 模型随机地掩盖输入文本中的一些词汇,然后预测这些被掩盖的词汇。这个任务使模型能够学习上下文中的词汇关系和语义。例如,BERT模型采用了这种预训练任务。

  2. 下一句预测(Next Sentence Prediction, NSP): 给定两个句子,模型需要预测这两个句子是否是连续的。这个任务可以帮助模型理解句子之间的逻辑关系和语义连贯性。BERT模型在预训练过程中也使用了这个任务。

  3. 语言建模(Language Modeling): 模型通过预测给定文本序列中下一个词的概率分布,学习语言的内在结构和规律。这种任务帮助模型掌握语言的生成机制和语法规则。例如,GPT系列模型采用了这种预训练任务。

  4. 去噪自编码任务(Denoising Autoencoder Tasks): 模型通过对被扰乱的输入数据进行重构,学习数据的内在结构和表示方法。例如,T5模型使用了这种预训练任务。

通过在大规模数据集上进行这些预训练任务,模型能够学习到丰富的特征表示和知识结构,为后续的特定任务提供坚实的基础。在应用于具体任务时,通常会对预训练模型进行微调,使其更好地适应特定任务的需求。

2)模型微调

在智能问诊和导诊系统中,利用RAG(检索增强生成)、知识图谱以及知识库对大语言模型(LLM)进行微调是提升模型性能的关键步骤。以下是详细的实现方法:

a)使用RAG技术
  • 集成向量数据库

    首先,集成一个高效的向量数据库,如Milvus,用于存储医疗领域的高维数据表示。这些数据可以包括但不限于疾病描述、治疗方案、患者病历等。通过将文本转化为向量形式并存入数据库,使得后续的相似性搜索成为可能。

  • 检索相关上下文信息

    当用户提出一个问题时,系统会根据问题内容自动构建查询向量,并将其与向量数据库中的条目进行匹配。找到最相关的几条记录后,这些记录作为上下文信息被传递给LLM模型。这种方式不仅增加了模型可用的信息量,还有效减少了“幻觉”现象的发生——即模型生成不准确或不存在的事实。

  • 动态更新知识库

    为了保证检索到的信息始终是最新的,需要定期更新向量数据库中的内容。这可以通过爬取最新的医学文献、指南或其他权威来源来实现。此外,还可以考虑引入增量学习机制,让模型能够从每一次交互中学到新东西,并将学到的知识反馈到知识库中。

扩展阅读:

  • 如何设计企业级RAG系统架构?
b)构建和应用知识图谱
  • 知识图谱的构建

    基于医疗领域的专业知识,构建一个多模态的知识图谱。这个图谱应该包含实体(如疾病名称、症状)、关系(例如某种疾病导致的症状)以及属性(比如疾病的发病率)。使用诸如DBpedia、Wikidata等公共资源可以帮助快速搭建起初步框架;而对于特定医疗机构,则可以根据自身积累的数据进一步丰富和完善。

  • 知识图谱的应用

    在实际应用中,知识图谱可以为LLM提供额外的支持。例如,在处理复杂的问题时,可以通过路径查找算法确定不同概念之间的联系,从而给出更加精准的答案。另外,对于某些结构化的查询(如“这种药物适用于哪些病症?”),可以直接从图谱中提取相关信息而不必完全依赖于自由文本的理解能力。

c)微调LLM模型
  • 准备训练数据

    准备高质量的标注数据集至关重要。理想情况下,这些数据应该覆盖广泛的医疗场景,并且包含丰富的对话样例。每个样本都应包含完整的上下文信息(如之前的对话历史)以及正确的答案。如果条件允许,还可以邀请领域专家参与数据标注过程,确保标签的质量。

  • 设计Prompt模板

    设计合理的Prompt模板有助于引导模型产生期望的回答。一个好的Prompt应当明确指出任务要求,并尽可能地提供足够的背景信息。例如,“根据以下病人的症状,请推荐合适的科室:…”。同时,也可以尝试不同的格式化方式(如JSON、Markdown等),以便更好地组织信息;

    主流方法包括

    • Prompt Tuning

      Prompt Tuning 的核心思想在于prompt tokens有自己的参数,这些参数可以独立更新。这意味着你可以保持预训练模型的参数不变,只更新prompt tokens的嵌入向量的梯度。这样的结果与传统的训练整个模型的方法相当,并且随着模型大小的增加,Prompt Tuning的性能也会提升;

    • Prefix-Tuning

      Prefix-Tuning是Prompt Tuning的一种变体,它通过在模型输入的前缀位置添加可学习的提示向量来实现。这种方法的优势在于可以在不改变模型结构的情况下,为不同的任务提供不同的提示。

      Prefix-Tuning和Prompt Tuning最主要区别在于,Prefix-Tuning的前缀参数被插入到模型的所有层中,而Prompt Tuning只将提示参数添加到模型的embedding层。

    • P-Tuning

      P-tuning主要是为自然语言理解(NLU)任务设计的,它是Soft prompts的另一种变体。P-tuning 添加了一个可训练的嵌入张量,这个张量可以被优化以找到更好的提示,并且它使用一个提示编码器(一个双向长短期记忆网络或LSTM)来优化提示参数。

      P-tuning的特点是将Decoder架构的模型变得适应Encoder架构的任务,如NLU任务。

    • Multitask prompt tuning

      多任务提示调整(MPT)是一种从数据中学习单一提示的方法,该提示可以用于多种任务类型,并可以共享以适应不同的目标任务。与之相对的其他现有方法则为每个任务学习一个单独的软提示,这些提示需要被检索或聚合以适应目标任务。

    扩展阅读:

    • LLMForEverybody/03-第三章-微调/大模型微调之Soft prompts(一)概述.md at main · luhengshiwo/LLMForEverybody · GitHub
  • 应用监督式微调

    采用监督式微调的方法,逐步调整模型参数以适应特定的任务需求。在这个过程中,可以选择冻结部分层的权重不变,只对新增加的部分(如分类头)进行训练;或者采用LoRA(低秩适配)等轻量化策略,在保持原有性能的同时降低计算成本;

    扩展阅读:

    • llm_interview_note/05.有监督微调 at main · wdndev/llm_interview_note · GitHub
  • 引入人类反馈强化学习(RLHF)

    除了传统的监督式微调外,还可以结合人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)。这种方法允许通过奖励信号直接优化模型的行为,使其更符合用户的期望。具体做法是在模型生成回答之后,由真人评价其质量和适用性,然后根据评价结果调整模型的输出倾向;

    扩展阅读:

    • llm_interview_note/07.强化学习 at main · wdndev/llm_interview_note · GitHub
3)模型评估
a)准确性与可靠性
  • 诊断准确性:通过比较模型输出的诊断结果与实际病例中的正确答案来评估模型的准确性。这可以通过计算准确率(Accuracy)、精确率(Precision)、召回率(Recall)等统计学指标实现

  • 答案相关性:对于开放型问题的回答,使用ROUGE或BLEU分数来评估生成文本与参考答案之间的相似度。此外,还可以邀请领域专家对回答的质量进行主观评价

  • 错误率:特别关注可能导致严重后果的误诊情况,例如药物建议错误。这类错误需要被严格监控,并且应该尽可能地减少

扩展阅读:

  • LLM大模型从入门到精通(2)–LLM模型的评估指标_llm 召回率-CSDN博客
  • 如何评估大语言模型(LLM)的质量——框架、方法、指标和基准-51CTO.COM
b)安全性与隐私保护
  • 伦理审查:保证所有医疗服务都遵循伦理原则,避免产生道德争议。

  • 隐私保护:确认系统严格遵守数据安全法规,防止患者个人信息泄露。

扩展阅读:

  • 评估LLM:关键指标与测试集,-CSDN博客
c)性能效率
  • 计算资源消耗:测量模型运行所需的时间、内存占用以及GPU/CPU利用率等情况

  • 扩展能力:考察模型能否高效地适应新的应用场景和技术更新

扩展阅读:

  • 如何评估大语言模型(LLM)的质量——框架、方法、指标和基准-51CTO.COM
d)基准数据集

为了验证LLM模型在智能问诊和导诊领域的有效性,可以使用以下几种公开可用的数据集:

  • MedQA:这是一个专门设计用于测试医学知识问答系统的英文数据集,它由一系列选择题组成,涵盖了广泛的医学主题 MedQA Dataset | Papers With Code

  • CBLUE:中文医疗信息处理评测基准(Chinese Biomedical Language Understanding Evaluation),旨在推动中文医学NLP技术和社区的发展。该基准包含多个子任务,如实体识别、关系抽取、事件抽取等 2021中文医疗信息处理挑战榜_CBLUE_智慧医疗 - 阿里云天池

  • GenMedicalEval:一个更全面的评测框架,从医学基础知识、临床应用、安全规范等多个层面评估大模型在真实医疗复杂情境中的整体性能 GenMedicalEval:医疗大语言模型综合评测框架-CSDN博客

  • PubMedQA:封闭领域的问答数据集,每个问题都可以通过查看相关上下文(PubMed摘要)来回答。它包含1,000个专家标注的问题-答案对,用于评估模型理解和推理科学生物医学文献的能力 PubMedQA Homepage

  • MMLU子集(医学和生物学):测量大规模多任务语言理解的基准,专注于医学和生物学领域的多项选择题。这些子集评估了模型对特定医学和生物领域理解的能力 MMLU Dataset | Papers With Code

综上所述,在智能问诊和导诊系统中对LLM模型进行全面评估非常重要,这不仅有助于确保模型具备良好的理论性能,还能验证其在实际应用中为用户提供可靠、安全服务的能力。通过上述提到的专业数据集,开发者可以获得宝贵的反馈,从而不断优化和完善模型。随着技术的进步,预计未来会有更多适合智能问诊和导诊系统的新型数据集和评估方法涌现出来。

更多基础指标,扩展阅读:

  • llm_interview_note/09.大语言模型评估 at main · wdndev/llm_interview_note · GitHub
  • LLMForEverybody/09-第九章-评估指标 at main · luhengshiwo/LLMForEverybody · GitHub

4、模型部署

1)模型量化

模型量化的概念

  • 量化是一种将模型中的高精度浮点数(如FP32)转换为低精度整数(如INT8)的技术。通过降低精度,量化能够有效减少模型的存储需求、加快推理速度,并降低计算复杂度,使模型能在资源受限的环境(如移动设备)中运行。

精度概念

  • FP32:32位浮点数,精度高,适合训练。
  • FP16:16位浮点数,精度适中,适合混合精度训练。
  • BF16:类似FP16,但指数位更多,精度和数值范围更适合训练。
  • INT8:8位整数,主要用于推理,可显著减少存储和计算成本。

对比总结:位数越低,存储占用越少,但表示范围和精度降低。


量化的类型

  • 对称量化:量化零点固定为零,适用于数据对称分布的情况。

  • 非对称量化:量化零点可灵活调整,适用于数据分布不对称的情况。


量化粒度:量化粒度决定量化参数的共享范围

  • Per-tensor:整个张量共享同一量化参数(高效,但精度损失大)。
  • Per-channel:每个通道有独立的量化参数(更精确,计算复杂度增加)。
  • Per-group:对张量按组划分,每组独立量化(平衡效率与精度)。

Weight Packing(权重打包)

  • 通过将多个权重参数压缩或分块打包,进一步优化存储效率,同时结合量化,进一步压缩模型大小。常见方法包括矩阵分块和编码优化。

PTQ与QAT

  • PTQ(Post Training Quantization):在训练后量化模型,简单快速,但可能造成一定精度损失。适用于资源受限设备。
  • QAT(Quantization Aware Training):在训练过程中模拟量化效果,使模型更能适应低精度数值,精度更高,但需要更多的训练时间。

总结对比:QAT精度更高,PTQ实现更简单。


量化在其他领域的应用

量化不仅应用于模型压缩,还在以下领域有重要意义:

  • 金融:量化分析与投资,通过数学模型实现决策优化。
  • 科学研究:实验数据的数字化分析。
  • 信号处理:减少连续信号离散化时的误差。

扩展阅读:

  • LLMForEverybody/04-第四章-量化/10分钟理解大模型的量化.md at main · luhengshiwo/LLMForEverybody · GitHub
2)模型部署

大语言模型(LLM)的部署方案可以根据目标设备的硬件资源进行优化,以确保最佳性能和用户体验。不同的设备类型——如个人电脑、服务器、移动设备和嵌入式系统——具有各自的特点和限制,因此需要采用针对性的方法来部署这些复杂的AI模型。以下是针对不同硬件资源的合理部署方案概述:

a)高性能计算环境下的部署

对于拥有强大计算能力的服务器或工作站,这类环境通常配备有多个GPU或TPU,并且内存充足,可以支持大规模模型的训练与推理。在这种情况下,可以选择部署完整的大型语言模型,利用分布式训练框架(如Horovod、DeepSpeed)来加速模型训练过程。此外,还可以考虑使用混合精度训练技术(例如FP16),以减少显存占用并加快训练速度。

  • 推荐工具:Hugging Face Transformers, PyTorch Lightning, DeepSpeed
  • 应用场景:科研机构、企业级应用开发

扩展阅读:

  • 大模型训练及推理【硬件选型指南】及 GPU 通识_gpu 大模型-CSDN博客
b)普通桌面计算机上的部署

当目标是普通的家用或办公用PC时,虽然它们可能不具备专用的AI加速器(如GPU),但现代CPU也能够胜任一定规模的语言模型推理任务。为了提高效率,可以通过量化模型参数(INT8/INT4)、剪枝冗余连接等方式来压缩模型大小,从而降低对计算资源的需求。同时,也可以探索基于CPU优化的推理引擎(如ONNX Runtime、Intel OpenVINO),这些工具能够在不牺牲太多准确性的前提下显著提升推理速度。

  • 推荐工具:ONNX Runtime, Intel OpenVINO, LLaMA C++
  • 应用场景:小型企业和个人开发者

扩展阅读:

  • 7种大模型的部署方法汇总!零基础入门到精通,收藏这篇就够了_leah126-Triton中文社区
c)移动设备上的部署

移动平台由于功耗和散热条件的限制,无法承载过于庞大的神经网络结构。因此,在安卓或iOS设备上部署LLM时,应该优先考虑轻量级版本的预训练模型,或是通过MLC LLM等解决方案实现高效的本地化部署MLC LLM允许将任意语言模型编译成适合特定硬件架构的形式,使得即使是在ARM架构处理器上也能流畅运行。另外,利用移动端特有的API(如Android NDK、iOS Metal API)进一步优化性能也是可行的选择之一。

  • 推荐工具:MLC LLM, TensorFlow Lite, Core ML
  • 应用场景:智能手机应用程序、平板电脑游戏

扩展阅读:

  • 陈天奇等人新作 MLC LLM 能在任何设备上编译运行大语言模型,如何理解这一技术?有哪些应用场景? - 知乎

  • 牛!手机上轻松部署大模型全攻略!

d)边缘计算设备上的部署

边缘计算是指在靠近数据源的地方处理信息,而不是将所有数据发送回云端数据中心。这种方法不仅减少了延迟,还提高了隐私保护水平。对于那些安装了低功耗SoC芯片(如Raspberry Pi、NVIDIA Jetson系列)的物联网(IoT)装置而言,可以通过裁剪模型结构、引入知识蒸馏等手段构建出适合边缘侧执行的小型化模型。这样一来,即使在网络连接不稳定的情况下,也能保证基本功能的正常运作。

  • 推荐工具:TensorFlow Lite for Microcontrollers, Edge Impulse, Ollama
  • 应用场景:智能家居控制系统、工业自动化生产线

扩展阅读:

  • 大语言模型移动边缘智能技术全面综述:技术背景、端云协同、部署框架、经验总结_人工智能_程序猿李巡天-华为开发者空间
e)云服务中的部署

如果不想自行搭建硬件设施,或者希望获得更灵活的服务模式,则可以选择利用公共云提供商(如阿里云、AWS、Google Cloud Platform)提供的托管式LLM服务。这种方式的优势在于用户无需担心底层基础设施维护问题,同时可以根据实际需求动态调整计算资源分配。云服务商往往还会提供一系列增值服务,如自动扩展、日志监控等,帮助简化管理工作流程。

  • 推荐工具:阿里云EAS, AWS SageMaker, Google AI Platform
  • 应用场景:初创公司快速原型验证、在线教育平台

综上所述,根据具体的应用场景和技术要求,选择合适的部署策略至关重要。无论是追求极致性能还是注重成本效益,都有相应的技术和工具可以帮助我们在各种类型的硬件平台上成功部署大语言模型。值得注意的是,随着技术的进步,未来可能会出现更多创新性的解决方案,进一步拓宽LLM的应用范围

扩展阅读:

  • 通过EAS部署LLM大语言模型_人工智能平台 PAI(PAI)-阿里云帮助中心

更多参考:

  • LLMForEverybody/02-第二章-部署与推理/10分钟私有化部署大模型到本地.md at main · luhengshiwo/LLMForEverybody · GitHub
  • LLMForEverybody/02-第二章-部署与推理 at main · luhengshiwo/LLMForEverybody · GitHub
3)模型推理

推理框架的主要作用是加速推理,通过提高效率、降低成本和优化性能,解决以下问题:

  1. 计算和内存需求:通过优化减少资源占用,适配移动设备、边缘计算等资源有限场景。
  2. 实时性要求:降低推理延迟,提升用户体验,适用于语音助手、实时翻译等场景。
  3. 部署成本降低:通过推理加速,支持更低成本的硬件部署,扩大模型应用范围。
  4. 系统性能优化:优化内存带宽与计算单元利用率,提升整体推理效率。

a)推理加速的技术
  1. 提高计算效率

    MQA (Multi Query Attention)
    并行处理多个查询向量的注意力分布,共享Key和Value矩阵,大幅减少参数量并加快生成速度。

  2. 减少计算量

    GQA (Group Query Attention)
    通过分组计算,减少存储和计算开销,尤其适用于大上下文窗口或批处理。

  3. 降低复杂度

    Flash Attention
    使用分块计算和重计算避免构建大型注意力矩阵,提升计算速度和内存效率。

  4. 减少重复计算

    KV Cache (键值缓存)
    缓存重复推理的键值对,避免重复计算,提升推理效率。

  5. 提高吞吐量

    Continuous Batching (连续批处理)
    连续处理多输入样本,更高效利用GPU内存,减少空闲时间,提升整体速度。

b)常用的推理框架
框架名称简介链接
vLLM基于PagedAttention的框架,通过分页处理注意力计算实现高效推理,减少计算和内存需求。vLLM 官方文档
Text Generation Inference (TGI)Hugging Face开发的生产级框架,支持在本地以服务形式运行大模型,通过Rust和Python优化文本生成任务。TGI 官方文档
TensorRT-LLMNVIDIA推出的库,通过量化、内核融合、动态批处理等优化技术,显著提升大模型在GPU上的推理性能,提升速度最高达8倍。TensorRT-LLM GitHub
Ollama提供统一的Modelfile打包格式,简化本地LLM部署流程,使模型配置和使用更加方便,即使对非技术用户也很友好。Ollama 官网
DeepSpeed微软推出的优化库,支持大模型训练与推理加速,提供延迟优化和吞吐量提升功能,是性能优化的一站式解决方案。DeepSpeed 官方网站
华为 CANN异构计算架构CANN(Compute Architecture for Neural Networks)是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。昇腾CANN 8.0 开发指南导读

NoteCANN 与 Ollama,vLLM推理框架的比较

  • 虽然Ollama和vLLM都利用了模型量化等编译期优化技术来提升推理效率,但它们不仅仅是停留在编译层面。它们同样涉及运行时的优化策略,比如如何更好地利用现有硬件资源、如何有效管理内存以及如何处理并发请求等问题。

  • 相比之下,CANN则更加侧重于整个AI工作流的全面优化,从硬件到软件栈的各个层级都有所覆盖,旨在提供一个集成化的解决方案来加速AI任务的执行。CANN的核心技术

  • 因此,可以说CANN不仅限于硬件层面的加速,还包括软件层面的深度优化;而Ollama和vLLM虽然也涉及到硬件层面的优化,但更多是围绕着如何让大型模型在不同的硬件环境中高效运行这一目标展开的

扩展阅读:

  • LLMForEverybody/02-第二章-部署与推理/大模型推理框架(一)综述.md at main · luhengshiwo/LLMForEverybody · GitHub

  • [译] 大模型推理的极限:理论分析、数学建模与 CPU/GPU 实测(2024)

行业动态:

  • 2024-10-17 昇腾CANN 8.0正式发布,多项核心技术引领大模型原生创新

5、应用开发

1)开源LLM应用框架

以下是关于 LangChain、LlamaIndex、Haystack 和 AutoGen 四个开源框架的整理:

框架名称框架简介Star 收藏数访问链接
LangChain由 Harrison Chase 于 2022 年创建的开源 Python 框架,用于构建由大型语言模型驱动的应用程序。

掘金
截至 2024 年 11 月,GitHub 上的 Star 数量为 60.1k。GitHub - langchain-ai/langchain
LlamaIndex一个开源工具,旨在将大型语言模型与外部数据源连接,提供数据检索和索引功能,帮助开发者构建高效的 LLM 应用。截至 2024 年 11 月,GitHub 上的 Star 数量为 20.5k。GitHub - run-llama/llama_index
Haystack一个用于构建端到端问答系统的开源框架,支持从多种数据源中检索信息,并利用语言模型生成答案。截至 2024 年 11 月,GitHub 上的 Star 数量为 8.8k。GitHub - deepset-ai/haystack
AutoGen一个开源框架,旨在简化大型语言模型的自动化生成任务,提供模块化组件,帮助开发者快速构建和部署 LLM 应用。截至 2024 年 11 月,GitHub 上的 Star 数量为 1.2k。GitHub - microsoft/autogen

扩展阅读

  • A Comparison of Open Source LLM Frameworks for Pipelining
2)开源LLM低代码项目

以下是关于Botpress Cloud,Danswer,Flowise,和Dify Cloud的 LLM 低代码项目的整理:

框架名称框架简介Star 收藏数访问链接
Botpress CloudBotpress 是一个开源的聊天机器人构建平台,提供了易于使用的界面和强大的功能,支持多种消息传递渠道。Botpress Cloud 是其云端版本,提供托管服务,简化了部署和维护。由于 Botpress cloud 是托管服务,其 Star 收藏数不适用。https://botpress.com/cloud
DanswerDanswer 是一个开源的问答系统,旨在通过自然语言处理技术,从文档中提取答案,帮助用户快速获取所需信息。截至 2025 年 1 月,Danswer 的 GitHub 仓库有 2.5k 个 Star。GitHub - onyx-dot-app/onyx: Gen-AI Chat for Teams - Think ChatGPT if it had access to your team's unique knowledge.
FlowiseFlowise 是一个开源的低代码工具,旨在帮助用户构建和部署工作流应用程序,支持与多种数据源和服务的集成,简化了开发过程。截至 2025 年 1 月,Flowise 的 GitHub 仓库有 2.2k 个 Star。GitHub - FlowiseAI/Flowise: Drag & drop UI to build your customized LLM flow
Dify CloudDify 是一个开源的低代码平台,提供了构建、部署和管理应用程序的工具,支持多种编程语言和框架。Dify Cloud 是其云端版本,提供托管服务,简化了应用程序的交付和维护。由于 Dify Cloud 是托管服务,其 Star 收藏数不适用。https://dify.ai/

扩展阅读

  • A Comparison of Open Source LLM Frameworks for Pipelining
3)开源RAG工具

以下是关于Typesense ,Verba,Inkeep的 RAG(检索增强生成)工具的整理:

框架名称框架简介Star 收藏数访问链接
TypesenseTypesense 是一个快速、容错的搜索引擎,旨在构建令人愉悦的搜索体验。它是 Algolia 和 Pinecone 的开源替代方案,也是一个更易于使用的 ElasticSearch 替代方案。21.8kGitHub - typesense/typesense
VerbaVerba 是一个开源的 RAG 框架,旨在通过集成检索和生成模型来增强文本生成的准确性和相关性。暂无数据https://github.com/verba/verba
InkeepInkeep 是一个用于构建智能文档搜索和问答系统的工具,支持多种数据源的集成和高效的检索功能。暂无数据https://github.com/inkeep/inkeep

扩展阅读

  • A Comparison of Open Source LLM Frameworks for Pipelining
  • Github上的十大RAG(信息检索增强生成)框架

四、关于LLM在各行业中的研究

  • 大模型工业场景应用及知识增强技术初探

相关文章:

  • BLE协议全景图:从0开始理解低功耗蓝牙
  • IPD流程体系-TR3评审要素表
  • [蓝桥杯]阶乘求值【省模拟赛】
  • 细说C语言将格式化输出打印至标准输出流的函数 printf、_printf_l、wprintf、_wprintf_l
  • python训练 60天挑战-day41
  • Day41 Python打卡训练营
  • 堆与堆排序及 Top-K 问题解析:从原理到实践
  • 《信号与系统》第 5 章 离散时间傅里叶变换
  • 德拜温度热容推导
  • 如何配置国内docker镜像源?
  • STM32F103通过Zigbee实现多分用户向主用户发送信息
  • 360浏览器设置主题
  • 法规解读——GB/T 前向碰撞预警功能FCW
  • 头歌java课程实验(Java面向对象 - 包装类)
  • 【python】uv管理器
  • 传统液晶瓶颈待破?铁电液晶如何实现显示技术逆袭
  • HomeKit 基本理解
  • 蓝桥杯java2021年十二届国赛大学A组真题答案整理
  • 如何手搓扫雷(待扩展)
  • [SC]SystemC在CPU/GPU验证中的应用(四)
  • 网站建设用素材/怎么制作网页页面
  • 网站建设中 敬请期待 源码/百度关键词检测工具
  • 网站首页改版/百度广告推广平台
  • 做网站需要什么基础/宁德市房价
  • 网站建设企业文化/搜索引擎优化特点
  • 余姚市城乡建设局网站/上海seo顾问