[Doc] Convert Sphinx directives ( {class}, {meth}, {attr}, ...) to MkDocs format for better documentation linking (#18663)
Signed-off-by: Zerohertz <ohg3417@gmail.com>
This commit is contained in:
@@ -114,13 +114,14 @@ class PromptUpdateDetails(Generic[_S]):
|
||||
|
||||
is_embed: Optional[Callable[["_BoundPromptSequence"], torch.Tensor]] = None
|
||||
"""
|
||||
Given {attr}`full`, return a boolean mask of shape `(len(full),)`
|
||||
indicating which positions of `full` to assign embeddings to.
|
||||
Given [`full`][vllm.multimodal.processing.PromptUpdateDetails.full],
|
||||
return a boolean mask of shape `(len(full),)` indicating which positions
|
||||
of `full` to assign embeddings to.
|
||||
|
||||
`None` (default) means to assign embeddings to all positions of `full`.
|
||||
|
||||
The embeddings are obtained by calling
|
||||
{class}`SupportsMultiModal.get_multimodal_embeddings`.
|
||||
[`SupportsMultiModal.get_multimodal_embeddings`][vllm.model_executor.models.interfaces.SupportsMultiModal.get_multimodal_embeddings].
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
@@ -159,13 +160,15 @@ PromptUpdateInfo = Union[PromptSeq, PromptUpdateDetails]
|
||||
The token sequence or text that are part of the update.
|
||||
|
||||
If only part of the content corresponds to feature placeholders, you can
|
||||
use {class}`PromptUpdateDetails` to specify which part.
|
||||
use [`PromptUpdateDetails`][vllm.multimodal.processing.PromptUpdateDetails] to
|
||||
specify which part.
|
||||
"""
|
||||
|
||||
PromptUpdateContent = Union[Callable[[int], PromptUpdateInfo],
|
||||
PromptUpdateInfo]
|
||||
"""
|
||||
Given the index of the processed item within {attr}`modality`,
|
||||
Given the index of the processed item within
|
||||
[`modality`][vllm.multimodal.processing.PromptUpdate.modality],
|
||||
output the corresponding token sequence (or text).
|
||||
|
||||
For convenience, you can directly pass in the token sequence (or text)
|
||||
@@ -260,8 +263,10 @@ class PromptInsertion(PromptUpdate):
|
||||
|
||||
insertion: PromptUpdateContent = field(repr=False)
|
||||
"""
|
||||
Given the index of the processed item within {attr}`modality`,
|
||||
output the token sequence (or text) to insert right after {attr}`target`.
|
||||
Given the index of the processed item within
|
||||
[`modality`][vllm.multimodal.processing.PromptUpdate.modality],
|
||||
output the token sequence (or text) to insert right after
|
||||
[`target`][vllm.multimodal.processing.PromptUpdate.target].
|
||||
|
||||
For convenience, you can directly pass in the token sequence (or text)
|
||||
instead of a function if it does not depend on the input.
|
||||
@@ -332,8 +337,10 @@ class PromptReplacement(PromptUpdate):
|
||||
|
||||
replacement: PromptUpdateContent = field(repr=False)
|
||||
"""
|
||||
Given the index of the processed item within {attr}`modality`,
|
||||
output the token sequence (or text) to replace {attr}`target`.
|
||||
Given the index of the processed item within
|
||||
[`modality`][vllm.multimodal.processing.PromptUpdate.modality],
|
||||
output the token sequence (or text) to replace
|
||||
[`target`][vllm.multimodal.processing.PromptUpdate.target].
|
||||
|
||||
For convenience, you can directly pass in the token sequence (or text)
|
||||
instead of a function if it does not depend on the input.
|
||||
@@ -387,14 +394,16 @@ _M = TypeVar("_M", bound=Union[_HasModalityAttr, _HasModalityProp])
|
||||
|
||||
|
||||
def full_groupby_modality(values: Iterable[_M]) -> ItemsView[str, list[_M]]:
|
||||
"""Convenience function to apply [full_groupby][] based on modality."""
|
||||
"""Convenience function to apply [`full_groupby`][vllm.utils.full_groupby]
|
||||
based on modality."""
|
||||
return full_groupby(values, key=lambda x: x.modality)
|
||||
|
||||
|
||||
@dataclass
|
||||
class _BoundPromptSequence:
|
||||
"""
|
||||
A {data}`_PromptSeq` bound to a tokenizer to automatically
|
||||
A [`_PromptSeq`][vllm.multimodal.processing.PromptSeq] bound
|
||||
to a tokenizer to automatically
|
||||
convert between token sequence and text representations.
|
||||
"""
|
||||
tokenizer: AnyTokenizer = field(repr=False)
|
||||
@@ -446,9 +455,11 @@ class _BoundPromptContent:
|
||||
@dataclass
|
||||
class BoundPromptUpdate:
|
||||
"""
|
||||
A {class}`PromptUpdate` bound to a tokenizer to automatically convert
|
||||
{attr}`target` and the result of {meth}`get_content` between
|
||||
token sequence and text representations.
|
||||
A [`PromptUpdate`][vllm.multimodal.processing.PromptUpdate] bound
|
||||
to a tokenizer to automatically convert
|
||||
[`target`][vllm.multimodal.processing.PromptUpdate.target] and the result of
|
||||
[`get_content`][vllm.multimodal.processing.BoundPromptUpdate.get_content]
|
||||
between token sequence and text representations.
|
||||
"""
|
||||
_origin: PromptUpdate
|
||||
tokenizer: AnyTokenizer = field(repr=False)
|
||||
@@ -482,7 +493,8 @@ class BoundPromptUpdate:
|
||||
|
||||
def get_content(self, item_idx: int) -> _BoundPromptContent:
|
||||
"""
|
||||
Given the index of the processed item within {attr}`modality`,
|
||||
Given the index of the processed item within
|
||||
[`modality`][vllm.multimodal.processing.PromptUpdate.modality],
|
||||
output the token sequence (or text) to update.
|
||||
"""
|
||||
content = self.content
|
||||
@@ -1019,7 +1031,8 @@ class ProcessingCache:
|
||||
) -> None:
|
||||
"""
|
||||
Put a processed multi-modal item into the cache
|
||||
according to its dependencies (see {meth}`get`).
|
||||
according to its dependencies
|
||||
(see [`get`][vllm.multimodal.processing.ProcessingCache.get]).
|
||||
"""
|
||||
cache_key = MultiModalHasher.hash_kwargs(model_id=model_id,
|
||||
**{modality: input_item},
|
||||
@@ -1091,7 +1104,8 @@ _I = TypeVar("_I", bound=BaseProcessingInfo)
|
||||
|
||||
MultiModalHashes = dict[str, list[str]]
|
||||
"""
|
||||
A collection of hashes with a similar structure as {class}`MultiModalKwargs`.
|
||||
A collection of hashes with a similar structure as
|
||||
[`MultiModalKwargs`][vllm.multimodal.inputs.MultiModalKwargs].
|
||||
"""
|
||||
|
||||
|
||||
@@ -1099,7 +1113,7 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
"""
|
||||
Abstract base class to process multi-modal inputs to be used in vLLM.
|
||||
|
||||
Not to be confused with {class}`transformers.ProcessorMixin`.
|
||||
Not to be confused with `transformers.ProcessorMixin`.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
@@ -1126,10 +1140,12 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
def _get_data_parser(self) -> MultiModalDataParser:
|
||||
"""
|
||||
Construct a parser to preprocess multi-modal data items
|
||||
before passing them to {meth}`_get_hf_mm_data`.
|
||||
before passing them to
|
||||
[`_get_hf_mm_data`][vllm.multimodal.processing.BaseMultiModalProcessor._get_hf_mm_data].
|
||||
|
||||
You can support additional modalities by creating a subclass
|
||||
of {class}`MultiModalDataParser` that has additional subparsers.
|
||||
of [`MultiModalDataParser`][vllm.multimodal.parse.MultiModalDataParser]
|
||||
that has additional subparsers.
|
||||
"""
|
||||
return MultiModalDataParser()
|
||||
|
||||
@@ -1138,8 +1154,11 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
mm_data: MultiModalDataDict,
|
||||
) -> MultiModalDataItems:
|
||||
"""
|
||||
Normalize {class}`MultiModalDataDict` to {class}`MultiModalDataItems`
|
||||
before passing them to {meth}`_get_hf_mm_data`.
|
||||
Normalize
|
||||
[`MultiModalDataDict`][vllm.multimodal.inputs.MultiModalDataDict]
|
||||
to [`MultiModalDataItems`][vllm.multimodal.parse.MultiModalDataItems]
|
||||
before passing them to
|
||||
[`_get_hf_mm_data`][vllm.multimodal.processing.BaseMultiModalProcessor._get_hf_mm_data].
|
||||
"""
|
||||
mm_items = self.data_parser.parse_mm_data(mm_data)
|
||||
supported_mm_limits = self.info.get_supported_mm_limits()
|
||||
@@ -1191,7 +1210,8 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
inputs.
|
||||
|
||||
Moreover, this information is critical to determine the token positions
|
||||
in order to construct {class}`~vllm-multimodal.input.PlaceholderRange`
|
||||
in order to construct
|
||||
[`PlaceholderRange`][vllm.multimodal.inputs.PlaceholderRange]
|
||||
for each multi-modal item.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
@@ -1315,7 +1335,9 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
Most HF processors accept prompt text but not prompt tokens.
|
||||
If the HF processor adds or removes tokens that are not related to
|
||||
multi-modal data, you should override this method so it is consistent
|
||||
with the output of {meth}`_apply_hf_processor_text_only` on the
|
||||
with the output of
|
||||
[`_apply_hf_processor_text_only`][vllm.multimodal.processing.BaseMultiModalProcessor._apply_hf_processor_text_only]
|
||||
on the
|
||||
corresponding text.
|
||||
"""
|
||||
return prompt_tokens
|
||||
@@ -1330,7 +1352,8 @@ class BaseMultiModalProcessor(ABC, Generic[_I]):
|
||||
|
||||
Since HF processor requires that text and multi-modal items
|
||||
correspond to each other, we generate dummy text using
|
||||
{class}`DummyInputsBuilder` to go along with the multi-modal data.
|
||||
[`DummyInputsBuilder`][vllm.multimodal.profiling.BaseDummyInputsBuilder]
|
||||
to go along with the multi-modal data.
|
||||
"""
|
||||
mm_counts = mm_items.get_all_counts()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user