内网环境使用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

相关文章

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Java Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061