关于LORA的项目

本文介绍使用STM32实现LoRa自组网并采用AES加密技术确保数据安全传输的过程。主要内容包括:设置网络编号使多个LoRa模块同步工作,通过AT指令进行数据发送和接收,以及利用AES对称加密算法完成数据加密和解密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stm32学了一段时间,用lora做了一个项目。

要求:lora数据加密传输,lora自组网

1.lora自组网

在上位机上将三个Lora的网络编号设置相同。A为主,BC为从机。A为AT模式,BC为透传模式(都是低功耗)

2.采用aes对称加密:解密和加密都是相同的密匙。

 (1) 将数据发送到串口(lora与串口相连接)。主机lora采用AT指令发送数据给从机,将固定部分数据删除(+RCV:2,),解密数据。

 (2)主机给从机发送数据AT指令发送(AT+TXA=N,数据),从机接收后将数据拷贝解密。

3.将固定数据删除(代码)

 for (;str_in[i] != '\0';i++)  
    {  
           start = i;      /* 这里记录i */  
           j = 0;          /* 每次开始比较的时候,子串都从0开始,如果第一个字符相等, 
                          那么就接着比较下一个字符,否则进入下一轮循环 */  
         
       while ((str_in[i] != '\0')&&(str_sub[j] != '\0')&&(str_in[i] == str_sub[j]))  
       {  
           i++; 
           j++;  
       }  
  
       if (str_sub[j] != '\0')                /* 如果不是子串 */  
       {  
           str_out[k++] = str_in[start];     /* 将当前比较的这个字符存入结果 */  
       }  
       else                         /* 如果是子串 */  
       {  
           count++;                  
           i--;           /* 因为返回for循环之后,进行下一次循环的时候还要进行i++的运算的 */  

       }  








### LORA 项目介绍与开发教程 LORA(Low-Rank Adaptation)是一种高效的参数高效微调方法,广泛应用于大型预训练模型的定制化调整。以下是关于 LORA 的详细介绍以及相关开发教程: #### 什么是 LORALORA 是一种通过低秩分解来实现参数高效微调的技术[^1]。其核心思想是在不改变原模型权重的情况下,在每一层引入两个可学习的小矩阵 \( U \) 和 \( V \),使得它们相乘后的结果作为原始权重的一个增量更新项。这种方法显著减少了需要优化的参数数量。 #### LORA 的优势 - **减少计算资源消耗**:相比全量微调,LORA 只需优化少量新增参数,大幅降低了显存占用和计算成本。 - **保持模型性能**:尽管只调整部分参数,实验表明 LORA 能够达到接近甚至优于全量微调的效果[^2]。 - **易于部署**:由于仅涉及少量额外参数,经过 LORA 微调的模型更容易存储和分发。 #### 使用 DeepSpeed 进行多卡 LORA 微调 对于希望利用 GPU 集群加速训练过程的研究者来说,DeepSpeed 提供了一个强大的框架支持分布式训练。具体流程如下: ```bash # 启动容器并加载环境变量 docker run --gpus all -it deepspeed-container bash # 修改脚本路径以适配多GPU场景 cd fine-tuning-by-Lora && nano finetune/finetune_lora_multi_gpu.sh # 执行多卡微调命令 deepspeed --num_gpus=4 finetune/finetune_lora_multi_gpu.sh ``` 上述代码片段展示了如何基于 Docker 容器配合 DeepSpeed 工具完成跨多个 GPU 设备上的联合训练操作。 #### 单机单卡环境下运行 LORA 微调 如果硬件条件有限,则可以选择在单一设备上开展工作。例如针对 Macbook M1 用户群体提供了一份详尽指南说明了整个安装配置直至最终成果展示全过程[^3]: ```python from peft import get_peft_model, LoraConfig, TaskType model_name_or_path = "bigscience/bloom-7b1" tokenizer_name_or_path = model_name_or_path peft_config = LoraConfig( task_type=TaskType.CAUSAL_LM, inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1 ) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) model = get_peft_model(model, peft_config) print(model.print_trainable_parameters()) ``` 此段 Python 示例演示了怎样定义一个适用于因果语言建模任务类型的 LoRA 结构实例对象 `peft_config` 并将其应用至目标 Transformer 架构之上从而获得具备自适应能力的新版本神经网络实体 `model`. #### 推荐的学习方式 为了更直观快速掌握该技术原理及其实际应用场景组合搭配情况建议观看配套教学录像资料。这种方式能够帮助初学者更快理解抽象概念并通过动手实操巩固记忆点形成系统化的认知体系结构。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值