当前位置: 首页 > news >正文

Llama微调以及Ollama部署

1 Llama微调

在基础模型的基础上,通过一些特定的数据集,将具有特定功能加在原有的模型上。

1.1 效果对比

  • 特定数据集
    在这里插入图片描述
  • 未使用微调的基础模型的回答
    在这里插入图片描述
  • 使用微调后的回答
    在这里插入图片描述

1.2 基础模型

基础大模型我选择Mistral-7B-v0.3-Chinese-Chat-uncensored,
模型文件可以在HuggingFace 模型

1.3 选择数据集

微调大模型要想获得比较好的效果,拥有高质量的数据集是关键。可以选择用网上开源的,或者是自己制作。以中文数据集弱智吧为例,约1500条对话数据,数据集可以从HuggingFace 数据集

1.4 训练lora模型并与基础模型进行合并

新建一个merge.py文件,将基础模型和lora模型合并为一个新的模型文件

执行merge.py,需要传入的参数(改成自己的):
--base_model
基础模型路径
--lora_model
微调的lora模型路径
--output_dir
合并后模型的输出路径

1.5 量化模型

利用llama.cpp进行量化模型.

  • 1.安装CMAKE下载llama.cpp源码
    git clone https://github.com/ggerganov/llama.cpp.git
    cd llama.cpp
  • 2.安装依赖
    pip install -r requirements/requirements-convert-hf-to-gguf.txt
    cmake -B build
    cmake --build build --config Release
  • 3.执行转换脚本,将safetensors转换为gguf文件,便于量化
    convert-hf-to-gguf.py 合并后模型的位置 --outtype f16 --outfile 转换后模型的位置my_llama3.gguf
  • 4.对转后的文件进行量化操作。
    llama.cpp所在位置\llama.cpp\build\bin\Release quantize.exe 转换后模型的路径 量化后模型的位置quantized_model.gguf q4_0

至此,llama微调后的模型操作完毕,可以直接使用。

2.Ollama部署

Ollama安装地址

2.1 部署现有的模型

在这里插入图片描述
打开Ollama,找到目录中现有的模型,使用ollama run llama3.2,来使用现有模型。

2.2 使用微调模型

  • 1.在上述已量化好的模型quantized_model.gguf的目录中新建Modelfile文件
FROM 量化好的模型路径
TEMPLATE "[INST] {{ .Prompt }} [/INST]"
  • 2.使用微调模型
# ollama create 模型名字 -f Modelfile文件路径
ollama create panda -f  test.Modelfile

相关文章:

  • MRC接收机
  • 【数字图像处理】小白也能懂,最浅显方式手撕直方图均衡化(附python实现)
  • python 02 List
  • 药物临床试验机构备案信息数据库查询方法(支持数据下载)
  • Git常用方法——详解
  • 防止电脑电池老化,禁止usb或者ac接口调试时充电
  • STM32CubeMX工程printf问题
  • 什么是 Angular 开发中的 Dumb components
  • 【Git】克隆主项目,并同时克隆所有子模块
  • 动态规划(3)——dp多状态问题Ⅰ
  • 【Rockchip系列】importbuffer_T 接口
  • Tomcat服务与运用
  • kafka测试
  • SpringAOP学习
  • 企业微信群发工具:精准营销与高效沟通的新篇章
  • Android单元测试 - 几个重要问题
  • centos安装java运行环境jdk+tomcat
  • express + mock 让前后台并行开发
  • Javascript Math对象和Date对象常用方法详解
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Java教程_软件开发基础
  • Just for fun——迅速写完快速排序
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PHP的Ev教程三(Periodic watcher)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Zsh 开发指南(第十四篇 文件读写)
  • 测试如何在敏捷团队中工作?
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 通过调用文摘列表API获取文摘
  • #pragma once
  • (9)STL算法之逆转旋转
  • (solr系列:一)使用tomcat部署solr服务
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四) Graphivz 颜色选择
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Scala的“=”符号简介
  • (转)负载均衡,回话保持,cookie
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • *p++,*(p++),*++p,(*p)++区别?
  • .Net Core中Quartz的使用方法
  • .NET 使用配置文件
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET6实现破解Modbus poll点表配置文件
  • .NET轻量级ORM组件Dapper葵花宝典
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • :class的用法及应用
  • @hook扩展分析
  • @NestedConfigurationProperty 注解用法
  • @private @protected @public