内网环境使用Docker部署Qwen2模型

2024-06-22 01:28

本文主要是介绍内网环境使用Docker部署Qwen2模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景介绍

在我参与的一个国企项目中,我们基于大语言模型开发了一些应用,但是甲方公司所有的资源环境都是纯内网。更为有趣的是,甲方公司已自主搭建并运行着一套百度机器学习平台(BML),客户要求所有的大模型部署必须依托于现有的BML平台进行,而非独立构建全新的基础设施,资源申请也相当严苛。面对这一系列限定条件,我们只能试着利用Docker容器技术进行大语言模型的部署。

前期准备

1、首先,内网环境部署docker:

这部分内容不再赘述,可参考之前写的教程。

https://zyn1994.blog.csdn.net/article/details/109516191

2、其次,使用一台具备网络环境的设备,拉取ollama的基础镜像:

docker pull ollama/ollama:latest
# 如果拉取不到,可使用下面这个
docker pull dhub.kubesre.xyz/ollama/ollama:latest

3、下载Qwen2的GGUF模型,这里为了演示方便就下载0.5B的模型了。

下载地址:https://huggingface.co/Qwen/Qwen2-0.5B-Instruct-GGUF​或者https://modelscope.cn/models/qwen/Qwen2-0.5B-Instruct-GGUF

4、编写Modelfile文件:

# 注意GGUF模型文件的地址要与Dockerfile中保持一致
FROM /tmp/qwen2-0_5b-instruct-q4_0.gguf
TEMPLATE "{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>

最终得到GGUF模型文件和Modelfile文件。

-rw-r--r--. 1 root root       290 Jun 21 14:00 Modelfile
-rw-r--r--. 1 root root 352969408 Jun 21 13:44 qwen2-0_5b-instruct-q4_0.gguf

构建镜像

1、将先前拉取的基础镜像导入内网设备,然后编写Dockerfile文件:

FROM ollama:latest
EXPOSE 11434ADD Modelfile /tmp/Modelfile
ADD qwen2-0_5b-instruct-q4_0.gguf /tmp/qwen2-0_5b-instruct-q4_0.ggufENTRYPOINT ["sh","-c","/bin/ollama serve"]

2、构建docker镜像,执行docker build -t ollama_qwen2-0_5b:1.0 -f Dockerfile .​:

(base) [root@localhost docker-qwen2]# docker build -t ollama_qwen2-0_5b:1.0 -f Dockerfile .
[+] Building 1.7s (8/8) FINISHED                                                                                                                                                docker:default=> [internal] load .dockerignore                                                                                                                                                         0.4s=> => transferring context: 2B                                                                                                                                                           0.0s=> [internal] load build definition from Dockerfile                                                                                                                                      0.5s=> => transferring dockerfile: 303B                                                                                                                                                      0.0s=> [internal] load metadata for docker.io/library/ollama:latest                                                                                                                          0.0s=> [1/3] FROM docker.io/library/ollama:latest                                                                                                                                            0.0s=> [internal] load build context                                                                                                                                                         0.1s=> => transferring context: 201B                                                                                                                                                         0.0s=> CACHED [2/3] ADD Modelfile /tmp/Modelfile                                                                                                                                             0.0s=> CACHED [3/3] ADD qwen2-0_5b-instruct-q4_0.gguf /tmp/qwen2-0_5b-instruct-q4_0.gguf                                                                           

这篇关于内网环境使用Docker部署Qwen2模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082895

相关文章

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左