ollama自定义模型容器部署(cpu版)

docker镜像封装

docker安装(略…)
拉取ollama镜像
docker pull ollama/ollama  # 约1.98G
运行ollama容器
# 前一个11435是宿主机要对外暴露的tcp端口,可自定义修改
docker run -d -p 11435:11434 --name ollama ollama/ollama
准备模型注册文件

文件名称为Modelfile,如可以使用 vim Modelfile,写入数据如下

FROM Qwen2.5-3B-Instruct-Q4_K_L.gguf# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20TEMPLATE """{{ if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{ .System }}
{{- if .Tools }}# ToolsYou are provided with function signatures within <tools></tools> XML tags:
<tools>{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}{{- end }}
</tools>For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}<tool_call>
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}</tool_call>
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}"""# set the system message
SYSTEM """You are Qwen, created by Alibaba Cloud. You are a helpful assistant."""
复制模型文件到ollama容器
# 提前下载好Qwen2.5-3B-Instruct-Q4_K_L.gguf
# https://hf-mirror.com/bartowski/Qwen2.5-3B-Instruct-GGUF/blob/main/Qwen2.5-3B-Instruct-Q4_K_L.gguf
docker cp Qwen2.5-3B-Instruct-Q4_K_L.gguf ollama:/root
# 复制模型注册文件
docker cp Modelfile ollama:/root
注册模型到ollama服务中
docker exec -it ollama bash  # 进入容器
cd /root
ls  # 查看当前目录 应该存在 Qwen2.5-3B-Instruct-Q4_K_L.gguf 和 Modelfile
ollama create qwen2.5_3b -f Modelfile  # 模型名称这里可以自定义
ollama list  # 查看注册模型 应该可以看到qwen2.5_3b
运行模型

ollama服务已经启动,无需特别手动运行
调用API方法,可参考OpenAI规范,简单示例如下

# linxu可以使用以下curl命令
curl --location --request POST 'http://127.0.0.1:11435/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{"model": "qwen2.5_3b","messages": [{"role": "user","content": "你好"}],"stream": false
}'# windows可以在cmd中使用以下curl命令
curl --request POST "http://127.0.0.1:11435/v1/chat/completions" --header "Content-Type: application/json" --data-raw "{\"model\": \"qwen2.5_3b\",\"messages\": [{\"role\": \"user\",\"content\": \"你好\"}],\"stream\": false}"
存储当前容器(快照)
docker commit ollama qwen2.5-3b_image:v1  # v1为自定义版本号
docker save -o qwen2.5-3b_image_image_v1.tar qwen2.5-3b_image:v1  # 保存为镜像文件
使用zip压缩与解压缩(可选)
zip qwen2.5-3b_image_image_v1.zip qwen2.5-3b_image_image_v1.tar  # 将tar压缩成zip文件,减小体积
unzip qwen2.5-3b_image_image_v1.zip  # 将zip解压缩成tar文件
文件切割(可选)
split -b 3G qwen2.5-3b_image_image_v1.tar qwen2.5-3b_image_  # 切割成 my_ollama_image_aa、my_ollama_image_ab、my_ollama_image_ac
cat qwen2.5-3b_image_* > qwen2.5-3b_image_image_v1.tar  # 将 my_ollama_image_* 多个文件合并成 my_ollama_image_v1.tar
# windows cmd命令
# copy /b qwen2.5-3b_image_aa + qwen2.5-3b_image_ab + qwen2.5-3b_image_ac qwen2.5-3b_image_image_v1.tar

一键部署

加载快照镜像文件

docker load -i qwen2.5-3b_image_image_v1.tar  # 在terminal或cmd(windows)等终端中运行命令
运行快照容器
# 前台测试运行
docker run --rm -p 11435:11434 --name my_ollama qwen2.5-3b_image:v1# 后台运行
docker run -d -p 11435:11434 --name my_ollama qwen2.5-3b_image:v1
注意事项
  • 可以3分钟轮询一次ollama模型接口,避免模型卸载和冷启动,提高响应速度(可选)

附:

  1. 常见命令
    ollama serve #启动ollama
    ollama create #从模型文件创建模型
    ollama show #显示模型信息
    ollama run #运行模型
    ollama pull #从注册表中拉取模型
    ollama push #将模型推送到注册表
    ollama list #列出模型
    ollama cp #复制模型
    ollama rm #删除模型
    ollama help #获取有关任何命令的帮助信息

  2. GPU利用
    使用GPU需要安装 NVIDIA Container Toolkit⁠: https://hub.docker.com/r/ollama/ollama

  3. 从huggingface下载ollama可用的gguf模型
    推荐用镜像站hf-mirror(给前同事打个广告)
    有些大佬已经把几乎所有主流开源模型的gguf量化模型都整理好了,
    比如https://hf-mirror.com/bartowski
    如果想使用Qwen2.5-7B模型,可以在这个模型页选择适合自己算力需求的模型下载
    https://hf-mirror.com/bartowski/Qwen2.5-7B-Instruct-GGUF/tree/main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146670.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Kerberos自我总结Kerberos自我总结

1、协议原理与漏洞产生 1.1 kerberos Kerberos协议是一种基于票据Ticket的认证方式&#xff0c;它由三个角色组成&#xff0c;分别是客户端Client、服务端Server和秘钥分发中心KDC。 协议中的交互分为六步&#xff0c;为AS_REQ、AS_REP、TGS_REQ、TGS_REP、AP_REQ和AP_REP …

揭露大模型本质,大模型入门必看的12本书!看完我直接跪了

敢不敢用一年时间读完这12本书&#xff0c;模型入门必看的12本书&#xff01;建议收藏&#xff01;&#xff01; 第一本&#xff1a; 《基于GPT-3,ChatGPT,GPT-4等Transformer架构的自然语言处理》 主要内容 了解用于解决复杂语言问题的新技术。将GPT-3与T5、GPT-2和基于BE…

用Python实现时间序列模型实战——Day 28-29: 项目报告与展示

一、学习内容 1.1 项目报告的撰写与优化 项目报告应该从项目背景、数据探索、建模过程、预测结果、模型评估等方面进行全面描述。通过清晰的图表、简明的文字和合理的模型选择来优化报告的表达。 1.2 项目结果的展示与交流 通过展示图表、代码、关键模型的结果&#xff0c;…

Linux系统中的进程调度队列

目录 一、进程调度队列结构 二、活动队列与过期队列 1.queue[140] 2.bitmap[5] 一、进程调度队列结构 Linux系统中&#xff0c;每一个CPU都有一个进程调度队列runqueue&#xff0c;如图所示 二、活动队列与过期队列 运行队列runqueue中有两个指针*active、*expired。*acti…

从小白到大神:C语言预处理与编译环境的完美指南(下)

从小白到大神&#xff1a;C语言预处理与编译环境的完美指南&#xff08;上&#xff09;-CSDN博客 &#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;上篇链接在这~~&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x…

角色权限管理实现学习

逻辑&#xff1a; 权限表(Sys_Power):存所需授权才能访问的检验字段 授权表/角色权限表(Sys_RolePower):存角色所能访问的权限字段 角色表(Sys_Role)&#xff1a;定义角色(管理员&#xff0c;部门负责人&#xff0c;项目负责人...) 用唯一的权限字段标注所要授权才能访问的…

心理辅导系统设计与Spring Boot技术

5 系统的实现 5.1学生功能模块的实现 学生进入本系统可查看系统信息&#xff0c;系统主界面展示如图5-1所示。 图5-1系统主界面图 5.1.1 学生登录界面 学生在登录时需输入正确的登录用户名和密码&#xff0c;系统会以登录用户名、密码为参数进行登录信息的验证&#xff0c;信…

Keil MDK5学习记录

2024.9.19 1. no browse information available in ‘xxx’的问题 成功解决Keil MDK5中no browse information available in ‘xxx’的问题-CSDN博客https://blog.csdn.net/bean_business/article/details/1091894452. .c文件中显示函数列表 如何在Keil5里.c文件中显示函数列表…

oracle数据库启动

文章目录 背景一、步骤1.登录oracle用户2.启动监听服务3.启动数据库 背景 oracle数据库启动 一、步骤 1.登录oracle用户 代码如下&#xff08;示例&#xff09;&#xff1a; su - oracle2.启动监听服务 代码如下&#xff08;示例&#xff09;&#xff1a; lsnrctl start成…

AI音乐创作带给音乐原创人的挑战和机遇

随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;AI音乐创作在全球音乐产业中逐渐崭露头角。人工智能不仅能生成旋律、和声&#xff0c;甚至可以模仿艺术家风格创作出接近真实人类创作的作品。这一技术的崛起给音乐原创人带来了前所未有的挑战&#xff0c;但…

【PyQt5】QWidget子类所有子类

QWidget子类 [QObject 学习](https://editor.csdn.net/md/?articleId142371795) 2024-09-19更新QWidget子类所有子类 2024-09-17发布子类QAbstractButton类 2024-09-17正在学习中QAbstractslider类QAbstractSpinBox类QFrame类QCalendarwidget类QComboBox类QDialogButtonBox类Q…

【计算机网络 - 基础问题】每日 3 题(十八)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

uniapp 微信小程序 订阅消息功能实现

该网址 https://api.weixin.qq.com 上线后不可访问&#xff0c;调用该网址操作需在后端&#xff08; 重要&#xff01; 重要&#xff01; 重要&#xff01;&#xff09; 1.首先拿到的三个码 //微信公众平台 //https://mp.weixin.qq.com const wxappid "管理-开发管理-A…

QTCreator 调试:unknown debugger type “No engine“

QTCreator 调试&#xff1a;unknown debugger type "No engine" - kaizenly - 博客园 (cnblogs.com) 一开始Debuggers---Auto-detected这里第一row第一个项是标红的&#xff0c;然后没改东西&#xff0c;点完应用Apply以后&#xff0c;就可以调试了...&#xff08;不…

Spring Boot助力高校心理辅导系统升级

3 系统分析 3.1可行性分析 在进行可行性分析时&#xff0c;我们通常根据软件工程里方法&#xff0c;通过四个方面来进行分析&#xff0c;分别是技术、经济、操作和法律可行性。因此&#xff0c;在基于对目标系统的基本调查和研究后&#xff0c;对提出的基本方案进行可行性分析。…

【华为杯】2024华为杯数模研赛E题 解题思路

题目 高速公路应急车道紧急启用模型 问题背景 高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0c;如匝道…

(done) 什么是 GMM? Gaussian Mixture Model,高斯混合模型

来源&#xff1a;https://www.bilibili.com/video/BV13b411w7Xj/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 &#xff08;视频质量很高&#xff0c;一共四个视频&#xff0c;我只看了一个&#xff09; 直接看视频吧&#xff0…

2024年度性价比高的头戴式耳机怎么选?TOP4爆款产品推荐,速藏!

在 2024 年&#xff0c;头戴式耳机市场精彩纷呈&#xff0c;众多产品让人眼花缭乱。想要选到性价比高的头戴式耳机&#xff0c;需综合考量音质、降噪、续航等多个关键要素。2024年度性价比高的头戴式耳机怎么选&#xff1f;接下来为大家推荐四款爆款产品&#xff0c;让你快速了…

应届生必看 | 毕业第一份工作干销售好不好?

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

基础漏洞——SSRF

目录 一.原理 二.引起ssrf的函数 三.这些函数具体作用 &#xff08;1&#xff09;File_get_content() &#xff08;2&#xff09;Fsockopen() &#xff08;3&#xff09;Curl_exec() 四.常见的业务场景&#xff08;可能出现的漏洞的地方&#xff0c;漏洞挖掘&#xff09…