【推理优化】超详细!AIGC面试系列 大模型推理系列(2)-程序员宅基地

技术标签: 面试  AIGC面试  人工智能  AIGC  gpt  

本期问题聚焦于大模型的推理优化技术

有哪些常见的大模型推理优化技术

  1. 混合精度:通过结合FP16+FP32或BF16+FP32进行训练,可以减少模型在显存中占用的空间,从而加速推理过程。
  2. DeepSpeed分布式:使用ZeRO-1、ZeRO-2、ZeRO-3等技术,可以在多张GPU上分布式存储权重、梯度和优化器状态,降低单个GPU的显存占用。
  3. Torch FSDP + CPU Offloading:通过在推理时将部分数据从GPU转移到CPU,可以有效地管理显存使用。
  4. 3D并行:结合数据并行、模型并行和流水线并行,可以在多个维度上优化模型的训练和推理。
  5. INT8模型量化:通过对模型进行量化,使用更低的精度来存储和计算,从而减少模型大小和加速推理。
  6. 混合专家训练(Mixed-of Experts,MoE):每次只对部分参数,可以减少训练和推理时的计算量。
  7. Flash Attention:一种优化的注意力机制,可以减少推理时的计算量。

References

  1. 太通透了!大模型训练和推理优化技术最全汇总! - 知乎
  2. 大模型常见推理框架简介:vLLM、Tensorrt-LLM、DeepSpeed、Text Generation Inference | 数据 …
  3. 大模型推理加速常用手段 - 百度文库
  4. 大语言模型推理加速技术:模型压缩篇 - 知乎 - 知乎专栏
  5. LLM 大模型推理加速:技术解析与实践 - InfoQ 写作社区

介绍下通过流水线处理技术来加速大模型推理方案

流水线处理技术通过将模型推理过程分解成多个阶段,并行执行,从而提高整体的处理速度和效率。一些关键点:

  1. 分布式并行:大模型推理通常依赖于分布式并行技术,包括数据并行、模型并行、流水线并行和张量并行。这些技术通过在多个计算节点上分配任务来提高计算效率。

  2. 流水线并行(Pipeline Parallelism):这种方法将模型纵向拆分,每个GPU只包含模型的一部分层,数据在一个GPU完成运算后,传给下一个GPU继续计算。这样可以在多个GPU上同时进行不同阶段的计算,提高资源利用率。

  3. 张量并行(Tensor Parallelism):将模型横向拆分,每一层的计算都需要多个GPU合作完成。这种方式适用于单个GPU无法容纳整个模型的情况。

  4. 优化技术:包括层融合(Layer Fusion),减少数据传输并增加数学密度,以及自回归模型的推理优化,例如激活缓存(Activation Caching),以减少重复计算的成本。

  5. 推理过程:大模型推理分为prefill和decoding两个阶段。Prefill阶段计算用户输入并生成KV缓存,decoding阶段则基于已知输入序列和上一步预测出来的词计算下一个最可能的词汇的概率分布。

  6. 性能评价指标:评价大模型推理性能的指标包括吞吐量(Throughput)、首字延迟(First Token Latency)、延迟(Latency)和每秒请求数(QPS)。

通过这些技术和优化方法,可以显著提升大模型推理的速度和效率。例如,NVIDIA的FasterTransformer就是一个专门为Transformer架构设计的推理加速引擎,它利用了流水线并行和张量并行技术来加速大模型的推理过程。

References

  1. 大模型训练与推理优化技术详解 - 百度智能云
  2. AI大模型推理过程和优化技术 - 知乎 - 知乎专栏
  3. 大模型推理学习记录 - 51CTO博客
  4. 目前业界大模型推理框架很多,各有什么优缺点,应该如何选择? - 知乎
  5. 大模型推理速度飙升3.6倍,「美杜莎」论文来了,贾扬清:最优雅加速推理方案之一 - 知乎

介绍下并行计算技术来加速大模型推理的方案

一些主要的并行计算策略:

  1. 数据并行技术(Data Parallelism):这种技术将每批输入的训练数据在多个工作器(worker)之间平分,不同的样本在不同的GPU设备上完成前向推理和反向传播计算。在传播后,需要通信并规约梯度,以保证在各个工作器上进行相同的更新。

  2. 模型/张量并行技术(Model/Tensor Parallelism):在多个工作器之间划分模型的各个层,即不同层分配到不同的GPU设备上分别完成计算。模型并行性的计算和通信方法因模型结构而异,实际实现上有很大工作量,针对不同的大型语言模型(LLM)需要分别适配。

  3. 流水并行技术(Pipeline Parallelism):流水线并行通过分阶段运行模型,不同阶段之间可以流水化执行,以提高GPU利用率并减少内存消耗。

  4. 混合并行训练:结合以上几种并行技术,可以进一步优化大模型的推理和训练过程。例如,DeepSpeed框架就提供了多种并行策略来加速大模型的推理。

  5. 推理自适应并行性(Inference-adapted parallelism):允许用户通过适应多GPU推理的最佳并行策略来有效地服务大型模型,同时考虑推理延迟和成本。

  6. 推理优化的CUDA内核(Inference-optimized CUDA kernels):通过深度融合和新颖的内核调度充分利用GPU资源,从而提高每个GPU的效率。

References

  1. DeepSpeed 通过系统优化加速大模型推理 - 知乎 - 知乎专栏
  2. 大语言模型推理加速技术:计算加速篇 - 知乎 - 知乎专栏
  3. 大模型训练与推理优化技术详解 - 百度智能云
  4. 大模型分布式并行技术:从理论到实践-百度开发者中心
  5. 大模型推理加速调研(框架、方法) - 知乎 - 知乎专栏

有哪些通过硬件来加速大模型推理的方式?

加速大模型推理的硬件方法有多种,以下是一些主要技术及其简介:

  1. vLLM (Virtual Large Language Model)

    • 开发者:Nvidia
    • 核心思想:将模型的一部分保存在内存或硬盘上,只将当前计算所需的部分加载到GPU显存中,打破GPU显存限制。
    • 优势:支持PyTorch和FasterTransformer后端,可无缝适配现有模型。
  2. Tensorrt-LLM

    • 开发者:Nvidia
    • 特点:在TensorRT推理引擎基础上,针对Transformer类大模型推理优化。
    • 优势:支持多种优化技术,如kernel融合、矩阵乘优化、量化感知训练等,提升推理性能。
  3. DeepSpeed-Inference

    • 开发者:微软
    • 特点:提供推理加速能力,通过内存优化、计算优化、通信优化降低推理延迟和提升吞吐。
    • 优势:支持多GPU横向扩展,单卡可推理数百亿参数模型。
  4. Text Generation Inference (TextGen)

    • 开发者:Hugging Face
    • 特点:为自然语言生成模型提供高性能推理。
    • 优势:高度优化的核心代码,支持多GPU多节点扩展。

这些技术在降低显存占用、提升计算效率、简化开发流程等方面各有侧重,为大模型推理提供了多样化选择。软硬件协同设计、定制化推理芯片等也是值得关注的发展方向。

References

  1. 大模型常见推理框架简介:vLLM、Tensorrt-LLM、DeepSpeed、Text Generation Inference | 数据 …
  2. 进我的收藏夹吃灰吧:大模型加速超全指南来了 | 机器之心
  3. 迈向100倍加速:全栈Transformer推理优化 - 知乎 - 知乎专栏
  4. 在 CPU 上高效执行大语言模型的推理任务[译] | 宝玉的工程技术分享

模型量化是如何加速大模型推理的?

模型量化通过将模型的浮点数参数转换为低比特的整数来减少模型的大小和计算需求。这样做可以减少内存占用、降低功耗,并在支持整型计算优化的硬件上提高推理速度。具体来说,模型量化通常涉及以下几个方面:

  1. 参数减少:通过使用更少的位来表示每个权重,例如从32位浮点数(float32)转换为8位整数(int8),模型的大小可以显著减小。
  2. 计算优化:整数运算通常比浮点运算要快,特别是在专门为低比特运算设计的硬件上。
  3. 内存带宽降低:量化模型需要的内存带宽更小,因此数据传输更快,可以提高整体的推理速度。
  4. 功耗降低:由于内存访问和计算需求的减少,量化模型在运行时消耗的能量更少。

量化可以是对称的,也可以是非对称的,并且可以通过量化感知训练来进一步优化,以最小化量化过程中的精度损失。在某些情况下,量化可能会导致推理速度降低,尤其是当底层硬件没有针对整型计算进行优化时。但通常情况下,量化能够在不牺牲太多精度的情况下提高推理速度。

此外,还有一些其他技术可以与量化结合使用,例如混合精度训练分布式训练参数有效性学习等,以进一步提高大模型在有限计算资源下的推理效率。

References

  1. LLM推理加速方案介绍和实验总结 - 知乎 - 知乎专栏
  2. 目前针对大模型进行量化的方法有哪些? - 知乎
  3. 太通透了!大模型训练和推理优化技术最全汇总! - 知乎
  4. 目前业界大模型推理框架很多,各有什么优缺点,应该如何选择? - 知乎
  5. 2080 Ti就能跑70B大模型,上交大新框架让LLM推理增速11倍-腾讯云开发者社区-腾讯云

有哪些通过缓存来加速大模型推理的方式?

通过缓存来加速大模型推理的方式主要包括以下几种技术:

  1. KV Cache
    KV Cache是一种通过缓存Attention中的Key(K)和Value(V)来实现推理优化的方法。在生成过程中,仅使用输入序列中的最后一个token的注意力表示来预测下一个token,而模型会并行计算所有token的注意力表示,产生大量冗余计算。KV Cache通过缓存历史输入的token的K和V,避免每步生成都重新计算历史token的K和V以及注意力表示,从而提升推理速度。

  2. PagedAttention
    PagedAttention是vLLM推理框架中的核心技术,它通过高效地管理attention中缓存的张量来解决LLM服务中内存的瓶颈问题。传统的注意力算法需要将所有输入Token的注意力键和值张量存储在GPU内存中以生成下一个Token,而PagedAttention通过对KV Cache的有效管理,减少了内存压力并提高了推理性能。

  3. FlashAttention
    FlashAttention是一种用于优化Transformer模型推理的技术,它通过改进attention计算来减少内存占用和提高计算效率。这种方法特别适用于处理大规模的模型和数据集。

  4. MQAGQA
    这些技术也是针对大模型推理优化的方法,但具体细节较少。它们可能涉及到更高效的内存管理和计算优化策略。

这些技术通过不同的方式减少了在推理过程中的冗余计算和内存占用,从而加快了大模型的推理速度。

References

  1. 社区供稿 | 图解大模型推理优化之 KV Cache - Hugging Face - OSCHINA - 中文开源技术交流社区
  2. 目前业界大模型推理框架很多,各有什么优缺点,应该如何选择? - 知乎
  3. 大模型——推理优化——KV Cache-程序员宅基地
  4. 大模型推理加速调研(框架、方法) - 知乎 - 知乎专栏

vLLM 如何优化大模型并行推理加速

在优化大模型并行推理加速方面,vLLM采用了多种策略来提高效率和速度。以下是一些关键的优化方法:

  1. 模型压缩:通过模型参数量化,减少内存容量与带宽占用,从而提高推理速度。量化可以在训练过程中(QAT),微调阶段(QAF),或训练后(PTQ)进行。

  2. KV cache量化:在推理时,将中间结果的key和value量化后压缩存储,以增加样本吞吐。

  3. 底层优化:包括算子融合以减少kernel调用,以及使用C++实现模型推理来提高运行速度。

  4. 分布式并行推理:通过张量并行(TP)、流水线并行(PP)等技术,降低Latency并提高Throughput。

  5. 解码方式优化:如Medusa、SpecInfer、Lookahead Decoding等方法,通过并行计算和推理预测来提高解码速度。

  6. CUDA核心优化:vLLM针对CUDA核心进行了优化,确保了速度与效率。

  7. 推理内核引擎:vLLM实现了一个推理内核引擎(LLMEngine),在此基础上封装了离线批处理和在线推理服务的调用方法。

References

  1. LLM推理加速方案介绍和实验总结 - 知乎 - 知乎专栏
  2. 揭秘大模型推理加速工具:vLLM的实践与应用
  3. 图解大模型计算加速系列:vLLM源码解析1,整体架构 - 知乎
  4. LLM大模型推理加速实战:vllm、fastllm与llama.cpp使用指南
  5. LLM大模型推理加速实践:vLLM与Docker的完美结合

什么是 PagedAttention?

PagedAttention是一种创新技术,旨在显著减少大型语言模型(LLM)键值(KV)缓存的内存占用,从而使LLM更加内存高效和易于访问。这项技术由Kwon等人在他们的论文《Efficient Memory Management for Large Language Model Serving with PagedAttention》中提出。它通过将每个序列的KV缓存分割成更小、更易管理的“页面”或块来实现,每个块包含固定数量的令牌的键值向量。这样,KV缓存可以在注意力计算期间更有效地加载和访问。

简而言之,PagedAttention通过分区KV缓存到更小的块,并利用查找表进行高效访问,解决了在服务LLM时面临的显著内存挑战。这种方法不仅提高了内存效率,还增加了GPU在内存受限工作负载上的利用率,从而支持更多的推理批次。

References

  1. What is PagedAttention? - Hopsworks
  2. PagedAttention - Hugging Face

PagedAttention 技术细节

PagedAttention 是一种用于大型语言模型服务的高效内存管理技术。它的设计灵感来自操作系统中的虚拟内存分页管理技术,允许在非连续空间存储连续的KV张量。这项技术通过将自注意力机制的计算过程分解为多个较小的计算任务,实现了计算资源的有效利用。同时,采用分页技术避免了在计算过程中产生过多的中间结果,从而降低了内存消耗。

PagedAttention 技术的核心是将KV序列切分成多个固定长度的block,并在内存空间中分开保存。在计算Attention时,PagedAttention Kernel能够高效地定位并获取这些block。这种方法不仅提高了服务吞吐率,而且在模型用同一个prompt生成多个输出时,能够共用一个缓存。不同sequence能够共享同一个block,PagedAttention会通过Copy-and-write机制来确保安全的共享。

具体到CUDA实现,PagedAttention在vLLM推理框架中使用了特定的CUDA代码来优化attention计算。这包括使用页式管理KVCache以增加服务吞吐率,并利用页式内存管理同时尽量降低其对延迟的负面影响。

References

  1. vLLM皇冠上的明珠:深入浅出理解PagedAttention CUDA实现 - 知乎
  2. 图解大模型计算加速系列之:vLLM核心技术PagedAttention原理 - 知乎
  3. PagedAttention - 知乎 - 知乎专栏
  4. vLLM框架原理——PagedAttention - 知乎
  5. vLLM:利用PagedAttention实现高效、快速且经济的LLM服务

什么是Flash Attention?

Flash Attention是一种用于加速注意力计算和减少内存占用的方法。它主要应用于大型语言模型(LLM),如GPT-3、GPT-4等。Flash Attention通过利用底层硬件的内存层次结构,例如GPU的内存层次,来提高计算速度和减少内存访问开销。

其核心原理是将输入数据分块,并在每个块上执行注意力操作,从而减少对高带宽内存(HBM)的读写操作。具体来说,Flash Attention使用平铺(tiling)和重计算(recomputation)等技术,将输入块从HBM加载到SRAM(快速缓存)中,在SRAM上执行注意力操作后,再将结果更新回HBM。这样做可以减少内存读写量,实现2-4倍的时钟时间加速。

Flash Attention的另一个优点是在计算softmax函数时,不需要全量输入数据,可以分段计算。在反向传播时,不存储attention matrix(N^2的矩阵),而是只存储softmax归一化的系数,从而进一步节省内存。这使得Flash Attention在处理大规模数据和自然语言处理任务中具有很大的潜力。

References

  1. Flash Attention原理详解(含代码讲解) - 知乎 - 知乎专栏
  2. 机器学习新模型:FlashAttention简介 | 数据学习者官方网站(Datalearner)
  3. Flash Attention:高效注意力机制的突破与应用-阿里云开发者社区
  4. 论文分享:新型注意力算法FlashAttention - 知乎 - 知乎专栏

Flash Attention 技术细节?

Flash Attention 是一种用于加速注意力计算并减少内存占用的技术。它已经被应用在多个大型语言模型上,如 GPT-3、GPT-4 等。这项技术的核心是利用底层硬件的内存层次结构,通过将输入数据分块并在每个块上执行注意力操作,从而减少对高带宽内存(HBM)的读写操作。具体来说,Flash Attention 使用平铺(tiling)和重计算(recomputation)等技术,将输入块从 HBM 加载到 SRAM(快速缓存)中,在 SRAM 上执行注意力操作后,再将结果更新回 HBM。这样做可以显著减少内存读写量,实现 2-4 倍的时钟时间加速。

Flash Attention 的计算过程可以用以下数学公式表示:

S = Q K ⊤ ∈ R N × N , P = s o f t m a x ( S ) ∈ R N × N , O = P V ∈ R N × d \mathbf{S} = \mathbf{Q}\mathbf{K}^\top \in \mathbb{R}^{N \times N}, \quad \mathbf{P} = \mathrm{softmax}(\mathbf{S}) \in \mathbb{R}^{N \times N}, \quad \mathbf{O} = \mathbf{P}\mathbf{V} \in \mathbb{R}^{N \times d} S=QKRN×N,P=softmax(S)RN×N,O=PVRN×d

其中, Q , K , V \mathbf{Q}, \mathbf{K}, \mathbf{V} Q,K,V 是输入序列, N N N 是序列长度, d d d 是 token 尺寸。Flash Attention 通过优化这些计算步骤,提高了处理长序列时的效率和速度。

References

  1. Flash Attention原理详解(含代码讲解) - 知乎 - 知乎专栏
  2. GitHub - Dao-AILab/flash-attention: Fast and memory-efficient exact …
  3. 机器学习新模型:FlashAttention简介 | 数据学习者官方网站(Datalearner)
  4. 人工智能 - FlashAttention算法详解 - deephub - SegmentFault 思否
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dfagag/article/details/137978567

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文