Qwen 微调LoRA之后合并模型,使用 webui 测试

2024-06-02 01:36

本文主要是介绍Qwen 微调LoRA之后合并模型,使用 webui 测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qwen 微调LoRA之后合并模型

qwen_lora_merge.py :

import os
from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizerdef save_model_and_tokenizer(path_to_adapter, new_model_directory):"""加载模型,合并模型,然后保存模型。加载分词器并保存。"""# 检查路径有效性if not os.path.exists(path_to_adapter):raise FileNotFoundError(f"路径 {path_to_adapter} 不存在。")if not os.path.exists(new_model_directory):os.makedirs(new_model_directory, exist_ok=True)try:# 模型加载与合并model = AutoPeftModelForCausalLM.from_pretrained(path_to_adapter,device_map="auto",trust_remote_code=True).eval()merged_model = model.merge_and_unload()# 保存合并后的模型merged_model.save_pretrained(new_model_directory, max_shard_size="2048MB", safe_serialization=True)# 加载并保存分词器tokenizer = AutoTokenizer.from_pretrained(path_to_adapter,trust_remote_code=True)# 假设我们有一个函数来保存分词器,这里只是示意save_tokenizer(tokenizer, new_model_directory)except Exception as e:# 异常处理,记录或抛出异常print(f"加载或保存过程中遇到错误:{e}")raisedef save_tokenizer(tokenizer, directory):"""保存分词器到指定目录。"""# 假设这里有一个路径拼接逻辑,将分词器文件保存到指定目录tokenizer.save_pretrained(directory)if __name__=="__main__":lora_model_path="/media//huggingface_cache/out_models/qwen1_8b_chat_lora/checkpoint-1200"new_model_directory = "/media/huggingface_cache/out_models/qwen1_8b_chat_lora/Qwen-1_8B-Chat_law_merge"# 使用函数来执行任务save_model_and_tokenizer(lora_model_path, new_model_directory)

使用 webui 测试

web_ui.py


import torchprint(torch.cuda.is_available())
print(torch.version.cuda)
print(torch.backends.cudnn.version())import gradio as grfrom transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfigMODEL_PATH="/media/huggingface_cache/out_models/qwen1_8b_chat_lora/Qwen-1_8B-Chat_law_merge"tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH,trust_remote_code=True
)model = AutoModelForCausalLM.from_pretrained(MODEL_PATH,device_map="auto",trust_remote_code=True
).eval()# Define Gradio interface components
title = "Transformer Chatbot"
description = "Enter your message and receive a response from the transformer-based language model."def generate_answer_ui(query, history):response, history = model.chat(tokenizer, "你好", history=history)return f"> 问题:\n{query}\n\n> 回答:\n{response}\n\n>"def main():iface = gr.ChatInterface(fn=generate_answer_ui,title=title,description=description,examples=[["这里可以使用你微调的数据代替"],["你叫什么名字?"],],)iface.launch(inbrowser=True)if __name__ == '__main__':main()

这篇关于Qwen 微调LoRA之后合并模型,使用 webui 测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022669

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

C#中,decimal类型使用

在Microsoft SQL Server中numeric类型,在C#中使用的时候,需要用decimal类型与其对应,不能使用int等类型。 SQL:numeric C#:decimal