Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adaption for moe models #2101

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open

adaption for moe models #2101

wants to merge 23 commits into from

Commits on Sep 26, 2024

  1. adaption for moe models

    donghaoran committed Sep 26, 2024
    Configuration menu
    Copy the full SHA
    b75c001 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2024

  1. FIX: Change check if past_key_values is empty (huggingface#2106)

    After transformers merged this PR:
    
    huggingface/transformers#33703
    
    The bool of past_key_values (a Cache instance) would change from False
    to True in one of our checks. Use get_seq_length() method instead, which
    is consistent before and after that commit.
    
    I checked the tests with the new change for both transformers before and
    after that commit and they passed, so this change should be backwards
    compatible.
    
    Unrelated change: Mark X-LoRA scaling test as xfail-ing for now.
    
    This should be addressed in a separate PR. Marking it to xfail for now
    to get the original fix through CI.
    BenjaminBossan authored Sep 27, 2024
    Configuration menu
    Copy the full SHA
    c29810b View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2024

  1. Configuration menu
    Copy the full SHA
    aa3bd8f View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2024

  1. FIX Refactor OFT, small changes to BOFT (huggingface#1996)

    The previous OFT implementation contained a few errors, which are fixed now.
    
    Unfortunately, this makes previous OFT checkpoints invalid, which is why an
    error will be raised. Users are instructed to either retrain the OFT adapter or
    switch to an old PEFT version.
    Zeju1997 authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    2a80735 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2024

  1. ENH: Improved attribute access for modules_to_save (huggingface#2117)

    Resolves huggingface#2099
    
    So far, if a module was wrapped due to modules_to_save, we handled
    access to the weight and bias attribute (albeit incorrectly in case of
    disabled adapters!). However, there could be more attributes than those
    that could be accessed, in which case we got an error so far.
    
    Instead of special properties, we now implement a generic __getattr__
    method that can deal with any attribute. The implementation is a bit
    complex to take into account the way that torch.nn.Module handles
    __getattr__.
    BenjaminBossan authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    ae297f0 View commit details
    Browse the repository at this point in the history
  2. FIX low_cpu_mem_usage consolidates devices (huggingface#2113)

    See: huggingface/diffusers#9510 (comment)
    
    Right now, the low_cpu_mem_usage=True option does not consolidate the
    devices. E.g. when the model is on GPU and the state_dict on CPU, the
    adapter weight will be on CPU after loading, when it should be GPU. This
    fix ensures that the devices are consolidated.
    BenjaminBossan authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    ca8462b View commit details
    Browse the repository at this point in the history
  3. TST Mark flaky X-LoRA test as xfail (huggingface#2114)

    Currently, CI is failing constantly because one of the X-LoRA tests has
    become flaky lately, most likely caused by the transformers 4.45.0
    release. Therefore, this test is now marked to non-strictly xfail.
    
    I cannot reproduce this error locally, neither on CPU nor GPU. It is
    thus unclear how to fix this test.
    BenjaminBossan authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    534d361 View commit details
    Browse the repository at this point in the history
  4. ENH: Warn when from_pretrained misses PEFT keys (huggingface#2118)

    After merging huggingface#2084, we now clean up the missing_keys when loading a
    PEFT adapter to remove all but the relevant keys (the fact that base
    model keys are missing is expected when loading a PEFT adapter).
    
    Since the presence of missing_keys now really means that something might
    have gone wrong during loading, we can now warn the user if they call
    PeftModel.from_pretrained.
    
    Note that load_adapter still does not warn, as here we return the
    load_result and users can already check, but for from_pretrained, they
    don't have that possibility.
    BenjaminBossan authored Oct 2, 2024
    Configuration menu
    Copy the full SHA
    d9d3059 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2024

  1. FEAT: Adding exclude modules param(huggingface#2044) (huggingface#2102)

    Allows to exclude target modules.
    JINO-ROHIT authored Oct 3, 2024
    Configuration menu
    Copy the full SHA
    8d9ecbe View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2024

  1. Configuration menu
    Copy the full SHA
    e6f927b View commit details
    Browse the repository at this point in the history
  2. FEAT: VeRA quantization using bitsandbytes (huggingface#2070) (huggin…

    …gface#2076)
    
    VeRA can now be used with 4bit and 8bit bnb quantization.
    ZiadHelal authored Oct 7, 2024
    Configuration menu
    Copy the full SHA
    859fd88 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2024

  1. Configuration menu
    Copy the full SHA
    5e91b54 View commit details
    Browse the repository at this point in the history
  2. FEAT: Support torchao (huggingface#2062)

    Supports torch AO quantization. Currently supported:
    
    - int8_weight_only
    - int8_dynamic_activation_int8_weight
    
    ---------
    
    Co-authored-by: Marc Sun <[email protected]>
    BenjaminBossan and SunMarc authored Oct 8, 2024
    Configuration menu
    Copy the full SHA
    9918977 View commit details
    Browse the repository at this point in the history
  3. FIX: PiSSA now works with Conv1D layers (huggingface#2103) (huggingfa…

    …ce#2104)
    
    Transpose weight matrix based on fan_in_fan_out condition in PiSSA
    initialization.
    
    Co-authored-by: Yang Su <[email protected]>
    suyang160 and Yang Su authored Oct 8, 2024
    Configuration menu
    Copy the full SHA
    a724834 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. FIX Type annoations in vera/bnb.py (huggingface#2139)

    The file was missing the from __future__ import annotations part. As
    this code is only running nightly with GPU, the normal CI missed this
    omission.
    BenjaminBossan authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    3b314cc View commit details
    Browse the repository at this point in the history
  2. ENH Make PEFT configs forward compatible (huggingface#2038)

    Right now, loading a PEFT config saved with a more recent PEFT version
    than is currently installed will lead to errors when new arguments are
    added to the config in the newer PEFT version. The current workaround is
    for users to manually edit the adapter_config.json to remove those
    entries.
    
    With this PR, PEFT will make an attempt at removing these unknown keys
    by inspecting the signature. The user will be warned about these removed
    keys. This should generally be a safe measure because we will generally
    not introduce new config settings that change the default behavior.
    However, if a non-default is used, this could lead to wrong results.
    This is mentioned in the warning.
    
    While working on the tests, I also converted the unittest.TestCase to a
    normal pytest test in order to be able to use pytest fixtures.
    
    I also plan on adding the PEFT version to the adapter_config.json in the
    future. This will allow us to better handle compatibility issues in the
    future. As adding that new key to all PEFT configs could cause a lot of
    disruption, I want to get this PR in first to ensure forward
    compatibility.
    
    Note that this new mechanism will not help anyone using a PEFT version
    < 0.14.0, so this will be a slow transition.
    BenjaminBossan authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    85e3202 View commit details
    Browse the repository at this point in the history
  3. FIX Raise mixed adapter infer with missing adapter (huggingface#2090)

    PEFT allows mixed batch adapter inference, i.e. when predicting, the
    same batch can use different adapters by passing the adapter_names
    argument. However, when users pass an adapter name that does not
    correspond to any of the existing adapters, these samples are currently
    being ignored (i.e. just the base model output is used). This is
    unexpected and can easily lead to errors, e.g. when users mistype the
    name of an adapter.
    
    This PR fixes this issue by checking all the existing adapter names
    first and comparing them to the adapter_names that the user passed. If
    there are unexpected entries, an error is raised.
    
    Due to this fix, an error in the test
    test_mixed_adapter_batches_lora_merged_raises was discovered and
    promptly fixed.
    BenjaminBossan authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    8efa0cb View commit details
    Browse the repository at this point in the history
  4. FIX Prompt learning with latest transformers error (huggingface#2140)

    The error in PEFT is occurring after this transformers change:
    
    huggingface/transformers#33870
    
    Now, in our tests, some model_kwargs no longer necessarily contain
    past_key_values, resulting in a KeyError. We now account for this
    possibility. Affected models were opt and gpt2.
    BenjaminBossan authored Oct 9, 2024
    Configuration menu
    Copy the full SHA
    1eab9bd View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. Configuration menu
    Copy the full SHA
    5758a7e View commit details
    Browse the repository at this point in the history
  2. FIX TST NaN issue with HQQ GPU test (huggingface#2143)

    This test calculates the correlation coefficient of HQQ model outputs.
    Although the model outputs are finite, the resulting matrix contains
    NaNs. Casting the outputs from 16 to 32 bit precision resolves the
    issue.
    BenjaminBossan authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    0aa7e3a View commit details
    Browse the repository at this point in the history
  3. FIX Bug in target module optimization if suffix (huggingface#2144)

    Solves the following bug:
    
    huggingface/diffusers#9622 (comment)
    
    The cause for the bug is as follows: When we have, say, a module called
    "bar.0.query" that we want to target and another module called
    "foo_bar.0.query" that we don't want to target, there was potential for
    an error. This is not caused by _find_minimal_target_modules directly,
    but rather the bug was inside of BaseTuner.inject_adapter and how the
    names_no_target were chosen. Those used to be chosen based on suffix. In
    our example, however, "bar.0.query" is a suffix of "foo_bar.0.query",
    therefore "foo_bar.0.query" was *not* added to names_no_target when it
    should have. As a consequence, during the optimization, it looks like
    "query" is safe to use as target_modules because we don't see that it
    wrongly matches "foo_bar.0.query".
    BenjaminBossan authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    c925d0a View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2024

  1. Bump version to 0.13.2.dev0 (huggingface#2145)

    After the patch release of PEFT v0.13.2, let's bump the dev version of
    PEFT to v0.13.3.dev0 so that it stays ahead (the bugfix from the patch
    release is already contained in the main branch).
    BenjaminBossan authored Oct 11, 2024
    Configuration menu
    Copy the full SHA
    749b924 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2024

  1. Merge branch 'dhr_moe'

    donghaoran committed Oct 12, 2024
    Configuration menu
    Copy the full SHA
    669ce90 View commit details
    Browse the repository at this point in the history