u013250861
这个作者很懒,什么都没留下…
展开
-
LLM关键函数对比:训练阶段的model(),推理阶段的model(),推理阶段的model.generate()
以下是针对的详细分阶段解释与代码示例,涵盖训练、手动生成、Logits 提取和自动生成,输入均为,目标输出为。代码包含内部实现的简化逻辑。原创 2025-03-12 17:01:19 · 47 阅读 · 0 评论 -
KTransformers:一个灵活的框架,用于体验前沿的 LLM 推理优化
通过用一行代码实现和注入一个优化模块,用户可以访问与 Transformers 兼容的接口、符合 OpenAI 和 Ollama 的 RESTful API,甚至还有一个简化的类似 ChatGPT 的网页用户界面。要使用提供的内核,用户只需创建一个基于 YAML 的注入模板,并在使用 Transformers 模型之前添加对 `optimize_and_load_gguf` 的调用。如果您需要其他功能,请告诉我们。遍历模型的所有子模块,匹配您在 YAML 规则文件中指定的规则,并用指定的高级模块替换它们。原创 2025-02-15 13:25:10 · 647 阅读 · 0 评论 -
LLM推理:预填充阶段(Prefill)
的关键步骤,通过一次性完成所有输入token的Key/Value计算,为解码阶段的高效生成铺平道路。:在生成第一个输出token前,模型需处理完整的输入序列(如用户输入的提示词),计算每个Transformer层中所有输入位置的Key和Value向量,并将其存入KV Cache。:解码阶段生成后续token时,可直接复用预填充阶段缓存的Key/Value,无需重新计算历史token的中间结果,显著降低计算量。:虽然需存储完整的KV Cache,但此时尚未进入内存密集的解码阶段,显存需求相对可控。原创 2025-01-28 09:16:17 · 644 阅读 · 0 评论 -
LLM推理:KV Cache【在训练过程中,KV缓存并不必要(模型在训练时使用教师强制,直接使用真实的目标token进行训练,而不是依赖模型生成的前一个token)】【KV Cache是用在推理阶段】
每个新token的生成都会计算查询(Query)、键(Key)和值(Value),并将新的键值对添加到KV缓存中。KV缓存帮助加速计算,避免重复计算,并维持生成过程中的上下文信息。通过合理管理KV缓存,模型可以更高效地生成长序列并保持上下文的连贯性。LLM推理入门指南②:深入解析KV缓存【LLM】6:大语言模型中的 KV 缓存机制为什么LLM推理加速有KV Cache而没有Q Cache?一文读懂大模型推理必备技术:KV Cache。原创 2025-01-28 09:16:05 · 94 阅读 · 0 评论 -
NTK等价于Kernel Regression
当然,这篇随笔并不只是上面这篇开山之作(NIPS 2018)的阅读笔记,而是融合了我所需要的NTK相关的基本知识。某种意义上写这篇博客有点“不务正业”了,因为和目前想做的内容没有直接相关。之所以决定好好记录一下NTK是因为最近看到的几篇理论文章在推导时都应用了NTK的假设和一部分内容,并且认真了解网络动力学和优化相关的理论更利于随后工作的开展。反正学到就是赚到。原创 2024-01-03 01:03:20 · 1045 阅读 · 0 评论 -
大模型推理:transformers中的generate函数参数配置
辅助理解案例:2、transformers/generation/configuation_utils.py3、transformers/generation/utils.py/GenerationMixin参考资料:transformers中的generate函数解读以beam search为例,详解transformers中generate方法(上)使用预训练模型自动续写文本的四种方法原创 2023-12-07 01:09:39 · 2591 阅读 · 0 评论 -
万字长文,安培架构解析暨RTX3080核弹头知乎首测
编者按:这是我兄弟Cloud原创的RTX3080评测报告。本文无利益相关,属于工作原因接触到的样卡。限于个人水平,差错在所难免,无意当什么KOL,也不标榜客观独立,毕竟这是个人作品,人都有七情六欲,都有喜好厌恶,这不是机器人写的。安培在发布之前,可以说是迷雾重重,特别是在发布前一周,VCZ还煞有介事的放出一张规格图,说RTX 3080和2080TI一样是4352SP,而3090也只是多20%,仅仅有5248SP。也就这样一张规格表,还真忽悠到不少人,我都差点上当。原创 2023-11-23 22:07:31 · 1109 阅读 · 0 评论 -
Triton教程 -- 利用Triton部署你自己的模型
我的模型与 Triton 兼容吗?如果您的模型属于 Triton 支持的后端之一,那么我们可以简单地尝试按照快速入门指南中的描述部署该模型。对于、TensorFlow SavedModel 和 TensorRT 后端,可以使用 Triton 的自动完成功能从模型中推断出最小模型配置。这意味着可能仍会提供 config.pbtxt,但不是必需的,除非您想明确设置某些参数。此外,通过 --log-verbose=1 启用详细日志记录,您可以在服务器日志输出中看到 Triton 在内部看到的完整配置。原创 2023-11-10 01:02:38 · 318 阅读 · 0 评论 -
大模型推理加速工具:vLLM
【代码】大模型推理加速工具:vLLM。原创 2023-11-10 00:34:38 · 553 阅读 · 0 评论 -
AI模型推理框架
四. AI模型推理框架 - 知乎原创 2023-08-31 17:38:25 · 221 阅读 · 0 评论 -
模型部署:量化中的Post-Training-Quantization(PTQ)和Quantization-Aware-Training(QAT)
随着人工智能的不断发展,深度学习网络被广泛应用于图像处理、自然语言处理等实际场景,将其部署至多种不同设备的需求也日益增加。然而,常见的深度学习网络模型通常包含大量参数和数百万的浮点数运算(例如ResNet50具有95MB的参数以及38亿浮点数运算),实时地运行这些模型需要消耗大量内存和算力,这使得它们难以部署到资源受限且需要满足实时性、低功耗等要求的边缘设备。原创 2024-12-15 12:26:28 · 75 阅读 · 0 评论 -
大模型-部署-One API【通过标准的 OpenAI API 格式访问所有的大模型】
使用 MySQL 的部署命令,在上面的基础上添加 `-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"`,请自行修改数据库连接参数,不清楚如何修改请参见下面环境变量一节。如果上面的镜像无法拉取,可以尝试使用 GitHub 的 Docker 镜像,将上面的。:如果你不知道某个配置项的含义,可以临时删掉值以看到进一步的提示文字。注意,具体的 API Base 的格式取决于你所使用的客户端。,API Key 则为你在 One API 中生成的令牌。原创 2024-11-04 19:38:31 · 167 阅读 · 0 评论 -
大模型-部署-框架01-Xinference【一款性能强大且功能全面的大模型部署与分布式推理框架】
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。除了使用LLM模型的Web界面进行操作外,Xinference还提供了API接口,通过调用API接口来使用LLM模型。原创 2024-11-04 18:56:15 · 130 阅读 · 0 评论 -
大模型-部署-框架02-Ollama【专为在本地机器上便捷部署和运行大型语言模型(LLM)】
在Linux上创建如下配置文件,并配置环境变量 CUDA_VISIBLE_DEVICES 来指定运行 Ollama 的 GPU,再重启 Ollama 服务即可【测试序号从0还是1开始,应是从0开始】。使用 Dify Docker 部署方式的需要注意网络配置,确保 Dify 容器可以访问到localAI 的端点,Dify 容器内部无法访问到 localhost,需要使用宿主机 IP 地址。通过设置OLLAMA_HOST=0.0.0.0,我们可以让Ollama监听所有可用的网络接口,从而允许外部网络访问。原创 2024-11-04 19:28:53 · 200 阅读 · 0 评论 -
大模型-部署-框架03-FastChat
使用FastChat部署大模型流程图假如你已经部署一个Llama3.1-8B的模型,以启动OpenAI API服务为例,各个组件之间的关系Controller负责管理分布式模型实例# 默认端口21001Model Worker是大模型服务实例,它在启动时向Controller注册# 默认端口21002OpenAI API提供OpenAI兼容的API服务,接受请求后,先向Controller获取Model Worker地址,再向Model Worker实例发送请求,最后返回OpenAI兼容的报文。原创 2024-11-04 19:11:03 · 111 阅读 · 0 评论 -
保姆级教程:FastGPT构建个人本地知识库(Docker compose快速部署)
本教程的核心焦点在于简化部署过程。我们将通过 Docker Compose 这一强大工具,快速搭建 FastGPT 驱动的知识库。然而,需要注意的是,教程更多地关注于部署操作本身,而非FastGPT 的深入原理探讨。因此,如果您对 FastGPT 的工作机制和技术细节感兴趣,我强烈建议查阅官方文档进行更深入的学习。FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!原创 2024-11-04 18:17:40 · 194 阅读 · 0 评论 -
快速了解GPU分布通信技术:PCIe、NVLink与NVSwitch
PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,广泛用于连接计算机的各种硬件设备。PCIe4.0是目前较为先进的版本,提供了高达64GB/s的带宽。InfiniBand是一种用于高性能计算的高速互连技术,通过交换机在节点之间直接创建一个专用的受保护通道。InfiniBand适配器通过PCIe接口连接到CPU,另一端通过InfiniBand网络端口连接到InfiniBand子网。原创 2024-11-03 20:27:10 · 172 阅读 · 0 评论 -
安卓端侧大模型MLC-LLM部署全攻略:以InternLM2.5-1.8B为例
上传这一步需要能访问 HuggingFace,可能需要部署代理,如果没有代理可以直接在接下来的配置中使用此链接https://huggingface.co/timws/internlm2_5-1_8b-chat-q4f16_1-MLC 中的模型。可参考 https://llm.mlc.ai/docs/install/mlc_llm.html (如果下载很慢可以取消重新运行一下,或者本地下载了之后拷过去)。在打包之前可以测试模型效果,需要编译成二进制文件,已成功在个人电脑上运行测试代码。原创 2024-08-14 21:04:59 · 285 阅读 · 0 评论 -
MLC-LLM框架的安卓应用部署实战
这里稍微讲解了一些MLC的基本概念,以帮助我们使用和了解 MLC LLM。MLC-LLM 由三个不同的子模块组成:模型定义、模型编译和模型运行。MLC LLM 的三个独立子模块➀ Python 中的模型定义。MLC 提供各种预定义架构,例如 Llama(例如 Llama2、Vicuna、OpenLlama、Wizard)、GPT-NeoX(例如 RedPajama、Dolly)、RNN(例如 RWKV)和 GPT-J(例如MOSS)。开发人员可以仅使用纯 Python 定义模型,而无需接触编码。原创 2024-08-12 00:47:47 · 201 阅读 · 0 评论 -
微调Whisper语音识别模型和加速推理
OpenAI在开源了号称其英文语音辨识能力已达到人类水准的Whisper项目,且它亦支持其它98种语言的自动语音辨识。Whisper所提供的自动语音识与翻译任务,它们能将各种语言的语音变成文本,也能将这些文本翻译成英文。本项目主要的目的是为了对Whisper模型使用Lora进行微调,支持无时间戳数据训练,有时间戳数据训练、无语音数据训练。目前开源了好几个模型,具体可以在openai查看,下面列出了常用的几个模型。原创 2024-06-23 04:02:53 · 500 阅读 · 0 评论 -
深度学习模型部署推理框架1:TensorRT
深度学习模型部署推理框架1:TensorRT。原创 2024-06-22 22:25:21 · 79 阅读 · 0 评论 -
深度学习模型部署推理框架2:ONNXRUNTIME(ORT)
深度学习模型部署推理框架2:ONNXRUNTIME。原创 2024-06-22 22:26:12 · 190 阅读 · 0 评论 -
深度学习模型部署推理框架3:OpenVINO
深度学习模型部署推理框架3:OpenVINO。原创 2024-06-22 22:27:03 · 110 阅读 · 0 评论 -
【NCNN】腾讯ncnn推理框架的简介及安装
ncnn(Ncnn Convolutional Neural Network)是一个轻量级的高性能深度学习框架,由腾讯公司开发。它专门为移动设备和嵌入式设备优化,旨在提供高效的推理性能和低内存占用。以下是ncnn的一些主要特点和优势:轻量级和高性能:ncnn被设计为轻量级框架,具有高效的推理性能。它使用优化的计算图和内存管理策略,以最大程度地减少内存占用和计算开销。跨平台支持:ncnn支持多种操作系统和硬件平台,包括Android、iOS、Linux、Windows等。原创 2024-06-22 21:26:01 · 434 阅读 · 0 评论 -
深度学习模型部署推理框架综述(ONNX/NCNN/OpenVINO/TensorRT)
OpenVINO在模型部署前,首先会对模型进行优化,模型优化器会对模型的拓扑结构进行优化,去掉不需要的层,对相同的运算进行融合、合并以加快运算效率,减少内存拷贝;推理引擎对不同的硬件提供统一的接口,底层实现直接调用硬件指令集的加速库,应用程序开发人员不需要关心底层的硬件实现,即可在不同的硬件平台上加速模型推理。目前,ONNX主要关注在模型预测方面(inferring),将转换后的ONNX模型,转换成我们需要使用不同框架部署的类型,可以很容易的部署在兼容ONNX的运行环境中。这篇文章带你进入模型部署的大门。原创 2024-06-22 21:20:10 · 233 阅读 · 0 评论 -
和H100相比,英伟达的H20、L20 和 L2 芯片性能如何?
据媒体最新报道,英伟达即将推出至少三款新的AI芯片,包括 H20 SXM、PCIe L20 和 PCIe L2,以替代被美国限制出口的H100。这三款芯片均基于Hopper GPU 架构,最高理论性能可达296TFLOP(每秒浮点运算次数,也叫每秒峰值速度)。几乎可以肯定的是,这三款AI芯片均是H100的“阉割版”或“缩水版”。也有媒体称,不过,英伟达已经做出这三款芯片的样品,H20 和 L20预计将于今年 12 月推出,而 L2将于明年 1 月推出。产品采样将于发布前一个月开始。原创 2024-03-11 22:38:22 · 3759 阅读 · 1 评论 -
修复 OpenCV 依赖错误的小工具:OpenCV Fixer【module ‘cv2.dnn‘ has no attribute ‘DictValue‘】
如果你在使用 Python 生态的软件时,遇到了的报错,可以试试看这个小工具。如果你收获的不是某个版本号,而是下面的报错日志,说明你的 Python 软件包存在需要修复的问题。这个问题在社区早些时候有被反馈(),主要原因是在安装numpy时被带入一起安装的版本过旧opencv导致的兼容性问题。比较 Trick 的是我们并不能通过简单执行来更新软件包,需要遵从帖子进行一些手动清理安装,才能将问题解决。。下面讲讲如何使用这个小工具。原创 2024-02-24 12:03:27 · 580 阅读 · 0 评论 -
flash attention2实测
测试的workload除了长序列,还测试了CV里面的场景,例如ViT和Swin等。尤其是Swin有短序列大batch的特点,结果如下 (B代表。, L代表seq_length, A代表num_heads, d代表。原创 2024-02-24 11:18:51 · 286 阅读 · 0 评论 -
NLP-模型压缩-知识蒸馏:TextBrewer工具包
TextBrewer为NLP中的知识蒸馏任务设计,融合了多种知识蒸馏技术,提供方便快捷的知识蒸馏框架。模型无关:适用于多种模型结构(主要面向Transfomer结构)方便灵活:可自由组合多种蒸馏方法;可方便增加自定义损失等模块非侵入式:无需对教师与学生模型本身结构进行修改支持典型的NLP任务:文本分类、阅读理解、序列标注等TextBrewer软标签与硬标签混合训练动态损失权重调整与蒸馏温度调整。原创 2023-06-28 21:32:39 · 428 阅读 · 1 评论 -
AI工程部署(三):K8S【Kubernetes;Docker集群管理工具】【作用:容器管理、服务编排、资源调度、集群管理】
手动docker run创建容器只是个toy,在企业里,往往会使用k8s平台管理容器;k8s是一个容器管理、服务编排、资源调度、集群管理的工具,由谷歌开源,在国内已成为主流;我们开发的服务,最终都将运行在k8s上;一、K8S集群作用容器管理:容器的创建、监控、销毁等生命周期管理服务编排:一个复杂的产品往往是由几十个、甚至几百个微服务协同组成,服务之间的集成、交互等;资源调度:一个服务需要多少cpu mem、gpu资源,当前服务应该被调度到哪台机器;集群管理:k8s可以将几十、几百台机器管理原创 2022-02-13 22:27:50 · 2048 阅读 · 1 评论 -
AI工程部署(二):CI/CD自动化【核心:①流水线:将开发之后的单元测试、构建Docker镜像、接口测试、部署、压测等所有过程定义为流水线;②自动化:将流水线中每个过程编为脚本,可以自动执行】
.gitlab-ci.yml:配置CICD流水线stages: - unit_test - build_image - api_test - deploy_betavariables: PROJECT_REPO_NAME: api-segmentbefore_script: - export ROOT_PATH=$(pwd) - echo 'root path:' $ROOT_PATH - docker login -u $DOCKER_USER -p $DOCK原创 2022-02-12 20:37:19 · 2325 阅读 · 1 评论 -
AI工程部署(一):Docker微服务【标准工作流:①构建阶段(编写Dockerfile,构建镜像; 将镜像push到dockerhub);②部署阶段(从dockerhub上pull镜像; run)】
一、构建镜像1、编写Dockerfile# 声明基础镜像版本,选择pytorch官方镜像FROM pytorch/pytorch:1.3-cuda10.1-cudnn7-runtime# 声明维护者MAINTAINER old-wei <old-wei@gmail.com># 首先拷贝requirements.txt进dockerCOPY ./requirements.txt /requirements.txt# 安装python依赖(如果安装较慢,请更换国内pip源:-i原创 2022-02-12 15:47:17 · 1440 阅读 · 1 评论 -
AI工程部署:服务是如何部署?【①封装成RESTFul或RPC;②打成Docker镜像;③然后通过Gitlab CI/CD,发布到K8S集群】
AI工程部署:服务是如何部署?【①封装成RESTFul或RPC;②打成Docker镜像;③然后通过Gitlab CI/CD,发布到K8S集群】原创 2022-02-13 22:28:15 · 2524 阅读 · 1 评论 -
部署模型:Libtorch使用笔记【Pytorch的C++版本】【把用Pytorch训练好的模型打包保存为.pt格式,使用Libtorch去加载.pt格式模型,在C++工程中去用就好了】
A : Libtorch是pytorch的C++版本,现在的很多大型项目都是用C++写的,想使用训练好的模型,需要通过caffe等方式去集成,比较麻烦。这里pytorch官方提出了Libtorch,我们就可以把pytorch训练好的模型,打包起来,直接在C++工程中去用就好了,相比较caffe等,非常方便!虽然对于许多需要动态性和易迭代性的场景来说,Python是一种合适且首选的语言,但在同样的情况下,Python的这些特性恰恰是不利的。生产环境是一个需要低延迟和有严格部署要求的领域,一般选择C++。原创 2022-04-08 21:07:01 · 2634 阅读 · 1 评论 -
TensorRT:在NVIDIA各种GPU硬件平台下运行的高性能推理C++库【Pytorch->ONNX->TensorRT】【实现神经网络提速(读取ONNX模型并运行)】【目前对ONNX的支持最好】
一、什么是TensorRTTensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。它旨在与TesnsorFlow、Caffe、Pytorch以及MXNet等训练框架以互补的方式进行工作,专门致力于在GPU上快速有效地进行网络推理。我们利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速度。速度提升的比例是比较可观的。借官方的话来说:The cor原创 2022-05-08 22:03:29 · 3542 阅读 · 1 评论 -
ONNX格式(Open Neural Network Exchange):开放神经网络交换【类似json格式】【用于表示深度学习模型的标准,可使模型在不同框架之间转移】【可视化工具:netron】
一、什么是ONNXOpen Neural Network Exchange (ONNX)是开放生态系统的第一步,它使人工智能开发人员可以在项目的发展过程中选择合适的工具;ONNX为AI models提供了一种开源格式。它定义了一个可以扩展的计算图模型,同时也定义了内置操作符和标准数据类型。最初我们关注的是推理(评估)所需的能力。Caffe2, PyTorch, Microsoft Cognitive Toolkit, Apache MXNet 和其他工具都在对ONNX进行支持。在不同的框架之间实现互操作原创 2022-03-10 23:15:00 · 956 阅读 · 0 评论 -
AI模型部署服务搭配【①、triton server + TensorRT/Libtorch;②、Tensorflow Server;③、flask + Pytorch】
常见的服务部署搭配triton server + TensorRT/libtorchflask + PytorchTensorflow Server参考资料:一文详解AI模型部署及工业落地方式原创 2022-05-08 23:35:45 · 977 阅读 · 1 评论 -
Pytorch保存checkpoint(检查点):通常在训练模型的过程中,每隔一段时间就将训练模型信息保存一次【包含模型的参数信息,还包含其他信息,如当前的迭代次数,优化器的参数等,以便用于后面恢复】
通常在训练模型的过程中,可能会遭遇断电、断网的尴尬,一旦出现这种情况,先前训练的模型就白费了,又得重头开始训练。因此每隔一段时间就将训练模型信息保存一次很有必要。而这些信息不光包含模型的参数信息,还包含其他信息,如当前的迭代次数,优化器的参数等,以便用于后面恢复训练。state = { 'epoch' : epoch + 1, #保存当前的迭代次数 'state_dict' : model.state_dict(), #保存模型参数 'optimizer' : optimizer原创 2022-05-09 00:33:06 · 4264 阅读 · 1 评论 -
pytorch保存最终模型方式:①、直接保存模型,加载模型的时候直接把读取的模型给一个参数就行;②、只保存参数,在读取模型参数前要先定义一个模型(模型必须与原模型相同的构造),然后对这个模型导入参数
一、直接保存整个模型并读取第一种方法可以直接保存模型,加载模型的时候直接把读取的模型给一个参数就行。# 创建你的模型实例对象: modelmodel = net()## 保存模型torch.save(model, 'model_name.pth')## 读取模型model = torch.load('model_name.pth')二、只保存模型中的参数并读取## 保存模型torch.save({'model': model.state_dict()}, 'model_name.p原创 2022-05-09 00:29:24 · 913 阅读 · 1 评论 -
Pytorch部署方案(二):利用LibTorch(C++库)来调用训好的模型【trace跟踪PyTorch训练好的模型-->用Libtorc调用PyTorch训练好的模型】
利用C++来调用PyTorch训练好的模型,其实也是利用官方强大的LibTorch库。一、LibTorch的安装虽然说安装,其实就是下载官方的LibTorch包而已,从官方网站中选择PyTorch(1.1),libtorch,以及cuda的版本,其中会出现下载链接,这里为cuda9.0的链接:https://download.pytorch.org/libtorch/cu90/libtorch-shared-with-deps-latest.zip。下载好找个路径解压。解压完放在那不动!!二、PyTo原创 2022-05-08 23:03:34 · 656 阅读 · 1 评论