Ubuntu 22.04 AI大模型环境配置及常用工具安装

news2025/4/17 19:54:56

一、基础环境准备

1.1 系统准备

建议使用 Ubuntu22.04
以下配置皆以 Ubuntu22.04 系统版本为例

1.2 安装git

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

1.3 安装 Python 3.9+

建议安装 3.10】(安装miniconda或者conda来管理虚拟环境)

  wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && chmod +x Miniconda3-latest-Linux-x86_64.sh && ./Miniconda3-latest-Linux-x86_64.sh && source ~/.bashrc 

1.4 安装CUDA

目前 Pytorch 官网提示支持 11.8、12.4、12.6【建议 11.8或者 12.4

  # CUDA Toolkit Installer-12.4
  wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
  sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
  wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb
  sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb
  sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
  sudo apt-get update
  sudo apt-get -y install cuda-toolkit-12-4
  
  # 安装驱动
  sudo apt-get install -y cuda-drivers
  
  # 设置环境变量(注意cuda安装的路径)
  echo 'export PATH="/usr/local/cuda-12.4/bin${PATH:+:${PATH}}"' >> ~/.bashrc
  source ~/.bashrc  # 重新加载配置
  echo $PATH | grep cuda-12.4 # 验证 PATH
  
  reboot
    
  # 重启后验证是否可以获取 nvidia 显卡信息
  nvcc --version
  nvidia-smi

1.5 安装CUDNN

下载匹配cuda12.4、ubuntu适用的cudnn包

  wget https://developer.download.nvidia.com/compute/cudnn/9.8.0/local_installers/cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
  sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
  sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
  sudo apt-get update
  sudo apt-get -y install cudnn
  
  # 使用以下命令进行查看
  ldconfig -p | grep cudnn

1.6 安装Pytorch【可选】

# 创建基础环境
conda create -n ai python==3.12 -y && conda activate ai
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

1.7 创建基础目录

  mkdir -p ~/work/ai/models ~/work/ai/datasets ~/work/ai/tools/

二、大模型部署框架

2.1 安装Ollama【可选】

  • ollama只支持GGUF格式的模型,如果在modelscope
    或者huggingface下载模型,需要注意模型格式(GGUF一般指的是量化后的模型,缺点是模型效果变差,优势是模型会更小,推理速度会更快,对硬件要求会更低)
  • mac以及windows上是直接下载客户端
  • ollama一般针对的是个人用户
  conda create -n ollama python==3.10 -y && conda activate ollama
  cd ~/work/ai/tools && curl -fsSL https://ollama.com/install.sh | sh
  # 启动ollama服务(开启的端口默认是11434)
  ollama serve
  # 列出已下载的模型
  ollama list
  # 运行模型(没有的话会从modelscope下载)
  ollama run qwen2.5:0.5b

2.2 安装vLLM【可选】

vLLM 是一个 Python 库,它包含预编译的 C++ 和 CUDA (12.1) 二进制文件。
通过 PagedAttention 等技术优化 GPU 内存使用,显著提升推理速度

  • 推理性能高,适合实时和大规模推理任务
  • 支持分布式推理,适合生产环境
  • 兼容 Hugging Face 的 Transformer 模型

要求:
1.操作系统:Linux
2.Python: 3.8 – 3.12
3.GPU: 计算能力 7.0 或更高(例如,V100、T4、RTX20xx、A100、L4、H100 等)

  conda create -n vllm python=3.10 -y && conda activate vllm  
  pip install vllm
  # 运行模型(开启的端口默认是8000)
  vllm serve /path/to/model
  # 显存不足建议使用以下命令启动(测试机显卡为8G 3070ti)
  # 先强制释放残留显存
  python -c "import torch; torch.cuda.empty_cache()"
  # 在进行启动(以Qwen/Qwen2.5-0.5B-Instruct为例)
  vllm serve ~/work/ai/models/Qwen/Qwen2.5-0.5B-Instruct \
  --gpu-memory-utilization 0.95 \
  --max-model-len 1024 \
  --block-size 16 \
  --max-num-seqs 4 \
  --tensor-parallel-size 1

2.3 安装LMDeploy【可选】

LMDeploy 是一个高效且友好的 LLMs 模型部署工具箱,功能涵盖了量化、推理和服务

  • 功能全面,支持从训练到部署的全流程
  • 提供模型压缩和加速技术,适合资源受限的场景

要求:
1.操作系统:windows、linux
2.Python: 3.8 – 3.12

  conda create -n lmdeploy python=3.12 -y && conda activate lmdeploy
  pip install lmdeploy partial_json_parser
  # 运行模型(开启的端口默认是23333)
  lmdeploy serve api_server /path/to/model

三、大模型微调框架

3.1 安装LLaMA-Factory【可选】

  • LLaMA-Factory 推荐使用python3.10
  conda create -n llamafactory python==3.10 -y && conda activate llamafactory
  cd ~/work/ai/tools && git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git && cd LLaMA-Factory && pip install -e .  
  # 使用可视化界面微调
  llamafactory-cli webui
  使用流程
     1. 下载model
     2. 下载data/data格式处理
     3. 开始微调

四、大模型前端框架

4.1 安装OpenWebui

  • OpenWebui 要求使用python3.11
  conda create -n openwebui python==3.11 -y && conda activate openwebui
  pip install -U open-webui torch transformers
  
  # 运行ollama
  ollama serve
  # 运行open-webui
  export HF_ENDPOINT=https://hf-mirror.com
  export ENABLE_OLLAMA_API=True
  export OPENAI_API_BASE_URL=http://127.0.0.1:11434/v1
  open-webui serve
  # 启动浏览器(http://localhost:8080)

推荐使用优云智算平台进行GPU实例部署

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯真题——好数、R格式

目录 蓝桥杯2024年第十五届省赛真题-好数 【模拟题】 题目描述 输入格式 输出格式 样例输入 样例输出 提示 代码1:有两个案例过不了,超时 蓝桥杯2024年第十五届省赛真题-R 格式 【vector容器的使用】 题目描述 输入格式 输出格式 样例输入…

Windows版-RabbitMQ自动化部署

一键完成Erlang环境变量配置(ERLANG_HOME系统变量)‌ 一键完成RabbitMQ环境变量配置(RabbitMQ系统变量)‌ 实现快速安装部署RabbitMQ PS: 需提前下载安装: - otp_win64_25.0.exe (Erlang) - rabbit…

openEuler24.03 LTS下安装Flink

目录 Flink的安装模式下载Flink安装Local模式前提条件解压安装包启动集群查看进程提交作业文件WordCount持续流WordCount 查看Web UI配置flink-conf.yaml简单使用 关闭集群 Standalone Session模式前提条件Flink集群规划解压安装包配置flink配置flink-conf.yaml配置workers配置…

从零开始学java--泛型(1)

泛型 学生成绩可能是数字类型,也可能是字符串类型,如何存放可能出现的两种类型呢: public class Score {String name;String id;Object value; //因为Object是所有类型的父类,因此既可以存放Integer也能存放Stringpublic Score…

【正点原子】STM32MP135去除SD卡引脚复用,出现 /dev/mmcblk1p5 not found!

如果在设备树中直接注释掉 sdmmc1 节点,就会导致系统启动时识别不到真正的 eMMC 设备,进而挂载失败,爆出 /dev/mmcblk1p5 not found 的问题。 正点原子STM32MP135开发板Linux核心板嵌入式ARM双千兆以太网CAN 正确操作是“放空”而不是“删光…

CrystalDiskInfo电脑硬盘监控工具 v9.6.0中文绿色便携版

前言 CrystalDiskInfo是一个不用花钱的硬盘小帮手软件,它可以帮你看看你的电脑硬盘工作得怎么样,健不健康。这个软件能显示硬盘的温度高不高、还有多少地方没用、传输东西快不快等等好多信息。用了它,你就能很容易地知道硬盘现在是什么情况&…

详解模型蒸馏,破解DeepSeek性能谜题

大家好,不少关注 DeepSeek 最新动态的朋友,想必都遇到过 “Distillation”(蒸馏)这一术语。本文将介绍模型蒸馏技术的原理,同时借助 TensorFlow 框架中的实例进行详细演示。通过本文,对模型蒸馏有更深的认识…

园区网拓扑作业

作业要求: 需求: 需求分析: 1.按照图示的VLAN及IP地址需求,完成相关配需:VLAN 2、3、20、30 已分配子网,需在交换机上创建 VLAN 并配置三层接口作为网关。确保各 VLAN 内设备能互通,跨 VLAN 通…

隔行换色总结

功能效果展示: 第一种思路: 使用数组,将数组的内容渲染到页面上,序号也就是将数组的下标输出到第一个td上,将数组的内容输出到第二个td上,(使用拼接字符串) 具体操作: …

使用Docker Desktop进行本地打包和推送

使用Docker Desktop进行本地打包和推送 一、Docker Desktop配置二、IDEA配置1.下载Docker插件2.在“Settings”中,配置“Docker”3.选择“Docker Registry”,配置远程仓库。 三、POM配置 一共有三个地方需要配置 一、Docker Desktop配置 在Docker Deskt…

Redis主从复制:告别单身Redis!

目录 一、 为什么需要主从复制?🤔二、 如何搭建主从架构?前提条件✅步骤📁 创建工作目录📜 创建 Docker Compose 配置文件🚀 启动所有 Redis🔍 验证主从状态 💡 重要提示和后续改进 …

ORM、Mybatis和Hibernate、Mybatis使用教程、parameterType、resultType、级联查询案例、resultMap映射

DAY21.1 Java核心基础 ORM Object Relationship Mapping 对象关系映射 面向对象的程序到—关系型数据库的映射 比如java – MySQL的映射 ORM框架就是实现这个映射的框架 Hibernate、Mybatis、MybatisPlus、Spring Data JPA、Spring JDBC Spring Data JPA的底层就是Hiber…

C#调用Lua方法1+C#调用Lua方法2,3

xLua中Lua调用C#代码 原因:C#实现的系统,因为Lua可以调用,所以完全可以换成Lua实现,因为Lua可以即时更改,即时运行,所以游戏的代码逻辑就可以随时更改。 实现和C#相同效果的系统,如何实现&#…

NO.77十六届蓝桥杯备战|数据结构-单调队列|质量检测(C++)

什么是单调队列? 单调队列,顾名思义,就是存储的元素要么单调递增要么单调递减的队列。注意,这⾥的队列和普通的队列不⼀样,是⼀个双端队列。单调队列解决的问题 ⼀般⽤于解决滑动窗⼝内最⼤值最⼩值问题,以…

通过发票四要素信息核验增值税发票真伪-iOS发票查验接口

发票是企业经济间往来的重要凭证,现如今,随着经济环境的日益复杂,发票造假现象屡禁不止,这使得增值税发票查验成为企业必须高度重视的工作。人工智能时代,发票查验接口犹如一道坚固的防线,助力企业财务守护…

【JAVA】十、基础知识“类和对象”干货分享~(三)

目录 1. 封装 1.1 封装的概念 1.2 访问限定符 public(公开访问) private(私有访问) 1.3 包 1.3.1 包的概念 1.3.2 导入包中的类 1.3.3 自定义包 2. static成员 2.1 static变量(类变量) 2.1.1 sta…

DeepSeek+SpringAI家庭AI医生

文章目录 项目架构项目开发内容项目用户用例图项目地址开发环境大模型使用本地:Ollama部署DeepSeek离线与在线api大模型客户端使用 数据库脚本代码deepseek创建定制医生模型 内网互通原则云服务器类型 项目架构 项目开发内容 项目用户用例图 项目地址 FamilyAIDoct…

PyTorch:解锁AI新时代的钥匙

(前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站)。 揭开PyTorch面纱 对于许多刚开始接触人工智能领域的朋友来说,PyTorch这个名字或许既熟悉又陌生。…

C++第14届蓝桥杯b组学习笔记

1. 日期统计 小蓝现在有一个长度为 100100 的数组,数组中的每个元素的值都在 00 到 99 的范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4…

解锁工业通信:Profibus DP到ModbusTCP网关指南!

解锁工业通信:Profibus DP到ModbusTCP网关指南! 在工业自动化领域,随着技术的不断进步和应用场景的日益复杂,不同设备和系统之间的通讯协议兼容性问题成为了工程师们面临的一大挑战。尤其是在Profibus DP和Modbus/TCP这两种广泛应…