Giter VIP home page Giter VIP logo

o-lora's People

Contributors

beyonderxx avatar cmnfriend avatar waltersumbon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

o-lora's Issues

代码运行时在loss那里报错

屏幕截图 2024-05-01 193748
而且do_grad_scaling这个我看在脚本中也没有。(上面的运行情况 是我手动设为True之后的情况)
请问do_grad_scaling和scaler是在哪里定义了呢?

关于长序列任务上的讨论

感谢作者优秀的工作!想请教一下关于O-LoRA在更challenging的长序列任务上(large number of tasks)性能表现与PerTaskFT和MTL有差距的原因可能有哪些?期待您的回复!

ModuleNotFoundError: No module named 'datasets'

请问有人遇到过同样的问题吗?明明环境里有datasets这个包,但是一直报这个错误:
Traceback (most recent call last):
File "/home/user/ljl_new/O-LoRA/src/run_uie_lora.py", line 29, in
import datasets
ModuleNotFoundError: No module named 'datasets'
Traceback (most recent call last):
File "/home/user/ljl_new/O-LoRA/src/run_uie_lora.py", line 29, in
import datasets
ModuleNotFoundError: No module named 'datasets'

Loss在yahoo数据集上骤降为0

你好,我正在用scripts_llama/order_1.sh在llama-7b模型上训练,每次在yahoo数据集上训练时都会遇到loss直接降到0的情况(其他数据集上正常),能帮忙看看有什么问题吗?用的80G显存单卡A100,训练batch size为8,测试batch size为32,梯度累积步长为1.
ab4e457fac6cad203346a064a515ef6

关于数据集

请问一下CL_Benchmark里面是完整数据集吗,我在其他地方下载的数据集和里面的条目不太一样

关于数据集加载的报错

image

FileNotFoundError: [Errno 2] No such file or directory: 'G:/code/O-LoRA-main/O-LoRA-main/logs_and_outputs/order_1/outputs/1-dbpedia/29ec996b8e1ae5297860b8d946af1b38/uie_dataset_lora/default-d0dfd2a00d317be8/2.0.0/c490e7f13dec80785fc335819009163a45c86ae2816040c8d81800108e 7e4374/uie_dataset_lora-train-00000-00000-of-NNNNN.arrow'

raise DatasetGenerationError("An error occurred while generating the dataset") from e

datasets.builder.DatasetGenerationError: An error occurred while generating the dataset

请问下我在运行order_1.sh时在数据集加载出现文件No such file or directory,经检查后发现outputs下有默认创建的文件夹,但是没有自动生成uie_dataset_lora-train-00000-00000-of-NNNNN.arrow导致了报错,请问该如何解决,谢谢

关于code的疑惑

你好,非常感谢您杰出的工作。我在阅读您的code的时候有2点疑惑:

  1. 关于正则化那部分,您只是将本次的loranew_A与上一次的lora_A取了正则化,而您的paper里是让本次loranew_A与之前所有的lora_A取正则,我的理解是否有问题?
  2. 我是nlp新手,不是很了解您的paper给出的avg的指标是什么,或者说计算的损失函数是什么?
    谢谢。

实验结果复现

您好,请问一下,关于实验结果的复现,是直接执行给定的scripts里的文件吗,还是需要调整参数?

可能可以简化代码?

此处

orthogonal_loss = 0.

由于这边是跟没有梯度的lora(old)来计算正交,那直接在上一步把lora(old)save为pth是不是可以避免修改peft库了

import torch

# 假设 self.model 是你的模型
stacked_params = {}

for name, param in self.model.named_parameters():
    if "lora_" in name:
        stacked_params[name] = param.data.clone()  # 使用 clone() 复制参数并避免共享内存

# 保存堆叠的参数到文件
torch.save(stacked_params, "path/to/stacked_params.pth")

然后在trainer类里面加载

# 初始化一个字典来存储匹配的模块和对应的参数
matched_modules = {} #load pth

for name, param in self.model.named_parameters():
    if "lora_A" in name:
          # 匹配的模块名称和对应的参数
          param_ = matched_modules[name]

          orthogonal_loss += torch.abs(torch.mm(param, param_.T)).sum()  # [r * dim] * [dim * r]
          break  # target modules have been matched

大致这个意思

是不是就可以避免修改PEFT代码,方便很多?

关于LoRA部分修改的问题

您好,我想问下在加载PEFTModel之后lora_A的输出维度为什么是0,是在训练lora_new的时候没有让之前的lora输出特征吗,还想请问一下您都在peft的哪些文件上做了修改呢?

关于Lora秩的变化

感谢您的工作,非常的nice!但还是有几个问题想请教一下:

  1. 在save_and_load.py的Line 36处增加了当前Lora和previous Lora的合并,用的是concat的方式,如果说按照默认的rank=8来看,是不是concat方式会随着任务数量的增加,导致next task的rank增长?比如第二次loranew的rank就变为16了?
  2. 理论上看,用add的方式是不是也是等价的?

我还没成功run起代码来,hf被墙很烦,所以这些问题还暂时没有亲手验证,烦请作者帮忙解惑一下啦~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.