如何搭建运行在本地的 LLMs 🤔
[TOC]
🤗 1. 基于 LM-Studio
访问
LM-Studio
,网址:LM Studio - Discover, download, and run local LLMs下载对应系统的安装包,然后双击运行即可。
- 访问
ModelScope
魔搭社区 或者 🤗Hugging Face
Hugging Face,这里以ModelScope
为例,进入模型库,下载相应模型。
- 下载好响应的模型后,将模型组织好,放到相应的文件夹中,这里按照
models/Publisher/Repository/*.gguf
的路径组织模型路径,然后选择Change
更改模型的位置。如果不按照该路径组织,则会出现You have 1 uncategorized model files.
错误,如下图所示:
- 但是那种方式是不太推荐的,我们组织
USER/MODEL_NAME/*.gguf
的结构,这种结构会比较明了:
- 完成模型文件的下载和组织后,我们可以进入聊天页面,选择模型进行加载。这里为了节约空间,我删除了
nilera/Qwen1.5-7B-Chat-Q4-GGUF
目录下的文件。
- 选择模型加载,等待加载完成即可像平时使用其他大模型的时候一样使用这些模型。
- 但是如果我们想在代码中使用我们的大模型应该怎么做呢?我们可以选择
LM-Studio
的Local Server
菜单项,选择Start Server
即可部署到一个本地指定的端口(默认是1234
)。
- 右侧有许多样例,我们可以选择一段样例,如:
chat(python)
,这里对这段代码进行简单的解释。
1 | # Example: reuse your existing OpenAI setup |
- 然后我们就可以愉快的使用
Python
调用我们的本地大模型了。
⛵ 2. 使用 PowerInfer
框架
PowerInfer
框架 GitHub 链接:SJTU-IPADS/PowerInfer: High-speed Large Language Model Serving on PCs with Consumer-grade GPUs (github.com)
$2024$ 年发布论文 PowerInfer-2
:[2406.06282] PowerInfer-2: Fast Large Language Model Inference on a Smartphone (arxiv.org)
Anaconda
命令使用:【anaconda】conda创建、查看、删除虚拟环境(anaconda命令集)_conda 创建环境-CSDN博客
参考博客:大模型笔记之-3090显卡推理70B参数模型|基于PowerInfer 一个 CPU/GPU LLM 推理引擎-CSDN博客
- 使用
Conda
创建环境,这里 Python 版本需要大于3.8
:
1 | conda create -n powerinfer1 python=3.8 |
- 激活
Conda
环境:
1 | conda activate powerinfer1 |
- 克隆
PowerInfer
框架代码:
1 | git clone git@github.com:SJTU-IPADS/PowerInfer.git |
- 安装所需依赖:
1 | pip install -r requirements.txt |
使用
CMake
进行编译(CMake
版本需要大于:3.17+
)这里很大概率可能会出现编译器版本与 CUDA 版本不一致的情况,解决方案:fatal error C1189: #error: – unsupported Microsoft Visual Studio version! - CSDN博客
这里我有三个
CUDA
版本,貌似修改其中任意一个就可以,这里我修改的是CUDA v11.6
版本。① 如果是
NVIDIA GPUs
,需要使用如下方式进行编译:1
2cmake -S . -B build -DLLAMA_CUBLAS=ON
cmake --build build --config Release② 如果是
AMD GPUs
,需要使用下面的方式进行编译:1
2
3
4# Replace '1100' to your card architecture name, you can get it by rocminfo
CC=/opt/rocm/llvm/bin/clang CXX=/opt/rocm/llvm/bin/clang++ cmake -S . -B build -
DLLAMA_HIPBLAS=ON -DAMDGPU_TARGETS=gfx1100
cmake --build build --config Release③ 如果是
CPU ONLY
,需要使用下面的方式进行编译:1
2cmake -S . -B build
cmake --build build --config Release这里我有一块
Nvidia 1050ti
所以我使用方式 ①进行编译。对于我们下载的模型,可以使用提供的方式进行转化,转化为 PowerInfer 可以使用的类型:
1 | # make sure that you have done `pip install -r requirements.txt` |
1 | python convert.py --outfile D:/LMStudio/models/Publisher/Repository/qwen1_5-7b-chat-q4_0.gguf ./SparseLLM/ReluLLaMA-70B ./PowerInfer/ReluLLaMA-70B-Predictor |
- 或者将要 原始模型转化为 GGUF 模型
1 | python convert-dense.py --outfile /PATH/TO/DENSE/GGUF/REPO/MODELNAME.gguf /PATH/TO/ORIGINAL/MODEL |
- 运行模型
1 | ./build/bin/Release/main.exe -m C:/Users/NilEra/Downloads/llama-7b-relu.powerinfer.gguf -n 128 -t 2 -p "Once upon a time" |
- 一些问题: