首先,使用以下命令启动 Docker 镜像,并挂载指定目录到容器中:
bash展开代码docker run --gpus all -it --shm-size 16G --rm -v /root/xiedong/Qwen2-VL-7B-Instruct:/Qwen2-VL-7B-Instruct --net host qwenllm/qwenvl:2-cu121 bash
接下来,在容器内安装必要的依赖包:
bash展开代码pip install git+https://github.com/huggingface/transformers@21fac7abba2a37fae86106f87fcf9974fd1e3830
pip install accelerate
pip install -U qwen-vl-utils
# 根据你的 CUDA 版本安装 vllm
CUDA_VERSION=cu121
pip install 'vllm==0.6.1' --extra-index-url https://download.pytorch.org/whl/${CUDA_VERSION}
在许多开发和数据处理场景中,快速共享文件,尤其是图片文件,是一项重要的需求。本文将介绍如何在 Linux 系统上使用 Python 的内置库快速搭建一个 HTTP 服务,以便其他服务器或客户端可以通过 URL 访问和下载指定目录中的图片。
Python 是一种简单易学且功能强大的编程语言,其内置的 http.server
模块可以帮助我们轻松创建一个 HTTP 服务器。与其他复杂的网络框架相比,http.server
提供了一个快速的解决方案,适合需要临时文件共享或开发测试的场景。
laion_aesthetics_1024_33M_9.parquet
文件示例我下载了一个示例文件 laion_aesthetics_1024_33M_9.parquet
并存放在 /ssd/xiedong/parquet_test
目录中,接下来,我将通过启动 Docker 容器来完成该文件的数据下载。
核心思路是:每个容器配备一个配置文件,配置文件内定义了下载设置(如输入和输出文件位置等)。容器启动后会依据配置文件执行任务,任务完成后容器自动关闭。
首先,下载Qwen2-VL-72B-Instruct-GPTQ-Int4模型到指定路径(例如:/root/xiedong/Qwen2-VL-72B-Instruct-GPTQ-Int4
)。该路径可以根据实际情况调整。
在之前的文章 【深度学习】LLaMA-Factory部署Qwen2-VL 中,已经介绍了如何部署未量化的模型。本篇将讨论如何部署量化过的模型,即 Qwen2-VL-72B-Instruct-GPTQ-Int4。
官方教程地址:[AutoGPTQ 教程](https://github.com/AutoGPTQ/AutoGPTQ/blob/main/README_zh.md
初始化:
c展开代码void OLED_Init(void)
{
oled_port_init();
delay(4000); //初始化之前的延时很重要!
OLED_WR_Byte_(0xAE, OLED_CMD); //--display off
OLED_WR_Byte_(0x00, OLED_CMD); //---set low column address
OLED_WR_Byte_(0x10, OLED_CMD); //---set high column address
OLED_WR_Byte_(0x40, OLED_CMD); //--set start line address
OLED_WR_Byte_(0xB0, OLED_CMD); //--set page address
OLED_WR_Byte_(0x81, OLED_CMD); // contract control
OLED_WR_Byte_(0xFF, OLED_CMD); //--128
OLED_WR_Byte_(0xA1, OLED_CMD); //set segment remap
OLED_WR_Byte_(0xA6, OLED_CMD); //--normal / reverse
OLED_WR_Byte_(0xA8, OLED_CMD); //--set multiplex ratio(1 to 64)
OLED_WR_Byte_(0x3F, OLED_CMD); //--1/32 duty
OLED_WR_Byte_(0xC8, OLED_CMD); //Com scan direction
OLED_WR_Byte_(0xD3, OLED_CMD); //-set display offset
OLED_WR_Byte_(0x00, OLED_CMD); //
OLED_WR_Byte_(0xD5, OLED_CMD); //set osc division
OLED_WR_Byte_(0x80, OLED_CMD); //
OLED_WR_Byte_(0xD8, OLED_CMD); //set area color mode off
OLED_WR_Byte_(0x05, OLED_CMD); //
OLED_WR_Byte_(0xD9, OLED_CMD); //Set Pre-Charge Period
OLED_WR_Byte_(0xF1, OLED_CMD); //
OLED_WR_Byte_(0xDA, OLED_CMD); //set com pin configuartion
OLED_WR_Byte_(0x12, OLED_CMD); //
OLED_WR_Byte_(0xDB, OLED_CMD); //set Vcomh
OLED_WR_Byte_(0x30, OLED_CMD); //
OLED_WR_Byte_(0x8D, OLED_CMD); //set charge pump enable
OLED_WR_Byte_(0x14, OLED_CMD); //
OLED_Clear();
OLED_WR_Byte_(0xAF, OLED_CMD); //--turn on oled panel
}
multiprocessing.set_start_method('spawn')
在 Python 的并发编程领域,如何管理进程的启动对于确保程序稳定性和合理管理资源至关重要。multiprocessing
模块为启动子进程提供了几种方法,其中 spawn
是在某些场景下特别有用和稳健的选项。