Ollama部署大模型并安装WebUi

java-superchen 2024-08-01 15:33:02 阅读 77

Ollama用于在本地运行和部署大型语言模型(LLMs)的工具,可以非常方便的部署本地大模型

安装

Linux 

<code>curl -fsSL https://ollama.com/install.sh | sh

 我是ubuntu系统安装,其他系统可以看项目的开源地址有写

GitHub - ollama/ollama: Get up and running with Llama 3, Mistral, Gemma, and other large language models.

docker安装

一键脚本

#!/bin/bash

#################################################################################

# 功能:自动部署Ollama(Docker方式,GPU)

# 说明:如果已安装了Docker,请注释掉 install_docker,避免重复安装

#################################################################################

info(){

echo -e "\033[34m 【`date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "

}

install_docker(){

#!/bin/bash

info "安装依赖..."

yum -y install gcc

yum -y install gcc-c++

##验证gcc版本

gcc -v

info "安装Docker(指定版本:23.0.6)"

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo

##更新yum软件包索引

yum makecache fast

## 安装docker ce cli

# 查看可安装版本:yum list docker-ce --showduplicates | sort -r

yum -y install docker-ce-23.0.6-1.el7 docker-ce-cli-23.0.6-1.el7

info "启动Docker并验证"

systemctl enable docker && systemctl start docker

docker version

## 创建加速器

#cd /etc/docker

#if [ ! -f "$daemon.json" ]; then

# touch "$daemon.json"

#else

# rm -rf daemon.json

# touch "$daemon.json"

#fi

#tee /etc/docker/daemon.json <<-'EOF'

#{

#"registry-mirrors": ["https://自己的镜像加速器地址"]

#}

#EOF

#systemctl daemon-reload

#systemctl restart docker

info "Docker(23.0.6)安装完毕!"

}

# 安装 Ollama

install_Ollama(){

info "参考IP地址:"$(hostname -I)

read -p "请问,您当前服务器的内网IP地址是?:" inner_ip

inner_ip="${inner_ip:-127.0.0.1}"code>

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \

| sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

sudo yum install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker

sudo systemctl restart docker

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama

info "ollama部署完毕,开始下载qwen:0.5b模型..."

docker exec -it ollama ollama run qwen:0.5b “你好”

info "qwen:0.5b模型加载完成,开始部署webui界面..."

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://${inner_ip}:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

eip=$(curl ifconfig.me/ip)

info "部署完毕,正在启动WEBUI界面,大约5分钟后,请访问:http://${eip}:3000"

}

install_docker

install_Ollama

上面是一键安装脚本

下载模型

ollama run llama3:70b

这个命令的意思是下载一个llama3的70b模型

模型库

Ollama 支持在 ollama.com/library 上获取的模型列表

以下是一些可下载的示例模型:

Model Parameters Size Download
Llama 3 8B 4.7GB ollama run llama3
Llama 3 70B 40GB ollama run llama3:70b
Mistral 7B 4.1GB ollama run mistral
Dolphin Phi 2.7B 1.6GB ollama run dolphin-phi
Phi-2 2.7B 1.7GB ollama run phi
Neural Chat 7B 4.1GB ollama run neural-chat
Starling 7B 4.1GB ollama run starling-lm
Code Llama 7B 3.8GB ollama run codellama
Llama 2 Uncensored 7B 3.8GB ollama run llama2-uncensored
Llama 2 13B 13B 7.3GB ollama run llama2:13b
Llama 2 70B 70B 39GB ollama run llama2:70b
Orca Mini 3B 1.9GB ollama run orca-mini
LLaVA 7B 4.5GB ollama run llava
Gemma 2B 1.4GB ollama run gemma:2b
Gemma 7B 4.8GB ollama run gemma:7b
Solar 10.7B 6.1GB ollama run solar

注意:运行 7B 模型至少需要 8 GB 的 RAM,运行 13B 模型需要 16 GB,运行 33B 模型需要 32 GB。

模型存储位置

了解模型存储位置对于管理和备份模型至关重要。默认情况下,模型存储在以下位置:

Linux:/var/lib/ollama/models

Windows:C:\ProgramData\Ollama\models

macOS:/Library/Application Support/Ollama/models

查看模型 

ollama list

 这个命令可以看已经下载的模型

chen@chen:~$ ollama list

NAME ID SIZE MODIFIED

medllama2:latesta53737ec0c723.8 GB24 hours ago

更改模型下载路径

先创建一个用于存放模型目录

sudo mkdir /path/to/ollama/models

修改权限

sudo chown -R root:root /path/to/ollama/models

sudo chmod -R 775 /path/to/ollama/models

添加环境变量

sudo vim /etc/systemd/system/ollama.service

[Service]下面加入一行新的Environment,新一行!

Environment="OLLAMA_MODELS=/path/to/ollama/models"code>

 请替换上面的路径为自己服务器内的路径

这里有个细节,如果你之前已经下载了模型,想要切换路径,需要复制ollama目录到你需要的目录

如果直接使用mv,会导致目录属性错误,ollama无法正常下载模型

Error: open /data/nvme/ollama/models/blobs/sha256-c1864a5eb19305c40519da12cc543519e48a0697ecd30e15d5ac228644957d12-partial-0: permission denied

这里明显显示的是权限错误 permission denied

如果你已经直接使用mv移动了,可以使用chwon 来指定ollama的models目录所属为ollama:ollama

sudo chown -R ollama:ollama /data/nvme/ollama/models/

想要在使用mv移动的时候保持目录属性需要再mv的基础上加上 -r 参数

开启flash attention 

flash attention 可以显著减少注意力机制计算的时间,使得Transformer模型在训练和推理时能够更快地处理大量数据,而且它通过优化内存访问模式,减少了计算过程中的内存占用。这不仅有助于降低内存开销,还减少了计算过程中的内存带宽瓶颈。

通过在ollama.service 这个文件中的[Service]下面加入一行新的Environment,新一行!

Environment="OLLAMA_FLASH_ATTENTION=1"code>

当你的上下文越长效果越明显

安装WebUI

我是基于docker部署的,比较方便

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=http://${inner_ip}:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.nju.edu.cn/open-webui/open-webui:main

${inner_ip} 请替换为你自己服务器的ip

webui部署完成之后可能出现无法连接到ollama的情况,这是因为ollama默认绑定的ip是127.0.0.1

在ollama.service文件的[Service]下面再加入一行新的Environment,新一行!

Environment="OLLAMA_HOST=0.0.0.0:11434"code>

重启服务即可



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。