Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes dottxt-ai#806
Fixes dottxt-ai#789
Closes dottxt-ai#910
Problem
For
outlines.models.transformers
, instead of using logits processors which encapsulate automata management,SequenceGenerator
directly manages the automata. This different implementation resulted in dottxt-ai#789's bug.Solution
Transformers.generate
andTransformers.stream
which use HFtransformers
logits_processor
argument withoutlines.processors.OutlinesLogitsProcessor
SequenceGeneratorAdapter
for transformers instead ofSequenceGenerator
TODO:
Transformers.generate
andTransformers.stream
SequenceGeneratorAdapter
version ofoutlines.models.transformers
main
llamacpp
andvllm
changes, these will be in a separate PRBonus
This new structure allows us to easily integrate multi-modal models by subclassing
models.Transformer
. Additionally, we can makemodels.mamba
aTransformer
model and just passmodel_class=MambaLMHeadModel
.Multi-modal model example: