Ollama内网离线部署大模型

文章介绍了如何下载和使用Qwen1.5-0.5B-Chat-GGUF模型,创建Modelfile并设置参数,解决大模型答非所问的问题。重点在于提供了一个优化模板,使模型能更有效地进行用户交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

为了演示方便,我这里选用参数较小的Qwen1.5-0.5B-Chat模型。

下载GGUF模型

访问huggingface下载qwen1_5-0_5b-chat-q5_k_m.gguf模型。

https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat-GGUF/tree/main

在这里插入图片描述
注意:

  • huggingface访问不到,可以选择国内的modelscope
  • 选择q5_k_m模型,参考https://blog.csdn.net/weixin_44455388/article/details/136500170?spm=1001.2014.3001.5501

创建Ollama Modelfile

1、创建一个名为 Modelfile 的文件,并使用 FROM 指令,填写的模型的本地文件路径。

FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf

Modelfile文件中还可以添加系统提示词以及各项参数:

FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf

# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1

# set the system message
SYSTEM """
你是AI助手小智,请根据用户的提问做出合适的回答。
"""

2、在Ollama中创建模型

ollama create qwen:0.5b -f Modelfile

在这里插入图片描述

3、运行模型

ollama run qwen:0.5b

在这里插入图片描述

经过测试,大模型回答总是答非所问,或者是没有任何回复,换了Qwen1.5-4B-Chat-GGUF同样是这样。

解决方法:

Modelfile中要按照一定的模板,参考下载的官方提供的14B模型的Modelfile:
在这里插入图片描述
设置自定义的0.5B的Modelfile:

FROM ./qwen1_5-0_5b-chat-q5_k_m.gguf

TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"

优化之后的效果:

(base) [root@localhost my_model]# ollama run qwen:0.5b
>>> 你好
你好!有什么问题我可以帮助你解答吗?

>>> 你是谁
我是来自阿里云的大规模语言模型,我叫通义千问。

>>> Send a message (/? for help)
<think>好的,我现在需要处理用户关于Ollama离线部署和生成embedding的请求。首先,用户已经提供了一些参考引用,我需要先仔细阅读这些内容,确保理解正确。根据引用[1],Ollama支持离线部署模型,并且提到了准备材料、安装步骤以及模型迁移的方法。引用[2]则补充了如何在外网下载模型后迁移到内网使用,以及调用模型的命令。 用户的问题分为两部分:离线部署和生成embedding的方法。我需要将这两部分分开解答,确保结构清晰。首先,离线部署的步骤可能包括安装Ollama、准备模型文件、迁移到内网等。需要确认用户的操作系统环境,但引用中未明确说明,所以可能需要通用步骤。接着,生成embedding的方法可能涉及如何调用相关API或命令,引用中提到Ollama使用的是GGUF格式模型,可能需要通过特定接口获取embedding。 需要注意用户提供的示例回答格式,特别是代码块的使用和引用标识的添加。在解释每一步时,要引用正确的来源,比如引用[1]和[2]。同时,确保使用中文回答,并遵循LaTeX格式要求,虽然当前问题可能涉及较少的数学公式,但如果有变量或代码片段,需要正确格式化。 还需要生成相关问题,这部分需要围绕Ollama离线部署和embedding应用展开。例如,如何验证离线部署成功,或者embedding的应用场景等。要确保问题相关且有实际意义,帮助用户进一步探索主题。 最后,检查回答是否符合系统级指令,特别是格式要求和引用标注。确保所有技术步骤准确,没有遗漏关键点,如模型文件路径、命令示例等。可能还需要提醒用户注意模型文件的兼容性和路径配置,避免常见错误。</think>### Ollama离线部署与Embedding生成方法教程 #### 一、Ollama离线部署步骤 1. **外网环境准备模型文件** - 在外网设备安装Ollama,执行命令拉取所需模型(如`llama2`): ```bash ollama pull llama2 ``` - 模型文件默认存储在`~/.ollama/models`目录,格式为GGUF[^2]。 2. **迁移模型至内网** - 将外网的`models`文件夹完整复制到内网服务器的相同路径下[^1]。 3. **内网安装Ollama** - 离线安装包需提前下载,支持Linux/Windows/macOS。以Linux为例: ```bash curl -fsSL https://ollama.com/install.sh | sh ``` - 启动服务后,Ollama会自动识别`models`目录中的文件[^1]。 4. **验证部署** - 运行基础命令测试模型加载: ```bash ollama run llama2 "hello" ``` #### 二、生成Embedding的方法 1. **通过API调用** Ollama提供REST API生成embedding,示例代码: ```python import requests response = requests.post( "http://localhost:11434/api/embeddings", json={"model": "llama2", "prompt": "文本内容"} ) embedding = response.json()["embedding"] ``` 2. **命令行直接获取** 使用`ollama exec`命令导出文本向量: ```bash ollama exec llama2 "生成这句话的向量: 自然语言处理" ``` #### 三、关键注意事项 - 模型文件需与Ollama版本兼容,建议使用官方推荐模型 - 内网部署时需关闭自动更新功能,防止连接外网 - Embedding维度取决于模型结构,如llama2通常输出4096维向量
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值