| <!--Copyright 2020 The HuggingFace Team. All rights reserved. | |
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with | |
| the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on | |
| an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations under the License. | |
| β οΈ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be | |
| rendered properly in your Markdown viewer. | |
| --> | |
| # μμ±μ μν μ νΈλ¦¬ν° [[utilities-for-generation]] | |
| μ΄ νμ΄μ§λ [`~generation.GenerationMixin.generate`]μμ μ¬μ©λλ λͺ¨λ μ νΈλ¦¬ν° ν¨μλ€μ λμ΄ν©λλ€. | |
| ## μΆλ ₯μ μμ±νκΈ° (Generate Outputs) [[generate-outputs]] | |
| [`~generation.GenerationMixin.generate`]μ μΆλ ₯μ [`~utils.ModelOutput`]μ νμ ν΄λμ€μ μΈμ€ν΄μ€μ λλ€. μ΄ μΆλ ₯μ [`~generation.GenerationMixin.generate`]μμ λ°νλλ λͺ¨λ μ 보λ₯Ό ν¬ν¨νλ λ°μ΄ν° ꡬ쑰체μ΄λ©°, νν λλ λμ λ리λ‘λ μ¬μ©ν μ μμ΅λλ€. | |
| λ€μμ μμμ λλ€: | |
| ```python | |
| from transformers import GPT2Tokenizer, GPT2LMHeadModel | |
| tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2") | |
| model = GPT2LMHeadModel.from_pretrained("openai-community/gpt2") | |
| inputs = tokenizer("Hello, my dog is cute and ", return_tensors="pt") | |
| generation_output = model.generate(**inputs, return_dict_in_generate=True, output_scores=True) | |
| ``` | |
| `generation_output` κ°μ²΄λ [`~generation.GenerateDecoderOnlyOutput`]μ λλ€. μλ λ¬Έμμμ νμΈν μ μλ―μ΄, μ΄ ν΄λμ€λ λ€μκ³Ό κ°μ μμ±μ κ°μ§κ³ μμ΅λλ€: | |
| - `sequences`: μμ±λ ν ν° μνμ€ | |
| - `scores` (μ΅μ ): κ° μμ± λ¨κ³μμ μΈμ΄ λͺ¨λΈλ§ ν€λμ μμΈ‘ μ μ | |
| - `hidden_states` (μ΅μ ): κ° μμ± λ¨κ³μμ λͺ¨λΈμ μλ μν | |
| - `attentions` (μ΅μ ): κ° μμ± λ¨κ³μμ λͺ¨λΈμ μ΄ν μ κ°μ€μΉ | |
| `output_scores=True`λ₯Ό μ λ¬νκΈ° λλ¬Έμ `scores`λ ν¬ν¨λμ΄ μμ§λ§, `output_hidden_states=True` λλ `output_attentions=True`λ₯Ό μ λ¬νμ§ μμμΌλ―λ‘ `hidden_states`μ `attentions`λ ν¬ν¨λμ§ μμμ΅λλ€. | |
| κ° μμ±μ μΌλ°μ μΌλ‘ μ κ·Όν μ μμΌλ©°, λͺ¨λΈμ΄ ν΄λΉ μμ±μ λ°ννμ§ μμλ€λ©΄ `None`μ΄ λ°νλ©λλ€. μλ₯Ό λ€μ΄, `generation_output.scores`λ μΈμ΄ λͺ¨λΈλ§ ν€λμμ μμ±λ λͺ¨λ μμΈ‘ μ μλ₯Ό ν¬ν¨νκ³ μμΌλ©°, `generation_output.attentions`λ `None`μ λλ€. | |
| `generation_output` κ°μ²΄λ₯Ό ννλ‘ μ¬μ©ν κ²½μ°, `None` κ°μ΄ μλ μμ±λ§ ν¬ν¨λ©λλ€. μλ₯Ό λ€μ΄, `loss`μ `logits`λΌλ λ μμκ° ν¬ν¨λ κ²½μ°: | |
| ```python | |
| generation_output[:2] | |
| ``` | |
| μ μ½λλ `(generation_output.sequences, generation_output.scores)` ννμ λ°νν©λλ€. | |
| `generation_output` κ°μ²΄λ₯Ό λμ λλ¦¬λ‘ μ¬μ©ν κ²½μ°, `None` κ°μ΄ μλ μμ±λ§ ν¬ν¨λ©λλ€. μλ₯Ό λ€μ΄, `sequences`μ `scores`λΌλ λ κ°μ ν€λ₯Ό κ°μ§ μ μμ΅λλ€. | |
| μ¬κΈ°μλ λͺ¨λ μΆλ ₯ μ νμ λ¬Έμνν©λλ€. | |
| ### PyTorch [[transformers.generation.GenerateDecoderOnlyOutput]] | |
| [[autodoc]] generation.GenerateDecoderOnlyOutput | |
| [[autodoc]] generation.GenerateEncoderDecoderOutput | |
| [[autodoc]] generation.GenerateBeamDecoderOnlyOutput | |
| [[autodoc]] generation.GenerateBeamEncoderDecoderOutput | |
| ### TensorFlow [[transformers.generation.TFGreedySearchEncoderDecoderOutput]] | |
| [[autodoc]] generation.TFGreedySearchEncoderDecoderOutput | |
| [[autodoc]] generation.TFGreedySearchDecoderOnlyOutput | |
| [[autodoc]] generation.TFSampleEncoderDecoderOutput | |
| [[autodoc]] generation.TFSampleDecoderOnlyOutput | |
| [[autodoc]] generation.TFBeamSearchEncoderDecoderOutput | |
| [[autodoc]] generation.TFBeamSearchDecoderOnlyOutput | |
| [[autodoc]] generation.TFBeamSampleEncoderDecoderOutput | |
| [[autodoc]] generation.TFBeamSampleDecoderOnlyOutput | |
| [[autodoc]] generation.TFContrastiveSearchEncoderDecoderOutput | |
| [[autodoc]] generation.TFContrastiveSearchDecoderOnlyOutput | |
| ### FLAX [[transformers.generation.FlaxSampleOutput]] | |
| [[autodoc]] generation.FlaxSampleOutput | |
| [[autodoc]] generation.FlaxGreedySearchOutput | |
| [[autodoc]] generation.FlaxBeamSearchOutput | |
| ## LogitsProcessor [[logitsprocessor]] | |
| [`LogitsProcessor`]λ μμ± μ€ μΈμ΄ λͺ¨λΈ ν€λμ μμΈ‘ μ μλ₯Ό μμ νλ λ° μ¬μ©λ©λλ€. | |
| ### PyTorch [[transformers.AlternatingCodebooksLogitsProcessor]] | |
| [[autodoc]] AlternatingCodebooksLogitsProcessor | |
| - __call__ | |
| [[autodoc]] ClassifierFreeGuidanceLogitsProcessor | |
| - __call__ | |
| [[autodoc]] EncoderNoRepeatNGramLogitsProcessor | |
| - __call__ | |
| [[autodoc]] EncoderRepetitionPenaltyLogitsProcessor | |
| - __call__ | |
| [[autodoc]] EpsilonLogitsWarper | |
| - __call__ | |
| [[autodoc]] EtaLogitsWarper | |
| - __call__ | |
| [[autodoc]] ExponentialDecayLengthPenalty | |
| - __call__ | |
| [[autodoc]] ForcedBOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] ForcedEOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] HammingDiversityLogitsProcessor | |
| - __call__ | |
| [[autodoc]] InfNanRemoveLogitsProcessor | |
| - __call__ | |
| [[autodoc]] LogitNormalization | |
| - __call__ | |
| [[autodoc]] LogitsProcessor | |
| - __call__ | |
| [[autodoc]] LogitsProcessorList | |
| - __call__ | |
| [[autodoc]] MinLengthLogitsProcessor | |
| - __call__ | |
| [[autodoc]] MinNewTokensLengthLogitsProcessor | |
| - __call__ | |
| [[autodoc]] MinPLogitsWarper | |
| - __call__ | |
| [[autodoc]] NoBadWordsLogitsProcessor | |
| - __call__ | |
| [[autodoc]] NoRepeatNGramLogitsProcessor | |
| - __call__ | |
| [[autodoc]] PrefixConstrainedLogitsProcessor | |
| - __call__ | |
| [[autodoc]] RepetitionPenaltyLogitsProcessor | |
| - __call__ | |
| [[autodoc]] SequenceBiasLogitsProcessor | |
| - __call__ | |
| [[autodoc]] SuppressTokensAtBeginLogitsProcessor | |
| - __call__ | |
| [[autodoc]] SuppressTokensLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TemperatureLogitsWarper | |
| - __call__ | |
| [[autodoc]] TopKLogitsWarper | |
| - __call__ | |
| [[autodoc]] TopPLogitsWarper | |
| - __call__ | |
| [[autodoc]] TypicalLogitsWarper | |
| - __call__ | |
| [[autodoc]] UnbatchedClassifierFreeGuidanceLogitsProcessor | |
| - __call__ | |
| [[autodoc]] WhisperTimeStampLogitsProcessor | |
| - __call__ | |
| [[autodoc]] WatermarkLogitsProcessor | |
| - __call__ | |
| ### TensorFlow [[transformers.TFForcedBOSTokenLogitsProcessor]] | |
| [[autodoc]] TFForcedBOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFForcedEOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFForceTokensLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFLogitsProcessorList | |
| - __call__ | |
| [[autodoc]] TFLogitsWarper | |
| - __call__ | |
| [[autodoc]] TFMinLengthLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFNoBadWordsLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFNoRepeatNGramLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFRepetitionPenaltyLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFSuppressTokensAtBeginLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFSuppressTokensLogitsProcessor | |
| - __call__ | |
| [[autodoc]] TFTemperatureLogitsWarper | |
| - __call__ | |
| [[autodoc]] TFTopKLogitsWarper | |
| - __call__ | |
| [[autodoc]] TFTopPLogitsWarper | |
| - __call__ | |
| ### FLAX [[transformers.FlaxForcedBOSTokenLogitsProcessor]] | |
| [[autodoc]] FlaxForcedBOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxForcedEOSTokenLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxForceTokensLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxLogitsProcessorList | |
| - __call__ | |
| [[autodoc]] FlaxLogitsWarper | |
| - __call__ | |
| [[autodoc]] FlaxMinLengthLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxSuppressTokensAtBeginLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxSuppressTokensLogitsProcessor | |
| - __call__ | |
| [[autodoc]] FlaxTemperatureLogitsWarper | |
| - __call__ | |
| [[autodoc]] FlaxTopKLogitsWarper | |
| - __call__ | |
| [[autodoc]] FlaxTopPLogitsWarper | |
| - __call__ | |
| [[autodoc]] FlaxWhisperTimeStampLogitsProcessor | |
| - __call__ | |
| ## StoppingCriteria [[transformers.StoppingCriteria]] | |
| [`StoppingCriteria`]λ μμ±μ΄ μΈμ λ©μΆμ§λ₯Ό κ²°μ νλ λ° μ¬μ©λ©λλ€ (EOS ν ν° μΈ). μ΄ κΈ°λ₯μ PyTorch ꡬνμλ§ μ 곡λ©λλ€. | |
| [[autodoc]] StoppingCriteria | |
| - __call__ | |
| [[autodoc]] StoppingCriteriaList | |
| - __call__ | |
| [[autodoc]] MaxLengthCriteria | |
| - __call__ | |
| [[autodoc]] MaxTimeCriteria | |
| - __call__ | |
| [[autodoc]] StopStringCriteria | |
| - __call__ | |
| [[autodoc]] EosTokenCriteria | |
| - __call__ | |
| ## Constraint [[transformers.Constraint]] | |
| [`Constraint`]λ μμ± μΆλ ₯μ νΉμ ν ν°μ΄λ μνμ€λ₯Ό κ°μ λ‘ ν¬ν¨μν€λ λ° μ¬μ©λ©λλ€. μ΄ κΈ°λ₯μ PyTorch ꡬνμλ§ μ 곡λ©λλ€. | |
| [[autodoc]] Constraint | |
| [[autodoc]] PhrasalConstraint | |
| [[autodoc]] DisjunctiveConstraint | |
| [[autodoc]] ConstraintListState | |
| ## λΉ κ²μ (BeamSearch) [[transformers.BeamScorer]] | |
| [[autodoc]] BeamScorer | |
| - process | |
| - finalize | |
| [[autodoc]] BeamSearchScorer | |
| - process | |
| - finalize | |
| [[autodoc]] ConstrainedBeamSearchScorer | |
| - process | |
| - finalize | |
| ## μ€νΈλ¦¬λ¨Έ (Streamers) [[transformers.TextStreamer]] | |
| [[autodoc]] TextStreamer | |
| [[autodoc]] TextIteratorStreamer | |
| ## μΊμ (Caches) [[transformers.Cache]] | |
| [[autodoc]] Cache | |
| - update | |
| [[autodoc]] CacheConfig | |
| - update | |
| [[autodoc]] QuantizedCacheConfig | |
| - validate | |
| [[autodoc]] DynamicCache | |
| - update | |
| - get_seq_length | |
| - reorder_cache | |
| - to_legacy_cache | |
| - from_legacy_cache | |
| [[autodoc]] QuantizedCache | |
| - update | |
| - get_seq_length | |
| [[autodoc]] QuantoQuantizedCache | |
| [[autodoc]] HQQQuantizedCache | |
| [[autodoc]] OffloadedCache | |
| - update | |
| - prefetch_layer | |
| - evict_previous_layer | |
| [[autodoc]] StaticCache | |
| - update | |
| - get_seq_length | |
| - reset | |
| [[autodoc]] OffloadedStaticCache | |
| - update | |
| - get_seq_length | |
| - reset | |
| [[autodoc]] HybridCache | |
| - update | |
| - get_seq_length | |
| - reset | |
| [[autodoc]] SlidingWindowCache | |
| - update | |
| - reset | |
| [[autodoc]] EncoderDecoderCache | |
| - get_seq_length | |
| - to_legacy_cache | |
| - from_legacy_cache | |
| - reset | |
| - reorder_cache | |
| [[autodoc]] MambaCache | |
| - update_conv_state | |
| - update_ssm_state | |
| - reset | |
| ## μν°λ§ν¬ μ νΈλ¦¬ν° (Watermark Utils) [[transformers.WatermarkDetector]] | |
| [[autodoc]] WatermarkDetector | |
| - __call__ | |