
【内网Tesla T4_16G为例】超详细部署安装ollama、加载uugf格式大模型qwen2、chatglm3及大模型的使用
【内网Tesla T4_16G为例】超详细安装部署ollama、加载uugf格式大模型qwen2、chatglm3及大模型的使用
前言
1. 因为是内网环境,所以文章中的安装过程,不贴实际安装过程的图片。
2. 因为是内网环境,所以所有的安装包都是先外网下载好,拷贝到内网执行的。下面所有安装包都是如此,不再赘述
3. 该服务器除系统盘60G之外,还有一个扩展盘100G,我们可以理解为windows电脑的D盘,我的所有安装包都会装在该盘,如果你只有一个盘,可以新建一个文件夹安装,不建议安装在系统盘的其他文件夹中
安装ollama
刚开始的时候没有太注意安装的方式,直接把ollama安装到了系统盘,这样会导致系统盘会大量被占用,所以下面的安装之前会先卸载原来安装的ollama,然后再安装。
卸载ollama
(1)停止并禁用服务
sudo systemctl stop ollama
sudo systemctl disable ollama
(2)删除服务文件和Ollama二进制文件
sudo rm /etc/systemd/system/ollama.service
sudo rm $(which ollama)
(3)清理Ollama用户和组
sudo rm -r /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama
开始安装ollama
(1)先下载到本地
我当时下的版本是v0.2.0的ollama-linux-amd64 (这本身就是一个可执行文件,可以直接使用)
,下载地址在这里https://github.com/ollama/ollama/releases,根据自己的处理器下载。将其拷贝到内网的某个目录,拷贝到内网机器就不说了,就是U盘。
(2)创建非系统盘的安装目录和模型存储目录
- 选择一个合适的非系统盘路径,例如 /data/software/ollama,并在该路径下创建所需目录.
# 用于存放ollama-linux-amd64文件
mkdir -p /data/software/ollama/bin
# 用于存放执行的模型
mkdir -p /data/software/ollama/models/ollama
# 用于存放用户
mkdir -p /data/software/ollama/ollama_u
(3) 复制 ollama-linux-amd64 文件到安装目录
- 将下载的文件复制到 bin 目录,并赋予可执行权限
# 这里拷贝过去的同时把ollama-linux-amd64名称改为了ollama
cp /path/to/ollama-linux-amd64 /data/software/ollama/bin/ollama
# 赋予权限
chmod +x /data/software/ollama/bin/ollama
(4)创建ollama用户
sudo useradd -r -s /bin/false -m -d /data/software/ollama/ollama_u ollama
# 想查询该用户的信息,使用以下两个命令
id ollama
getent passwd ollama
(5)配置环境变量 (可选项)
- 为了从任何命令行都能运行 ollama,可以将 ollama 的路径添加到环境变量 PATH 中。在你的 shell 配置文件中(例如 .bashrc 或 .zshrc),添加以下行:
# 打开这个文件
nano ~/.bashrc
# 把下面这句话放到文件中最下面一行,Ctrl+x,y,enter(这三步,退出,保存,确定)
export PATH=/data/software/ollama/bin:$PATH
(6)刷新环境变量(可选项)
- 使新的环境变量生效
source ~/.bashrc
(7)修改存储位置及Host地址
- 如果选择自动安装,安装程序会自动创建用户,并创建相应的服务配置文件,并启动服务。如果是手动安装,则需要自己创建配置文件。
- Ollama模型默认存储在:
~表示root目录
macOS: ~/.ollama/models
Linux: ~/.ollama/models
Windows: C:\Users\<username>\.ollama\models
- 我们使用手动配置,执行以下命令:
sudo vim /etc/systemd/system/ollama.service
- 编辑文件内容命令为
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/data/software/ollama/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
#Environment="PATH=/home/ps/anaconda3/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" ,环境变量也可以在这配置
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/software/ollama/models/ollama"
[Install]
WantedBy=default.target
因为需要从其他服务器访问ollama服务,所以需要将host设置成0.0.0.0。
配置完之后,再加一步授权的动作:
cd /data/software/ollama/models
# ollama:ollama: 表示用户 ollama 和组 ollama。这表示将目录的所有权赋予用户 ollama和组ollama。
# ollama/: 指的是刚刚创建的 ollama 目录。
sudo chown ollama:ollama ollama/
(8)创建一个符号链接
sudo ln -s /data/software/ollama/bin/ollama /usr/bin/ollama
这条命令是在Linux系统中创建一个符号链接(symbolic link),具体解释如下:
- sudo: 以超级用户(root)权限执行命令。
- ln: 用于创建链接的命令。
- -s: 表示创建一个符号链接(symbolic link),而不是硬链接(hard link)。
- /data/software/ollama/bin/ollama: 这是源文件的路径,即你想要链接到的实际文件。
- /usr/bin/ollama: 这是符号链接的目标路径,即你想要创建链接的地方。
这条命令的作用是:
- 在 /usr/bin/ 目录下创建一个名为 ollama 的符号链接,这个链接指向 /data/ollama/bin/ollama 文件。这样,当你在命令行中运行 ollama 命令时,系统会实际上执行 /data/ollama/bin/ollama 文件。
- 它指向原始文件的位置,而不会占用额外的磁盘空间来存储文件内容。
(9)启动ollama
# 这条命令告诉systemd重新读取所有服务单元的配置文件。
sudo systemctl daemon-reload
# 这条命令会在systemd的启动目标中创建一个符号链接,指向ollama服务的配置文件(ollama.service),从而在系统启动时自动启动该服务。
sudo systemctl enable ollama
sudo systemctl start ollama
# 以下两种查看ollama是否安装成功
ollama
ollama --version
(10)查看日志
- 若您需要查看Ollama的运行日志,特别是在遇到问题需要调试时,可以使用以下命令:
journalctl -u ollama
(11)下载模型
因为是内网环境,所以还是要把模型在外网下载好,然后拷贝到内网中,不能连接国外网站的,可以到Hugging Face的国内镜像地址去下载,地址:https://hf-mirror.com/Qwen/Qwen2-7B-Instruct-GGUF/tree/main。
我下载的是Qwen2-7B-Instruct-GGUF,精度是q8的,相当于int8。根据自己机器情况下载。
(11)加载模型
模型还是拷贝到内网去的,目录随便,不过不建议放在系统盘。
建议一个模型新建一个文件夹,比如通义千问的你就建一个qwen2的文件夹,智谱清言的你就建一个chatglm3的文件夹。把模型拷贝进去。
以下以qwen大模型为例,其他模型都一样,要保证Modelfile和模型源文件在一个文件夹里。
其他关于Modelfile的配置可参考:https://github.com/ollama/ollama/blob/main/docs/modelfile.md
# 进入模型所在目录
cd /data/models/qwen2
# 新建一个名字为Modelfile的文件
touch Modelfile
# 编辑文件
vim Modelfile
# 加入下面这段代码,这个是加载模型的命令,因为他们在同一个文件夹,可以这样写
FROM ./qwen2-7b-instruct-q8_0.gguf
# 保存退出之后,执行以下命令,加载模型,create后面是你自定义的模型名称
ollama create qwen2-7b-q8 -f Modelfile
# 执行之后,该模型会被加载到我们之前配置的模型地址中(/data/software/ollama/models/ollama)
(12)本地运行模型
- 执行下面的命令就可以聊天了
ollama run qwen2-7b-q8
- 退出 Ctrl+d
(13)API使用
举个例子,地址应该替换成,你当前部署ollama的机器
from openai import OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1/',
# required but ignored
api_key='qwen2-7b-q8',
)
chat_completion = client.chat.completions.create(
messages=[#{'role': 'system', 'content': '你是一名牙科医生'},
{'role': 'user', 'content': '我最近牙比较疼,应该怎么办'}],
model='qwen2-7b-q8',
)
content = chat_completion.choices[0].message.content
具体使用可参考:
https://github.com/ollama/ollama/blob/main/docs/api.md
更多推荐
所有评论(0)