初识AI大模型,ollama使用,llama factory大模型微调,lama.cpp模型转换guff

  最近了解了下生成式AI对话,下面是自己的一些尝试记录。

  • ollama 安装及使用

  1、安装

  我是在windows环境下安装的,很简单,访问:https://ollama.com/ ,下载windows安装包,打开安装就行了。

  cmd输入ollama -v检验是否安装成功。

      

  2、配置

  在环境变量的用户变量中加入如下几个:

  

   OLLAMA_HOST ollma服务启动的端口。

  OLLAMA_MODELS 模型下载保存的位置。

  OLLAMA_ORIGINS 绑定访问的ip。这里*号就是整个局域网都可以访问。

  3、使用

  下面是api的调用,model就是要使用的模型名字,prompt就是输入指令。ollama提供很多接口,有兴趣查官网查查询。

       

   接下来说下常见的命令行指令

  ollama list 查询已安装的模型。

       ollama run xxx 启动模型,如果模型没安装会自动下载,模型下载地址:library (ollama.com)

  ollama rm xx   删除已安装的模型

  • llama factory 使用

  1、下载

  访问 GitHub - hiyouga/LLaMA-Factory: Unified Efficient Fine-Tuning of 100+ LLMs (ACL 2024) 下载源码,当然也可以通过docker等方式,我这里使用源码启动。请保证本地有python环境。

     下载解压后在项目目录执行如下命令:

     pip install -e ".[torch,metrics]"

     2、启动

    执行 llamafactory-cli webui。会自动打开浏览器,就进入了微调训练的web界面。

   3、训练数据集准备

  在data目录下新建一个自定义文件,格式参考identity.json,这里的训练数据非常重要,在最近的学习中了解到数据会影响后续的训练结果,并且这个数据阶段还有很重要的岗位。

  自定义数据准备好后,在dataset_info.json文件中增加对应的描述,还是参考identity部分的数据。

  4、模型微调训练

  在web界面选择训练的基座模型,因为我电脑没有显卡,这里选择的最小的通义千问1.5版本的0.5B模型。然后训练方式选择lora模型,数据集选择你新增的数据。点击开始训练就可以开始了。

  我这里训练了50个数据参数,因为没有显卡的原因,所以很慢。

      

  • 模型合并

  微调训练完成后,在目录的saves文件夹下就有你训练的结果,以基座模型/自定义的输出目录命名。因为我们使用的lora方式训练,需要把基座模型和我们训练的结果合并。至于啥是lora模式,感兴趣的可以网上搜下。

  在examples/merge_lora目录下新建自己的yaml配置文件。

  model_name_or_path 基座模型地址,如果不知道去哪里下,搜索魔塔社区。

  adapter_name_or_path  微调训练模型地址,就是上面说的训练输出的目录。

  export_dir  合并后导出的目录。

      

   文件创建后,在项目目录执行如下命令合并。

  llamafactory-cli export examples/merge_lora/myqwen_merge.yaml 

  • 模型转换

  1、编写配置文件

  在合并后导出的目录新建一个Modelfile文件,注意没有文件格式,文件内容:FROM E:\LLaMA-Factory-main\merge_mode_lora\myqwen\my_qwen.gguf

  

   2、llama.cpp下载

  下载地址:GitHub - ggerganov/llama.cpp: LLM inference in C/C++

  解压后cmd进入目录,执行:

  python convert_lora_to_gguf.py  E:\LLaMA-Factory-main\merge_mode_lora\myqwen --outtype f16 --vocab-type bpe --outfile E:\LLaMA-Factory-main\merge_mode_lora\myqwen\my_qwen.gguf

  E:\LLaMA-Factory-main\merge_mode_lora\myqwen 就是合并的模型目录,E:\LLaMA-Factory-main\merge_mode_lora\myqwen\my_qwen.gguf就是模型转换的路径和模型名称。

      

  • 导入模型

  cmd进入模型转换的输出目录,执行 ollama create my_qwen -f Modelfile 开始导入模型。

  然后使用ollama list查看是否导入成功,使用ollama run my_qwen 就可以使用我们新的模型了。

  总得来说,有很多包都需要自己想办法,不然要么就下载很慢,要么根据就不能下载。想要自己的微调模型在垂直领域的问答有一定效果,首先得要硬件支持,其次得要海量的有效数据支持,目前我这两都达不到,就当学习了。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Mybatis、Mybatis-Plus 调用同一个组件的查询时遇到的坑

Mybatis、Mybatis-Plus 调用同一个组件的查询时遇到的坑 Mybais-plus配置了驼峰自动命名,所以不需要在SQL里转化查询。

ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic

毕业设计 题 目: 校园代购服务订单管理系统 作 者: 学 号: 所属学院: 专业年级: 学校导师: 职 称: 班级导师: 职 称: 完成时间…

ECharts折线图背景渐变设置

目录 引入 1.在一个HTML文件中编写两个图表 2.渐变背景 引入 如何在一个HTML文件中编写两个图表:(这个例子基于这个篇文章的基础)一篇搞懂前端获取数据-CSDN博客 一个例子: 1.在一个HTML文件中编写两个图表 重点在于名字的不重…

Webserver(4.6)poll和epoll

目录 pollclient.cpoll.c epollepoll.cclient.c epoll的两种工作模式水平触发边沿触发 poll poll是对select的一个改进 select的缺点在于每次都需要将fd集合从用户态拷贝到内核态,开销很大。每次调用select都需要在内核遍历传递进来的所有fd,这个开销也…

提高交换网络可靠性之认识STP根桥与端口角色

转载请注明出处 该实验旨在学习如何选举根桥与识别端口角色。 1.三台交换机按要求连线,改名,分别为S1,S2,S3,以S1为例: 2.在S1上配置优先级为28672 同理,在交换机S2和S3上配置其优先级为32768&…

qt QTextDocument详解

1、概述 QTextDocument是Qt框架中用于处理文本文档的类,它提供了丰富的功能和接口,用于创建、编辑和格式化文本内容。该类能够保存格式化的文本,是结构化富文本文档的容器,支持样式文本和各种文档元素,如列表、表格、…

【UE5】在材质中实现球形法线技术,常用于改善植物等表面的渲染效果

在材质中实现球形法线,这种技术常用于植被渲染等场景。通过应用球形法线可以显著提升植物再低几何体情况下的光照效果。 三二一上截图! 当然也可以用于任何你希望模型圆润的地方,下图中做了一个Cube倒角

提高交换网络可靠性之链路聚合

转载请注明出处 该实验为链路聚合的配置实验。 1.改名,分别将交换机1和交换机2改名为S1,S2,然后查看S1,S2的STP信息。以交换机1为例👇。 2.交换机S1,S2上创建聚合端口,将端口加入聚合端口。以S…

ZISUOJ 2024算法基础公选课练习一(3)

前言、 接&#xff08;2&#xff09;后完成I-J两道题 一、题目总览 二、具体题目 2.1 问题 I: 帆帆的图&#xff1a; 思路&#xff1a; 考察拓扑排序和图论&#xff08;拓扑排序也是排序&#xff0c;<滑稽>&#xff09;&#xff0c;都是模板&#xff0c;我就直接拿去…

窨井监测遥测终端RTU IP68防水强信号穿透力

在窨井的潮湿 黑暗和腐蚀性环境中 常规物联网设备往往难以生存 如何突破层层环境挑战 轻松应对极端条件 确保信号 24h不掉线&#xff0c;不延迟 不仅是对技术的突破 更是对恶劣环境的征服 ↓↓↓ 坚守 ——严苛环境下的工业设备 计讯物联工业级设备&#xff0c;专为恶劣环境设计…

python opencv3

三、图像预处理2 1、图像滤波 为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙&#xff0c;增强视觉效果&#xff1b;也可以模糊化间隙&#xff0c;造成图像的噪点被抹平。 2、卷积核 在深度学习中&#xff0c;卷积核越大&#xff0c;看到的信息越多&#xff0…

Mac上的免费压缩软件-FastZip使用体验实测

FastZip是Mac上的一款免费的压缩软件&#xff0c;分享一下我在日常使用中的体验 压缩格式支持7Z、Zip&#xff0c;解压支持7Z、ZIP、RAR、TAR、GZIP、BZIP2、XZ、LZIP、ACE、ISO、CAB、PAX、JAR、AR、CPIO等所有常见格式的解压 体验使用下来能满足我所有的压缩与解压的需求&a…

网络自动化04:python实现ACL匹配信息(主机与主机信息)

目录 背景分析代码代码解读代码总体结构1. load_pattern_from_excel 函数2. match_and_append_pattern 函数3. main 函数总结 最终的效果&#xff1a; 今天不分享netmiko&#xff0c;今天分享一个用python提升工作效率的小案例&#xff1a;acl梳理时的信息匹配。 背景 最近同事…

Linux之sed命令详解

文章目录 &#x1f34a;自我介绍&#x1f34a;sed概述&#x1f34a;sed语法讲解格式&#xff1a;options 命令选项{commmand}[flags] &#x1f34a;场景训练 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff…

用ChatGPT完成高质量文献综述全过程实操指南,用高级学术版专业应用gpts轻松搞定

文献综述在学术研究中占据核心地位,不仅为研究提供坚实的理论基础,也是创新观点和理论框架构建的重要支柱。然而,撰写高质量的文献综述往往是一项复杂且繁重的工作,需要研究者对领域内的文献进行广泛筛选、分类、对比和整合。该过程不仅考验研究者的分析能力,还要求对文献…

Java题目笔记(十四)Date +综合练习

一、时间计算时间比较 import java.util.Date; import java.util.Random;public class Main {public static void main(String[] args) {//需求1Date d1new Date(0L); //从时间原点开始经过了0毫秒long timed1.getTime();timetime1000L*60*60*24*365; //一年的时间d1.setTime(…

【C++练习】计算应发利润总数

题目&#xff1a;计算应发利润总数 问题描述&#xff1a; 某公司根据销售额 x&#xff08;单位&#xff1a;元&#xff09;计算应发利润总数 y&#xff08;单位&#xff1a;元&#xff09;&#xff0c;具体计算规则如下&#xff1a; 如果销售额 x 小于等于 100,000 元&#…

Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决

1、问题背景 代码上库公司git后,将项目上出的程序烧录到设备中,wifi能够正常链接&#xff0c;但是通过wifi链接 ssh登录设备失败。把调试串口引出,查看linux启动log,发现如下打印信息&#xff1a; WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions 075…

企业网络架构基础

1.网络宇宙 似宇宙洪荒&#xff0c;浩瀚无边&#xff0c;深不可测&#xff1b;网络案例似璀璨群星&#xff0c;千变万化&#xff0c;闪耀环宇。学习网络技术似夜观星象&#xff0c;每有所得&#xff0c;便拍案惊奇&#xff0c;夜不能寐 2.企业网络 企业网络已经广泛应用在各行…

Vue 3 的 全局状态管理

1.思路梳理 工厂仓拣货信息&#xff1a;Factory Picking Info (FPI)工厂仓调度信息&#xff1a;Factory Scheduling Info (FSI)DC 收货信息&#xff1a;DC Receiving Info (DCRI)上架信息&#xff1a;Shelving Info (SI)盘点信息&#xff1a;Inventory Count Info (ICI)移位信…