1. 16 Feb, 2024 1 commit
  2. 08 Feb, 2024 1 commit
  3. 15 Jan, 2024 1 commit
  4. 05 Jan, 2024 1 commit
  5. 08 Dec, 2023 1 commit
    • Tom Aarsen's avatar
      Generate: New `Cache` abstraction and Attention Sinks support (#26681) · 633215ba
      Tom Aarsen authored
      * Draft version of new KV Caching
      
      This should allow Attention Sinks (https://github.com/tomaarsen/attention_sinks)
      / StreamingLLM (https://arxiv.org/abs/2309.17453) to be easily implemented
      in a third-party or in transformers directly
      
      * Address numerous PR suggestions
      
      1. Move layer_idx from cache to ...Attention. Removes confusing set_layer_idx magic.
      2. Always convert past_key_values to Cache instance at the start of ...Attention, removes all other isinstance calls.
      3. Remove __bool__ and __getitem__ magic as they're confusing.
      4. past_key_values.update(key, value, idx) now returns key, value.
      5. Add use_legacy_cache flag, defaults to None, i.e. Falsey. This breaks generate for now, until 1) the cache is used is generate() or 2) use_legacy_cache is defaulted to True in generate() until we change it in another PR.
      6. Separate key_cache and value_cache.
      
      Some work is still needed to see if the SinkCache can conveniently be implemented with just one update method.
      
      * Implement the SinkCache through backward+forward rotations
      
      * Integrate (Sink)Cache with Llama FA2
      
      * Set use_legacy_cache=True as default, allows for test passes
      
      * Move from/to_legacy_cache to ...Model class
      
      * Undo unnecessary newline change
      
      * Remove copy utility from deprecated OpenLlama
      
      * Match import style
      
      * manual rebase with main
      
      * Cache class working with generate (#1)
      
      * Draft version of new KV Caching
      
      This should allow Attention Sinks (https://github.com/tomaarsen/attention_sinks)
      / StreamingLLM (https://arxiv.org/abs/2309.17453
      
      ) to be easily implemented
      in a third-party or in transformers directly
      
      * Address numerous PR suggestions
      
      1. Move layer_idx from cache to ...Attention. Removes confusing set_layer_idx magic.
      2. Always convert past_key_values to Cache instance at the start of ...Attention, removes all other isinstance calls.
      3. Remove __bool__ and __getitem__ magic as they're confusing.
      4. past_key_values.update(key, value, idx) now returns key, value.
      5. Add use_legacy_cache flag, defaults to None, i.e. Falsey. This breaks generate for now, until 1) the cache is used is generate() or 2) use_legacy_cache is defaulted to True in generate() until we change it in another PR.
      6. Separate key_cache and value_cache.
      
      Some work is still needed to see if the SinkCache can conveniently be implemented with just one update method.
      
      * Integrate (Sink)Cache with Llama FA2
      
      * Move from/to_legacy_cache to ...Model class
      
      * Undo unnecessary newline change
      
      * Match import style
      
      * working generate
      
      * Add tests; Simplify code; Apply changes to Mistral and Persimmon
      
      * fix rebase mess
      
      * a few more manual fixes
      
      * last manual fix
      
      * propagate changes to phi
      
      * upgrade test
      
      * add use_legacy_cache docstring; beef up tests
      
      * reintroduce unwanted deletes
      
      ---------
      Co-authored-by: default avatarTom Aarsen <Cubiegamedev@gmail.com>
      
      * move import
      
      * add default to model_kwargs.get('use_legacy_cache')
      
      * correct failing test
      
      * Apply suggestions from code review
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * apply PR suggestions
      
      * fix failing test
      
      * Apply suggestions from code review
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      Co-authored-by: default avatarTom Aarsen <37621491+tomaarsen@users.noreply.github.com>
      
      * PR comments
      
      * tmp commit
      
      * add docstrings
      
      * more tests, more docstrings, add to docs
      
      * derp
      
      * tmp commit
      
      * tmp dbg
      
      * more dbg
      
      * fix beam search bug
      
      * cache can be a list of tuples in some models
      
      * fix group beam search
      
      * all but sinkcache integration tests
      
      * fix sink cache and add hard integration test
      
      * now also compatible with input_embeds input
      
      * PR comments
      
      * add Cache support to Phi+FA2
      
      * make fixup
      
      ---------
      Co-authored-by: default avatarJoao Gante <joao@huggingface.co>
      Co-authored-by: default avatarJoao Gante <joaofranciscocardosogante@gmail.com>
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      633215ba
  6. 25 Aug, 2023 1 commit
  7. 21 Jun, 2023 1 commit
  8. 20 Jun, 2023 1 commit
  9. 03 Apr, 2023 1 commit
  10. 30 Mar, 2023 1 commit
  11. 03 Jan, 2023 1 commit
    • Konstantin Kotik's avatar
      `MinNewTokensLengthLogitsProcessor` for `.generate` method #20814 (#20892) · 367fdf33
      Konstantin Kotik authored
      
      
      * feat: add min new length logit processor
      
      * test: add min new length logit processor
      
      * docs: add MinNewTokensLengthLogitsProcessor
      
      * feat: import MinNewTokensLengthLogitsProcessor
      
      * fix: update pytorch dummy objects
      
      * refactor & fix: rename attributes and var and get rid of dynamic attribute
      
      * tests: align test with new interface
      
      * docs: fix typo
      
      * docs: minor clarification
      
      * Empty-Commit
      
      * empty commit
      
      * run automated quality edits
      Co-authored-by: default avatarJoao Gante <joao@huggingface.co>
      367fdf33
  12. 09 Nov, 2022 1 commit
  13. 19 Oct, 2022 1 commit
    • GMFTBY's avatar
      Adding the state-of-the-art contrastive search decoding methods for the... · 71786b10
      GMFTBY authored
      Adding the state-of-the-art contrastive search decoding methods for the codebase of generation_utils.py (#19477)
      
      * add: the contrastive search for generaton_utils
      
      * add: testing scripts for contrastive search under examples/text-generation
      
      * update the quality of codes
      
      * revise the docstring; make the generation_contrastive_search.py scripts;
      
      * revise the examples/pytorch/text-generation/run_generation_contrastive_search.py to the auto-APIs format
      
      * revise the necessary documents
      
      * fix: revise the docstring of generation_contrastive_search.py
      
      * Fix the code indentation
      
      * fix: revise the nits and examples in contrastive_search docstring.
      
      * fix the copyright
      
      * delete generation_contrastive_search.py
      
      * revise the logic in contrastive_search
      
      * update the intergration test and the docstring
      
      * run the tests over
      
      * add the slow decorate to the contrastive_search intergrate test
      
      * add more test
      
      * do the style, quality, consistency checks
      71786b10
  14. 03 Jun, 2022 1 commit
    • Robert Dargavel Smith's avatar
      Allow from transformers import TypicalLogitsWarper (#17477) · 5c17918f
      Robert Dargavel Smith authored
      * Allow from transformers import TypicalLogitsWarper
      
      * Added TypicalLogitsWarper
      
      * Allow from transformers import TypicalLogitsWarper
      
      * Allow from transformers import TypicalLogitsWarper
      
      * Allow from transformers import TypicalLogitsWarper
      
      * Allow from transformers import TypicalLogitsWarper
      
      Added TypicalLogitsWarper
      
      Allow from transformers import TypicalLogitsWarper
      
      Allow from transformers import TypicalLogitsWarper
      
      Allow from transformers import TypicalLogitsWarper
      5c17918f
  15. 06 Apr, 2022 1 commit
  16. 04 Apr, 2022 1 commit
  17. 25 Mar, 2022 1 commit
  18. 04 Mar, 2022 1 commit
    • Chan Woo Kim's avatar
      Constrained Beam Search [*With* Disjunctive Decoding] (#15761) · 5c6f57ee
      Chan Woo Kim authored
      
      
      * added classes to get started with constrained beam search
      
      * in progress, think i can directly force tokens now but not yet with the round robin
      
      * think now i have total control, now need to code the bank selection
      
      * technically works as desired, need to optimize and fix design choices leading to undersirable outputs
      
      * complete PR #1 without disjunctive decoding
      
      * removed incorrect tests
      
      * Delete k.txt
      
      * Delete test.py
      
      * Delete test.sh
      
      * revert changes to test scripts
      
      * genutils
      
      * full implementation with testing, no disjunctive yet
      
      * shifted docs
      
      * passing all tests realistically ran locally
      
      * removing accidentally included print statements
      
      * fixed source of error in initial PR test
      
      * fixing the get_device() vs device trap
      
      * fixed documentation docstrings about constrained_beam_search
      
      * fixed tests having failing for Speech2TextModel's floating point inputs
      
      * fix cuda long tensor
      
      * added examples and testing for them and founx & fixed a bug in beam_search and constrained_beam_search
      
      * deleted accidentally added test halting code with assert False
      
      * code reformat
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      
      * fixing based on comments on PR
      
      * took out the testing code that should but work fails without the beam search moditification ; style changes
      
      * fixing comments issues
      
      * docstrings for ConstraintListState
      
      * typo in PhrsalConstraint docstring
      
      * docstrings improvements
      
      * finished adding what is sort of an opinionated implementation of disjunctive generation, but it revealed errors in inner beam search logic during testing.
      
      * fixed bug found in constrained beam search that used beam_idx that were not global across all the batches
      
      * disjunctive constraint working 100% correctly
      
      * passing all tests
      
      * Accidentally included mlruns
      
      * Update src/transformers/generation_beam_constraints.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update src/transformers/generation_beam_constraints.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * complete overhaul of type complexities and other nits
      
      * strict type checks in generate()
      
      * fixing second round of feedback by narsil
      
      * fixed failing generation test because of type check overhaul
      
      * generation test fail fix
      
      * fixing test fails
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      5c6f57ee
  19. 02 Mar, 2022 1 commit
  20. 15 Feb, 2022 1 commit
    • Patrick von Platen's avatar
      TF generate refactor - Greedy Search (#15562) · 2e12b907
      Patrick von Platen authored
      
      
      * TF generate start refactor
      
      * Add tf tests for sample generate
      
      * re-organize
      
      * boom boom
      
      * Apply suggestions from code review
      
      * re-add
      
      * add all code
      
      * make random greedy pass
      
      * make encoder-decoder random work
      
      * further improvements
      
      * delete bogus file
      
      * make gpt2 and t5 tests work
      
      * finish logits tests
      
      * correct logits processors
      
      * correct past / encoder_outputs drama
      
      * refactor some methods
      
      * another fix
      
      * refactor shape_list
      
      * fix more shape list
      
      * import shape
      _list
      
      * finish docs
      
      * fix imports
      
      * make style
      
      * correct tf utils
      
      * Fix TFRag as well
      
      * Apply Lysandre's and Sylvais suggestions
      
      * Update tests/test_generation_tf_logits_process.py
      Co-authored-by: default avatarMatt <Rocketknight1@users.noreply.github.com>
      
      * Update src/transformers/tf_utils.py
      Co-authored-by: default avatarMatt <Rocketknight1@users.noreply.github.com>
      
      * remove cpu according to gante
      
      * correct logit processor
      Co-authored-by: default avatarMatt <Rocketknight1@users.noreply.github.com>
      2e12b907
  21. 09 Feb, 2022 1 commit
    • Chan Woo Kim's avatar
      Constrained Beam Search [without disjunctive decoding] (#15416) · 2b5603f6
      Chan Woo Kim authored
      
      
      * added classes to get started with constrained beam search
      
      * in progress, think i can directly force tokens now but not yet with the round robin
      
      * think now i have total control, now need to code the bank selection
      
      * technically works as desired, need to optimize and fix design choices leading to undersirable outputs
      
      * complete PR #1 without disjunctive decoding
      
      * removed incorrect tests
      
      * Delete k.txt
      
      * Delete test.py
      
      * Delete test.sh
      
      * revert changes to test scripts
      
      * genutils
      
      * full implementation with testing, no disjunctive yet
      
      * shifted docs
      
      * passing all tests realistically ran locally
      
      * removing accidentally included print statements
      
      * fixed source of error in initial PR test
      
      * fixing the get_device() vs device trap
      
      * fixed documentation docstrings about constrained_beam_search
      
      * fixed tests having failing for Speech2TextModel's floating point inputs
      
      * fix cuda long tensor
      
      * added examples and testing for them and founx & fixed a bug in beam_search and constrained_beam_search
      
      * deleted accidentally added test halting code with assert False
      
      * code reformat
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      
      * Update tests/test_generation_utils.py
      
      * fixing based on comments on PR
      
      * took out the testing code that should but work fails without the beam search moditification ; style changes
      
      * fixing comments issues
      
      * docstrings for ConstraintListState
      
      * typo in PhrsalConstraint docstring
      
      * docstrings improvements
      Co-authored-by: default avatarPatrick von Platen <patrick.v.platen@gmail.com>
      2b5603f6
  22. 28 Dec, 2021 1 commit
    • Sylvain Gugger's avatar
      Doc styler examples (#14953) · b5e2b183
      Sylvain Gugger authored
      * Fix bad examples
      
      * Add black formatting to style_doc
      
      * Use first nonempty line
      
      * Put it at the right place
      
      * Don't add spaces to empty lines
      
      * Better templates
      
      * Deal with triple quotes in docstrings
      
      * Result of style_doc
      
      * Enable mdx treatment and fix code examples in MDXs
      
      * Result of doc styler on doc source files
      
      * Last fixes
      
      * Break copy from
      b5e2b183
  23. 22 Dec, 2021 1 commit