玩转大语言模型——ollama导入huggingface下载的模型

系列文章目录

玩转大语言模型——使用langchain和Ollama本地部署大语言模型
玩转大语言模型——三分钟教你用langchain+提示词工程获得猫娘女友
玩转大语言模型——ollama导入huggingface下载的模型
玩转大语言模型——langchain调用ollama视觉多模态语言模型
玩转大语言模型——使用transformers中的pipeline调用huggingface中模型
玩转大语言模型——transformers微调huggingface格式的中文Bert模型
玩转大语言模型——使用GraphRAG+Ollama构建知识图谱
玩转大语言模型——完美解决GraphRAG构建的知识图谱全为英文的问题
玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱
玩转大语言模型——本地部署带聊天界面deepseek R1的小白教程
玩转大语言模型——本地部署deepseek R1和本地数据库的小白教程(Ollama+AnythingLLM)
玩转大语言模型——使用LM Studio在本地部署deepseek R1的零基础)教程
玩转大语言模型——Ubuntu系统环境下使用llama.cpp进行CPU与GPU混合推理deepseek
玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成


前言

ollama在大语言模型的应用中十分的方便,但是也存在一定的问题,比如不能使用自己微调的模型或者当前的模型并没有做ollama官网兼容的时候,从外部导入模型就十分必要。本章将会介绍两种常见格式模型导入ollama的方式。

gguf模型

gguf格式的模型是可以直接导入ollama的,有很多已上传的模型都包含gguf格式的模型,遇到这种情况我们只需要在huggingface中找到这些gguf格式的模型,直接导入即可。

查找相关模型

在hunggingface或者镜像源中直接搜索gguf格式模型,这里以phi-4为例(phi-4模型有上传gguf格式的模型)。
在这里插入图片描述
笔者也可以直接访问镜像链接:https://hf-mirror.com/matteogeniaccio/phi-4/tree/main
在这个例子中,phi-4文件夹下是safetensros格式的模型,一般是配合transformers包使用的,我们本篇的主题是ollama,所以不关心,下面的gguf格式才是可以导入到ollama的模型
在这里插入图片描述
这里四个模型分贝是不同的量化方式的模型,一般来说越大精度越高,根据自己需求选择就好,在本篇中,使用最小的phi-4-Q4_K_M.gguf为例。

下载模型

可以使用git和网页下载方式下载。
git下载
git方式需要预先安装好git,如果不了解git,可以选择网页下载,本身gguf格式的模型需要下载的文件就不多。

git下载时,可以选择右上角的三个点,点击Clone repository
在这里插入图片描述
随后打开命令行依次执行以下命令即可。
在这里插入图片描述
网页下载
由于我们只需要下载一个文件,所以使用网页下载也很方便。
在这里插入图片描述
如果网页下载过慢可以复制链接到迅雷
下载后放到一个单独的文件夹中,笔者的文件夹是D:\alpha_ordered\MyCodeBase\Large Model\LLM\gguf_model\phi4,后续的操作均是在这个文件夹下实现。

导入Ollama

配置参数文件

新建一个config.txt文件,打开后输入以下内容后保存

FROM "D:\alpha_ordered\MyCodeBase\Large Model\LLM\gguf_model\phi4\phi-4-Q4_K_M.gguf"
# 指定语言模型文件路径。

PARAMETER temperature 1
# 设置温度,控制生成内容的随机性。

PARAMETER num_ctx 4096
# 设置上下文窗口大小。

TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|> {{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|> {{ .Prompt }} <|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|> {{ .Response }}<|eot_id|>"""
# 定义输入输出结构。

SYSTEM """尽你的最大可能和能力回答用户的问题。不要重复回答问题。语言要通顺流畅。
RULES:- Be precise, do not reply emoji.- Always response in Simplified Chinese, not English. or Grandma will be very angry. """
# 系统指导方针。

PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
# 定义生成过程的停止条件。

注意,其中第一行需要根据你的路径和所用模型进行修改。其余参数可以根据需求修改。
打开cmd命令行窗口,切换到gguf模型的下载路径,这里也是切换到你对应的路径

导入模型

在这里插入图片描述
导入的命令是ollama create 模型的名字 -f config.txt,这里的模型名字可以随便起,笔者这里就叫ph4了。

ollama create ph4 -f config.txt

执行后结果如果如下,说明导入成功。
在这里插入图片描述

查看导入情况

使用ollama list可以查看ollama导入的所有模型,可以查到已经导入成功
在这里插入图片描述
当然,有没有导入成功,还需要通过实际使用来确定ollama run ph4

在这里插入图片描述

注:如果出现以下问题,Error: llama runner process has terminated: GGML_ASSERT(hparams.n_swa > 0) failed,可能是gguf和ollama版本的问题,可以更新ollama或者更新模型。

safetensfors模型

safetensors模型并不能直接导入ollama,在导入之前需要先转成gguf模型格式。

下载模型

首先我们先下载一个safetensors格式的模型。我这里选用的是Qwen2-VL-7B,链接:https://hf-mirror.com/Qwen/Qwen2-VL-7B-Instruct
在这里插入图片描述
看到有这么多文件,实际上我们真正有用的只有tokenizer.json,config.json和后缀为safetensors的所有文件。不过由于文件太多,不妨直接使用git下载,下载后其余多余的文件也不需要删除,不影响使用。笔者的下载路径是D:\alpha_ordered\MyCodeBase\Large Model\LLM\huggingface_model\Qwen2-VL-7B-Instruct

下载llama.cpp

格式的转换需要用到llama.cpp
github地址:https://github.com/ggerganov/llama.cpp
在这里插入图片描述

git直接克隆:git clone https://github.com/ggerganov/llama.cpp.git

配置环境并转换

下载好llama.cpp后,配置环境,这里并没有什么坑点,只需要将项目中自带的requirements.txt所有的包pip上就好了。

pip install -r requirements.txt

转换格式的命令如下:

python convert_hf_to_gguf.py "D:\alpha_ordered\MyCodeBase\Large Model\LLM\huggingface_model\Qwen2-VL-7B-Instruct" --outtype f16 --verbose --outfile "D:\alpha_ordered\MyCodeBase\Large Model\LLM\gguf_model\Qwen2-VL-7B_gguf"

在上述命令中需要修改的是safetensors模型的地址和要保存的gguf模型地址(注意,要是一个空的文件夹),笔者用于保存gguf模型的地址是D:\alpha_ordered\MyCodeBase\Large Model\LLM\gguf_model\Qwen2-VL-7B_gguf可供参考。尤为注意的是,该命令要在项目目录下执行。
在这里插入图片描述

转换成gguf格式后再进行上面导入gguf的步骤就可以将模型导入ollama。

### 如何在Ollama平台部署Huggingface模型 #### 准备工作 确保环境配置正确,拥有必要的权限来安装依赖项以及访问互联网以下载所需的资源[^1]。 #### 下载并准备模型 通过HuggingFace库获取目标预训练模型。这通常涉及使用`transformers`库中的特定类加载器,例如对于自动编码器可以采用如下方式: ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "your-model-name" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) ``` 此过程会从HuggingFace Model Hub拉取指定名称下的最新版本模型及其配套的分词工具。 #### 创建自定义Ollama模型 一旦获得了来自HuggingFace的目标模型实例,就可以按照官方指南指示,在本地环境中将其转换成适用于Ollama框架的形式。完成之后,便能够利用该定制化组件构建更复杂的应用程序逻辑或是直接用于推理任务中。 #### 启动服务端口监听 为了让其他应用程序可以通过网络请求调用所部署的大规模语言模型的服务功能,需设置HTTP服务器并将处理函数绑定到相应的路由上。这里推荐使用Flask这样的轻量级Web框架简化开发流程,并确保API设计遵循RESTful原则以便于集成测试与维护管理[^2]。 #### 调整模板参数优化交互体验 考虑到部分大型语言模型可能存在的语种支持局限性问题(如某些变体对中文的支持不佳),建议开发者们在实际应用过程中适当调整对话系统的初始化设定——即所谓的TEMPLATE、SYSTEM、PARAMETER字段值,从而改善跨文化交流的效果和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾醒(AiXing-w)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值