10、ollama启动LLama_Factory微调大模型(llama.cpp)

embedded/2024/10/22 14:30:03/

在前面章节中介绍了如何使用LLama_Factory微调大模型,并将微调后的模型文件合并导出,本节我们我们看下如何使用ollama进行调用。

1、llama.cpp

LLama_Factory训练好的模型,ollama不能直接使用,需要转换一下格式,我们按照ollama官网的提示使用llama.cpp来进行实现。
在这里插入图片描述

1.1 安装llama.cpp

下载 llama.cpp

git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp# 安裝 Python 相依套件
pip install -r requirements.txt

在这里插入图片描述

1.2 格式转换

python convert_hf_to_gguf.py  /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all \
> --outfile /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all/Qwen2-0.5B-Chat_829.gguf
  • /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all :微调后合并的模型文件路径
  • /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all/Qwen2-0.5B-Chat_829.gguf :转换后的文件路径和名称

在这里插入图片描述
速度很快
在这里插入图片描述
在这里插入图片描述

ollama_35">2、ollama启动模型

ollama_37">2.1 Linux安装ollama

在这里插入图片描述

curl -fsSL https://ollama.com/install.sh | sh

如果服务器网络不好无法下载,可以先下载到本地再上传
下载地址:https://ollama.com/download/ollama-linux-amd64.tgz
解压安装:sudo tar -xzf ollama-linux-amd64.tgz -C /usr/local/
在这里插入图片描述

2.2 加载模型

要导入 GGUF 模型到 Ollama 中,您需要创建一个名为 ModelFile 的文件,并在其中包含指定的内容。以下是如何创建这个文件的步骤:

  1. 选择创建文件的目录
    需要确定把ollama相关的配置文件放在那个目录,比如在主目录中创建一个专用目录来存放模型文件:

    mkdir -p ~/ollama_models/my_model
    cd ~/ollama_models/my_model
    
  2. 创建 ModelFile 文件
    在进入目标目录后,使用以下命令创建一个名为 ModelFile 的文件:

    touch ModelFile
    
  3. 编辑 ModelFile 文件

    接下来,使用您熟悉的文本编辑器(如 nanovivim)打开并编辑 ModelFile 文件。例如,使用 nano 编辑:

    nano ModelFile
    

    在文件中输入以下内容,将 /path/to/file.gguf 替换为 GGUF 文件的实际路径:

    FROM /path/to/file.gguf
    

    例如,我的 GGUF 文件位于 FROM /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all/Qwen2-0.5B-Chat_829.gguf,则内容应为:

    FROM /root/LLaMA-Factory-main/Qwen2-0.5B-Chat_all/Qwen2-0.5B-Chat_829.gguf
    
  4. 保存并关闭文件

    在编辑完成后,保存文件并退出编辑器:

    • nano 中,按 Ctrl + O 保存,按 Enter 确认保存路径,然后按 Ctrl + X 退出编辑器。
    • vivim 中,按 Esc 键,然后输入 :wq 保存并退出。
  5. 使用 Ollama 导入模型

    完成 ModelFile 文件的创建后,使用 Ollama 的命令来导入该模型:

    ollama create my-model -f /root/ollama_models/my_model/ModelFile
    

    在上述命令中,my-model 为模型选择的名称。
    在这里插入图片描述

  6. 查看创建的模型
    在这里插入图片描述

  7. 运行模型
    在这里插入图片描述


http://www.ppmy.cn/embedded/104054.html

相关文章

智能儿童对讲机语音交互,乐鑫ESP-RTC音视频通信,ESP32无线语音方案

儿童对讲机一种专为孩子们设计的通讯设备,可以让父母与孩子之间进行双向通讯,增强亲子关系,增强孩子的可玩性。 儿童对讲机近几年发展的比较快,通过无线WiFi及蓝牙通信技术,可以实现远程控制和语音交互功能&#xff0…

如何选择合适的JDK:功能、性能与适用场景的全面解析

如何选择合适的JDK:功能、性能与适用场景的全面解析 前言 在 Java 开发领域,开发者有众多的 JDK 选择,如 OpenJDK、GraalVM、Oracle JDK、Dragonwell、Kona、Bisheng、Corretto、Zulu、Liberica、SapMachine、Semeru、Temurin、Mandrel等。 …

英特尔 Arrow Lake Halo 再现,猛堆料对标Strix Halo/苹果M系列

原文转载修改自: Arrow Lake Halo暴力堆料,对标Strix Halo,M系列 根据最近的消息,蓝厂准备于来年1月推出笔记本Arrow Lake-H处理器。虽然在传闻中Arrow Lake-H又是Arc Alchemist架构革新,又是6P8E,但基于…

鸿蒙界面开发(五):相对布局

相对布局RelativeContainer 相对布局的容器,支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。子元素支持指定兄弟或父元素作为锚点,基于锚点做相对位置布局。 锚点:通过…

Java:有效括号字符串验证器

Java实现的有效括号字符串验证器 引言 在编程中,经常需要验证一组字符串中的括号是否正确配对。例如,检查一段代码或表达式中的圆括号、方括号和花括号是否成对出现。这类问题不仅在编程语言解析器中非常重要,也是许多软件开发场景中的基础…

Linux下C++编程使用动态链接库

在《Linux下C编程使用动态链接库》一文中已了解到了C语言里如何使用共享库SO了,但在C里可全是类,该如何实现呢?C语言中的操作只能导出全局函数,并不能导出类的方法,故而需要设计相关的全局函数来封装一层。这里用到了“…

qt报错 error: undefined reference to `vtable for RelayDevice 解决方法

在 Qt 编程中,当出现错误 undefined reference to ‘vtable for RelayDevice’ 时,通常是因为类的虚函数没有实现,或者未正确实现虚析构函数。以下是一些可能的解决方法: 确保实现所有虚函数: 检查 RelayDevice 类中声…

Qt 多个按钮,响应同一个点击事件

最近的一个需求&#xff0c;需要多个按钮响应同一个点击事件&#xff0c;并且要求能区分是哪个按钮点击的&#xff0c;看效果&#xff1a; 直接上代码&#xff1a; QList<QPushButton*> buttons findChildren<QPushButton*>();for (QPushButton* button : buttons…