Previously, if the user provided anything for the generation_config argument, we always returned a GenerationConfig object for this case
Now if the user provides the GenerationConfig object, that is the only case where we return the object without using deepsparse defaults
If the user provides a dictionary, we create a GenerationConfig object, override with deepsparse defaults, and then set any attributes provided by the user in the dictionary
This is aided through the conversion of the defaults into a dataclass
All other workflows remain the same (i.e providing generation_kwargs or cli arguments which have always used deepsparse defaults)
Summary
generation_config
argument, we always returned aGenerationConfig
object for this caseGenerationConfig
object, that is the only case where we return the object without using deepsparse defaultsgeneration_kwargs
or cli arguments which have always used deepsparse defaults)Also takes care of this discussion: https://app.asana.com/0/1205229323407165/1206280624568198/f