本地部署LLM
1.为什么要本地部署LLM,这样做的优劣势有哪些
本地部署大模型的优劣势分析如下,结合技术实现与实用场景:
优势
数据安全可控
隐私保护:敏感数据无需上传第三方服务器,避免泄露风险(如医疗、金融场景)。
合规性:满足数据本地化存储的法规要求。定制化能力
模型微调:便于微调,可针对垂直领域数据二次训练(如法律条文、专业术语优化)。
功能扩展:自由修改模型架构或接入本地API(如企业内部数据库)。长期成本优势
避免API计费:尤其适合高频调用场景(如每日百万级请求)。
硬件复用:利用现有GPU服务器集群,分摊部署成本。离线可用性:无网络依赖:在隔离环境(如内网、实验室)中稳定运行。
劣势
硬件门槛高:前期一次性投入高
显存需求:7B(全量)模型需24GB+显存(如A10G显卡),70B模型需多卡并行。
推理延迟:消费级GPU(如RTX 4090)可能无法满足实时性要求。
技术复杂度:需掌握模型量化(GGUF格式)、vLLM推理优化等技术。
资源消耗大
电力成本:单卡A100运行24小时耗电约5-10度。
散热要求:高负载下需专业机房或散热设备。模型性能局限
可能落后于云端版本:无法实时更新到最新版本,特别是针对于未开源的模型。
功能缩减:本地部署通常需阉割多模态等能力如Qwen3。
2. LLM本地或云端部署有哪些可选择的框架(应用)
特性分析
部署教程
LMStudio: https://www.eogee.com/article/detail/10
Xinference: https://www.eogee.com/article/detail/33
3.有哪些基础概念需要了解
开源:
指的是该框架(应用)代码是否开放,是否可以获得源代码,是否可以修改,是否可以商业使用,是否可以了解运行原理,有无数据泄露或侵犯隐私的可能。
开源协议:
Apache2.0:
允许商用、修改和专利授权
要求保留原始版权声明和许可证文件
修改文件必须标注变更说明
衍生作品可闭源(无需强制开源)
MIT:
极简许可(仅需保留版权声明)
允许任意使用/修改/商用/闭源
无专利相关条款
不要求衍生作品开源
运行环境:
Linux/Windows/MacOS/Docker等,前3者是主流的操作系统,我们把运行在windows中的WSL2中的ubuntu也认为是Linux环境。而在该Linux环境中安装的docker,我们认为是docker环境。
Docker容器:
Docker是一个开源的应用容器引擎,可以轻松打包、部署和运行应用程序,Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,以供其他用户一键式安装和运行。
一般情况下,docker与宿主环境是隔离的,所以会有网络链接桥的概念,即宿主环境与docker容器之间通过localhost/127.0.0.1可能无法直接进行通信,即不能实现请求的发送和响应。
局域网IP:
局域网IP是指在同一个局域网内的计算机的IP地址,它是由网络管理员在网络中为局域网内的计算机分配的,是唯一的,可以被路由器识别和分配。
局域网IP地址通常以192.168.x.x、172.x.x.x、10.x.x.x开头。大部分情况下,我们可以通过不同环境、不同容器中的服务或客户端去访问局域网IP地址以避免前述问题。
大模型文件格式:
gguf:(GPT-Generated Unified Format)是大语言模型的一种文件存储格式,主要特点如下:
量化支持:支持多种量化级别(如Q4、Q8等),可在保持模型性能的同时大幅减小文件体积。
快速加载:优化了模型加载速度,适合资源受限的环境使用。
元数据集成:可包含模型架构、训练信息等元数据。
CPU推理优化:针对CPU推理进行了优化,可提升CPU推理速度。
safetensors:safetensors 是 Hugging Face 推出的一种安全高效的模型存储格式,存储原始浮点权重时体积较大,但可通过外部工具量化。Hugging Face 官方推荐,集成到 transformers 库支持 PyTorch/TensorFlow 原生加载。
Transformers
Transformers 是 Hugging Face 团队开发的开源 Python 库,专为自然语言处理(NLP)和计算机视觉(CV)任务设计,核心功能是提供预训练的 Transformer 架构模型及其工具链。以下是关键特性:
1、核心功能
预训练模型库:集成数千种模型,涵盖文本生成、分类、翻译等任务。
统一接口:可以一键加载模型和分词器。
多框架支持:兼容 PyTorch、TensorFlow等,支持跨框架模型转换。
2、技术特点
模块化设计:可灵活调用模型组件(如注意力层、嵌入层)。
自动优化:支持混合精度训练(FP16)、梯度检查点等技术。
安全格式:默认使用 safetensors 格式存储模型权重。生态工具
Tokenizers:高性能分词库。
Datasets:提供一站式数据集加载与预处理。
Hub:huggingface.com 模型共享平台(类似 “GitHub”)。
PyTorch
PyTorch 是由 Facebook(现 Meta)人工智能研究院开发的开源深度学习框架,专为灵活性和高性能设计。
CUDA
CUDA(Compute Unified Device Architecture)是NVIDIA推出的并行计算平台和编程模型,核心作用是利用GPU的强大算力加速计算任务。以下是分点说明:
本质理解
硬件层面:CUDA是NVIDIA GPU的指令集架构,直接操作GPU的数千个计算核心。
软件层面:提供C/C++/Python等语言的扩展(如CUDA C),允许开发者编写在GPU上运行的代码。核心功能
并行计算:将任务分解为数千个线程,同时处理各类复杂的计算任务。
显存管理:提供API手动控制GPU显存(cudaMalloc、cudaMemcpy)。
异构计算:协调CPU(主机)与GPU(设备)的协作。应用场景
深度学习:框架(如PyTorch)底层依赖CUDA加速运算。
科学计算:气候模拟、分子动力学等需要高吞吐的计算。
图形处理:实时渲染、光线追踪。与PyTorch的关系:PyTorch调用CUDA API将计算任务分配到GPU。
优势与限制
优势:显著提升计算速度(相比CPU),尤其适合规则数据并行。
限制:仅支持NVIDIA GPU;需处理数据迁移和线程同步。
Conda
Conda 是一个开源的包管理与环境管理工具,以下是其核心要点:
核心功能
包管理:安装、更新、删除软件包(支持Python与非Python工具链)。
环境隔离:创建独立环境,解决依赖冲突(如同时维护PyTorch 1.8和2.0项目)。
跨平台:支持Windows/Linux/macOS。关键命令
创建环境
conda create -n myenv python=3.8
(创建名为myenv的Python 3.8环境)激活环境
conda activate myenv
(切换至指定环境)安装包
conda install numpy pytorch
(安装NumPy和PyTorch包)导出环境配置
conda env export > environment.yml
(生成环境配置文件)其他常用命令
列出所有环境:conda env list
删除环境:conda remove -n myenv —all
更新包:conda update numpy
与PyTorch的协作
通过Conda可快速安装PyTorch(自动解决CUDA依赖):
conda install pytorch torchvision cudatoolkit=11.3 -c pytorch
推荐为每个项目创建独立环境,避免版本污染。
WSL及WSL2
WSL(Windows Subsystem for Linux)及WSL2是微软推出的原生Linux兼容层,允许在Windows上直接运行Linux环境。以下是关键解析:
核心功能
无缝集成:
访问Windows文件:/mnt/c/Users对应C:\Users
从Windows终端直接调用Linux命令(如wsl ls -l)
GPU支持:WSL2可直通NVIDIA CUDA
Docker集成:WSL2可作为Docker Desktop的后端引擎安装与配置
启用功能(管理员PowerShell):
wsl --install # 自动安装WSL2和默认Ubuntu
手动指定版本:
wsl --set-version Ubuntu 2 # 将Ubuntu转换为WSL2
常用命令:
wsl --list --verbose # 查看已安装发行版及版本 wsl --shutdown # 强制停止所有WSL实例
开发场景优势
Python开发:在Linux环境中使用conda/pip避免Windows路径问题
CUDA开发:配合WSL2的NVIDIA CUDA支持直接运行PyTorch/TensorFlow
Web服务:部署Nginx/PostgreSQL等Linux原生服务典型问题
网络代理失效:WSL2使用独立虚拟网卡,需在Linux内重新配置代理