部署ollama本地大模型并对接maxkb使用
部署ollama本地大模型并对接maxkb使用
github托管地址:
模型官网:
https://ollama.com/library/llama3
qwen模型下载地址:
https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat-GGUF/tree/main
liama2下载:https://llama-2.ai/download/
liama3下载:Download Llama (meta.com)
Llama3-8B-Instruct模型下载地址:
魔搭社区(境内):https://modelscope.cn/models/LLM-Research/Meta-Llama-3-8B-Instruct/files
huggingface(境外):https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/tree/main
LLaMA-Factory项目地址:https://github.com/hiyouga/LLaMA-Factory
llama2中文模型参数详情:llama2-chinese:7b (ollama.com)
Llama3模型中文微调版下载地址(链接中有下载地址)
https://github.com/GEGEWU-CLOUD/Llama-Chinese
Llama 3的亮点和特性如下:
基于超过15T token训练,大小相当于Llama 2数据集的7倍还多;
训练效率比Llama 2高3倍;
支持8K长文本,改进的tokenizer具有128K token的词汇量,可实现更好的性能;
在大量重要基准测试中均具有最先进性能;
增强推理和代码能力;
安全性有重大突破,带有Llama Guard 2、Code Shield 和 CyberSec Eval 2的新版信任和安全工具,还能比Llama 2有更好“错误拒绝表现”。Ollama是什么?
Olama是一个先进的AI工具,它允许用户在自己的电脑上(目前支持macOs和Linux,Windows即将推出)轻松设置和运行大型语言模型(LLMs)。这个工具的亮点在于,它不仅支持运行如Lama 2这样的强大语言模型,还允许用户自定义和创建自己的模型。Meta发布了Llama 3模型可使用ollama部署,官方介绍文档在这。总结一下重点内容:
本次共发布了Llama 8B, 70B的模型,70B性能超越GPT3.5;
预告了正在训练中的400B+模型,性能追赶GPT4;
clone/下载github源码
在meta公布的github网页(https://github.com/meta-llama/llama3)中,clone或者下载好源代码。
关于域名无效的解决方案
MaxKB 对接Ollama模型时,提示 API 域名不可用 - MaxKB - 社区论坛 - FIT2CLOUD 飞致云
Ollama主要功能
- 本地语言模型执行:Ollama使用户能够在本地运行大型语言模型,提供更快、更高效的处理能力。
- Llama 2模型:用户可以利用Lama 2语言模型,该模型提供先进的自然语言处理能力,适用于广泛的应用场景
- 模型定制:Ollama允许用户根据特定任务和需求定制和创建自己的语言型。
- 易于设置:该工具提供用户友好的界面,使用户能够快速启动并运行所选语言模型。
- 平台兼容性:目前Ollama支持macOS,确保与macOS系统的无缝集成。
支持的模型
Model Parameters Size Download Llama 3 8B 4.7GB ollama run llama3
Llama 3 70B 40GB ollama run llama3:70b
Phi-3 3.8B 2.3GB ollama run phi3
Mistral 7B 4.1GB ollama run mistral
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
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
一. 部署
参考地址:
https://wiki.eryajf.net/pages/97047e/#%E9%80%9A%E8%BF%87-docker-%E9%83%A8%E7%BD%B2
镜像可选
ollama/ollama
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:ollama
registry.cn-hangzhou.aliyuncs.com/zznn/mycentos:ollama0.2.5
CPU版本部署
1 | version: '3.8' |
GPU版本部署
GPU模式(需要有NVIDIA显卡支持)
安装英伟达容器工具包(以Ubuntu22.04为例)
其他系统请参考:英伟达官方文档
参考博主另一篇博客:GPU模式先决条件
1 | # 1.配置apt源 |
部署
参考:https://bian.blog/2024/06/4697.html
1 | docker run --gpus all -d -v /opt/ai/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama |
1 | version: '3.8' |
理解配置
现在,让我们探讨一下 docker-compose.yml 文件的关键组件,该文件可以使用 GPU 加速运行 Ollama:
Docker Compose 版本:
version 属性指定了使用的 Docker Compose 版本。虽然有些人可能会提到 3.9,但推荐使用官方文档中提到的版本,目前是 3.8。这样可以确保兼容性和稳定性。Ollama 服务定义:
services 部分定义了 ollama 服务,它封装了 Ollama 容器。以下是其重要属性的分解:image:指定 Ollama 的 Docker 镜像。默认是 ollama/ollama,但如果需要,可以使用特定版本(请参阅 Ollama 的文档以获取可用版本)。
deploy:该部分配置了 Ollama 容器的资源保留,这是利用 GPU 的关键。
resources:定义容器的资源需求。
reservations:该嵌套属性允许您为容器保留特定设备。
devices:定义设备保留。在此嵌套配置中,我们指定:
driver:将设备驱动程序设置为 nvidia,表示我们请求使用 Nvidia GPU。
capabilities:列出 Ollama 请求的功能。在本例中,我们指定 “gpu” 以表示我们希望利用 GPU 进行处理。
count:该值确定要为 Ollama 保留多少个 Nvidia GPU。使用 all 来利用所有可用的 GPU,或者如果有多个 GPU 并希望为 Ollama 专门分配一部分,可以指定一个具体的数量。
持久化卷定义:
volumes 部分定义了一个名为 ollama 的持久化卷。此卷确保 Ollama 生成的任何数据(如训练模型或配置)在容器重启后仍然存在。它被挂载在 Ollama 容器内的 /root/.ollama 目录。
部署完成后载入大模型(CPU GPU相同)
1 | # 生效上传的模型文件 |
备注:开启代理在本机下载完成之后 会在当前目录ollama文件夹 生成一个models的文件夹模型文件就存于其中 只需要将此文件夹压缩上传到服务器后 再次执行此项命令服务器上模型即可部署完成 上传后需要重启容器docker-compose restart再执行run即可。
建议:最好将整个项目文件包含docker-compose文件上传到服务器执行相应操作UP ollama create等。
llama3:8b效果:
注意:使用pve创建的虚拟机直通GPU 需要将cpu模式设置为host(默认为qemu模式) 否则会报错cpu不支持avx指令集导致GPU被禁用
1 | ollama | time=2024-07-23T02:15:07.485Z level=WARN source=gpu.go:225 msg="CPU does not have minimum vector extensions, GPU inference disabled" required=avx detected="no vector extensions" |
解决:
ollama 成功使用GPU截图:
效果
1 | root@dmx:/opt/ollama# docker exec -it ollama bash |
部署完成后微调为自己的大模型:ollama本地大模型微调及多模态图片分析
二. Ollama 中 离线部署 qwen:0.5b 模型为例。
1. 下载模型
访问 huggingface 下载 qwen1_5-0_5b-chat-q5_k_m.gguf 模型。
https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat-GGUF/tree/main
2. 上传 Qwen1.5-0.5B-Chat-GGUF 模型离线文件到 Ollama 所在服务器
3. 创建Ollama Modelfile
创建一个名为 Modelfile 的文件,内容如下:
1 | FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf |
说明:不同模型的 Modelfile 内容不同,可参考 Ollama 官网 参数设置 。
4. 在Ollama中创建模型
执行以下命令,创建模型:
1 | ollama create qwen:0.5b -f Modelfile |
执行以下命令,确认模型存在:
1 | ollama list |
5. 在 MaxKB中 添加 Ollama 模型 对接上面创建的 qwen:0.5b 模型
效果
三. 对接官方web面板open-webui-main
四. 对接MaxKB
见链接:https://blog.fit2cloud.com/?p=3fc407b2-1962-4196-b5b8-c7d27684b446
备注:api-key没有可随便输即可
注意:对接本地大模型不能通过下拉框选择 需要手动输入 ollama list 获取到的模型名称
否则会报错 Error: pull model manifest: Get “https://registry.ollama.ai/v2/library/llama3/manifests/8b“: dial tcp 104.21.75.227:443: i/o timeout 与 oneapi对接ollama类似
本文参考:
https://blog.csdn.net/qq_38593436/article/details/136407171
https://blog.csdn.net/weixin_43012017/article/details/138253446
https://blog.fit2cloud.com/?p=3fc407b2-1962-4196-b5b8-c7d27684b446