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

LLM 部署(1)——LLM 部署框架对比

1 Ollama

一个专注于简化大型语言模型(LLM)在本地部署和运行的开源框架。

  • 简化部署:Ollama使用Docker容器技术来简化LLM的部署过程

  • 捆绑模型组件:Ollama将模型权重、配置和数据捆绑到一个包中,称为Modelfile,这有助于优化设置和配置细节,包括GPU使用情况。

  • 支持多种模型:Ollama支持多种大型语言模型,并允许用户根据特定需求定制和创建自己的模型。

  • 跨平台支持:Ollama支持macOS和Linux平台,Windows平台。

  • 命令行操作:安装完成后,用户可以通过简单的命令行操作启动和运行大型语言模型。

  • ollama 对于内存和显存资源有一定的需求。可以应用于多种场景,如聊天机器人、文本生成、问答系统等。

  • 提供了简洁的API和类似ChatGPT的聊天界面

  • 运行时占用资源少,适合在本地计算机上运行。

2 vLLM

vLLM 是一个基于Python的LLM推理和服务框架,旨在提升推理速度、降低显存占用,并更好地满足实际应用需求。它通过创新的PagedAttention技术、连续批处理、CUDA核心优化以及分布式推理支持,显著提高了LLM的推理性能。

  • PagedAttention技术:通过内存管理技术,PagedAttention能够将注意力机制中的键(keys)和值(values)存储在不连续的显存空间中,从而减少显存碎片,提高显存利用率。

  • 连续批处理:vLLM能够连续批处理接入的请求,充分利用GPU资源,提高吞吐量。

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

  • 分布式推理支持:支持分布式推理,能够在多台GPU上并行运行模型,进一步提高推理速度。

  • 支持多种模型格式:包括PyTorch、TensorFlow等

  • 高性能推理引擎:支持在线推理和批量推理,能够快速响应大量并发请求。

  • 提供丰富的接口和输出格式,方便用户将推理结果集成到实际应用中。

部署步骤通常包括:

  • 安装虚拟环境(如conda或virtualenv)
  • 安装必要的依赖库(如torch、transformers等)
  • 下载vLLM源码并解压到本地目录
  • 配置模型参数,包括模型路径、输入输出数据类型等
  • 启动vLLM服务,并指定监听端口等参数

3 LightLLM

LightLLM是一个基于Python的轻量级、高性能的LLM(大型语言模型)推理和服务器框架。它借鉴并整合了FasterTransformer、TGI、vLLM和FlashAttention等优秀开源实现。

  • 三进程异步协作:LightLLM采用三进程架构,将词法化(tokenize)、模型推断和词法还原(detokenize)三大步骤解耦,通过异步协作的方式运行。提高了GPU的利用率,减少了数据传输带来的延迟。
  • Nopad无填充操作:LightLLM支持Nopad无填充操作,能够更有效地处理长度差异较大的请求,避免了无效填充,从而提高了资源利用率。
  • 动态批处理:系统能够动态调整请求批次的大小,以适应不同长度的输入请求
  • FlashAttention集成:通过集成FlashAttention技术,LightLLM在保持高速运行的同时,还能有效降低GPU内存使用,优化推理速度。
  • Token Attention:引入了一种以Token为粒度进行kv cache显存管理的特性,通过高性能的算子和高效的显存申请释放方式,有效管理模型推理过程中的显存占用,减少显存碎片化问题。
  • Tensor Parallelism:支持多GPU并行计算,加速推理过程
  • Int8KV Cache:扩大令牌容量,提高系统效率

4 llama.cpp

llama.cpp 旨在优化语言模型在多种硬件上的推理性能。通过优化和量化技术,提高模型在CPU、GPU等硬件上的推理速度和效率。

  • 高性能推理引擎:使用C语言编写的机器学习张量库ggml,高效处理大规模的张量运算,加速模型推理。支持CPU、CUDA和OpenCL,能够在多种硬件上运行
  • 模型量化工具:允许用户将原本的32位浮点数模型参数量化为16位浮点数,甚至是更低精度的8位或4位整数。
  • 服务化组件:提供服务化组件,可以直接对外提供模型的API,便于用户构建自己的应用。
  • 多格式支持:支持多种模型格式,包括PyTorch的.pth、huggingface的.safetensors以及llama.cpp采用的ggmlv3等。

相关文章:

  • 开源身份和访问管理方案之keycloak(三)keycloak健康检查(k8s)
  • ollama更新升级及警告解决
  • 过孔的载流能力
  • 深度解析需求分析:理论、流程与实践
  • 2011-2019年各省地方财政金融监管支出数据
  • 个人博客系统——测试报告
  • Spring 中的 BeanFactory 和 ApplicationContext
  • V-SHOW和箭头函数在VUE项目的踩坑点
  • Excel + VBA 实现“准实时“数据的方法
  • 类与对象(上)
  • 每日一题(小白)字符串娱乐篇16
  • Python星球日记 - 第5天:循环结构
  • 代码随想录算法训练营Day20
  • 【USTC 计算机网络】第三章:传输层 - 面向连接的传输:TCP
  • 【堆排序】 及 【Top-K问题】
  • mysql和sqlite关于data数据的识别问题
  • 关于Ubuntu系统的远程控制及文件传输
  • C++中的匿名函数
  • 毕设论文的分类号与UDC查询的网站
  • 类似于langchain的开发框架有哪些?
  • 把网站内的文本保存到txt怎么做/网站优化排名方法
  • 党内法规制度建设网站/百度关键词怎么做
  • 计算机做网站开发需要什么证书/深圳seo优化排名推广
  • wordpress多站点互相链接/网站关键词排名怎么提升
  • php网站建设安装环境/求职seo推荐
  • 开装潢公司做网站/目前好的推广平台