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

ollama导入huggingface模型

  • 前言
  • gguf模型
    • 查找相关模型
    • 下载模型
  • 导入Ollama
    • 配置参数文件
    • 导入模型
    • 查看导入情况
  • safetensfors模型
    • 下载模型
    • 下载llama.cpp
    • 配置环境并转换

前言

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。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DFS之迭代加深、双向DFS、IDA*

迭代加深 迭代加深&#xff1a; 170. 加成序列 满足如下条件的序列 X X X&#xff08;序列中元素被标号为 1 、 2 、 3 … m 1、2、3…m 1、2、3…m&#xff09;被称为“加成序列”&#xff1a; X [ 1 ] 1 X[1]1 X[1]1 X [ m ] n X[m]n X[m]n X [ 1 ] < X [ 2 ] < …

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源&#xff0c;执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…

【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、I/O 多路转接之 epoll 1.1、epoll 初识 1.2、epoll 的相关系统调用 1.2.1、epoll_create 1.2.2、epol…

双向列表的实现(C++)

一.实现思路 主要是一个空间存储一个数值&#xff0c;然后为了索引后面的数据单元和前面的数据单元&#xff0c;所以在每个空间里面还要存储前面和后面数据单元的指针&#xff0c;就形成了每个数据单元 后面就是要管理的是双向列表的头结点和尾节点&#xff0c;方便实现后面的头…

国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)

替换介绍&#xff1a; 国能磐石服务器操作系统CEOS 对标 Linux 服务器操作系统&#xff08;Ubuntu, CentOS&#xff09; 东方通TongHttpServer 对标 Nginx 负载均衡Web服务器 第一步&#xff1a; 服务器安装CEOS映像文件&#xff0c;可直接安装&#xff0c;本文采用使用VMware …

Linux——修改USB网卡设备节点名称

修改驱动&#xff1a; 测试&#xff1a; 参考资料&#xff1a; https://blog.csdn.net/ablexu2018/article/details/144868950

上手体验微软全新整合的王炸平台Fabric

体验确实不错&#xff0c;微软强大的生态能力。 把可视化&#xff0c;数仓&#xff0c;数据胡&#xff0c;数据工厂&#xff0c;机器学习&#xff0c;数据监控等技术都整合到一个平台了。所有数据全都存储在统一的one lake数据中心&#xff0c;消除数据孤岛问题。而且不同角色可…

浅析PCIe链路均衡技术原理与演进

在现代计算机硬件体系的持续演进中&#xff0c;PCIe技术始终扮演着核心角色&#xff0c;其作为连接 CPU 与各类周边设备的关键高速通信链路&#xff0c;不断推动着计算机性能边界的拓展。而 PCIe Link Equalization均衡技术&#xff0c;作为保障数据在高速传输过程中准确性与稳…

东京大学联合Adobe提出基于指令的图像编辑模型InstructMove,可通过观察视频中的动作来实现基于指令的图像编辑。

东京大学联合Adobe提出的InstructMove是一种基于指令的图像编辑模型&#xff0c;使用多模态 LLM 生成的指令对视频中的帧对进行训练。该模型擅长非刚性编辑&#xff0c;例如调整主体姿势、表情和改变视点&#xff0c;同时保持内容一致性。此外&#xff0c;该方法通过集成蒙版、…

Wireshark 学习笔记1

1.wireshark是什么 wireshark是一个可以进行数据包的捕获和分析的软件 2.基本使用过程 &#xff08;1&#xff09;选择合适的网卡 &#xff08;2&#xff09;开始捕获数据包 &#xff08;3&#xff09;过滤掉无用的数据包 &#xff08;4&#xff09;将捕获到的数据包保存为文件…

学习threejs,导入babylon格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.BabylonLoader babyl…

Redis缓存穿透、缓存击穿、缓存雪崩

缓存穿透 定义&#xff1a; 查询一个不存在的数据&#xff0c;mysql查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库 例子&#xff1a; 一个get请求&#xff1a;api/news/getById/-1 解决方案 方案一&#xff1a;缓存空数据 缓存空数据&#xff0c;查…

用Kimi做研究:准实验设计的智能解决方案

目录 1.研究策略设计 2.过程框架设计 3.背景变量 4.细节设计 准实验设计是一种介于实验与观察研究之间的研究方法&#xff0c;准实验设计是在无法完全控制实验条件的情况下进行因果关系的探索。与传统实验设计相比&#xff0c;准实验设计不具备随机分配实验对象到各处理组的…

RIS智能无线电反射面:原理、应用与MATLAB代码示例

一、引言 随着无线通信技术的快速发展,人们对通信系统的容量、覆盖范围、能效以及安全性等方面的要求日益提高。传统的无线通信系统主要通过增加基站数量、提高发射功率和优化天线阵列等方式来提升性能,但这些方法面临着资源有限、能耗高和成本上升等挑战。因此,探索新的无线…

解决nginx多层代理后应用部署后访问发现css、js、图片等样式加载失败

一般是采用前后端分离部署方式&#xff0c;被上一层ng代理后&#xff0c;通过域名访问报错&#xff0c;例如&#xff1a;sqx.com.cn/应用代理路径。 修改nginx配置&#xff0c;配置前端页面的路径&#xff1a; location / {proxy_pass http://前端页面所在服务器的IP:PORT;pro…

IoT平台在设备远程运维中的应用

IoT平台是物联网技术的核心组成部分&#xff0c;实现了设备、数据、应用之间的无缝连接与交互。通过提供统一的设备管理、数据处理、安全监控等功能&#xff0c;IoT平台为企业构建了智能化、可扩展的物联网生态系统。在设备远程运维领域&#xff0c;IoT平台发挥着至关重要的作用…

新时期下k8s 网络插件calico 安装

1、k8s master节点初始化完毕以后一直处于notreadey状态&#xff0c;一直怀疑是安装有问题或者是初始化有问题&#xff08;当然&#xff0c;如果真有问题要先解决这些问题&#xff09;&#xff0c;经过不断探索才发现是网络插件没有安装导致的&#xff0c;根据建议安装calico插…

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化&#xff0c;还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…

电脑之一键备份系统(One Click Backup System for Computer)

电脑之一键备份系统 相信使用电脑的的人都遇到过&#xff0c;电脑系统崩溃&#xff0c;开机蓝屏等原因&#xff0c;这个时候你急着用电脑办公&#xff0c;电脑却给你罢工是多么气人了&#xff0c;其实可以给电脑做一个系统备份。 最近每天都有系统蓝屏崩溃&#xff0c;这个实难…

课题推荐——基于GPS的无人机自主着陆系统设计

关于“基于GPS的无人机自主着陆系统设计”的详细展开&#xff0c;包括项目背景、具体内容、实施步骤和创新点。如需帮助&#xff0c;或有导航、定位滤波相关的代码定制需求&#xff0c;请点击文末卡片联系作者 文章目录 项目背景具体内容实施步骤相关例程MATLAB例程python例程 …