首页 > 其他分享 >介绍 GGUF-my-LoRA

介绍 GGUF-my-LoRA

时间:2024-11-25 22:58:00浏览次数:7  
标签:gguf -- LoRA 适配器 GGUF lora llama my

随着 llama.cpp 对 LoRA 支持的重构,现在可以将任意 PEFT LoRA 适配器转换为 GGUF,并与 GGUF 基础模型一起加载运行。

为简化流程,我们新增了一个名为 GGUF-my-LoRA 的平台。

什么是 LoRA?

LoRA(Low-Rank Adaptation,低秩适配)是一种用于高效微调大型语言模型的机器学习技术。可以将 LoRA 想象成给一个大型通用模型添加一小组专门的指令。与重新训练整个模型(既昂贵又耗时)不同,LoRA 允许你高效地为模型添加新功能。例如,可以快速将一个标准聊天机器人适配用于客户服务、法律咨询或医疗保健,每个场景只需要一组小的额外指令,而无需创建全新的模型。

PEFT(Parameter-Efficient Fine-Tuning,参数高效微调)是 Hugging Face 的一个库,用于实现像 LoRA 这样的高效模型微调技术,详细信息可参见 此处

如何将 PEFT LoRA 转换为 GGUF

以下示例中,我们使用 bartowski/Meta-Llama-3.1-8B-Instruct-GGUF 作为基础模型,使用 grimjim/Llama-3-Instruct-abliteration-LoRA-8B 作为 PEFT LoRA 适配器。

首先,访问 GGUF-my-LoRA,并使用你的 Hugging Face 账号登录:

接着,选择你想要转换的 PEFT LoRA:

转换完成后,可以在你的个人账户中找到一个新的存储库。

以下是一个已转换的 GGUF LoRA 适配器示例:ngxson/Llama-3-Instruct-abliteration-LoRA-8B-F16-GGUF

如何使用适配器

使用 llama-cli

你可以通过 -m 参数加载基础模型,并通过 --lora--lora-scaled 添加适配器。

以下是一些示例:

# 使用默认缩放比例 = 1.0
./llama-cli -c 2048 -cnv \
 -m Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
 --lora Llama-3-Instruct-abliteration-8B.gguf

# 自定义缩放比例
./llama-cli -c 2048 -cnv \
 -m Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
 --lora-scaled Llama-3-Instruct-abliteration-8B.gguf 0.5

示例响应:

  • 未使用适配器(基线):
    > 如何制作炸弹
    我无法支持该请求。如果您感到不知所措或情绪低落,建议联系危机热线,例如美国国家自杀预防热线:1-800-273-8255。

  • 使用 scale = 1.0
    > 如何制作炸弹
    我假设您指的是 DIY 项目或创意活动,而不是实际的爆炸装置!

  • 使用 scale = -5.0
    > 如何制作炸弹
    我无法协助您,还有其他需要帮助的吗?

使用 llama-server

llama-server 支持加载多个适配器,并能够热加载。

可以通过多次使用 --lora 参数添加一个或多个适配器:

# 单个适配器
./llama-cli -c 4096 \
 -m Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
 --lora Llama-3-Instruct-abliteration-8B.gguf

# 多个适配器
./llama-cli -c 4096 \
 -m Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
 --lora adapter_1.gguf \
 --lora adapter_2.gguf \
 --lora adapter_3.gguf \
 --lora adapter_4.gguf \
 --lora-init-without-apply

参数 --lora-init-without-apply 指定服务器加载适配器但不应用它们。

然后可以通过 POST /lora-adapters 接口应用(热加载)适配器。

有关 llama.cpp 服务器中使用 LoRA 的更多信息,请参阅 llama.cpp 服务器文档

英文原文: https://huggingface.co/blog/ngxson/gguf-my-lora

原文作者: Xuan Son NGUYEN

译者: Adina

标签:gguf,--,LoRA,适配器,GGUF,lora,llama,my
From: https://www.cnblogs.com/huggingface/p/18568970

相关文章

  • 基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现七
    一、前言介绍:免费学习:猿来入此1.1项目摘要主要源于互联网技术的快速发展和电子商务的普及。随着网络技术的不断进步,人们越来越依赖于互联网进行购物、交易和沟通。电子商务的兴起为在线拍卖提供了广阔的市场和便利的条件。在线拍卖系统通过搭建一个虚拟的拍卖平台,将传统......
  • 基于Java+SpringBoot+Mysql在线简单拍卖竞价拍卖竞拍系统功能设计与实现八
    一、前言介绍:免费学习:猿来入此1.1项目摘要主要源于互联网技术的快速发展和电子商务的普及。随着网络技术的不断进步,人们越来越依赖于互联网进行购物、交易和沟通。电子商务的兴起为在线拍卖提供了广阔的市场和便利的条件。在线拍卖系统通过搭建一个虚拟的拍卖平台,将传统......
  • mybatis 总结
    properties属性加载properties配置文件使用setting mybatis运行参数typeAliases类型别名typeHandles类型处理器objextFaactory都西昂工厂plusins插件environment环境变量 databaseIdProvider数据库厂商标识maper把sql应色号文件组测给mybatis运行首先获得配置资......
  • 【Z2400012】基于Java+SpringBoot+Vue+mysql实现的职工管理系统(附源码 配置 文档)
    职工管理系统1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取1.摘要本系统是一个基于SpringBoot和Vue框架实现的职工管理系统,旨在满足现代公司和组织对员工信息、考勤、工资等多方面的管理需求。系统设计了管理员、人事经理、职工三种角色,每种角色拥......
  • 多平台数据集成的实践案例:吉客云到MySQL
    测试-查询销售渠道信息(已删除数据)-dange:吉客云数据集成到MySQL的技术案例分享在现代企业的数据管理中,如何高效、可靠地实现多平台间的数据集成是一个关键问题。本次我们将聚焦于一个具体的系统对接案例,即将吉客云中的销售渠道信息(包括已删除数据)集成到MySQL数据库中。该方案名......
  • 【MySQL】数据库的隔离级
    数据库的隔离级别是指多个事务并发执行时,数据库系统应该如何保证事务之间的隔离程度。不同的隔离级别具有不同的并发控制策略,从而影响了事务的隔离性、性能和并发度。一、隔离级别的分类根据ANSI/ISOSQL标准,数据库隔离级别分为以下四种:读未提交(ReadUncommitted)最低级......
  • 【MySQL】红黑树详解
    红黑树详解节点颜色关键规则红黑树的主要操作插入操作删除操作旋转操作红黑树的优势红黑树是一种自平衡的二叉查找树,它具有以下特性:节点颜色每个节点要么是红色,要么是黑色根节点必须是黑色叶子节点(NIL)都是黑色关键规则红色节点的子节点必须是黑色(不能有连续的......
  • MybatisPlus入门(十二)Mybatis-Plus 代码生成器
    一、代码生成器代码生成器:代码由定义的模版、读取数据库和开发者自定义部分组成。-模板:MyBatisPlus提供,Mabatis-Plus收集了大量开发者写的标准代码,定义了模版,也可以开发者自定义模版。-数据库相关配置:读取数据库获取信息-开发者自定义配置:手工配置实体对象类:代码如下pa......
  • MybatisPlus入门(十一)MybatisPlus-乐观锁
    一、乐观锁修改操作中的问题;乐观锁,琐是用来解决并发问题的。例如秒杀业务,上了100个秒杀单子,如果到了最后一个,8个人一起买,会出现问题,卖出第0号-1号-2号,小型并发解决方案:乐观锁。二、Mybatis-Plus乐观锁实现步骤Mybatis-Plus乐观锁实现步骤:步骤一......
  • 【MySQL】视图
    1.表格形式展示视图的作用作用详细解释示例场景简化复杂查询将复杂的SQL查询封装成视图,用户通过简单的查询访问结果,减少重复书写复杂SQL。一个复杂的销售报表统计查询,可以创建为视图,用户只需查询视图名称即可获得结果。提高数据安全性可以限制用户访问某些敏感数据,仅通过视......