Linux安装vLLM模型推理框架问题总汇

简介

vLLM 是一个专为大规模语言模型(Large Language Models, LLM)推理优化的服务框架和推理引擎。它可以高效地管理和部署预先训练好的大型语言模型,尤其是那些具有极高参数数量和复杂度的模型,如GPT系列及其他基于Transformer架构的模型。

vLLM的主要特点包括:

  1. 高吞吐量服务:通过采用诸如PagedAttention这样的技术,vLLM能够有效地管理内存并提高注意力机制中Key和Value的处理效率,从而提升模型推理的速度和并发处理能力。

  2. 内存优化:vLLM通过动态内存管理、KV缓存技术和分页算法降低模型在推理过程中所需的内存,使得大规模模型能在有限的硬件资源下稳定运行。

  3. 批处理:支持对传入请求进行连续批处理,提高了计算资源的利用率和整体响应速度。

  4. CUDA优化:针对CUDA图形处理器进行了内核级别的优化,使得模型能够在GPU上高效执行。

  5. 量化支持:提供多种量化技术,如GPTQ、AWQ、SqueezeLLM和FP8 KV缓存等,以减小模型在内存和带宽上的开销。

  6. 易用部署:通过简化API和命令行接口,vLLM允许用户便捷地部署和管理模型服务,同时也支持与OpenAI GPT-3 API类似的RESTful API。

  7. 模型并行:支持模型在多个GPU上进行并行运算,利用pipeline parallelism、tensor parallelism等技术进一步提升推理性能。

通过vLLM,开发者和企业能够更容易地将大型预训练模型应用到实际场景中,如智能问答、文本生成、聊天机器人等,同时保证高性能和低延迟的服务体验。

安装

1.安装显卡驱动

首先确保自己的服务器,是不是nvidia显卡,有没有安装nvidia驱动。下面以Ubuntu系统为例
在Ubuntu系统中查询显卡信息,可以使用以下命令:

  1. 使用lshw命令查看详细硬件信息,包括显卡部分:

    sudo lshw -C display
    
  2. 使用lspci命令快速查看PCI设备列表中有关显卡的部分:

    lspci | grep -i vga -A 12
    

    或简化版(只显示显卡基本信息):

    lspci -k | grep -A 2 -i "VGA"
    
  3. 如果系统中有NVIDIA显卡并且已安装了NVIDIA驱动,可以使用nvidia-smi命令获取更详尽的NVIDIA显卡信息,包括显存使用情况、驱动版本、GPU温度等:

    nvidia-smi
    
  4. 对于AMD显卡,若已安装ATI/AMD显卡驱动,可以尝试使用aticonfig(但这在现代AMD显卡驱动中已不常用)。

  5. 若想查看当前已安装的显卡驱动情况,可以通过Ubuntu的“附加驱动”工具进行查看:

    sudo ubuntu-drivers devices
    

    或者通过GUI方式:

    • 打开Ubuntu系统桌面,点击左上角的搜索按钮,搜索“驱动”或“Software & Updates”(软件与更新)。
    • 进入“附加驱动”标签页,系统会扫描并列出可用于系统中硬件设备的驱动程序,其中包括显卡驱动。

通过上述命令或图形界面操作,您可以获取到Ubuntu系统中显卡的基本信息和驱动状态。

2.安装vLLM框架

安装命令:

pip install -U vllm
  • 在 pip install 命令中,-U 或 --upgrade 选项用于升级指定的包到最新版本。如果该包尚未安装,此命令将首先安装它。

pip未安装

如果提示 pip: command not found 则用下面命令:

sudo python3 -m pip install -U vllm

或者执行命令:

apt install python3-pip
pip install -U vllm

网络问题

由于vllm的下载源是国外的网络可能不稳定,安装时候如果报错如下:

 ERROR: Could not find a version that satisfies the requirement numpy (from vllm) (from versions: none) 
 ERROR: No matching distribution found for numpy (from vllm) 

则执行一下命令,设定超时时间下载:

pip install --default-timeout=100 --upgrade vllm
  • –default设定超时100s,更新下载vllm

torch和triton版本兼容问题

ERROR: torch 2.1.2 has requirement triton==2.1.0; platform_system == "Linux" and platform_machine == "x86_64", but you'll have triton 2.2.0 which is incompatible.
  • 异常指出当前环境中安装的torch版本2.1.2要求triton版本为2.1.0,然而即将安装的是2.2.0版本,两者之间存在兼容性问题。为了解决此问题,要么需要降级triton至2.1.0版本,要么升级torch至支持triton 2.2.0的版本。因为当前vllm版本依赖于 torch 2.1.2,升级torch 会导致vllm安装失败,所以只能降级triton至2.1.0版本。

当你在安装或升级PyTorch的过程中遇到这样的错误信息,表明当前环境中安装的triton版本与PyTorch 2.1.2要求的triton版本不兼容。为了解决这个问题,你需要确保安装与PyTorch 2.1.2兼容的triton版本(即2.1.0)。

以下是解决步骤:

  1. 卸载现有不兼容的triton版本

    pip uninstall triton
    
  2. 安装PyTorch 2.1.2所需的triton 2.1.0版本
    由于triton的安装方式可能因项目和发布时间而异,你可能需要去triton项目的GitHub仓库或其他官方发布的渠道找到2.1.0版本的具体安装命令。若triton可通过pip安装,命令可能是类似于:

   pip install triton==2.1.0

如何安装过慢,使用国内的下载源

pip install triton==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

在实际操作前,请查阅triton和PyTorch的官方文档,以获取最新和正确的安装指引。由于triton并非PyTorch的标准依赖项,具体的安装过程可能会有所不同,取决于项目的需求和当时的发布情况。如果triton与特定版本的PyTorch有强绑定关系,也可能需要从PyTorch官方或者其他可靠的第三方源获取triton的特定版本。

最后重新执行安装vllm的命令:

pip install -U vllm

3.检查vllm是否安装成功

执行命令:

pip show vllm

输出一下内容,证明安装成功:

Name: vllm
Version: 0.3.3
Summary: A high-throughput and memory-efficient inference and serving engine for LLMs
Home-page: https://github.com/vllm-project/vllm
Author: vLLM Team
Author-email: None
License: Apache 2.0
Location: /usr/local/lib/python3.8/dist-packages
Requires: torch, sentencepiece, xformers, prometheus-client, triton, uvicorn, ninja, ray, psutil, transformers, pynvml, numpy, outlines, fastapi, cupy-cuda12x, pydantic
Required-by: 

运行大模型api服务

执行以下命令:

python3 -m vllm.entrypoints.openai.api_server --served-model-name Qwen1.5-7B-Chat --model Qwen/Qwen1.5-7B-Chat
  • 默认会根据–model的值,从本地路径找模型,没有找到就会从’https://huggingface.co 网站上下载模型,国内因为网络原因不能下载。

通过git下载模型

从https://www.modelscope.cn/models下载模型。
在这里插入图片描述
执行git下载命令:

cd /
mkdir models
git clone https://www.modelscope.cn/qwen/Qwen1.5-7B.git

执行以下命令:

python3 -m vllm.entrypoints.openai.api_server  --model /models/Qwen1.5-7B-Chat --trust-remote-code --port=8081 --served-model-name qwen/Qwen-7B-Chat 
  • Qwen1.5-7B模型会下载在/models文件中
  • --served-model-name 指定模型服务名,不设置模型服务名即--model的名一样

vllm直接支持modelscope模型

可以通过设置环境变量使得vllm从www.modelscope.cn下载模型,到本地modelscope模型库里。

启动普通server
VLLM_USE_MODELSCOPE=True python3 -m vllm.entrypoints.api_server  --model="qwen/Qwen-7B-Chat" --revision="v1.1.8" --trust-remote-code --port=8081
启动openai兼容接口
VLLM_USE_MODELSCOPE=True python3 -m vllm.entrypoints.openai.api_server  --model="qwen/Qwen-7B-Chat" --revision="v1.1.8" --trust-remote-code  --port=8081

如果模型在modelscope cache目录已经存在,则会直接使用cache中的模型,否则会从www.modelscope.cn下载模型

常见报错

如果报以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.8/dist-packages/vllm/entrypoints/api_server.py", line 96, in <module>
    engine = AsyncLLMEngine.from_engine_args(engine_args)
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/async_llm_engine.py", line 628, in from_engine_args
    engine = cls(parallel_config.worker_use_ray,
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/async_llm_engine.py", line 321, in __init__
    self.engine = self._init_engine(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/async_llm_engine.py", line 369, in _init_engine
    return engine_class(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/llm_engine.py", line 117, in __init__
    self._init_tokenizer()
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/llm_engine.py", line 192, in _init_tokenizer
    self.tokenizer: TokenizerGroup = TokenizerGroup(
  File "/usr/local/lib/python3.8/dist-packages/vllm/transformers_utils/tokenizer.py", line 100, in __init__
    self.tokenizer = get_tokenizer(self.tokenizer_id, **tokenizer_config)
  File "/usr/local/lib/python3.8/dist-packages/vllm/transformers_utils/tokenizer.py", line 30, in get_tokenizer
    tokenizer = AutoTokenizer.from_pretrained(
  File "/usr/local/lib/python3.8/dist-packages/transformers/models/auto/tokenization_auto.py", line 806, in from_pretrained
    tokenizer_class = get_class_from_dynamic_module(class_ref, pretrained_model_name_or_path, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/transformers/dynamic_module_utils.py", line 488, in get_class_from_dynamic_module
    final_module = get_cached_module_file(
  File "/usr/local/lib/python3.8/dist-packages/transformers/dynamic_module_utils.py", line 314, in get_cached_module_file
    modules_needed = check_imports(resolved_module_file)
  File "/usr/local/lib/python3.8/dist-packages/transformers/dynamic_module_utils.py", line 180, in check_imports
    raise ImportError(
ImportError: This modeling file requires the following packages that were not found in your environment: tiktoken. Run `pip install tiktoken`

执行命令,安装 tiktoken库

pip install tiktoken

安装成功后,再执行 启动模型命令即可。

如果报以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.8/dist-packages/vllm/entrypoints/openai/api_server.py", line 22, in <module>
    from vllm.entrypoints.openai.serving_chat import OpenAIServingChat
  File "/usr/local/lib/python3.8/dist-packages/vllm/entrypoints/openai/serving_chat.py", line 15, in <module>
    from vllm.model_executor.guided_decoding import get_guided_decoding_logits_processor
  File "/usr/local/lib/python3.8/dist-packages/vllm/model_executor/guided_decoding.py", line 12, in <module>
    from vllm.model_executor.guided_logits_processors import JSONLogitsProcessor, RegexLogitsProcessor
  File "/usr/local/lib/python3.8/dist-packages/vllm/model_executor/guided_logits_processors.py", line 23, in <module>
    from outlines.fsm.fsm import RegexFSM
  File "/usr/local/lib/python3.8/dist-packages/outlines/__init__.py", line 2, in <module>
    import outlines.generate
  File "/usr/local/lib/python3.8/dist-packages/outlines/generate/__init__.py", line 2, in <module>
    from .cfg import cfg
  File "/usr/local/lib/python3.8/dist-packages/outlines/generate/cfg.py", line 5, in <module>
    from outlines.models import OpenAI
  File "/usr/local/lib/python3.8/dist-packages/outlines/models/__init__.py", line 11, in <module>
    from .llamacpp import LlamaCpp, llamacpp
  File "/usr/local/lib/python3.8/dist-packages/outlines/models/llamacpp.py", line 5, in <module>
    from outlines.integrations.llamacpp import (  # noqa: F401
  File "/usr/local/lib/python3.8/dist-packages/outlines/integrations/llamacpp.py", line 37, in <module>
    from outlines.fsm.json_schema import build_regex_from_schema
  File "/usr/local/lib/python3.8/dist-packages/outlines/fsm/json_schema.py", line 6, in <module>
    from jsonschema.protocols import Validator
ModuleNotFoundError: No module named 'jsonschema.protocols'

从错误信息来看,虽然vllm及相关的依赖已经安装,但在运行过程中出现了新的错误:“ModuleNotFoundError: No module named ‘jsonschema.protocols’”。这意味着在执行程序时,Python无法找到jsonschema库中的protocols模块。

要解决这个问题,请确保jsonschema库及其所有必需的组件都已正确安装且是最新的版本。您可以按照以下步骤操作:

pip install --upgrade jsonschema

如果报以下错误:

INFO 03-15 05:20:25 api_server.py:228] args: Namespace(allow_credentials=False, allowed_headers=['*'], allowed_methods=['*'], allowed_origins=['*'], api_key=None, block_size=16, chat_template=None, code_revision=None, device='auto', disable_custom_all_reduce=False, disable_log_requests=False, disable_log_stats=False, download_dir=None, dtype='auto', enable_lora=False, enforce_eager=False, engine_use_ray=False, gpu_memory_utilization=0.9, host=None, kv_cache_dtype='auto', load_format='auto', lora_dtype='auto', lora_extra_vocab_size=256, lora_modules=None, max_context_len_to_capture=8192, max_cpu_loras=None, max_log_len=None, max_lora_rank=16, max_loras=1, max_model_len=None, max_num_batched_tokens=None, max_num_seqs=256, max_paddings=256, max_parallel_loading_workers=None, middleware=[], model='Qwen/Qwen1.5-7B-Chat', pipeline_parallel_size=1, port=8000, quantization=None, response_role='assistant', revision=None, root_path=None, seed=0, served_model_name='Qwen1.5-7B-Chat', ssl_certfile=None, ssl_keyfile=None, swap_space=4, tensor_parallel_size=1, tokenizer=None, tokenizer_mode='auto', tokenizer_revision=None, trust_remote_code=False, worker_use_ray=False)
/usr/local/lib/python3.8/dist-packages/torch/cuda/__init__.py:138: UserWarning: CUDA initialization: The NVIDIA driver on your system is too old (found version 11040). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternatively, go to: https://pytorch.org to install a PyTorch version that has been compiled with your version of the CUDA driver. (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)
  return torch._C._cuda_getDeviceCount() > 0
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.8/dist-packages/vllm/entrypoints/openai/api_server.py", line 236, in <module>
    engine = AsyncLLMEngine.from_engine_args(engine_args)
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/async_llm_engine.py", line 622, in from_engine_args
    engine_configs = engine_args.create_engine_configs()
  File "/usr/local/lib/python3.8/dist-packages/vllm/engine/arg_utils.py", line 286, in create_engine_configs
    device_config = DeviceConfig(self.device)
  File "/usr/local/lib/python3.8/dist-packages/vllm/config.py", line 496, in __init__
    raise RuntimeError("No supported device detected.")
RuntimeError: No supported device detected.

从您提供的错误信息可以看出存在两个主要问题:

  1. CUDA驱动版本过旧
    错误信息中提到"NVIDIA driver on your system is too old",并且给出了更新驱动的链接。这意味着当前的CUDA驱动版本无法与您正在尝试运行的PyTorch版本兼容。解决方法是按照提示更新NVIDIA GPU驱动程序。访问NVIDIA官网下载适用于您系统的最新驱动,并按照安装指南进行更新。

  2. No supported device detected
    错误消息最后显示"No supported device detected",表示VLLM引擎未能检测到任何可用的计算设备。这可能是因为更新驱动程序后未重启系统,或者是驱动程序与硬件不匹配,或者GPU不支持所需的功能。

解决步骤如下:

  • 更新NVIDIA驱动
    在Ubuntu系统中更新NVIDIA显卡驱动,可以按照以下步骤进行操作:
  1. 打开终端:

    Ctrl + Alt + T
    
  2. 更新系统包列表:

    sudo apt update
    
  3. 安装NVIDIA驱动(如果Ubuntu仓库中有可用的更新版本):

    sudo apt upgrade nvidia-driver-*
    
  4. 安装最新版驱动

    apt install nvidia-utils-550
    
  5. 重启系统以加载新驱动:

    sudo reboot
    
  • 确认GPU支持
    确保您的GPU硬件能够支持所需的CUDA版本以及VLLM框架要求的特性。

  • 检查CUDA版本与PyTorch兼容性
    确保安装的PyTorch版本与更新后的CUDA驱动兼容。如有必要,按照PyTorch官网提供的指南安装与当前CUDA版本适配的PyTorch版本。

  • 重新运行应用

    sudo reboot
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/462158.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

字符分类函数(iscntrl、i是space.....)---c语言

目录 一、定义二、字符分类函数2.1 -iscntrl&#xff08;&#xff09;2.1.1定义2.1.2使用举例 2.2 -isspace&#xff08;&#xff09;2.2.1描述2.2.2使用举例 2.3-isdigit()2.3.1描述2.3.2使用举例 2.4-isxdigit()2.4.1描述 2.5-islower()2.5.1描述2.5.2使用举例 2.6-isupper()…

VXLAN学习笔记

声明&#xff1a;该博客内容大部分参考参考链接整理 什么是VXLAN&#xff1f; VXLAN(Virtual Extensible LAN)即虚拟扩展局域网&#xff0c;是大二层网络中广泛使用的网络虚拟化技术。在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道&#xff0c;采用MAC in UDP的封装方…

【开源】SpringBoot框架开发房屋出售出租系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 房屋销售模块2.2 房屋出租模块2.3 预定意向模块2.4 交易订单模块 三、系统展示四、核心代码4.1 查询房屋求租单4.2 查询卖家的房屋求购单4.3 出租意向预定4.4 出租单支付4.5 查询买家房屋销售交易单 五、免责说明 一、摘…

MySQL语法分类 DQL(5)分组查询

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

YOLOV5 模型:利用tensorboard查看网络结构和yaml文件介绍

1、前言 yolov5目录中,关于模型构建的为下面的部分: *.yaml 文件,具体的配置参数common文件,具体模块的搭建,neck的spp等等yolo文件,搭建yolo的代码这部分为了后续添加改进模块,所以详细介绍下 2、yaml 文件 因为之前实战的模型都是v5s,这里我们打开yolov5s.yaml文件…

[Windows] Win11 常用快捷键

文章目录 &#x1f680; [Windows] Win11 常用快捷键&#x1f310; Windows 操作系统&#x1f525; Windows 11 &#x1f310; Windows 11 快捷键概览&#x1f525; 基本快捷键&#x1f525; 窗口快捷键&#x1f525; 功能快捷键 &#x1f4dd; 小结 &#x1f680; [Windows] W…

RPC通信原理(一)

RPC通信原理 RPC的概念 如果现在我有一个电商项目&#xff0c;用户要查询订单&#xff0c;自然而然是通过Service接口来调用订单的实现类。 我们把用户模块和订单模块都放在一起&#xff0c;打包成一个war包&#xff0c;然后再tomcat上运行&#xff0c;tomcat占有一个进程&am…

ResNet学习笔记

一、residual结构 优点&#xff1a; &#xff08;1&#xff09;超深的网络结构(突破1000层) &#xff08;2&#xff09;提出residual模块 &#xff08;3&#xff09;使用Batch Normalization加速训练(丢弃dropout) 解决问题&#xff1a; &#xff08;1&#xff09; 梯度消失和…

高效采购:最大化利用电子元器件采购商城

实现高效采购需要最大化利用电子元器件采购商城的各项功能和资源。以下是一些方法和策略&#xff1a; 充分利用搜索和筛选功能&#xff1a; 采购商城通常提供强大的搜索和筛选功能&#xff0c;包括关键词搜索、参数筛选、品牌筛选等。通过充分利用这些功能&#xff0c;可以快速…

Linux中udp服务端,客户端的开发

UDP通信相关函数&#xff1a; ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 函数说明&#xff1a;接收信息 参数说明&#xff1a;sockfd:套接字buf:要接收的缓冲区len:缓冲区…

人形机器人进展:IEEE Robotics出版双臂通用协同机械手操作架构

文章目录 1. Main2. My ThoughtsReference彩蛋a. OpenAI 投资: 人形机器人公司 Figure AIb. 人工智能软件工程师 Devin 上线 1. Main 图1 人居环境下的人形双臂机器人系统 通用人形机器人 作为近年来机器人与AI交叉领域的研究热点和技术竞争高地&#xff0c;因其具备在 非结构化…

python二级备考(3)-综合应用

1 《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件&#xff0c;文件名为“命运. txt”。 问题1 (5分) :在PY301-1. py文件中修改代码&#xff0c;对“命运. txt”文件进行字符频次统计&#xff0c;输出频次最高的中文字符(不包含标点符号)及其频次&…

【C++补充1】map容器

1.单映射 1.单映射&#xff0c;first:键 second:值 2.键唯一&#xff0c;如果重复&#xff0c;相同键插入 会覆盖值。 使用方法&#xff1a;pair<int, string> data(1, "Iloveyou"); 1.main int main() {//单映射//first:键 second:值//键唯一&am…

如何选择适合自己的编程语言?

如何选择适合自己的编程语言&#xff1f; 《探索编程语言&#xff1a;如何选择适合自己的编程语言&#xff1f;》摘要引言如何选择适合自己的编程语言&#xff1f;1. 了解不同的编程范式2. 考虑所需的工作领域3. 考虑生态系统和社区支持4. 考虑学习曲线和语法简洁性 总结参考资…

JVM虚拟机:通过jconsole远程连接解决JVM报错

本文重点 前面我们介绍过的一些工具都是使用命令行的方式来帮助我们完成&#xff0c;本文我们将使用一种图形化界面的方式来远程连接&#xff0c;然后完成关于JVM的检测任务。 jconsole jconsole是一个JVM的检测工具&#xff0c;这个工具任何安装了Java的电脑上都有的&#…

学生时期学习资源同步-1 第一学期结业考试题8

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载

CSS学习(1)-选择器

一、基本选择器 1. 通配选择器 作用&#xff1a;可以选中所有的 HTML 元素。 语法&#xff1a; * { 属性名: 属性值; }举例&#xff1a; /* 选中所有元素 */ * { color: orange; font-size: 40px; }主要用于&#xff1a;清除样式。 2. 元素选择器 作用&#xff1a;为页面…

MySQL语法分类 DQL(3)排序查询

为了更好的学习这里给出基本表数据用于查询操作 create table student (id int, name varchar(20), age int, sex varchar(5),address varchar(100),math int,english int );insert into student (id,name,age,sex,address,math,english) values (1,马云,55,男,杭州,66,78),…

Linux中 vim 编辑器的使用

文章目录 前言一、vim编辑器模式二、简单的插入、保存和退出三、 命令模式下常用命令即其作用1. 命令模式 思维导图 前言 首先&#xff0c;了解一下 什么是vim 编辑器&#xff1f;在不同的系统中&#xff0c;文本的管理也会不同&#xff1b;windos系统就不多说了&#xff0c…

【视频异常检测】Diversity-Measurable Anomaly Detection 论文阅读

Diversity-Measurable Anomaly Detection 论文阅读 Abstract1. Introduction2. Related Work3. Diversity-Measurable Anomaly Detection3.1. The framework3.2. Information compression module3.3. Pyramid deformation module3.4. Foreground-background selection3.5. Trai…