手动安装 Ollama

根据Linux的版本下载对应版本的 Ollama,

  • 查看Linux CPU型号,使用下面的命令
#查看Linux版本号
cat /proc/version
#查看cpu架构
lscpu
  • x86_64 CPU选择下载ollama-linux-amd64;aarch64|arm64 CPU选择下载ollama-linux-arm64

安装和运行

  • 在有网络的环境下载好tgz安装包,并上传到离线 Linux 服务器
  • 安装,使用下面的命令:
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
  • 启动 Ollama,使用下面的命令:
ollama serve
  • 另外启动一个终端验证是否运行成功,使用下面的命令:
#查看所有下载的模型
ollama list

这样 Ollama 就算安装完成了。之所以下载 Ollama,是因为 Ollama 提供了大模型运行的所有环境,使用它能方便的在本地运行各种 LLM。

在 Ollama 上部署 Qwen2.5

下载 Qwen2.5

  • 在国内 AI 社区 ModelScope 下载 Qwen2.5 模型,国外的 AI 社区 Hugging Face 也可以下载,不过要想下载国外的大模型,例如 Llama,需要填写联系信息进行申请,不过申请了也不一定会给过的。

  • 推荐使用 Git 下载,使用下面的命令:
git lfs install
git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git

从 Safetensors 导入模型

  • Git 克隆下来的仓库会包含一个 model.safetensors 文件,需要将其格式转换为二进制 .bin 形式,才能由 Ollama 着手导入进行管理。

  • 大模型格式转换主要用到一个工具 llama.cpp,使用下面的命令同步 llm/llama.cpp 子模块:
#首先克隆 Ollama 仓库
git clone [git@github.com](mailto:git@github.com):ollama/ollama.git ollama
cd ollama #然后同步子模块
git submodule init
git submodule update llm/llama.cpp #接着安装 python 依赖
python3 -m venv llm/llama.cpp/.venv
source llm/llama.cpp/.venv/bin/activate
pip install -r llm/llama.cpp/requirements.txt
  • 转换模型Qwen2.5,使用下面的命令:
python llm/llama.cpp/convert_hf_to_gguf.py ./model --outtype f16 --outfile converted.bin
  • 编写模型文件 Modelfile (没有后缀名),文件内容如下:
FROM converted.bin
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
SYSTEM """
你是一个乐于助人的助手,但你会用20世纪30年代黑手党暴徒的风格去回答问题
"""
  • 将转换后的 .bin 文件和 Modelfile 文件上传到离线的 Linux 服务器的同一目录下,使用下面的命令导入到 Ollama:
ollama create Qwen2.5 -f Modelfile
  • 查看和运行大模型,使用下面的命令:
#查看大模型信息
ollama show Qwen2.5 #查看 Ollama 管理的所有大模型
ollama list #运行大模型
ollama run Qwen2.5 #查看正在运行的大模型
ollama ps

这样 Qwen2.5 就算导入成功了,实际上 llama 工具还可对大模型进行量化,量化后的大模型会更加精确,更加节省系统资源,有关量化的信息可自行研究。

如何在离线的Linux服务器上部署 Ollama,并使用 Ollama 管理运行 Qwen 大模型的更多相关文章

  1. 如何在Linux服务器上部署禅道

    最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...

  2. linux服务器上部署项目,同时运行两个或多个tomcat

    在阿里云服务器上部署项目的时候,想使用阿里云提供的负载均衡服务并创建两个监听(如图), 但需要一台服务器提供两个端口,于是就请教前辈并查询资料,得知: 一台服务器提供两个端口,有两种方式: 1.一个t ...

  3. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  4. 如何在Linux服务器上部署Mysql

    一.安装mysql 1.通过文件上传工具,将mysql安装包上传到linux服务器上 2.卸载mariadb包,由于系统中存在mariadb包会导致mysql安装时报错mariadb-libs被mys ...

  5. linux服务器上部署jdk+tomcat+rocketmq+redis-cluster

    通常我们拿到一组干净的linux服务器,需要初始化安装一些基础软件,这里一站式介绍部署jdk+tomcat+rocketmq+redis-cluster 前言:如果要在多台服务器上安装,在一台服务器上 ...

  6. 零基础在Linux服务器上部署javaweb项目

    本教程使用的工具下载链接:http://pan.baidu.com/s/1sl1qz2P 密码:43pj 一.安装JDK 1.首先要查看服务器的系统版本,是32位还是64位 #getconf LONG ...

  7. So Easy - 在Linux服务器上部署 .NET Core App

    .NET Core 是微软提供的免费.跨平台和开源的开发框架,可以构建桌面应用程序.移动端应用程序.网络应用程序.物联网应用程序和游戏应用程序等.如果你是 Windows 平台下的 dotnet 开发 ...

  8. 在Linux服务器上部署node项目(git部署,forever持续运行,配置SSL证书)

    一.环境部署 1.下载安装包: wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz 2.解压并进入目录: xz -d no ...

  9. .Net Core WebApi(三)在Linux服务器上部署

    鸽了好久,终于有个时间继续写了,继上一篇之后,又写(水)了一篇,有什么不足之处请大家指出,多谢各位了. 下面有两个需要用到的软件,putty和pscp,我已经上传到博客园了,下载请点击这里. 一.准备 ...

  10. linux服务器上部署springboot项目,并让他持续运行到后台

    我们知道在运行springboot 项目只需要java -jar + 项目的war包(jar包)名. 但是只要终端已停止那么服务就会被关闭,也就无法访问到我们的项目了.所以我们可以使用守护进程的方式来 ...

随机推荐

  1. Java类和对象 小白版

    一.类 一.类的定义 具有同种属性的对象称为类.定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化. 类的三种常见成员:属性.方法.构造器 二.类的编写 1.类名的定义: 2.类属性(特 ...

  2. 高级工程师面试大全- spring篇

    1.spring是什么 Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求.主要包括以下七 ...

  3. kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败 荐

    由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化 ...

  4. java_String方法大全

    1 String a = "abcdefg"; 2 3 String a = new String(); 4 String a = new String("abcdefg ...

  5. devops-3:Jenkins增加静态节点

    Jenkins管理静态节点 Jenkins搭建完成后一般只有一个master节点,此节点主要用于管理Jenkins配置,如果再在master节点上跑一系列的Job,未免有点太勉强,并且如果出现资源紧缺 ...

  6. 使用js闭包实现可取消的axios请求

    在平常开发中,经常会遇到重复请求的情况,也许是因为网络问题,也许是因为接口问题等等,传统做法是客户端采用防抖来限制用户发送接口的频率,一般出个loading转圈圈的形式, 但是很少使用取消请求的做法, ...

  7. 开发一个属性名提示友好的Vue组件

    这两天开发了一个组件,开发好之后想着先本地npm link 用一用试试,然后在vue3 项目中link了过来,发现VSCODE没有属性提示,鉴于考虑到一个好的组件应该是提示友好的,于是给组件准备加上属 ...

  8. js通过文件路径下载文件而不跳转页面

    js通过文件路径下载文件,而页面不发生跳转 一.js下载文件而页面不进行跳转 1)方法一: 通过a标签触发文件流形式,代码如下: let url = 'http://xxxxx.zip' fetch( ...

  9. Angular 18+ 高级教程 – Getting Started

    前言 这篇主要是教大家如何快速搭建一个 Angular 项目,纯用于学习. Before Starting 开始前,我们需要知道几个小知识. 1. Angular Compilation 游览器支持的 ...

  10. JavaScript – Iterator

    参考 阮一峰 – Iterator 和 for...of 循环 前言 es6 以后经常可以看到 for...of 的踪迹. 如果你细看会发现它挺神奇的. 不只是 Array 可以被 for...of, ...