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

在Nvidia Jetson ADX Orin中使用TensorRT-LLM运行llama3-8b

目录

  • 背景:
  • 步骤 1.获取模型权重
  • 第 2 步:准备
  • 第 3 步:构建 TensorRT-LLM 引擎

背景:

大型语言模型 (LLM) 推理的关键瓶颈在于 GPU 内存资源短缺。因此,各种加速框架主要强调减少峰值 GPU 内存使用提高 GPU 利用率。 这就是 Nvidia 的游戏规则改变者 TensorRT-LLM 发挥作用的地方。TensorRT-LLM 是一个开源库,可加速和优化 NVIDIA AI 平台上 LLM 的推理性能。TensorRT 为 NVIDIA GPU 上的推理提供了高度专业化的优化。请参阅 Github 存储库以获取更多示例和文档!

在本指南中,我将以 Llama-3-8B-Instruct 模型为例,演示如何在 NVIDIA Jetson AGX Orin 64GB 开发者套件上使用 TensorRT-LLM 部署 LLM 推理引擎。NVIDIA Jetson AGX Orin 开发者套件在基于 Arm 的 CPU 内核和基于 NVIDIA Ampere 架构的 GPU 之间具有统一的内存架构。系统具有 64 GB 的共享内存,由 CPU 和 GPU 共享。

Nvidia JetPack 6.1 是 JetPack 6 的最新生产版本。确保您的 Jetson AGX Orin 开发者套件已使用最新的 JetPack 6.1 进行刷新。

使用 apt show nvidia-jetpack 命令检查当前 jetpack 版本:

Package: nvidia-jetpack
Version: 6.1+b123
Priority: standard
Section: metapackages
Source: nvidia-jetpack (6.1)
Maintainer: NVIDIA Corporation
Installed-Size: 199 kB
Depends: nvidia-jetpack-runtime (= 6.1+b123), nvidia-jetpack-dev (= 6.1+b123)
Homepage: http://developer.nvidia.com/jetson
Download-Size: 29.3 kB
APT-Sources: https://repo.download.nvidia.com/jetson/common r36.4/main arm64 Packages
Description: NVIDIA Jetpack Meta Package

您可以使用预构建的 Docker 映像,因此您可以按照 Nvidia Jetson AI Lab 页面上的文档轻松入门:https://www.jetson-ai-lab.com/tensorrt_llm.html
在这里插入图片描述
为了增加 VRAM,我在 Jetson AGX Orin 上禁用了桌面 GUI。

步骤 1.获取模型权重

我们需要下载我们将使用的模型的权重,即 Meta-Llama-3-8B-Instruct。因此,请确保您已接受许可条款并生成相应的 HuggingFace 令牌以下载模型。
首先,您需要通过在终端中运行以下命令来设置 Git LFS:

sudo apt-get update && sudo apt-get -y install git-lfs

通过运行以下命令安装 Git LFS:

git lfs install

使用以下命令克隆 Llama-3-8B 模型存储库:

https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct

或者,您可以使用 Hugging Face CLI 下载模型。使用以下命令安装 CLI:

pip install -U "huggingface_hub[cli]"

使用 huggingface-cli login 命令验证您的 Hugging Face 帐户。输入您的 Hugging Face API 密钥。
使用以下命令下载 Llama-3-8B-Instruct 模型:

huggingface-cli download meta-llama/Llama-3-8B-Instruct --local-dir ./Llama-3-8B-Instruct

下载完成后,您可以使用以下命令验证下载文件夹的内容:

wangyh@ubuntu:/media/wangyh/My Passport/llama3-8b-instruct$ ls -l
total 15695249
-rwxrwxrwx 1 wangyh wangyh       9802  1月  6 09:36 added_tokens.yaml
-rwxrwxrwx 1 wangyh wangyh        654  1月  6 09:36 config.json
-rwxrwxrwx 1 wangyh wangyh        187  1月  6 09:36 generation_config.json
-rwxrwxrwx 1 wangyh wangyh    2183982  1月  6 09:36 llama3_8b.tiktoken
-rwxrwxrwx 1 wangyh wangyh 4976698672  1月  6 09:38 model-00001-of-00004.safetensors
-rwxrwxrwx 1 wangyh wangyh 4999802720  1月  6 09:40 model-00002-of-00004.safetensors
-rwxrwxrwx 1 wangyh wangyh 4915916176  1月  6 09:42 model-00003-of-00004.safetensors
-rwxrwxrwx 1 wangyh wangyh 1168138808  1月  6 09:42 model-00004-of-00004.safetensors
-rwxrwxrwx 1 wangyh wangyh      23950  1月  6 09:42 model.safetensors.index.json
drwxrwxrwx 1 wangyh wangyh          0  1月  6 09:42 original
-rwxrwxrwx 1 wangyh wangyh         73  1月  6 09:42 special_tokens_map.json
-rwxrwxrwx 1 wangyh wangyh      50977  1月  6 09:42 tokenizer_config.json
-rwxrwxrwx 1 wangyh wangyh    9085698  1月  6 09:42 tokenizer.json

第 2 步:准备

使用 venv 模块创建新的虚拟环境,以隔离您的项目依赖项。

python3 -m venv tensorrt-llm-env

激活新创建的虚拟环境

source tensorrt-llm-env/bin/activate

更新包并安装所需的包

sudo apt-get update
sudo apt-get install -y python3-pip libopenblas-dev ccache

下载 CuSparseLT 安装脚本:

wget https://raw.githubusercontent.com/pytorch/pytorch/9b424aac1d70f360479dd919d6b7933b5a9181ac/.ci/docker/common/install_cusparselt.sh

设置 CUDA 版本:通过运行以下命令将 CUDA 版本设置为 12.6:

export CUDA_VERSION=12.6

通过运行以下命令安装 CuSparseLT:

sudo -E bash ./install_cusparselt.sh

此过程可能需要一些时间才能完成。确保安装成功完成。
最后,使用 pip 安装 NumPy 版本 1.26.1:bash 复制代码

python3 -m pip install numpy=='1.26.1'

此步骤完成准备阶段,设置后续步骤所需的环境和依赖项。

第 3 步:构建 TensorRT-LLM 引擎

使用以下命令从 GitHub 克隆 TensorRT-LLM 存储库:

git clone https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM
git checkout v0.12.0-jetson
git submodule update --init --recursive
git lfs pull

然后,执行以下命令,为 TensorRT-LLM 构建一个 wheel 文件:

sudo python3 scripts/build_wheel.py --clean --cuda_architectures 87 -DENABLE_MULTI_DEVICE=0 --build_type Release --benchmarks --use_ccache -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.6/bin/nvcc

此命令为 TensorRT-LLM 构建一个 wheel 文件。可能需要一些时间才能完成。
您将看到如下所示的输出:

Successfully built tensorrt_llm-0.12.0-cp310-cp310-linux_aarch64.whl

使用 pip 安装构建的 wheel 文件:

pip3 install build/tensorrt_llm-0.12.0-cp310-cp310-linux_aarch64.whl

预期输出:

Successfully installed tensorrt-llm-0.12.0

通过导入库并打印其版本来验证安装:

python3 -c "import tensorrt_llm; print(tensorrt_llm.__version__)"

【注】到这一步当在虚拟环境下面使用tensorrt_llm库的时候会报错没有找到“tensorrt_llm”,如下图所示:
在这里插入图片描述
提示缺少Python版本的tensorrt库,但是jetpack环境里面没有留下Python版tensorrt的安装包,这个时候有两种方法:

  1. 到网上下载jetson版本的TensorRT-10.3的.wheel文件,然后自己手动安装
  2. 将本地/usr路径下的tensorrt拷贝出来

这里我们选择第二种方法

cd ~/tensorrt-llm-env/lib/python3.10/site-packages
cp -r /usr/lib/python3.10/dist-packages/tensorrt* .

在这里插入图片描述
要在 GPU 上高效运行这些模型,我们必须将它们转换为 TensorRT-LLM 格式。然后,我们将使用 trtllm-build 命令行工具从 Hugging Face 检查点构建优化的 TensorRT 引擎。

HuggingFace 模型的转换可以通过一个命令完成:

python examples/llama/convert_checkpoint.py --model_dir /media/wangyh/My\ Passport/llama3-8b-instruct --output_dir /media/wangyh/My\ Passport/Llama-3.1-8B-Instruct-convert --dtype float16

您将看到如下所示的输出:

[TensorRT-LLM] TensorRT-LLM version: 0.12.0
0.12.0
230it [00:04, 50.42it/s]
Total time of converting checkpoints: 00:03:11

这应该会产生两个文件:模型配置 (config.json) 和权重 (rank0.safetensors)。接下来,我们构建模型引擎:

trtllm-build --checkpoint_dir /media/wangyh/My\ Passport/Llama-3.1-8B-Instruct-convert --gpt_attention_plugin float16 --gemm_plugin float16 --output_dir /media/wangyh/My\ Passport/Llama-3.1-8B

此命令使用转换后的检查点构建 TensorRT 引擎,并将结果存储在指定的目录中。
如果构建成功,您应该会看到以下输出:

[11/17/2024-16:26:23] [TRT-LLM] [I] Build phase peak memory: 32793.48 MB, children: 0.00 MB
[11/17/2024-16:26:23] [TRT-LLM] [I] Serializing engine to /home/jetson/Projects/tensorrtllm/Llama-3.1-8B-final/rank0.engine...
[11/17/2024-16:26:44] [TRT-LLM] [I] Engine serialized. Total time: 00:00:20
[11/17/2024-16:26:45] [TRT-LLM] [I] Total time of building all engines: 00:01:06

这应该会产生两个文件:模型配置 (config.json) 和权重 (rank0.engine)。
第 4 步:在 NVIDIA Jetson AGX Orin 64GB 开发者套件上运行推理
构建模型引擎后,您可以通过使用以下命令运行模型来测试它:

python examples/run.py --engine_dir /media/wangyh/My\ Passport/Llama-3.1-8B-Instruct-engine --max_output_len 100 --max_attention_window_size 1024 --tokenizer_dir /media/wangyh/My\ Passport/llama3-8b-instruct/ --input_text "Kazakhstan is" --gpu_weights_percent 70 --kv_cache_free_gpu_memory_fraction 0.1 --num_beams 1

如果模型成功运行,您应该会看到以下输出:
在这里插入图片描述
当令牌流式传输时,可以明显地注意到 TensorRT LLM 的性能。
然后我们可以在 OpenAI 兼容模式下对 TensorRT LLM 服务器进行 TensorRT LLM 服务器。运行以下命令:

python examples/apps/openai_server.py /media/wangyh/My\ Passport/Llama-3.1-8B-Instruct-engine --tokenizer /media/wangyh/My\ Passport/llama3-8b-instruct/ --host 0.0.0.0 --port 5001

使用 –host 选项,您可以允许外部连接。
您可以通过使用 curl 命令发送请求来测试模型的推理。

 curl http://localhost:5001/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "meta-llama/Llama-3.1-8B","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"}]}'

如果响应成功,您应该会看到以下输出:

{"id":"chatcmpl-d2c4ab76cea845fa80374af3133d4ef4","object":"chat.completion","created":1736154766,"model":"meta-llama/Llama-3.1-8B","choices":[{"index":0,"message":{"role":"assistant","content":"The Los Angeles Dodgers won the World Series in 2020! They defeated the","tool_calls":[]},"logprobs":null,"finish_reason":null,"stop_reason":null}],"usage":{"prompt_tokens":32,"total_tokens":48,"completion_tokens":16}}

您可以使用类似于 OpenAI 的客户端函数来调用 TensorRT-LLM 服务。

from openai import OpenAIopenai_api_key = "EMPTY"
openai_api_base = "http://localhost:5001/v1"client = OpenAI(api_key=openai_api_key,base_url=openai_api_base,
)chat_response = client.chat.completions.create(model="meta-llama/Llama-3.1-8B-Instruct",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Tell me a about Kazakhstan."},]
)
print("Chat response:", chat_response)

如果响应如下,则部署成功。

(tensorrt-llm-env) wangyh@ubuntu:~/TensorRT-LLM$ python tensorrt_llm_orin_openai_request.py 
Chat response: ChatCompletion(id='chatcmpl-2123732b12b84b2f8145272da88bb0f7', choices=[Choice(finish_reason=None, index=0, logprobs=None, message=ChatCompletionMessage(content='Kazakhstan! A vast and fascinating country located in Central Asia, bordering', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=[]), stop_reason=None)], created=1736154822, model='meta-llama/Llama-3.1-8B-Instruct', object='chat.completion', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=16, prompt_tokens=28, total_tokens=44, completion_tokens_details=None, prompt_tokens_details=None))

创建 Streamlit Web 应用程序以与 TensorRT-LLM 服务交互

import streamlit as st
from openai import OpenAIst.title("TensorRT-LLM Demo on the NVIDIA Jetson AGX Orin Developer Kit ")client = OpenAI(base_url="http://localhost:5001/v1", api_key="None")if "messages" not in st.session_state:st.session_state["messages"] = []prompt = st.chat_input("Say something")
if prompt:st.session_state["messages"].append({"role": "user", "content": prompt})for message in st.session_state["messages"]:st.chat_message(message["role"]).write(message["content"])container = st.empty()chat_completion = client.chat.completions.create(stream=True,messages=st.session_state["messages"],model="ensemble", max_tokens=512)response = ""for event in chat_completion:content = event.choices[0].delta.contentif content:response += contentcontainer.chat_message("assistant").write(response)st.session_state["messages"].append({"role": "assistant", "content": response})

在这篇博文中,我的目标是演示如何在 NVIDIA Jetson AGX Orin 64GB 开发者套件上使用 TensorRT LLM 实现最先进的推理。我涵盖了从编译 LLM 到使用 Streamlit 在生产环境中部署模型的所有内容。

相关文章:

在Nvidia Jetson ADX Orin中使用TensorRT-LLM运行llama3-8b

目录 背景:步骤 1.获取模型权重第 2 步:准备第 3 步:构建 TensorRT-LLM 引擎 背景: 大型语言模型 (LLM) 推理的关键瓶颈在于 GPU 内存资源短缺。因此,各种加速框架主要强调减少峰值 GPU 内存使…...

图数据库管理系统(Graph DBMS)全面解析

目录 前言1. 图数据库管理系统概述1.1 图数据库的基本组成1.2 图数据库的工作原理 2. 图数据库的特点与优势2.1 高效处理复杂关系数据2.2 灵活的数据建模2.3 优越的查询性能2.4 支持大规模分布式存储 3. 图数据库的应用场景3.1 社交网络3.2 推荐系统3.3 金融风控3.4 网络与IT运…...

中华人民共和国预算法实施条例

(1995年11月2日国务院第37次常务会议通过 1995年11月22日中华人民共和国国务院令第186号发布 自发布之日起施行) 第一章 总则 第一条 根据《中华人民共和国预算法》(以下简称预算法),制定本条例。 第二条 县级以上地方政府的派出机关,根据本级政…...

LabVIEW专栏十、工厂模式

目录 一、工厂模式1.1、创建仪器管理类1.2、初始化1.3、方法1.3.1、set devices1.3.2、index to device 1.4、释放资源 二、测试管理类2.1、界面2.2、程序框图2.2.1、初始化2.2.2、索引仪器 该章介绍一种设计模式"工厂模式",新建一个仪器管理类&#xff0…...

基于SpringBoot的斯诺克球馆预约购票管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

C# 设计模式(行为型模式):命令模式(专注于撤销重做)

C# 设计模式(行为型模式):命令模式 (Command Pattern) 一、什么是命令模式? 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使你可以用不同的请求、队…...

牛客网刷题 ——C语言初阶(2分支和循环-for)——打印菱形

1. 题目描述 用C语言在屏幕上输出以下图案: 2. 思路 我是先上手,先把上半部分打印出来,然后慢慢再来分析,下面这是我先把整个上半部分打印出来,因为空格不方便看是几个,这里先用&代替空格了 然后这里…...

[ LeetCode 75 ] 1768. 交替合并字符串

题目描述:(相关标签:双指针、字符串) 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返…...

【Java】——方法

方法(method)是程序中最小的执行单元 eg:main方法 作用: 提高代码的复用性、提高代码的可维护性 方法的格式: 将代码打包在一起,该过程称为方法定义 方法调用: 方法定义后并不是直接运行&am…...

Koi技术教程-Tauri基础教程-第一节 Tauri项目创建及结构说明

1 “你日渐平庸,甘于平庸,将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的,那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人,和他们斗了那么久,最终却要变得和他们一样,…...

《Mcal》--MCU模块

一、MCU模块的主要功能 控制系统时钟的产生。控制系统通用模块,该模块会涉及到Adc、Ftm等外设的配置。控制外设时钟。控制MCU运行的模式。初始化定义RAM Section。 比较重要的是时钟的配置。 二、系统时钟的配置 1、芯片时钟树 要想弄明白时钟配置,需…...

大模型思维链推理的进展、前沿和未来分析

大模型思维链推理的综述:进展、前沿和未来 "Chain of Thought Reasoning: A State-of-the-Art Analysis, Exploring New Horizons and Predicting Future Directions." 思维链推理的综述:进展、前沿和未来 摘要:思维链推理&#…...

windows上利用MinGW编译hiredis

1、下载 hiredis https://github.com/redis/hiredis 2、利用CMake生成Makefile文件 CMAKE_BUILD_TYPE: 默认空的时候是Release的。如果需要Debug则自行修改。 执行Configure的时候选择MinGW(确保MinGW已经安装,并且已加入到环境变量) 3、执行…...

06-RabbitMQ基础

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装 2.2.收发消息 2.2.1.交换机 2.2.2.队列 2.2.3.绑定关系 2.2.4.发送消息 2.3.数据隔离 2.3.1.用户管理 2.3.2.virtual host 3.SpringAMQP 3.1.导入Demo工程 3.2.快速入门 3.2.1.消…...

Spring Boot 的自动配置,以rabbitmq为例,请详细说明

Spring Boot 的自动配置特性能够大大简化集成外部服务和组件的配置过程。以 RabbitMQ 为例,Spring Boot 通过 spring-boot-starter-amqp 提供了自动配置支持,开发者只需在应用中添加相关依赖并配置必要的属性,Spring Boot 会自动配置所需的连…...

ros2-4.1 服务通信介绍

服务是ROS图中节点之间的另一种通信方法。服务分为客户端和服务端,客户端发送请求给服务端,服务端可以根据客户端的请求做一些处理,然后返回结果给客户端。也称为为请求-响应模型。 服务和话题的不同之处,话题是没有返回的&#…...

如何 cURL Elasticsearch:进入 Shell

作者:来自 Elastic Philipp Krenn Kibana 的控制台是开始使用 Elasticsearch 的 REST API 的最简单方法 - 语法突出显示、自动完成、格式化、导出 cURL、JavaScript 或 Python。而且你不必担心正确的端点、身份验证等。但是有时,如果 Kibana 不可用、你…...

【信息系统项目管理师】高分论文:论信息系统项目的风险管理(人民医院的信息系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划风险管理2、项目风险识别3、风险定性分析4、风险定量分析5、制定风险应对6、实施风险应对计划7、监督风险论文 2022年6月,我作为项目经理承担了XX县人民医院的信息系统建设,该项目总投资300万,其…...

安装和配置 Apache 及 PHP

安装和配置 Apache 及 PHP # 1. 停止当前 Apache 服务 sudo apachectl stop# 2. 清除现有的 Apache 配置和文件 sudo rm -rf /etc/apache2 sudo rm -rf /usr/sbin/httpd sudo rm -rf /Library/WebServer# 3. 使用 Homebrew 安装 Apache brew install httpd# 4. 启动 Apache su…...

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限...

虚功、达朗贝尔原理和拉格朗日方程

本文先引入虚位移,从虚功和虚功原理出发,介绍达朗贝尔原理(d’Alembert’s principle) 和 拉格朗日方程(Lagrange’s equations)。 1. 虚功 力学系统的虚位移(virtual displacement)或称无限小位移(infinitesimal displacement)是指力学系统的位形(configuration …...

面向对象分析和设计OOA/D,UML,GRASP

目录 什么是分析和设计? 什么是面向对象的分析和设计? 迭代开发 UML 用例图 交互图 基于职责驱动设计 GRASP 常见设计原则 什么是分析和设计? 分析,强调是对问题和需求的调查研究,不是解决方案。例如&#x…...

【Linux】记录一下考RHCE的学习过程(七)

年底了,公司接的北京地铁轨道交通的项目做不完了,一百多列地铁的设备都得调,派我出差了几周,这几天才回来,出差累死了实在是没办法更新。(YOASOBI的二开票还没抢到ToT,哭死,看看回滚…...

【深度学习】深度(Deep Learning)学习基础

深度学习(Deep Learning) 深度学习是一种基于人工神经网络的机器学习方法,通过多个层次(深度)的神经网络从数据中自动学习特征和模式。它是人工智能的一个核心领域,尤其在处理复杂数据(如图像、…...

121 买入股票的最佳时机

思路1: 买的那天一定是卖的那天之前的最小值。 每到一天,维护那天之前的最小值即可。 假设第一天是最小值,最大值初始化为0,当以后某天的价格小于最小值时,将最小值更新 当天价格大于最小值,说明有利可图…...

JVM之Java内存模型

Java内存模型(Java Memory Model,简称JMM)是Java虚拟机(JVM)规范中定义的一套规则,用于描述多线程环境下变量如何被访问和同步。在多线程编程中,内存模型的重要性不言而喻,它直接关系…...

matlab系列专栏-快捷键速查手册

目录 1在命令窗口(Command Window)中 2. 在编辑器(Editor)(m文件)中 1在命令窗口(Command Window)中 1)【↑、↓】——切换到之前、之后运行过的命令,可以重复按多次来达到想要的命令。 2)【Tab】——自动补全。在Command窗口&#xff0c…...

快手一面-面经

1. RPC和Http的区别? RPC(Remote Procedure Call,远程过程调用)和 HTTP(HyperText Transfer Protocol,超文本传输协议)是两种不同的通信机制,它们有不同的用途、工作原理和应用场景…...

<style lang=“scss“ scoped>: 这是更常见的写法,也是官方文档中推荐的写法

这两种写法在大多数情况下是没有区别的&#xff0c;它们都是 Vue.js 单文件组件 (.vue 文件) 中用来定义组件私有样式的方式。 两种写法&#xff1a; <style lang"scss" scoped>: 这是更常见的写法&#xff0c;也是官方文档中推荐的写法。<style scoped l…...

cerebro关闭ssl

cerebro连接es报错 io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: (certificate_unknown) Received fatal alert: certificate_unknown 在cerebro的application.conf配置文件中添加 play.ws.ssl.loose.acceptAnyCertificate true Disab…...

网络安全常见的问题

1. 什么是 DDoS 攻击&#xff1f;如何防范&#xff1f; 答&#xff1a;DDoS 攻击是指利用大量的计算机或者其他网络设备&#xff0c;同时向目标网络或者服务器 发送 大量的数据流量&#xff0c;以致其无法正常工作&#xff0c;从而导致网络瘫痪或者服务器宕机的攻击行 为。 …...

Eclipse配置Tomcat服务器(最全图文详解)

前言&#xff1a; 本章使用图文讲解如何在Eclipse开发工具中配置Tomcat服务器、如何创建和启动JavaWeb工程&#xff0c;欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标&#xff1a; 一、配置Tomcat服务器 1. 切换Eclipse视图 2. 打开菜单 3. 找到服务选项 4. 选择…...

mv指令详解

&#x1f3dd;️专栏&#xff1a;https://blog.csdn.net/2301_81831423/category_12872319.html &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” 目录 基本语法 主要功能 常用选项详解 1. …...

SQL从入门到实战

学前须知 sqlzoo数据介绍 world nobel covid ge game、goal、eteam teacher、dept movie、casting、actor 基础语句 select&from SELECT from WORLD Tutorial - SQLZoo 基础查询select单列&多列&所有列&别名应用 例题一 SELECT name, continent, population …...

回归中医传统 重铸中医之魂 — 薛应中 —

最近做了一个20次课的讲义纲要,每节课都是中医理念下某一类疾病的认知与诊疗,或是一个重大健康观念的辨析,准备陆续和各届人士一起探讨。 下面就算是一个序言,主要是做一个自我介绍,将自己的一点心得,结合我的行医经历,以及学习中医的治学之道等,做一个开场白。 (一)中医的有…...

什么是面向对象?

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种流行的编程方法&#xff0c;它以对象和类为基础构建软件。该编程范式围绕“对象”这一基本概念展开&#xff0c;其中对象被视为包含数据和行为的软件构件。以下是对面向对象编程的深…...

HDFS读写流程

因为namenode维护管理了文件系统的元数据信息&#xff0c;这就造成了不管是读还是写数据都是基于NameNode开始的&#xff0c;也就是说NameNode成为了HDFS访问的唯一入口。入口地址是&#xff1a;http://nn_host:8020。 一、写数据流程 1.1 Pipeline管道、ACK应答响应 Pipeline…...

HDFS Federation联邦机制

一、当前HDFS体系架构 1.1 简介 当前的HDFS架构有两个主要的层&#xff1a; 命名空间&#xff08;namespace&#xff09; HDFS体系结构中的命名空间层由文件&#xff0c;块和目录组成。该层支持与名称空间相关的文件系统操作&#xff0c;例如创建&#xff0c;删除&#xff0…...

机器学习周报-ModernTCN文献阅读

文章目录 摘要Abstract 0 提升有效感受野&#xff08;ERF&#xff09;1 相关知识1.1 标准卷积1.2 深度分离卷积&#xff08;Depthwise Convolution&#xff0c;DWConv&#xff09;1.3 逐点卷积&#xff08;Pointwise Convolution&#xff0c;PWConv&#xff09;1.4 组卷积(Grou…...

QT RC_FILE 应用程序图标设置

1.先做一个app.ico 文件&#xff0c;并将文件放入资源文件夹中 2.打开QT项目的.pro文件在最下面增加 RC_FILE $$PWD/res/app.rc 3.在资源文件夹中创建一个app.rc文件。在QT开发工具中编辑并输入下在内容 IDI_ICON1 ICON "app.ico" 4.测试效果...

5G学习笔记之SNPN系列之网络选择

目录 0. NPN系列 1. 概述 2. 自动网络选择 3. 手动网络选择 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】SNPN ID和广播消息 4. 【SNPN系列】UE入网和远程配置 5. 【SNPN系列】SNPN选择 6. PNI-NPN 1. 概述 对于某个特定的UE&#xff0c;可以仅支持SNPN接入模式&#x…...

k8s helm部署kafka集群(KRaft模式)——筑梦之路

添加helm仓库 helm repo add bitnami "https://helm-charts.itboon.top/bitnami" --force-update helm repo add grafana "https://helm-charts.itboon.top/grafana" --force-update helm repo add prometheus-community "https://helm-charts.itboo…...

Redis学习笔记

目录 Nosql概述 为什么用Nosql 什么是Nosql Nosql四大分类 Redis入门 概述 Windows安装 Linux安装 测试性能 基础知识 五大数据类型 Redis-Key String(字符串) List&#xff08;列表&#xff09; Set(集合) Hash&#xff08;哈希&#xff09; Zset&#xff08;有…...

mysql递归查询语法WITH RECURSIVE

WITH RECURSIVE 是 SQL 中用于执行递归查询的语法&#xff0c;特别适合于处理层级结构或递归数据&#xff08;如树形结构、图结构&#xff09;。递归查询可以反复引用自己来查询多层次的数据&#xff0c;而无需写多个嵌套查询。 基本语法结构&#xff1a; WITH RECURSIVE CTE…...

Go语言之十条命令(The Ten Commands of Go Language)

Go语言之十条命令 Go语言简介 Go语言&#xff08;又称Golang&#xff09;‌是由Google开发的一种开源编程语言&#xff0c;首次公开发布于2009年。Go语言旨在提供简洁、高效、可靠的软件开发解决方案&#xff0c;特别强调并发编程和系统编程‌。 Go语言的基本特征 ‌静态强类…...

Visual Studio 2022 C++ gRPC 环境搭建

文章目录 1、gRPC 安装2、创建项目2.1、创建 “空的解决方案”2.2、新建 gRPCServer 和 gRPCClient 项目2.3、创建 proto 文件 2、为 gRPC 服务端和客服端项目配置 protobuf 编译2.1、protobuf 配置2.2、gRPCServer 项目配置2.3、gRPCClient 项目配置 3、测试3.1、启动服务端程…...

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…...

【Java从入门到放弃 之 final 关键字】

final 关键字 final 关键字final 字段final 函数列表中的参数final 方法final 类 final 关键字 Java中里面有final这个关键字&#xff0c;这个关键字总体上是用来表达” 不能被改变“ 这个意思的。我们使用这个关键字表达不能被改变&#xff0c;有两种使用场景&#xff0c;有三…...

【U8+】用友U8软件中,出入库流水输出excel的时候提示报表输出引擎错误。

【问题现象】 通过天联高级版客户端登录拥有U8后&#xff0c; 将出入库流水输出excel的时候&#xff0c;提示报表输出引擎错误。 进行报表输出时出现错误&#xff0c;错误信息&#xff1a;找不到“fd6eea8b-fb40-4ce4-8ab4-cddbd9462981.htm”。 如果您正试图从最近使用的文件列…...

文本区域提取和分析——Python版本

目录 1. 图像预处理 2. 文本区域提取 3. 文本行分割 4. 文本区域分析 5. 应用举例 总结 文本区域提取和分析是计算机视觉中的重要任务&#xff0c;尤其在光学字符识别&#xff08;OCR&#xff09;系统、文档分析、自动化数据录入等应用中有广泛的应用。其目标是从图像中提…...