保姆级教程:Linux和Windows下本地化部署Vicuna模型

2023-11-06

目录

文章摘要

  模型及安装包下载链接

  这篇文章中,我们深入探索Vicuna模型。

  这是一个由UC Berkeley,CMU,Stanford和UC San Diego的团队开发的开源聊天机器人。这个模型的性能之强大,令人瞩目。在许多标准测试中,Vicuna都已证明其表现号称能达到GPT-4的90%性能,使其成为开源大模型领域的翘楚。

  本教程的目标是让大家能够在Linux和Windows操作系统下自己部署Vicuna模型。我将提供详细的安装步骤和全部所需的安装包下载链接,以便您可以轻松完成模型的部署。构建你自己的聊天机器人。

一、Vicuna简介

1. Vicuna模型定义

  Vicuna模型是一种开源的聊天机器人模型,它诞生于一次在ShareGPT平台上的大规模对话微调训练中。作为一种基于Transformer架构的自回归语言模型,Vicuna在2023年春季(3月至4月)经过精心的训练后,正式亮相。

2. Vicuna模型的应用场景

  Vicuna作为一个强大的大型语言模型和聊天机器人,被广大的自然语言处理、机器学习和人工智能研究者和爱好者用于学术研究和实际应用。

3. Vicuna模型的训练数据

  Vicuna模型依托于从ShareGPT.com收集的70K的丰富对话数据进行训练。为了衡量模型的品质,还特意设计了80个多样化的问题,由GPT-4来评判Vicuna模型的输出。

4. Vicuna模型的版本

  Vicuna模型的发展经历了多个版本,从最初的原始版本,到后续的一系列改进版本。在网络上我们可以找到一些用户对于不同版本的Vicuna的反馈:

  • 原始Vicuna版本:部分用户在使用过程中未发现自我审查的问题,但偶尔会遭遇“失控”现象,即模型自我对话,误认为自己是用户。

  • Vicuna-7B-1.1-GPTQ-4bit-128g:此版本获得了许多用户的好评,被视为目前的最佳选择之一。

  • Uncensored Vicuna(未经审查的Vicuna):对于这个版本,用户的反馈各不相同,一些人认为它有时会过度“说教”。

  • Vicuna 1.1:Vicuna 1.1:与Vicuna 1.0相比,Vicuna 1.1解决了一些格式问题,因此有些用户更偏爱它。

  “13b"和"7b"是表示模型参数数量的标记。如“b”是"billion”(十亿)的缩写,"13b"代表模型具有130亿个参数,"7b"代表模型具有70亿个参数。UC伯克利学者联手CMU、斯坦福等推出的全新模型70亿/130亿参数的Vicuna,俗称「小羊驼」(骆马)。小羊驼号称能达到GPT-4的90%性能,我们接下来进行部署。

5. 性能评估

  在Vicuna与GPT-4的比较中,GPT-4在90%的问题上更倾向于Vicuna的回答。相对于其他开源模型(如LLaMA和Alpaca),Vicuna表现出色,并且与专有模型(如ChatGPT和Bard)的竞争力也不容忽视。在45%的问题中,GPT-4认为Vicuna的回答至少与ChatGPT的同等或更优。根据GPT-4对每个回答的定量评分(满分为10),我们可以计算出每个模型在80个问题中获得的总分。在这个比较中,Vicuna的总分达到了ChatGPT的92%。

二、linux 操作系统下部署

1. 环境介绍

  • CentOS Linux release 7.9.2009(core)
  • 可以正常使用yum源
  • 可以连通互联网

2. 安装Python3.10.7

2.1 下载Python3.10.7安装包

  在官网下载:https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz

2.2 安装gcc编译器

  gcc有些系统版本已经默认安装,通过 gcc --version 查看

在这里插入图片描述

   没安装的先安装gcc,yum -y install gcc

2.3 安装依赖包

  不要缺少,否则有可能安装python出错,python3.7以下的版本可不装 libffi-devel ,我们所需要的是Python3.10.X版本

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

2.4 升级openssl版本

在这里插入图片描述

  此处有个坑,在此版本的openssl下编译安装Python3.10.7后,会出现报错 No module named ‘_ssl‘的情况,所以需要先手动将openssl升级3.05

2.4.1 安装perl-CPAN模块

  openssl 3.0使用perl代码,需要提前安装IPC/Cmd.pm模块。

yum install  -y perl-CPAN
yum install perl-IPC-Cmd

  进入CPAN的shell模式,首次进入需要配置shell,按照提示操作,一般选择默认配置,当提示中有sudo选项时,一定要选择sudo,然后其他选默认,出现 cpan[1]>提示符后,键入安装模块命令,安装后再键入退出命令。

cpan[1]> install IPC/Cmd.pm
cpan[2]> quit

  在无互联网的内网环境下,可以去https://metacpan.org网站下载模块,不使用CPAN的shell模式,直接以命令行形式安装。执行perl语句时,如提示某模块未安装,到官网查找下载后,依次安装。

yum install wget
wget https://cpan.metacpan.org/authors/id/B/BI/BINGOS/IPC-Cmd-1.04.tar.gz
tar -zxvf IPC-Cmd-1.04.tar.gz
cd IPC-Cmd-1.04.tar.gz
perl Makefile.PL
make
make install

2.4.2 编译安装openssl3.0.5

  在https://www.openssl.org的download中,根据需要下载3.0.5版本的压缩包

  在服务器上创建存放安装包的目录:

mkdir /usr/local/openssl3

  在服务器使用wget命令下载安装包

# 进入安装目录
cd /usr/local/openssl3
# 使用wget下载,如果下载不了,就本地下载通过FTP上传进行解压
wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.5.tar.gz

  安装

# 解压安装包
tar xf openssl-3.0.5.tar.gz
# 进入解压后目录
cd /usr/local/openssl3/openssl-3.0.5

  使用共享库安装,检查zlib库是否存在

whereis zlib

在这里插入图片描述

  没有的话,安装:

yum install -y zlib

  安装openssl到 /usr/local/openssl 目录

# 进入安装目录:
cd /usr/local/openssl3/openssl-3.0.5
# 执行配置命令,prefix默认路径/usr/local:
./config --prefix=/usr/local/openssl

在这里插入图片描述

  编译安装:

make && make install

  执行可能很慢,耐心等待执行结束。
  执行到此,openssl还不能使用,libssl.so.3文件在/usr/local/openssl/lib64目录下面,需要配置到共享库中

# 换行添加/usr/local/openssl/lib64
vim /etc/ld.so.conf
# 加载生效
ldconfig

在这里插入图片描述

# 再次进入/usr/local/openssl/bin目录下执行命令已经成功了
[root@node0 bin]# ./openssl version
OpenSSL 3.0.5 5 Jul 2022 (Library: OpenSSL 3.0.5 5 Jul 2022)

2.5 编译安装python3.10.7

2.5.1 修改配置文件

  通过FTP或者wget下载得到Python-3.10.7.tgz软件包

# 解压
tar xf Python-3.10.7.tgz
cd Python-3.10.7

  在进行编译安装前,Python3.10和openssl3.0.5的版本配置文件跟以前有点区别,python3.10的版本OPENSSL不再是/usr/local/ssl 的默认路径,变成了/path/to/openssl/directory,而openssl3.0.5目录里面没有lib这个文件夹,变成了lib64,注意这个变化,在建立软链接的时候一定要写lib64不能写成lib.

  解决办法:

  进入解压后的Python3.10.7文件目录,打开Python-3.10.7/Modules/目录下的Setup文件

vim /Modules/Setup

  把下面5句代码的注释取消,还有两个地方的路径要修改。

  • OPENSSL后面的路径改成你自己的openssl目录,我的是/urs/local/openssl,这里原本是OPENSSL=/path/to/openssl/directory。
  • 二是蓝色框里面的要改成lib64,其它的不要动保存。我的openssl版本是3.0.5
    在这里插入图片描述
      最后保存退出

2.5.2 编译安装Python3.10.7

cd Python-3.10.7
./configure --prefix=/usr/local/python3
make clean
make
make install

  建立软连接:

ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3

  测试是否能正常导入_ssl,不报错即正常

在这里插入图片描述

3. 配置Fastchat

  GitHub项目源地址:https://github.com/lm-sys/FastChat

  先进行依赖包安装

pip3 install fschat

  下载项目到本地,慢的话可以自己下载好通过FTP上传到服务器

git clone https://github.com/lm-sys/FastChat.git
cd FastChat

  安装依赖包

# 如果你是严格按照上面的过程做的,请这样升级pip3
/usr/local/python3/bin/python3.10 -m pip install --upgrade pip

# 否则的话使用这种方式,不升级pip会报错
#pip3 install --upgrade pip  # enable PEP 660 support  
pip3 install -e .

4. 模型下载

  模型下载链接:

cd FastChat && mkdir vicuna

  下载后将victuna-13b和vicuna-7b两个模型放在FastChat/vicuna文件中

5. cli测试

  下面的命令对于Vicuna-13B需要约28GB的GPU内存,对于Vicuna-7B需要约14GB的GPU内存。根据自己的设备情况自行测试最佳的运行方式

# 启动vicuna-7b模型
python3 -m fastchat.serve.cli --model-path vicuna/vicuna-7b-v1.1
# 启动/vicuna-13b-v1.1 --load-8bit, 13B需要28G显存,无法直接使用,可以使用--load-8bit
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-13b-v1.1 --load-8bit

# 加载多块GPU
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-7b-v1.1 --num-gpus 2

# 这将仅在CPU上运行,不需要GPU。对于Vicuna-13B需要约60GB的CPU内存,对于Vicuna-7B需要约30GB的CPU内存。
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-7b-v1.1 --device cpu

图1

6. 羊驼模型Web GUI测试

  要使用Web用户界面进行服务,需要三个主要组件:与用户进行交互的Web服务器,托管一个或多个模型的模型工作器,以及协调Web服务器和模型工作器的控制器。

  首先开启三个不同的终端

  1、启动控制器,该控制器负责管理分布式工作器。

python3 -m fastchat.serve.controller

在这里插入图片描述

  2、启动模型工作器,等待进程加载模型完成,并看到"Uvicorn running on …"的提示,模型工作器将向控制器注册自己。

# 如果没有GPU,要在后面添加 --device cpu,否则会报错
python3 -m fastchat.serve.model_worker --model-name 'vicuna-7b-v1.1' --model-path vicuna_data/vicuna-7b-v1.1

图3

  3、为确保您的模型工作器与控制器正确连接,请使用以下命令发送测试消息,您将看到一个简短的输出。

python3 -m fastchat.serve.test_message --model-name vicuna-7b-v1.1

图4

  4、启动Gradio Web服务器,这是用户将与之交互的用户界面。

python3 -m fastchat.serve.gradio_web_server

图5

  5、在浏览器访问:localhost:7860,看到如下窗口,即可进行交互

图6
在这里插入图片描述

二、WIndows操作系统下部署

1. 环境介绍

  • 操作系统:win10
  • I7,64G运行内存
  • GPU 4080 16G
  • Python3.10.7
  • Pycharm 2021.3

2. 安装开发环境

2.1 安装Python3.10.7 、Pycharm破解版、Git

  傻瓜式安装,安装包看这里:

3. 安装FastChat

3.1 使用Git下载FastChat源码

  首先打开Git Bash
在这里插入图片描述
  进入项目的文件夹,我这里是E:\02_LargeModel,执行命令:

git clone https://github.com/lm-sys/FastChat.git

  等待执行完成
在这里插入图片描述

3.2 使用Pycharm配置项目

在这里插入图片描述
  配置python虚拟环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  点击OK后,等待创建虚拟环境,然后再次点击OK
在这里插入图片描述

  安装依赖包

在这里插入图片描述

pip install fschat -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
  等待安装完成即可。

  进入FastChat文件夹,升级pip及安装依赖

cd FastChat
pip install --upgrade pip
pip install -e .

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

3.3 检查CUDA

  安装到这里,我们要先检查以下CUDA,可以新建一个test.py,打印一下设备情况 :
在这里插入图片描述
  如果输出是CUDA,就可以跳过这一节,否则的话,请严格按照文档进行操作

3.3.1 查看显卡信息

  win+R -> 输入cmd 然后点击“运行” -> 输入nvidia-smi 检查是否有显卡信息
在这里插入图片描述
在这里插入图片描述

3.3.2 查看CUDA与Torch的对应关系

CUDA Torch TorchVision
cu75 0.1.7, 0.1.6, 0.2.0, 0.3.0, 0.1.11, 0.1.8, 0.1.9, 0.1.10, 0.1.12, 0.3.0 -
cu80 1.0.0, 0.4.0, 0.1.7, 0.4.1, 0.4.1, 0.1.6, 1.0.1, 0.2.0, 1.0.1, 0.3.0, 0.1.11, 0.1.8, 0.3.1, 0.1.9, 0.1.10, 0.1.12, 0.3.0 -
cu90 1.0.0, 0.4.1, 0.4.1, 1.0.1, 1.1.0, 1.0.1, 0.3.0, 0.3.1, 0.4.0, 0.3.0 0.3.0
cu91 0.3.1, 0.4.0 -
cu92 1.5.02, 0.4.1, 0.4.1, 1.5.12, 1.6.02, 1.3.02, 1.3.12, 1.7.02, 1.7.12, 1.2.02, 1.4.02 0.8.0, 0.8.22, 0.8.12, 0.7.02, 0.4.22, 0.4.12, 0.6.02, 0.6.12, 0.4.02, 0.5.02
cu100 1.0.0, 1.2.0, 1.1.0, 1.0.1, 1.3.02, 1.3.12, 1.0.1, 1.4.02 0.4.22, 0.4.12, 0.4.0, 0.3.0, 0.5.02
cu101 1.5.02, 1.6.02, 1.5.12, 1.3.0, 1.3.1, 1.7.02, 1.7.12, 1.8.12, 1.4.0, 1.8.02 0.8.0, 0.8.22, 0.8.12, 0.9.12, 0.7.02, 0.4.2, 0.9.02, 0.5.0, 0.4.1, 0.6.02, 0.6.12
cu102 1.12.0, 1.9.12, 1.10.0, 1.7.1, 1.9.02, 1.10.1, 1.12.1, 1.7.0, 1.10.2, 1.5.0, 1.6.0, 1.8.0, 1.5.1, 1.8.12, 1.11.0 0.11.1, 0.6.0, 0.9.1, 0.11.3, 0.9.12, 0.8.1, 0.6.1, 0.10.0 , 0.8.0, 0.9.0, 0.10.1, 0.7.0, 0.11.0, 0.8.2, 0.13.0, 0.10.0, 0.11.2, 0.13.1, 0.12.0
cu110 1.7.02, 1.7.12 0.8.0, 0.8.12, 0.8.22
cu111 1.9.12, 1.10.0, 1.9.02, 1.10.1, 1.10.2, 1.8.12, 1.8.02 0.11.3, 0.9.12, 0.11.1, 0.9.02, 0.10.1, 0.10.0, 0.11.2, 0.11.0
cu113 1.12.0, 1.10.0, 1.10.1, 1.12.1, 1.10.2, 1.11.0 0.11.1, 0.13.0, 0.11.0, 0.13.1, 0.11.2, 0.11.3, 0.12.0
cu115 1.11.0 0.12.0
cu116 1.12.0, 1.12.1 0.13.0, 0.13.1

3.3.3 Torch与Torchvision对应关系

Torch TorchVision Python
main / nightly main / nightly >=3.8, <=3.10
2.0.0 0.15.1 >=3.8, <=3.10
1.13.0 0.14.0 >=3.7.2, <=3.10
1.12.0 0.13.0 >=3.7, <=3.10
1.11.0 0.12.3 >=3.7, <=3.10
1.10.2 0.11.3 >=3.6, <=3.9
1.10.1 0.11.2 >=3.6, <=3.9
1.10.0 0.11.1 >=3.6, <=3.9
1.9.1 0.10.1 >=3.6, <=3.9
1.9.0 0.10.0 >=3.6, <=3.9
1.8.2 0.9.2 >=3.6, <=3.9
1.8.1 0.9.1 >=3.6, <=3.9
1.8.0 0.9.0 >=3.6, <=3.9
1.7.1 0.8.2 >=3.6, <=3.9
1.7.0 0.8.1 >=3.6, <=3.8
1.7.0 0.8.0 >=3.6, <=3.8
1.6.0 0.7.0 >=3.6, <=3.8
1.5.1 0.6.1 >=3.5, <=3.8
1.5.0 0.6.0 >=3.5, <=3.8
1.4.0 0.5.0 ==2.7, >=3.5, <=3.8
1.3.1 0.4.2 ==2.7, >=3.5, <=3.7
1.3.0 0.4.1 ==2.7, >=3.5, <=3.7
1.2.0 0.4.0 ==2.7, >=3.5, <=3.7
1.1.0 0.3.0 ==2.7, >=3.5, <=3.7
<=1.0.1 0.2.2 ==2.7, >=3.5, <=3.7

3.3.4 Torch与Torchaudio对应关系

Torch TorchAudio Python
main / nightly main / nightly >=3.8, <=3.10
2.0.1 2.0.2 >=3.8, <=3.11
2.0.0 2.0.1 >=3.8, <=3.11
1.13.1 0.13.1 >=3.7, <=3.10
1.13.0 0.13.0 >=3.7, <=3.10
1.12.0 0.12.0 >=3.7, <=3.10
1.11.0 0.11.0 >=3.7, <=3.9
1.10.0 0.10.0 >=3.6, <=3.9
1.9.1 0.9.1 >=3.6, <=3.9
1.9.0 0.9.0 >=3.6, <=3.9
1.8.2 0.8.2 >=3.6, <=3.9
1.8.1 0.8.1 >=3.6, <=3.9
1.8.0 0.8.0 >=3.6, <=3.9
1.7.1 0.7.2 >=3.6, <=3.9
1.7.0 0.7.0 >=3.6, <=3.8
1.6.0 0.6.0 >=3.6, <=3.8
1.5.0 0.5.0 >=3.5, <=3.8
1.4.0 0.4.0 ==2.7, >=3.5, <=3.8

3.3.5 下载对应版本的whl文件

  回顾一下我的环境,CUDA12.0,Python3.10.7,所以我选择的版本是:
在这里插入图片描述
下载链接如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  如果你跟我的CUDA版本不同,那么请根据自己的版本,选择对应的torch、torchaudio、torchvision版本,如果跟我的相同,可以直接从我提供的软件包中进行安装

3.3.6 安装GPU版Torch

  在FastChat新建一个torch_whl文件夹,把下载好的三个.whl文件存放进去,如图:
在这里插入图片描述
在这里插入图片描述

3.3.7 测试GPU

  完成上述安装后,再次执行test.py文件,如果输出是cuda,则安装成功,如还是cpu,请自行检查
在这里插入图片描述

4. 加载羊驼模型

  在FastChat文件夹下新建一个vicuna文件夹,将下载的7B和13B模型存放在这里
在这里插入图片描述
   整体目录结构如下:
在这里插入图片描述

5. cli测试

  下面的命令对于Vicuna-13B需要约28GB的GPU内存,对于Vicuna-7B需要约14GB的GPU内存。根据自己的设备情况自行测试最佳的运行方式

# 启动vicuna-7b模型
python -m fastchat.serve.cli --model-path vicuna/vicuna-7b
# 启动/vicuna-13b-v1.1 --load-8bit, 13B需要28G显存,无法直接使用,可以使用--load-8bit
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-13b-v1.1 --load-8bit

# 加载多块GPU
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-7b-v1.1 --num-gpus 2

# 这将仅在CPU上运行,不需要GPU。对于Vicuna-13B需要约60GB的CPU内存,对于Vicuna-7B需要约30GB的CPU内存。
python3 -m fastchat.serve.cli --model-path vicuna_data/vicuna-7b-v1.1 --device cpu

  我以运行Vicuna-7B举例,其他的可以自己根据配置情况进行尝试
在这里插入图片描述
  在这里可以进行像ChatGPT一样的问答了:
在这里插入图片描述

6. Web GUI测试

  要使用Web用户界面进行服务,需要三个主要组件:与用户进行交互的Web服务器,托管一个或多个模型的模型工作器,以及协调Web服务器和模型工作器的控制器。

  首先开启三个不同的终端

  1、启动控制器,该控制器负责管理分布式工作器。

python -m fastchat.serve.controller

在这里插入图片描述

  2、启动模型工作器,等待进程加载模型完成,并看到"Uvicorn running on …"的提示,模型工作器将向控制器注册自己。

# 如果没有GPU,要在后面添加 --device cpu,否则会报错
python -m fastchat.serve.model_worker --model-path vicuna/vicuna-7b

在这里插入图片描述

  3、为确保您的模型工作器与控制器正确连接,请使用以下命令发送测试消息,您将看到一个简短的输出。

python -m fastchat.serve.test_message --model-name vicuna-7b

在这里插入图片描述

  4、启动Gradio Web服务器,这是用户将与之交互的用户界面。

python -m fastchat.serve.gradio_web_server

在这里插入图片描述

  5、在浏览器访问:localhost:7860,看到如下窗口,即可进行交互,注意在windows服务器下,localhost:7860无法访问,要将localhost替换成本机的ip,

  查看本机IP:
在这里插入图片描述
在这里插入图片描述

  输入 ‘‘本机IP地址:7860’’ 打开网址,即可进行会话
图6
在这里插入图片描述

  感谢您阅读这篇文章!如果您觉得有所收获,别忘了点赞、收藏并关注我,这是我持续创作的动力。您有任何问题或建议,都可以在评论区留言,我会尽力回答并接受您的反馈。如果您希望了解某个特定主题,也欢迎告诉我,我会乐于创作与之相关的文章。谢谢您的支持,期待与您共同成长!

  期待与您在未来的学习中共同成长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保姆级教程:Linux和Windows下本地化部署Vicuna模型 的相关文章

随机推荐

  • 海康ipc onvif抓包分析

    型号 半球DS 2CD2122FWD IWS 子码流的地址 101 1 rtsp admin hik12345 10 7 36 222 554 Streaming Channels 102 transportmode unicast rts
  • 前端开发有哪些技术栈要掌握_为什么要掌握前端开发的这四个主要概念

    前端开发有哪些技术栈要掌握 After working as a front end developer for three years I have been able to summarize what I feel are the f
  • (个人)AR电子书系统创新实训第四周(2)

    使用Json保存数据索引 在成功地配置好服务器并进行了访问测试后 打包上传数据的功能只剩下最后一步需要测试了 那就是对数据关系的组织及保存 对于AR识别来说 数据的内容主要有两类 一类是用于进行位置判断的目标图像 在这个项目中就是宣传册上的
  • 毕业设计-基于深度学习的垃圾分类识别方法

    目录 前言 课题背景和意义 实现技术思路 一 目标检测算法对比研究 二 垃圾数据集的制作 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个
  • 基于java springboot vue实现的校园招聘系统

    基于java springboot vue实现的校园招聘系统 总体分为三端 分别为 管理员 用户 企业 用户端 管理员端 企业端
  • layui table切换html,layui-table对返回的数据进行转变显示的实例

    在使用layui表格时 在ajax请求回来的数据 有时候需要我们处理之后显示 1 比如性别sex这个字段 后台可能返回的是1 或者 2 那我们总不能显示1 和 2 我们需要显示男和女 这里就用到了自定义模板了 if d sex 1 男 el
  • RS485转0_20mA输出模块设计

    文章目录 1 简介 2 功能实现 3 测试 4 开源地址 1 简介 结合以前发的文章 我们知道 模拟量输出有两种 一种是共地型 一种是共源型 今天开源一款rs485隔离的转0 20ma输出模块的设计 我设计模块的原因是为了测试公司的一款模拟
  • 基础算法题——异或(复杂度的小差异)

    异或 题目描述 给定一个长度为 n 初始全为 0 的数列 ai 下标从 1 开始 定义操作模 k 异或 v 为对所有满足 ki 0 mod k 的下标 i 将异或上整数v 即令 ai ai v 给出q次操作 每次操作之后输出序列的异或和 并
  • js插入前后

  • 【2023.07.15】生成模型(三)Score-based Generative Models

    1 main contribution 来自Score based Generative Model的原文 1 提供了一个统一SMLD denoising score matching with langevin dynamics 和DDP
  • MPLS LDP的原理与配置

    一 LDP协议的概述 1 LDP会话 本地会话 LSR之间是直连的 双方使用组播地址224 0 0 2建立会话 远程会话 LSR之间可以是非直连的 双方建立会话是使用单播建立的 缺省是本地会话 2 LDP领接体 只要双方建立了会话之后就建立
  • Flink+Hudi 构架湖仓一体化解决方案

    摘要 本文详细介绍了 Flink Hudi 湖仓一体化方案的原型构建 主要内容为 Hudi 新架构与湖仓一体 最佳实践 Flink on Hudi Flink CDC 2 0 on Hudi Tips FFA 2021 重磅开启 点击 阅读
  • tcp第三次握手ack均是1?

    本人做了tcp连接测试 但是结果和网络中其他人的说法有点不一致 测试使用了命令 tcpdump s1用网卡ens33抓取端口好为80的网络数据包 tcpdump nn i ens33 port 80 s2访问百度 建立3次连接请求数据 cu
  • P1094 [NOIP2007 普及组] 纪念品分组 Python (贪心算法)

    题目地址 P1094 NOIP2007 普及组 纪念品分组 又是一道水题 但CSDN上没有详细Python代码 于是我就来水一贴 对于想要学算法提升能力的同学来说可以刷这套题单 能力全面提升综合题单 读完题目后我们可以快速得出 既然要求最小
  • 青少年CTFmisc-simpleness

    提示弱口令 爆破出hint的密码123456 hint zip里面解出两个文件 hint png hint rar 这个hint rar是伪加密 随便打开一个十六进制的编辑器 这里的24表示已加密 改成20表示未加密 打开hint txt
  • 8B10B编解码的Verilog实现

    此篇是我在学习中做的归纳与总结 其中如果存在版权或知识错误或问题请直接联系我 欢迎留言 PS 本着知识共享的原则 此篇博客可以转载 但请标明出处 目录 0 8B 10B编码 0 0 8B 10B编码原理 0 1 8B 10B编码的FPGA实
  • pycharm调整字母长度分割线为80

    写过 python 的同学都知道 python 代码默认一行的长度不超过 80 个字符 但是 pycharm 默认的分割线在第 120 个字符处 需要作如下修改 设置 File gt Settings gt Code Style gt Ri
  • JetBrains全家桶使用说明

    一 二 三 友情推荐 激活获取地址
  • 泰勒公式和二项式展开定理的共同点

    泰勒公式和二项式展开定理的共同点 对于f x 1 x n 采用泰勒展开法有 f x fk0 0 x 0 0 fk1 0 x 1 1 fk2 0 x 2 2 其中fk0 0 fk1 0 分别代表fk x 的k阶导数 并且传0代替k阶导数中的x
  • 保姆级教程:Linux和Windows下本地化部署Vicuna模型

    目录 文章摘要 一 Vicuna简介 1 Vicuna模型定义 2 Vicuna模型的应用场景 3 Vicuna模型的训练数据 4 Vicuna模型的版本 5 性能评估 二 linux 操作系统下部署 1 环境介绍 2 安装Python3