一、魔塔社区平台介绍

1.1 什么是魔塔社区?

魔塔(ModelScope)是由阿里巴巴达摩院推出的开源模型即服务(MaaS)共享平台,汇聚了计算机视觉、自然语言处理、语音等多领域的数千个预训练AI模型。其核心理念是"开源、开放、共创",通过提供丰富的工具链和社区生态,降低AI开发门槛,尤其为企业本地私有化部署提供了一条高效路径。

ModelScope官网:https://modelscope.cn/home

在这里插入图片描述

1.2 魔塔社区的五大核心优势

  1. 海量模型,即取即用

    覆盖文本生成(如通义千问)、图像识别、语音合成等场景,提供Apache 2.0等商业友好协议模型,支持开发者快速调用API或下载模型权重文件(没有HuggingFace全但是他是国内的呀,支持国产替代原则)。

  2. 私有化部署全链路支持

  • ModelScope SDK:提供模型加载、推理、微调的Python工具包,一行代码即可本地部署。

  • SWIFT框架:支持LoRA等轻量级微调技术,无需昂贵算力即可定制企业专属模型。

  • 容器化封装:结合Kubernetes技术实现生产级高可用部署,保障服务稳定性。

  1. 企业级数据安全

    通过本地化部署规避云端数据泄露风险,支持企业内部网络隔离,特别适合金融、医疗等隐私敏感行业。

  2. 开发者友好生态

  • 详尽的模型文档和实战教程(如图像生成、RAG知识库构建)
  • 活跃的论坛答疑和技术博客共享
  • 定期线上黑客松大赛激励创新
  1. 产学研联动创新

    与高校、研究机构合作开源顶尖模型(如多模态模型OFA),推动技术民主化进程。

在这里插入图片描述

GitHub 地址:https://github.com/moka-ai

官方文档中心:https://moka.ai/docs

魔塔开源大模型榜(中文模型性能对比):https://huggingface.co/spaces/moka-ai/leaderboard

1.3 魔塔社区 vs Hugging Face

维度魔塔社区(Moka Community)Hugging Face
🏷️ 定位中文大模型开源社区,强调国产、中文优化、低门槛落地国际领先的AI模型平台,全球开源 AI 社区中心
🌍 语言支持聚焦中文及国内场景优化以英文为主,支持多语种,中文相对薄弱
🧩 生态组成自研模型 + 中文工具链 + 开源数据集 + 教程文档 + 社区支持模型库 + Transformers 工具包 + Spaces 应用托管 + Datasets
🔧 工具链魔塔 CLI、M3E 向量模型、Maka-LoRA、中文 Instruct 数据集🤗 Transformers、🤗 Datasets、🤗 PEFT、🤗 Accelerate 等强大工具
🧠 微调支持LoRA、Adapter、中文指令数据(对国内任务适配性高)全套微调方案,支持各类模型和训练策略(全量、局部、PEFT)
📊 模型侧重中文大模型(Qwen、BaiChuan、ChatGLM 等)为主,强调本地化部署国际主流大模型(GPT2、LLaMA、T5、BERT 等),英文优化更好
🧰 使用门槛中文文档友好,适合中文初学者/企业研发快速入门接口强大,文档全面,适合熟悉英文、对模型控制力强的用户
🤝 社区互动微信群、QQ 群、中文文档站、本地 workshopGitHub、论坛、Discord、Twitter/X、Hugging Face Spaces
🏢 适合对象🇨🇳 中文开发者、中小企业、创业公司、本地部署用户🌎 国际开发者、学术研究者、平台构建者、英文主导团队

二、魔塔社区下载模型

2.1 先白嫖一把阿里的服务器

  1. 找到通义千问2.5-0.5B-Instruct版本点进去

在这里插入图片描述

  1. 找到Notebook快速开发

在这里插入图片描述

  1. 选方式二,然后启动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 开始下载模型

在这里插入图片描述
在这里插入图片描述

推荐使用SDK下载,Git下载可能会有问题,1秒就下载完了但是执行就会有问题。

  1. 安装ModelScope,执行命令:pip install modelscope

在这里插入图片描述

  1. 创建下载文件通过SDK下载,下载的时候要指定目录cache_dir,不然会默认下载到缓存路径去,下载完了调用不到。

    from modelscope import snapshot_downloadmodel_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct', cache_dir = "/mnt/workspace/LLM/")
    

    下载模型时输出如下:
    在这里插入图片描述

三、Qwen大模型文件目录解析

3.1 整体目录

目前其他大模型也是差不多的结构,文件都在一层中,不像Bert模型有分层。

在这里插入图片描述

3.2 config.json文件详解

{"attention_dropout": 0,          // 注意力机制中的dropout概率,0表示不使用注意力丢弃"bos_token_id": 151643,          // 文本开始的特殊标记(Begin-of-Sequence)的ID"eos_token_id": 151645,          // 文本结束的特殊标记(End-of-Sequence)的ID"hidden_act": "silu",            // 隐藏层使用的激活函数(Swish/SiLU激活函数)"hidden_size": 896,              // 隐藏层维度(每个Transformer层的神经元数量)"initializer_range": 0.02,       // 权重初始化的范围(正态分布的σ值)"intermediate_size": 4864,       // Feed Forward层中间维度(通常是hidden_size的4-8倍)"max_position_embeddings": 32768,// 支持的最大上下文长度(32K tokens)"max_window_layers": 21,         // 使用滑动窗口注意力的最大层数(长文本优化相关)"model_type": "qwen2",           // 模型架构标识(用于Hugging Face库识别)"num_attention_heads": 14,       // 注意力头的总数(常规注意力)"num_hidden_layers": 24,         // Transformer层的总数量(模型深度)"num_key_value_heads": 2,        // 分组查询注意力中的键值头数(GQA技术,显存优化)"rms_norm_eps": 0.000001,        // RMS归一化的极小值(防止计算溢出)"rope_theta": 1000000,           // RoPE位置编码的基频参数(扩展上下文能力相关)"sliding_window": 32768,         // 滑动窗口注意力大小(每个token可见的上下文范围)"tie_word_embeddings": true,     // 是否共享输入输出词嵌入权重(常规做法)"torch_dtype": "bfloat16",       // PyTorch张量精度类型(平衡精度与显存)"transformers_version": "4.43.1",// 适配的Transformers库版本"use_cache": true,               // 是否使用KV缓存加速自回归生成"use_sliding_window": false,      // 是否启用滑动窗口注意力机制(当前禁用)"vocab_size": 151936             // 模型所有词表大小(支持的token总数量)
}

重点参数说明

1) 长上下文支持组:

max_position_embeddings + rope_theta + sliding_window

  • 共同实现超长上下文处理能力(32K tokens)

"rope_theta":"1000000"

  • RoPE位置编码的基频参数 + 滑动窗口机制,增强模型的长文本处理能力

2) 显存优化组:

"num_key_value_heads":"2"

  • 分组查询注意力,减少显存占用

"torch_dtype":"bfloat16"

  • 数据类型"bfloat16"

use_cachetrue

  • KV缓存加速提升推理效率

AI模型本质是一个大矩阵,他由很多个参数构成,这些参数的数据类型是float32(单精度),比float32精度更高的是float64(双精度,java里是double),在AI模型中默认是单精度float32,这个精度有个特点是可以往下降,叫做精度的量化操作,可以把32位的精度降为16(半)位或者更低8位,最低是4位,精度变低,模型的体积会更小,运算的速度会更快,量化的意义就在于加速模型的推理能力,降低对于硬件的依赖。

现在使用的是通义千问2.5-0.5B-Instruct,这里的0.5B就代表着参数的数量,bfloat16就算每个参数所占的存储空间,模型的大小=参数的数量*每个参数所占的存储空间。

3) 架构特征组:

"hidden_act":"silu"

  • 隐藏层使用现代激活函数 silu(相比ReLU更平滑)

"num_hidden_layers":"24"

  • 深层网络结构(24层)配合intermediate_size:4864 大中间层维度增强模型容量

"num_attention_heads":"14"

  • 较小的注意力头数平衡计算效率

4) 兼容性组

"transformers_version": "4.43.1"

  • 明确标注Transformers库版本确保API兼容性

"model_type": "qwen2"

  • 声明模型架构形式用于Hugging Face库识别

3.3 generation_config.json文件详解

{"bos_token_id": 151643,       // 文本开始标记(Begin-of-Sequence)的ID,用于标识序列的起始位置"pad_token_id": 151643,       // 填充标记(Padding)的ID,用于对齐不同长度的输入序列(罕见地与BOS共用)"do_sample": true,            // 启用采样模式(若设为false则使用贪心解码,关闭随机性)"repetition_penalty": 1.1,    // 重复惩罚系数(>1的值会降低重复内容的生成概率)"temperature": 0.7,           // 温度参数(0.7为适度随机,值越高生成越多样化但也越不可控)"top_p": 0.8,                 // 核采样阈值(只保留累计概率超过80%的最高概率候选词集合)"top_k": 20,                  // 截断候选池大小(每步只保留概率最高的前20个候选token)"transformers_version": "4.37.0"  // 对应的Transformers库版本(兼容性保障)
}
核心参数详解:

如本地化使用通义千问,可通过此文件修改文本生成的效果

1) 核心采样机制组:

do_sample = true

  • 开启概率采样模式(关闭时为确定性高的贪心搜索)

temperature = 0.7

  • 中等随机水平(比默认1.0更保守,适合作业型文本生成)

top_p=0.8 + top_k=20

  • 组合采样策略(双重约束候选词的质量)

2) 文本优化控制组:

repetition_penalty=1.1

  • 温和的重复惩罚参数(值越大越压制重复用词)

bos_token_id=pad_token_id

  • 特殊标记共享设计(注意:这与常规模型设计不同,可能用于处理可变长度输入的特殊场景)

3) 工程兼容性:

明确标注transformers_version,提示用户需对应版本的库才能正确解析配置

3.4 model.safetensors权重文件

打不开跳过

3.5 tokenizer_config.json文件

json 体验AI代码助手 代码解读复制代码{"add_bos_token": false,          // 是否自动添加文本起始符(BOS),关闭表示输入不额外增加开始标记"add_prefix_space": false,       // 是否在文本前自动添加空格(用于处理单词边界,该项对中文无影响)"bos_token": null,               // 不设置专门的BOS标记(模型的起始序列由对话模板控制)"chat_template": "Jinja模板内容",// 角色对话模板规范(定义:角色标记+工具调用格式+消息边界切割规则)"clean_up_tokenization_spaces": false,  // 是否清理分词产生的空格(保留原始空格格式)"eos_token": "<|im_end|>",       // 文本终止标记(用于标记每个对话轮次/整体生成的结束)"errors": "replace",             // 解码错误处理策略(用�符号替换非法字符)"model_max_length": 131072,      // 最大处理长度(131072 tokens约等于128K上下文容量)"pad_token": "<|endoftext|>",    // 填充标记(用于批量处理的序列对齐)"split_special_tokens": false,   // 禁止分割特殊标记(确保类似<|im_end|>保持整体性)"tokenizer_class": "Qwen2Tokenizer",    // 专用分词器类型(特殊字词分割规则实现)"unk_token": null                // 无专用未知标记(通过errors策略处理未知字符)
}
核心参数详解

1) 长上下文支持:

"model_max_length": 131072

  • 显式描述支持128K超长文本处理

"clean_up_tokenization_spaces": false

  • 维护原始空格格式确保长文本连贯性

2) 对话格式控制:

chat_template

  • 定义多模态对话逻辑:

eos_token

  • 作为终止符贯穿全对话流程控制<|im_start|>/<|im_end|> 标记划分角色边界(system/user/assistant/tool

tool_call

  • XML块规范函数调用输出格式

之前的大模型是通过MaxLength来控制文本的最大输出,现在的大模型需要根据问题的答案长短来控制文本的输出,所以他这个模型使用eos_token定义的终止符,来做提前终止。这些特殊的终止符还有一个作用是与大模型的对话模板组合控制生成内容。

3) 中文优化特性:

"add_prefix_space": false

  • 避免英文分词策略对中文处理干扰

"unk_token": null

  • 结合 “errors”: “replace” 实现对中文生僻字的容错处理

"tokenizer_class": "Qwen2Tokenizer"

  • 专用Qwen2 Tokenizer含有中文高频词汇的特殊分割规则

3.6 tokenizer.json文件

应该有加密不看了

3.7 vocab.json文件

和之前Bert的vocab.txt一样,但是这里不开放,开放了使用者的就可以修改,就没有意义了,不看了。

四、使用transformer加载本地Qwen

transformersHuggingFace官网开发的开源库,它将主流的预训练模型,如BERT、GPT等统一整合在一套API下,并提供了丰富的工具支持快速训练、推理与部署。该库具有统一的接口与模块化设计,通过“自动化”类,如 AutoModel 、 AutoTokenizer 等,可以根据给定的模型名称或路径,自动匹配相应的模型结构、词表和配置文件。此外,它还拥有庞大的社区Model Hub,包含成千上万的开源模型,用户可一键下载或上传自己的模型。

transformers的这种方式,只是让我们更好的去理解,就是现在大模型的工作原理,对这段代码对它有一个流程化的理解,就可以了。

我们如果真正意义上面要去调用一个大模型的话,要用这三种方式:Ollama、vLLM、LMDeploy

from transformers import AutoModelForCausalLM,AutoTokenizerDEVICE = "cuda"#加载本地模型路径为该模型配置文件所在的根目录
model_dir = "/mnt/workspace/LLM/Qwen/Qwen2.5-0.5B-Instruct"#使用transformer加载模型
model = AutoModelForCausalLM.from_pretrained(model_dir,torch_dtype="auto",device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_dir)#调用模型
#定义提示词
prompt = "你好,请介绍下你自己。"
#将提示词封装为message
message = [{"role":"system","content":"You are a helpful assistant system"},{"role":"user","content":prompt}]
#使用分词器的apply_chat_template()方法将上面定义的消息列表进行转换;tokenize=False表示此时不进行令牌化
text = tokenizer.apply_chat_template(message,tokenize=False, add_generation_prompt=True)#将处理后的文本令牌化并转换为模型的输入张量
model_inputs = tokenizer([text],return_tensors="pt").to(DEVICE)#将数据输入模型得到输出
response = model.generate(model_inputs.input_ids,max_new_tokens=512)
print(response)#对输出的内容进行解码还原
response = tokenizer.batch_decode(response,skip_special_tokens=True)
print(response)

执行结果:

在这里插入图片描述

五、Ollama工具

5.1 Ollama 是什么?

Ollama 是一款开源的、专注于在本地设备上运行大型语言模型(LLM)的工具。它简化了复杂模型的部署和管理流程,允许用户无需依赖云端服务或网络连接,即可在自己的电脑、服务器甚至树莓派(微型单板计算机)等设备上体验多种先进的 AI 模型(如 Llama3、Mistral、Phi-3 等)。其核心目标是让本地化运行 LLM 变得低成本、高效率、高隐私。

5.2 核心功能与特点

  1. 本地化部署
  • 隐私与安全: 所有模型运行和数据处理均在本地完成,适合需保护敏感信息的场景(如企业数据、个人隐私)。
  • 离线可用: 无需互联网连接,可在完全断开网络的设备使用。
  • 资源优化: 支持量化模型(如 GGUF 格式),大幅降低内存占用(某些小型模型可在 8GB 内存的设备运行)。
  1. 丰富的模型生态
  • 主流模型支持: Llama3、Llama2、Mistral、Gemma、Phi-3、Wizard、CodeLlama 等。
  • 多模态扩展: 通过插件支持图像识别、语音交互等扩展功能。
  • 自定义模型: 用户可上传自行微调的模型(兼容 PyTorch、GGUF、Hugging Face 格式)。
  1. 开箱即用
  • 极简安装: 支持 macOS、Linux(Windows 通过 Docker/WSL),仅需一行命令完成安装。
  • 统一接口: 提供命令行和 REST API,方便与其他工具(编程接口、Chat UI 应用)集成。
  1. 多样化应用场景
  • 开发调试: 快速构建本地 LLM 驱动的应用原型。
  • 企业私有化: 内部知识库问答、文档分析等场景。
  • 研究与教育: 低成本教学 AI 模型原理与实践。

5.3 使用Ollama部署大模型

5.3.1 Conda创建单独的环境

1. 创建ollama环境

阿里云魔塔社区免费给的服务器每次开启需要重新激活condasource /mnt/workspace/miniconda3/bin/activate

  • conda create -n ollama

在这里插入图片描述

2. 激活ollama环境

查看conda环境 :conda env list

激活ollama环境: conda activate ollama

在这里插入图片描述

前面由base切换到了ollama环境,切换成功。

5.3.2 下载ollama的Linux版本

1. 进入官网

ollama官网:https://ollama.com/download/linux

在这里插入图片描述

2. 执行命令

curl -fsSL ollama.com/install.sh | sh

但是这个玩意下载的时候很慢,这东西网络很不稳定,就是有有一段时间它的下载速度会比较快,有一段时间它下载的速度会非常慢。甚至于有一段时间它会提示你这个网络连接错误,网络连接错误。如果出现了这种情况,一般的解决方法就是最完美的解决方法是在你的服务器上面去挂个梯子,但是这个挂梯子不一定有效。所以说这个东西最大的困难就在于安装起来得靠运气。

5.3.3 下载安装包安装(推荐)

1.登录Github

找到ollama的Releases 或者直接跳转开始下载:ollama安装包下载

在这里插入图片描述

2.选择ollama-linux-amd64.tgz

在这里插入图片描述

5.3.4.github下载加速

github.moeyy.xyz/ 但是实测下来用不了因为文件1.6个G太大了会变成下图这样,老老实实慢慢下载

在这里插入图片描述

5.3.5 上传文件到服务器并启动

这是魔塔社区提供的SSH连接服务器的方式: 链接点此

启动ollama服务:ollama serve

  • 出现下图内容为启动成功:

在这里插入图片描述

  • 服务开启后默认端口是:11434

  • 服务启动后,不要关闭这个窗口,另开一个窗口运行代码(重要,关了服务就没了)

可使用 ollama -v 查看版本

在这里插入图片描述

使用 ollama list 查看模型,现在是没有的

在这里插入图片描述

5.3.6 ollama中添加模型

1.进入官网找到千问2.5

在这里插入图片描述

2.选择0.5b版本,复制命令并在服务器执行

在这里插入图片描述

ollama run qwen2.5:0.5b:执行后就会从ollama官网拉取这个模型,拉取下来后就可以直接使用。

在这里插入图片描述

有几个问题:

  1. 前面下载了一个千问的模型,为啥不能直接跑?

    因为ollama,他只能支持GGUF格式的模型,所以如果要跑ollama的模型,只有两个选择。第一个选择就是从它的官网上面去找模型,然后进行下载。第二个选择是,使用魔塔社区model scope的这个模型库去搜索GGUF格式的模型。

  2. 什么是GGUF

    一般指的是量化后的模型(阉割版),比正常的模型小一点,量化的缺点就算模型的效果会会变差了。

    所以这个水平其实不是千问0.5B真实的水平,因为它是被量化之后的水平。但是量化带来的优势就在于模型的文件会变得更小,推理速度会更快,对于硬件的要求会更低。所以说ollama针对的是个人用户,它不针对于企业。

    当然ollama也可以跑不量化的模型。

5.3.7 使用代码调用ollama中的千问

目前的大模型推理框架里面,它的这个访问地址的接口协议都是OpenAI API的协议OpenAI API的协议,我们可以使用OpenAI API的风格来调用这个模型,调用ollama的这个模型。

model="qwen2.5:0.5b",需要使用 ollama list 查看模型,用哪个写哪个:

在这里插入图片描述

环境中是没有openAi 的服务的执行:pip install openai 命令安装

#使用openai的API风格调用ollama
from openai import OpenAIclient = OpenAI(base_url="http://localhost:11434/v1/",api_key="ollamaCall")chat_completion = client.chat.completions.create(messages=[{"role":"user","content":"你好,请介绍下你自己。"}],model="qwen2.5:0.5b"
)
print(chat_completion.choices[0])

成功:

在这里插入图片描述

六、vLLM工具

6.1 vLLM是什么

vLLM 是一个专为大语言模型(LLM)推理和服务设计的高效开源库,由加州大学伯克利分校等团队开发。它通过独特的技术优化,显著提升了模型推理的速度和吞吐量,特别适合高并发、低延迟的应用场景。

6.2 核心技术:PagedAttention

内存管理优化: 借鉴操作系统的内存分页思想,将注意力机制的键值(KV Cache)分割成小块(分页),按需动态分配显存。
解决显存碎片问题: 传统方法因显存碎片导致利用率低(如仅60-70%),PagedAttention使显存利用率达99%以上,支持更长上下文并行处理。
性能提升:相比 Hugging Face Transformers,吞吐量最高提升30倍。

6.3 核心优势

极高性能: 单GPU支持每秒上千请求(如A100处理100B参数模型),适合高并发API服务。
全面兼容性: 支持主流模型(如Llama、GPT-2/3、Mistral、Yi),无缝接入Hugging Face模型库。
简化部署: 仅需几行代码即可启动生产级API服务,支持动态批处理、流式输出等。
开源社区驱动: 活跃开发者迭代优化,支持多GPU分布式推理。

6.4 使用vLLM

6.4.1 进入官网地址

vLLM官网地址

在这里插入图片描述

vLLM对环境是有要求的:

  • 操作系统:Linux
  • Python:3.8 - 3.12
  • GPU:计算能力 7.0 或更高(例如 V100、T4、RTX20xx、A100、L4、H100 等,显存16GB以上的基本都可以)

6.4.2 创建vLLM的Conda环境

阿里云魔塔社区免费给的服务器每次开启需要重新激活conda:source /mnt/workspace/miniconda3/bin/activate

这个vLLM他基于CUDA的,他与CUDA的版本是挂钩的,所以万万不能在base环境装vLLM,因为一旦你在base环境上面装了之后的话,只要你base环境的CUDA版本不是12.11的版本,它就会把你的CUDA给你卸载了,装它对应的这个版本。目前的vLMM只支持两个版本,一个是CUDA12.1,另外一个是CUDA11.8,其他的他不支持,所以这个玩意儿跟CUDA挂钩。

命令:conda create -n vLLM python==3.12 -y

在这里插入图片描述

6.4.3 激活vLLM的Conda环境

命令:conda activate** **vLLM

在这里插入图片描述

从base切换到vLLM成功。

6.4.4 执行安装vLLM

命令:pip install vllm

在这里插入图片描述

6.4.5 开启vLLM服务

命令:vllm serve +模型绝对路径

  • vllm serve /mnt/workspace/LLM/Qwen/Qwen2.5-0.5B-Instruct

在这里插入图片描述

产生这个错误是因为服务器第一次装的时候在root环境里面,新建的vLLM环境里面缺失modelscope的依赖包,所以执行pip install modelscope 安装即可。

启动成功:

在这里插入图片描述

  • 服务的端口是8000

6.4.6 使用代码调用vLLM服务中的千问

#多轮对话
from openai import OpenAI#定义多轮对话方法
def run_chat_session():#初始化客户端client = OpenAI(base_url="http://localhost:8000/v1/",api_key="vLLMCall")#初始化对话历史chat_history = []#启动对话循环while True:#获取用户输入user_input = input("用户:")if user_input.lower() == "exit":print("退出对话。")break#更新对话历史(添加用户输入)chat_history.append({"role":"user","content":user_input})#调用模型回答try:chat_complition = client.chat.completions.create(messages=chat_history,model="/mnt/workspace/LLM/Qwen/Qwen2.5-0.5B-Instruct")#获取最新回答model_response = chat_complition.choices[0]print("AI:",model_response.message.content)#更新对话历史(添加AI模型的回复)chat_history.append({"role":"assistant","content":model_response.message.content})except Exception as e:print("发生错误:",e)break
if __name__ == '__main__':run_chat_session()

调用成功:

在这里插入图片描述

七、LMDeploy工具

7.1 LMDeploy是什么

LMDeploy 是一个由 上海人工智能实验室(InternLM团队) 开发的工具包,专注于大型语言模型(LLM)的压缩、部署和服务化。它的目标是帮助开发者和企业更高效地在实际场景中应用大模型(如百亿到千亿参数规模模型),解决高计算资源消耗和延迟等问题。

7.2 核心特点

  1. 高效推理优化
  • 模型压缩:支持 KV8 量化和 Weight INT4 量化,显著降低显存占用(最高可减少 50%),提升推理速度。
  • 持续批处理(Continuous Batch :动态合并用户请求的输入,提高 GPU 利用率。
  • 页显存管理:通过类似操作系统的显存管理策略,进一步提升吞吐量。
  1. 多后端支持
  • 内置高性能推理引擎 TurboMind,支持 Triton 和 TensorRT-LLM 作为后端,适配本地和云端部署。
  • 兼容 Transformers 模型结构,轻松部署 Hugging Face 等平台的预训练模型。
  1. 多模态扩展
  • 支持视觉-语言多模态模型(如 LLaVA),实现端到端的高效推理。
  1. 便捷的服务化
  • 提供 RESTful API 和 WebUI,支持快速搭建模型服务,适配云计算、边缘计算等场景。

7.3 核心技术

  1. KV Cache 量化

    减少推理过程中键值(Key-Value)缓存的内存占用。

  2. W4A16 量化

    将模型权重压缩至 INT4 精度,保持精度损失极小(<1%)。

  3. 深度并行化

    利用模型并行、流水线并行等技术,支撑千亿级模型的分布式部署。

7.4 使用LMDeploy

7.4.1 进入官网

LMDeploy官网

7.4.2 创建LMDeploy的Conda环境

命令:conda create -n lmdeploy python==3.12 -y

在这里插入图片描述

7.4.3 激活LMDeploy的Conda环境

命令:conda activate lmdeploy

在这里插入图片描述

7.4.4 执行安装LMDeploy

命令:pip install lmdeploy

在这里插入图片描述

7.4.5 开启LMDeploy服务

lmdeploy serve api_server +模型的全路径

  • 执行:lmdeploy serve api_server /root/LLM/Qwen/Qwen2.5-0.5B-Instruct,报了ModuleNotFoundError: No module named 'partial_json_parser'
    在这里插入图片描述

**可能是因为lmdeploypython3.12版本的兼容问题,执行pip install partial-json-parser命令:

在这里插入图片描述

重新执行:lmdeploy serve api_server /root/LLM/Qwen/Qwen2.5-0.5B-Instruct

在这里插入图片描述

启动成功!!!

7.4.6 使用代码调用LMDeploy服务中的千问

在这里插入图片描述
LMDeploy 比vLLM在显存的优化上要强很多,这个框架对于模型的量化支持力度比vLLM要更全要更全。它支持目前的两种主流量化,一种是离线的量化,一种是在线的量化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96193.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96193.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96193.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++编程实践--资源管理、标准库、并发与并行

文章目录 资源管理 资源访问 指向资源句柄或描述符的变量,在资源释放后立即赋予新值 lambda函数 当lambda会逃逸出函数外面时,禁止按引用捕获局部变量 避免lambda表达式使用默认捕获模式 资源分配与回收 避免出现delete this操作 使用恰当的方式处理new操作符的内存分配错误 …

“R语言+遥感”的水环境综合评价方法实践技术应用

专题一、R语言概述1.1 R语言特点&#xff08;R语言&#xff09;1.2 安装R&#xff08;R语言&#xff09;1.3 安装RStudio&#xff08;R语言&#xff09;&#xff08;1&#xff09;下载地址&#xff08;2&#xff09;安装步骤&#xff08;3&#xff09;软件配置1.4 第一个程序He…

【项目复盘】【四轴飞行器设计】驱动开发部分

由于在参加面试时总需要花时间一点一点的回忆自己的项目内容&#xff0c;故我打算直接写一系列的项目复盘博客&#xff0c;方便每次面试前的回忆。内容仅作分享交流&#xff0c;如有谬误欢迎指正。 本项目系列的文章目录如下&#xff1a; 【项目复盘】【四轴飞行器设计】驱动…

wpf之ComboBox

前言 wpf中ComboBox的应用非常广泛&#xff0c;本文就来介绍ComboBox在wpf中的应用。 1、非MVVM模式下 1.1 xaml添加元素<ComboBox x:Name"cbx_test1" SelectedIndex" 0" ><ComboBoxItem >小明</ComboBoxItem ><ComboBoxItem &g…

从零开始学AI——13

前言 夏天快要过去&#xff0c;本书也快接近尾声了。 第十三章 13.1 半监督学习 在此之前&#xff0c;我们讨论的所有学习范式都具有非常明确的边界条件&#xff1a; 监督学习&#xff1a;我们拥有大量带标签的数据样本(xi,yi)(x_i, y_i)(xi​,yi​)&#xff0c;目标是学习从输…

k8sday12数据存储(1/2)

目录 一、简单基本存储 1、EmptyDir 1.1概念 1.2作用 1.3配置文件 1.4测试 2、HostPath 2.1概念 2.2作用 2.3配置文件 2.4测试 ①、数据共享 ②、持久化存储 3、NFS 3.1概念 3.2作用 3.3NFS服务安装 ①、设置主节点为NFS服务器 ②、给副节点安装NFS客户端工…

Spring Framework 常用注解详解(按所属包分类整理)

在使用 Spring Framework 进行开发时&#xff0c;注解&#xff08;Annotation&#xff09;是实现 依赖注入&#xff08;DI&#xff09;、组件扫描、AOP 切面、事务管理 和 Web 请求映射 的核心手段。Spring 提供了丰富且结构清晰的注解体系&#xff0c;这些注解按照功能被组织在…

ROADS落地的架构蓝图

2 ROADS落地的架构蓝图 将ROADS体验从理念转化为现实&#xff0c;需要一套完整且自顶向下的架构蓝图作为支撑。华为的实践表明&#xff0c;数字化转型的成功依赖于多个架构层次的协同推进&#xff0c;而非单点技术的应用。该蓝图通常包含以下五个关键层次&#xff0c;每一层都承…

如何构建一个神经网络?从零开始搭建你的第一个深度学习模型

在深度学习的海洋中&#xff0c;神经网络就像一艘船&#xff0c;承载着数据的流动与特征的提取。而构建一个神经网络&#xff0c;就像是在设计这艘船的结构。本文将带你一步步了解如何使用 PyTorch 构建一个完整的神经网络模型&#xff0c;涵盖网络层的组织、前向传播与反向传播…

自学嵌入式第二十三天:数据结构(3)-双链表

一、strtokchar * strtok(char *s1,char *s2);截断字符串&#xff0c;在s1字符串中找到s2截取前一段返回&#xff0c;如需要再次截取剩余段&#xff0c;再使用此函数s1输入NULL即可&#xff1b;二、bzerobzero(char *p,size_t size);清零,从p地址开始&#xff0c;清零size个bit…

河南萌新联赛2025第六场 - 郑州大学

暑期集训已经接近尾声&#xff0c;一年六场的暑期萌新联赛也已经结束了&#xff0c;进步是比较明显的&#xff0c;从一开始的七八百名到三四百名&#xff0c;虽然拿不出手&#xff0c;但是这也算对两个月的集训的算法初学者的我一个交代。 比赛传送门&#xff1a;河南萌新联赛…

2-1.Python 编码基础 - 基础运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符)

一、算术运算符 1、基本介绍编号运算符说明示例输出结果1两数相加10 20302-两数相减10 - 20-103*两数相乘&#xff0c;或者返回一个被重复若干次的字符串10 * 202004/两数相除10 / 200.55//两数相除并返回商的整数部分9 // 246%两数相除并返回余数10 % 507**幂运算10 ** 21002…

CMOS知识点 MOS管不同工作区域电容特性

知识点14&#xff1a;MOSFET的电容主要来源于其物理结构&#xff1a;栅氧层电容&#xff1a;栅极&#xff08;G&#xff09;与衬底&#xff08;B&#xff09;、沟道、源&#xff08;S&#xff09;、漏&#xff08;D&#xff09;之间隔着二氧化硅绝缘层&#xff0c;自然形成电容…

预测性维护+智能优化:RK3568+FPGA方案在储能行业的应用

在储能行业&#xff0c;RK3568FPGA方案通过预测性维护和智能优化技术&#xff0c;显著提升系统可靠性和经济性。该方案采用异构架构&#xff08;FPGA处理高速信号采集&#xff0c;RK3568负责策略计算与通信管理&#xff09;&#xff0c;实现微秒级响应和精准控制。‌26一、预测…

工业4.0时代,耐达讯自动化Profibus转光纤如何重构HMI通信新标准?“

在智能制造与工业4.0浪潮下&#xff0c;HMI&#xff08;人机界面&#xff09;作为设备与操作员之间的“桥梁”&#xff0c;承担着实时数据显示、设备监控及交互控制的核心职能。然而&#xff0c;传统Profibus总线在HMI连接中常因电磁干扰、传输距离限制等问题&#xff0c;导致画…

SpringClound——网关、服务保护和分布式事务

一、网关网络的关口&#xff0c;负责请求的路由、转发、身份验证server:port: 8080 spring:cloud:nacos:discovery:server-addr: 192.168.96.129:8848gateway:routes:- id: item-serviceuri: lb://item-servicepredicates:- Path/items/**,/search/**- id: user-serviceuri: lb…

【C++】模版(初阶)

目录 一. 函数模版 1. 格式 原理 2. 函数模版的实例化 二. 类模板 void Swap(int& left, int& right) {int temp left;left right;right temp; }void Swap(double& left, double& right) {double temp left;left right;right temp; }void Swap(char&…

InfluxDB 开发工具链:IDE 插件与调试技巧(二)

四、利用 IDE 插件提升开发效率 4.1 代码编写技巧 在使用安装了 InfluxDB 插件的 IDE 进行代码编写时&#xff0c;我们可以充分利用插件提供的代码导航和智能提示功能&#xff0c;来显著提高编写 InfluxDB 相关代码的效率和准确性。 以一个涉及多个 Measurement 和复杂查询条…

定制开发开源AI智能名片S2B2C商城小程序:场景体验新维度与四重目标达成

摘要&#xff1a;本文聚焦于定制开发开源AI智能名片S2B2C商城小程序&#xff0c;探讨其在场景体验领域的应用与价值。通过深入分析场景体验的最高境界——深体验、强认知、高传播、关系深化这四个目标&#xff0c;阐述该小程序如何凭借自身特性与功能&#xff0c;在商业场景中实…

开源 GIS 服务器搭建:GeoServer 在 Linux 系统上的部署教程

GeoServer 是一个开源的地理信息服务服务器&#xff0c;可以发布地图、矢量数据和栅格数据。 1. 更新系统 sudo apt update && sudo apt upgrade -y2. 安装 Java 11 GeoServer 需要 Java 运行环境&#xff0c;这里用 OpenJDK 11。 sudo apt install openjdk-11-jdk…