基于mindspore的大模型llama2-7b---微调/推理

环境信息:
1.mindformers指导链接:
https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/llama2.md#%E6%A8%A1%E5%9E%8B%E6%9D%83%E9%87%8D%E4%B8%8B%E8%BD%BD%E4%B8%8E%E8%BD%AC%E6%8D%A2

2.镜像:mindformers0.8.0_ms2.2.0-cann7.0rc1_py_3.9:dog
代码:mindformers-dev 代码
权重转换过程中:需要安装pytorch, 原始的中文权重需要下载到存放的目录。[lfx-obs]
英文权重:obs://lfx/weights/llama2_7b_english/
中文权重:obs://lfx/weights/llama2-Chines-7b-Chat

  1. 转换脚本:
    python mindformers/models/llama/convert_weight.py
    –torch_ckpt_dir /home/ma-user/work/llama2_pytorch_weight
    –mindspore_ckpt_path /home/ma-user/work/llama2-hy.ckpt

4.推理脚本:单卡
要保证MA有网,可以直接执行推理,若没有,则需要在当前目录下创建checkpoint_download文件夹,切里面包含llama/llama-7b.yaml的配置文件
python run_mindformer.py --config configs/llama2/run_llama2_7b.yaml --load_checkpoint /home/ma-user/work/mindformers-dev/llama2-hy.ckpt --run_mode predict --predict_data ‘我爱北京, 因为’ --use_parallel False

python run_mindformer.py --config configs/llama2/run_llama2_7b.yaml --run_mode predict --predict_data ‘i love beijing ,because’ --use_parallel False

4.预训练脚本:
数据集转换:
# 使用tools/dataset_preprocess/llama/llama_preprocess.py进行数据预处理+Mindrecord数据生成

python llama_preprocess.py
–dataset_type wiki
-input_glob /home/ma-user/work/mindformers-dev/dataset/wikitext-2/wiki.train.tokens
-model_file /home/ma-user/work/mindformers-dev/dataset/wikitext-2/tokenizer.model
-seq_length 4096
-output_file /home/ma-user/work/mindformers-dev/dataset/mindrecord/wiki4096.mindrecord

5.lora微调脚本:

脚本路径:tools/dataset_preprocess/llama/alpaca_converter.py

执行转换脚本

python alpaca_converter.py
–data_path /home/ma-user/work/weitiao_dataset/alpaca_data.json
–output_path /home/ma-user/work/weitiao_dataset/alpaca-data-conversation.json

pip install fschat
python llama_preprocess.py
–dataset_type qa
–input_glob /home/ma-user/work/weitiao_dataset/alpaca-data-conversation.json
–model_file /home/ma-user/work/mindformers-dev/dataset/wikitext-2/tokenizer.model
–seq_length 2048
–output_file /home/ma-user/work/mindformers-dev/dataset/wikitext-2/alpaca-fastchat2048.mindrecord

中文权重文件:/home/ma-user/work/llama2-hy.ckpt
configs/llama2/run_llama2_7b_lora_910b.yaml 修改dataset_dir:

以llama2-7b为例

load_checkpoint: /home/ma-user/work/llama2-hy.ckpt
auto_trans_ckpt: False
use_parallel参数置为False

启动微调:
cd scripts

单卡启动

bash run_standalone.sh …/configs/llama2/run_llama2_7b_lora_910b.yaml [DEVICE_ID] finetune
./run_standalone.sh …/configs/llama2/run_llama2_7b_lora_910b.yaml 0 finetune > lora.txt 2>&1 &

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钉钉统计部门个人请假次数go

前言 最近小组需要统计部门各种请假次数,写了一个方法,第一次实战中用到递归函数,简单记录一下。 效果展示 这些数据不需要返回json,这里这样是为了方便测试。可以通过这些数据完成其它的操作。 功能实现 钉钉服务端调试工具A…

短剧公众号系统:连接创作者与观众的桥梁

随着数字媒体的迅速发展,短剧公众号系统作为一种新型的内容传播方式,逐渐在社交媒体平台上崭露头角。它通过将创作者与观众紧密连接,为双方提供了丰富的内容与互动体验。本文将探讨短剧公众号系统的价值,以及如何通过这种系统连接…

Java主流分布式解决方案多场景设计与实战

Java的主流分布式解决方案的设计和实战涉及到多个场景,包括但不限于以下几点: 分布式缓存:在Java的分布式系统中,缓存是非常重要的一部分。常用的分布式缓存技术包括Redis、EhCache等。这些缓存技术可以用来提高系统的性能和响应…

多个Obj模型合并

MergeObj(合并Obj模型) 1 概述 由于项目原因,需要下载谷歌地图上的模型,关于谷歌模型下载的,见我的CSDN博客. 由于下载谷歌地图上的数据,会分多个模块下载。下载完成后,怎么合并,在…

【数据结构初阶】链表OJ

链表OJ 题目一:移除链表元素题目二:反转链表题目三:链表的中间节点题目四:链表中倒数第k个结点题目五:合并两个有序链表题目六:链表分割题目七:链表的回文结构题目八:相交链表题目九…

B2B企业如何打造独立站:从策略到实施的全面指南

随着数字化转型的加速,B2B企业越来越认识到独立站的重要性。然而,如何建设一个优秀的独立站,以及如何将独立站与企业的整体战略相结合,是许多企业面临的挑战。本文将详细探讨B2B企业如何从策略到实施打造一个成功的独立站。 一、…

Pytorch自动混合精度的计算:torch.cuda.amp.autocast

1 autocast介绍 1.1 什么是AMP? 默认情况下,大多数深度学习框架都采用32位浮点算法进行训练。2017年,NVIDIA研究了一种用于混合精度训练的方法,该方法在训练网络时将单精度(FP32)与半精度(FP16)结合在一起&#xff…

2656. K 个元素的最大和 --力扣 --JAVA

题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中选择一个元素 m 。 将选中的元素 m 从数组中删除。 将新元素 m 1 添加到数组中。 你的得分增加 m 。 请你返回执行以上操作恰好 k …

【外贸干货】收到只有一句话的询盘该怎么回复?

外贸业务员收到询盘无疑是开心的事情,但收到的询盘多了,才知道“套路”也更深了。今天,我们将通过几个实际的询盘案例,来重点说一说当遇到一些简单笼统的询盘,甚至是只有一句话的询盘时,应该怎么办&#xf…

共享台球室小程序系统的数据统计与分析功能

随着共享经济的繁荣发展,共享台球室作为一种新型的娱乐方式,越来越受到年轻人的喜爱。为了更好地满足用户需求和提高管理效率,我们设计了一款基于微信小程序的共享台球室预订与管理系统。该系统不仅具备基本的预订和管理功能,还集…

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr

Alter database open fails with ORA-00600 kcratr_nab_less_than_odr (Doc ID 1296264.1)​编辑To Bottom APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.1 [Release 11.2] Oracle Database - Enterprise Edition - Version 12.1.0.1 to …

2023NOIP A层联测32 红楼 ~ Eastern Dream

题目大意 给定一个长度为 n n n的序列 a a a,有 m m m次操作,每次操作有两种类型: 1 x y k,对于所有满足 ( i − 1 ) m o d x ≤ y (i-1)\bmod x\leq y (i−1)modx≤y的 i i i,将 a i a_i ai​的值加上 k k k2 l r&a…

servlet 的XML Schema从哪边获取

servlet 6.0的规范定义: https://jakarta.ee/specifications/servlet/6.0/ 其中包含的三个XML Schema:web-app_6_0.xsd、web-common_6_0.xsd、web-fragment_6_0.xsd。但这个页面没有给出下载的链接地址。 正好我本机有Tomcat 10.1.15版本的源码&#…

vue3 中的ref、reactive的介绍

reactive: 当使用reactive()处理数据后,数据再次被使用时,就会进行依赖收集 当数据发生改变时,所有收集到的依赖进行对应的响应式操作(如:更新界面), 事实上,我们编写的d…

深入解析JavaScript中的变量作用域与声明提升

JS中的变量作用域 背景: ​ 之前做js逆向的时候,有一个网站很有意思,就是先出现对其赋值,但是后来的变量赋值没有对其发生修改,决定说一下js中的作用域问题. 全局作用域: ​ 全局作用域的变量可以在任何…

PDF自动打印

​ 最近接到用户提过来的需求,需要一个能够自动打印图纸的功能,经过几天的研究整出来个初版了的,分享出来给大家,希望能有帮助。 需求描述: ​ 生产车间现场每天都有大量的图纸需要打印,一个一个打印太慢了&#xff0…

什么是3D建模中的“高模”和“低模”?

3D建模中什么是高多边形和低多边形? 高多边形建模和低多边形建模之间的主要区别正如其名称所暗示的那样:您是否在模型中使用大量多边形或少量多边形。 然而,在决定每个模型的细节和多边形级别时,还需要考虑其他事项。最值得注意的…

一文解码语言模型:语言模型的原理、实战与评估

在本文中,我们深入探讨了语言模型的内部工作机制,从基础模型到大规模的变种,并分析了各种评价指标的优缺点。文章通过代码示例、算法细节和最新研究,提供了一份全面而深入的视角,旨在帮助读者更准确地理解和评估语言模…

NI USRP软件无线设备的特点

NI USRP软件无线设备 NI的USRP(Universal Software Radio Peripheral)设备是RF应用中使用的软件无线(SDR)。NI的USRP收发器可以在多个频段发送和接收RF信号,因此可用于通信工程教育和研究。通过与LabVIEW开发环境相结合,USRP可以实现使用无线信号验证无…

接口开放太麻烦?试试阿里云API网关吧

前言 我在多方合作时,系统间的交互是怎么做的?这篇文章中写过一些多方合作时接口的调用规则和例子,然而,接口开放所涉及的安全、权限、监控、流量控制等问题,可不是简简单单就可以解决的,这一般需要专业的…