EN
/video/58989226.html

软件测试领域智能AI服务搭建(一) 环境准备

2025-06-24 11:57:53 来源: 新华社
字号:默认 超大 | 打印 |

文章目录

  • 一、硬件准备及虚拟机
    • 1.1 主机及虚拟机配置
    • 1.2 虚拟机环境准备
      • 1.2.1 检测宿主机是否支持GPU
      • 1.2.2 切换PCI设置为直通
      • 1.2.3 添加PCI设备到虚拟机
      • 1.2.4 关闭UEFI 安全引导
    • 1.3 软件环境准备
      • 1.3.1 配置阿里云的 yum 源
      • 1.3.2 升级Python
  • 二、安装GPU驱动
    • 2.1 下载驱动包及依赖包
    • 2.2 安装驱动
  • 三、 部署Ollama
    • 3.1 创建Ollama服务并运行
    • 3.2 在ollama上运行模型
  • 四、开发环境安装(windows)
    • 安装python
    • 安装python依赖
      • 安装miniconda
      • 安装python依赖
        • 镜像源配置
  • 参考

一、硬件准备及虚拟机

1.1 主机及虚拟机配置

  • 宿主机
    ThinkSystem SR658 20C * 2 128GB VMware Exsi7.0 Nvdia Quadro RTX 6000
  • 虚拟机
    操作系统Centos8(CentOS-8.5.2111-x86_64-dvd1.iso)
虚拟机配置配置参数
CPU16C
内存16G
硬盘200G

1.2 虚拟机环境准备

在安装ollama和加载大模型前,需要检测主机是否支持GPU

1.2.1 检测宿主机是否支持GPU

  1. 登录到 vSphere Client:
    • 打开 vSphere Client 并登录到你的 ESXi 主机或 vCenter Server。
  2. 导航到主机配置:
    • 在左侧导航栏中,选择你的 ESXi 主机。
    • 在右侧的“摘要”选项卡中,点击“硬件”部分下的“PCI 设备”。
  3. 查看 PCI 设备列表:
    • 在“PCI 设备”列表中,查找是否有 GPU 设备。通常,GPU 设备会显示为“NVIDIA”、“AMD”或“Intel”等品牌名称。

nvdia-pci
如上图(注意,这里的NVIDIA设置已切换到直通了),这显示了Vmware 主机支持GPU设置。

1.2.2 切换PCI设置为直通

要使用 NVIDIA GRID vGPU 图形设备,需要在PCI设备管理页面选择对应设备并切换到直通。如下图:
在这里插入图片描述

1.2.3 添加PCI设备到虚拟机

创建虚拟机或者编辑现有虚拟机,通过“添加虚其他设备选项”》“PCI设备”》添加PCI设备到虚拟机。如下图:新增虚拟机时添加PCI设备。
在这里插入图片描述
下图为已经挂载PCI设备的虚拟机控制台页面:
在这里插入图片描述

1.2.4 关闭UEFI 安全引导

NVIDIA GPU 驱动安装后需要签署 NVIDIA 内核模块,否则nvidia-smi 无法与 NVIDIA 驱动程序通信。而签署 NVIDIA 内核模块需要由内核信任的密钥进行加密签名才能加载。虚拟机如果启用了 Secure Boot,创建密钥需要确保已正确导入 MOK 密钥,才能正确识别签名密钥,否则无法正常签署 NVIDIA 内核模块。因此简单的操作是 修改虚拟机配置》关闭UEFI 安全引导,从而禁用 Secure Boot。参考NVIDIA驱动安装官方文档说明

1.3 软件环境准备

1.3.1 配置阿里云的 yum 源

# 备份本地yum源配置cd/etc/yum.repos.d/mkdirbakmv* bak/# 下载阿里云yum源配置wget-O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo# 修改阿里云yum源配置命令名行模式(shift + :)执行# 将 mirrors.cloud.aliyuncs.com 替换为 mirrors.aliyun.com%s/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g# 将 $releasever 替换为 $releasever-stream%s/$releasever/$releasever-stream/g# 更新源配置yum clean allyum makecache# 更新软件包yum update --allowerasing-y

1.3.2 升级Python

tar-xvzfPython-3.11.9.tgzcdpython3.11./configure --enable-optimizationsmakealtinstall# 验证安装[root@llmserver usr]# python3 --versionPython 3.11.7

二、安装GPU驱动

2.1 下载驱动包及依赖包

  1. 驱动包下载
    NVIDIA 驱动软件版本需要和硬件版本兼容,可以通过NVIDIA 官网查看和选择硬件兼容的驱动包,这里我们的GPU版本是Nvdia Quadro RTX 6000,对应的驱动软件包为:NVIDIA-Linux-x86_64-550.135.run
  2. CUDA Toolkit 安装包
    通过官网下载操作系统对应的安装包,linux centos7+ 安装包应该是下面两个依赖包:
    • cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpm
    • cuda-repo-rhel7-10-0-local-nvjpeg-update-1-1.0-1.x86_64.rpm
  3. cuDNN安装包
    选择与 CUDA 版本兼容的 cuDNN 版本,从官网下载。对于 CUDA 10.0,推荐使用的 cuDNN 版本是 7.6.x:
    • libcudnn7-7.6.5.32-1.cuda10.0.x86_64.rpm
    • libcudnn7-devel-7.6.5.32-1.cuda10.0.x86_64.rpm

2.2 安装驱动

  1. 禁用 Nouveau 驱动
    nouveau 是系统默认的开源驱动,要安装NVIDIA 驱动,需要禁用nouveau 。
# 检测nouveau 是否启用lsmod |grepnouveau# 如果上述命令执行有结果,需要修改配置并重启服务器# 编辑 /etc/modprobe.d/blacklist.conf 文件echo"blacklist nouveau"|sudotee-a/etc/modprobe.d/blacklist.confecho"options nouveau modeset=0"|sudotee-a/etc/modprobe.d/blacklist.conf# 备份initramfs:mv/boot/initramfs-$(uname-r).img /boot/initramfs-$(uname-r).img.bak# 重建 initramfsdracut -v/boot/initramfs-$(uname-r).img $(uname-r)# 重启服务器reboot# 重启后验证驱动是否被禁用 如果无结果显示则表明成功禁用lsmod |grepnouveau
  1. 停止图形界面(如果使用的是图形界面):
sudosystemctl set-default multi-user.targetsudosystemctl isolate multi-user.target
  1. 安装依赖
sudoyum install-ykernel-devel kernel-headers gcc make# 检查kernel和命令uname -r下的系统版本是否一致uname-r
  1. 安装cuda
    使用rpm模式安装基础包
rpm-ivhcuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64rpm-ivhcuda-repo-rhel7-10-0-local-nvjpeg-update-1-1.0-1.x86_64.rpm#通过yum安装cuda其他依赖yum clean allyum install-ycuda# 设置环境变量,末尾追加下面配置,通过 esc - :wq 保存编辑vim/etc/profileexportPATH=/usr/local/cuda-10.0/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH# 保存后立马生效source/etc/profile# 检查配置是否成功echo$LD_LIBRARY_PATH# 安装完成,检查cuda是否正常nvcc -V
  1. 安装驱动
    进入到安装包下载路径,运行下面命令进行安装
# 赋予安装脚本可执行权限chmod+x NVIDIA-Linux-x86_64-550.135.run# 运行安装脚本,这里--kernel-source-path指定内核源码路径确保安装脚本能够正确编译和安装这个内核模块sudo./NVIDIA-Linux-x86_64-550.135.run --kernel-source-path=/usr/src/kernels/$(uname-r)# 根据安装程序引导,一直选择yes确认即可#测试安装结果,运行nvidia-smi命令显示NVIDIA驱动信息说明安装成功[root@llmserver opt]# nvidia-smiThu Dec 1222:24:21 2024+-----------------------------------------------------------------------------------------+|NVIDIA-SMI 550.135Driver Version: 550.135CUDA Version: 12.4||-----------------------------------------+------------------------+----------------------+|GPU  Name                 Persistence-M |Bus-Id          Disp.A |Volatile Uncorr. ECC ||Fan  Temp   Perf          Pwr:Usage/Cap |Memory-Usage |GPU-Util  Compute M. ||||MIG M. ||=========================================+========================+======================||0Quadro RTX 6000Off |00000000:13:00.0 Off |Off ||34%   26C    P8              6W /  260W |3MiB /  24576MiB |0%      Default ||||N/A |+-----------------------------------------+------------------------+----------------------+                                                                                         +-----------------------------------------------------------------------------------------+|Processes:                                                                              ||GPU   GI   CI        PID   Type   Process name                              GPU Memory ||ID   ID                                                               Usage      ||=========================================================================================||No running processes found                                                             |+-----------------------------------------------------------------------------------------+
  1. 安装cudnn
    cudnn库,这是深度学习框架常用的库
# 下面两项安装完成即可rpm-ivhlibcudnn7-7.6.5.32-1.cuda10.0.x86_64.rpmrpm-ivhlibcudnn7-devel-7.6.5.32-1.cuda10.0.x86_64.rpm

三、 部署Ollama

3.1 创建Ollama服务并运行

参考官网,官方推荐linux下使用安装命令:

curl-fsSLhttps://ollama.com/install.sh |sh

但是国内直接使用上述命令一键安装会非常缓慢,我们直接使用github加速代理方式本地下载并进行手动安装。

  • 到 ollama github 官网 下载对应的安装包,x86_64 CPU 选择下载 ollama-linux-amd64.tgz
  • 执行安装命令
# 下载curl-Lhttps://ollama.com/download/ollama-linux-amd64 -o/usr/local/bin/ollamachmod+x /usr/local/bin/ollama# 创建Ollama用户组groupaddOllamausermod-aGOllama root# 创建服务配置vi/etc/systemd/system/ollama.servicecopy[Unit]Description=Ollama ServiceAfter=network-online.target[Service]ExecStart=/usr/local/bin/ollama/bin/ollama serveUser=rootGroup=ollamaRestart=alwaysRestartSec=3Environment="OLLAMA_HOST=0.0.0.0:11434"Environment="/usr/local/bin/ollama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"[Install]WantedBy=default.target# 刷新配置systemctl daemon-reload# 将Ollama设置为启动服务systemctl enableollama# 启动ollamasystemctl start ollama# 验证安装[root@llmserver bin]# ollama -vollama version is 0.3.11

3.2 在ollama上运行模型

安装完成后便可以使用ollama运行模型

# 运行模型[root@llmserver ~]# ollama run qwen2:7bpulling manifest pulling 43f7a214e532... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 4.4GB                         pulling 77c91b422cc9... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.4KB                         pulling c156170b718e... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  11KB                         pulling f02dd72bb242... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏   59B                         pulling 75357d685f23... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏   28B                         pulling 648f809ced2b... 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  485B                         verifying sha256 digest writing manifest success >>>Send a message (/? forhelp)# 验证模型是否安装[root@llmserver bin]# ollama listNAME        ID              SIZE      MODIFIED     qwen2:7b    dd314f039b9d    4.4GB    42hours ago 

四、开发环境安装(windows)

安装python

官方下载软件包 python-3.11.9-amd64.exe,下载完成点击安装。

安装python依赖

使用miniconda来安装python相关的依赖包。

安装miniconda

通过清华镜像源下载对应软件包,比如我的python是3.11的版本就下载[Miniconda3-py311_24.7.1-0-Windows-x86_64.exe]。下载完成点击安装即可。

完成完成后后通过快捷菜单可以查看到miniconda命令行工具
在这里插入图片描述

点击Anaconda Prompt进入命令行模式

安装python依赖

在Anaconda Prompt命令行模式下执行【pip install ollama faiss-cpu tqdm numpy】命令,完成RAG所需要依赖安装。
如何安装出现下面错误,则需要配置配置镜像源。

ERROR: Exception: Traceback (most recent call last): File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 438, in_error_catcher yield File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 561, inreaddata =self._fp_read(amt)ifnot fp_closed elseb""^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 527, in_fp_read returnself._fp.read(amt)ifamt is not None elseself._fp.read()^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\cachecontrol\filewrapper.py", line 98, inreaddata: bytes =self.__fp.read(amt)^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\http\client.py", line 473, inreads =self.fp.read(amt)^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\socket.py", line 706, inreadinto returnself._sock.recv_into(b)^^^^^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\ssl.py", line 1314, inrecv_into returnself.read(nbytes, buffer)^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\ssl.py", line 1166, inreadreturnself._sslobj.read(len, buffer)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TimeoutError: The readoperation timed outDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\cli\base_command.py", line 105, in_run_wrapper status =_inner_run()^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\cli\base_command.py", line 96, in_inner_run returnself.run(options, args)^^^^^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\cli\req_command.py", line 67, inwrapper returnfunc(self, options, args)^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\commands\install.py", line 379, inrun requirement_set =resolver.resolve(^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\resolution\resolvelib\resolver.py", line 179, inresolve self.factory.preparer.prepare_linked_requirements_more(reqs)File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\operations\prepare.py", line 554, inprepare_linked_requirements_more self._complete_partial_requirements(File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\operations\prepare.py", line 469, in_complete_partial_requirements forlink, (filepath, _)inbatch_download: File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\network\download.py", line 184, incall forchunkinchunks: File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\cli\progress_bars.py", line 55, in_rich_progress_bar forchunkiniterable: File "D:\ProgramData\miniconda3\Lib\site-packages\pip_internal\network\utils.py", line 65, inresponse_chunks forchunkinresponse.raw.stream(File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 622, instream data =self.read(amt=amt, decode_content=decode_content)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 560, inreadwith self._error_catcher(): File "D:\ProgramData\miniconda3\Lib\contextlib.py", line 158, inexitself.gen.throw(typ, value, traceback)File "D:\ProgramData\miniconda3\Lib\site-packages\pip_vendor\urllib3\response.py", line 443, in_error_catcher raise ReadTimeoutError(self._pool, None, "Read timed out.")pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
镜像源配置
  1. 更改 pip 配置文件
    编辑 pip 的配置文件(~/.pip/pip.conf 或 C:\Users<username>\pip\pip.ini):
[global]index-url =https://mirrors.aliyun.com/pypi/simple/timeout=60
  1. 直接在命令行模式下配置
pip install--index-url https://mirrors.aliyun.com/pypi/simple/ your-package

安装完镜像源重新执行命令【pip install ollama faiss-cpu tqdm numpy】即可。

参考

Ollama安装指南:解决国内下载慢和安装卡住问题
Qwen2大语言模型的微调、评测与部署实践
https://ollama.com/
Miniconda 安装及使用for windows(保姆级教程)
vmware exsi 7.0
nvidia驱动安装官方手册

【我要纠错】责任编辑:新华社