大模型知识学习
前言
自从毕业后正式成为一名菜鸟程序员,接触到的几乎所有工作都和大模型相关,也时常接触从事模型相关工作的工程师们,但是我并不懂模型,很多关于大模型的知识点也不明白,导致我与他们之间的沟通会增加一层屏障,或者这层屏障对于工作来说并不重要,但是我还是希望能供学习更多关于大模型的知识,并且身边又很多热心的大佬可以随时问问题,简直就是免费的老师。
环境准备
这里将会记录部分需要用到的环境
目前主流使用windows,如果遇到使用windows太麻烦需要linux的地方,会单独说明。
conda
conda是一个python版本的管理器,用来管理不同的版本,十分方便,可以去[conda官网] 直接下载安装。
我将conda直接安装在C盘,因为我只用conda来创建基础的python环境,针对每个项目再单独创建venv,这样不同环境之间就是隔离的,conda的python也没有一堆依赖
一些参考命令
conda create -n py310 python=3.10 # 创建3.10的环境
conda activate py310
python -m venv .venv # 在当前目录下创建.venv的虚拟环境
.\.venv\Scripts\activate # 激活虚拟环境,这样pip install 安装的依赖都将在当前.venv目录下, linux下是.venv/bin/activate
Visual Studio 2022 && MSYS2
Visual Studio 2022 和 msys2 将会在使用llama.cpp是用到,到官网安装即可,Visual Studio 安装时选择`使用C++的桌面开发` 和 `Windows 应用程序开发`
ollama的使用
ollama可以快速部署一些模型,用来体验本地部署模型
下载ollama
Ollama 官网直接下载安装
拉取模型
如果要更改ollama拉去模型的存储目录,可以在环境变量中添加:`OLLAMA_MODELS` 为自定义目录
使用ollama命令拉取模型,如 `ollama pull deepseek-r1:1.5b` 拉取完毕后使用`ollama ls` 可以查看模型列表
运行模型
运行一下模型即可开始运行模型,一般会使用显卡运行,如果显存不够用则会切换为cpu和内存来运行。
ollama run deepseek-r1:1.5b
使用open-webui
open-webui 提供了界面用于更好的使用体验
使用python 3.11 在任意目录创建虚拟环境
使用`pip install open-webui` 命令安装open-webui
使用`ollama start` 命令运行ollama后台,ollama将会提供接口给open-webui调用 (默认监听127.0.0.1:11434)
使用`open-webui serve --port 60080` 命令启动open-webui,通过浏览器访问即可
以下是一个一件启动的powershell 脚本,包含启动ollama, 加载python环境,启动open-webui,可以快速启动服务
@echo off
cd /d "%~dp0"
start /B "" "C:\Users\User\AppData\Local\Programs\Ollama\ollama app.exe"
start http://127.0.0.1:60080
call .\.venv\Scripts\activate
set DATA_DIR=.\data
open-webui serve --port 60080
自定义模型
有时候可能会从hugginface,魔塔社区等网站下载模型,然后用ollama部署
转换模型,需要将模型转换为GUFF格式,样例见 safetensors转换为GUFF
编写Modelfile文件 并添加 `FROM "D:\LLM\Model\DeepSeek-R1-Distill-Qwen-14B\DeepSeek-R1-Distill-Qwen-14B-Q8_0.gguf"` 到文件中
使用`ollama create DeepSeek-R1-Distill-Qwen-14B:int8 -f Modelfile`命令添加模型到ollama 模型名任意, -f 指定Modelfile目录位置
使用ollama run 运行模型
LLamaFactoy模型微调
其他
模型转换
safetensors转换为GUFF
下载llama.cpp 落笔时的最新提交记录是: 5fa07c2f93c73161bf09ef0b23b5d2686f9a073e
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
在llama.cpp目录打开msys2终端,并安装一下包
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-g++ mingw-w64-x86_64-cmake mingw-w64-x86_64-make ninja
然后使用一下命令编译
cmake -B build
cmake --build build --config Release
使用python命令安装依赖 (使用powershell等终端,激活python3.10 后安装)
pip install -r requirements.txt
使用llama.cpp 转换为GUFF, `D:\LLM\Model\DeepSeek-R1-Distill-Qwen-14B`为模型目录(来自deepseek-ai/DeepSeek-R1-Distill-Qwen-14B · Hugging Face), --outtype是模型精度,此处量化为了8 位整数,可选参数有('f32', 'f16', 'bf16', 'q8_0', 'tq1_0', 'tq2_0', 'auto')精度越高,模型文件越大,耗费的算力和内存也就越大。
python .\convert_hf_to_gguf.py D:\LLM\Model\DeepSeek-R1-Distill-Qwen-14B --outtype q8_0