[Rust Frontend] Bump llm-multimodal version (#47530)
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
This commit is contained in:
@@ -303,7 +303,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.join("preprocessor_config.json");
|
||||
write_json(&preprocessor_config_path, r#"{"size":[672,672]}"#);
|
||||
files.preprocessor_config_path = Some(preprocessor_config_path);
|
||||
files.preprocessor_config_path = Some(preprocessor_config_path.clone());
|
||||
|
||||
let backend = HfChatBackend::from_resolved_model_files(
|
||||
files.clone(),
|
||||
@@ -321,6 +321,9 @@ mod tests {
|
||||
|
||||
assert!(backend.multimodal_model_info().is_none());
|
||||
|
||||
let invalid_preprocessor_config = r#"{"size":[672,672]"#;
|
||||
write_json(&preprocessor_config_path, invalid_preprocessor_config);
|
||||
|
||||
let error = HfChatBackend::from_resolved_model_files(
|
||||
files,
|
||||
"test-model".to_string(),
|
||||
|
||||
@@ -16,10 +16,11 @@ use std::sync::{Arc, LazyLock};
|
||||
|
||||
use itertools::izip;
|
||||
use llm_multimodal::{
|
||||
AsyncMultiModalTracker, FieldLayout, ImagePreProcessor, ImageProcessorRegistry, MediaConnector,
|
||||
MediaConnectorConfig, MediaContentPart, Modality, ModelMetadata, ModelProcessorSpec,
|
||||
ModelRegistry, PreProcessorConfig, PreprocessedImages, PromptReplacement, TokenResolver,
|
||||
TrackedMedia,
|
||||
AsyncMultiModalTracker, FieldLayout, MediaConnector, MediaConnectorConfig, MediaContentPart,
|
||||
Modality, ModelMetadata, ModelProcessorSpec, ModelRegistry, PreProcessorConfig,
|
||||
PreprocessedEncoderInputs as PreprocessedImages, PromptReplacement, Tokenizer as TokenResolver,
|
||||
TrackedMedia, VisionPreProcessor as ImagePreProcessor,
|
||||
VisionProcessorRegistry as ImageProcessorRegistry,
|
||||
};
|
||||
use tracing::warn;
|
||||
use vllm_engine_core_client::protocol::dtype::ModelDtype;
|
||||
@@ -555,6 +556,10 @@ impl TokenResolver for TokenizerResolver {
|
||||
fn id_to_token(&self, id: u32) -> Option<String> {
|
||||
self.0.id_to_token(id)
|
||||
}
|
||||
|
||||
fn encode_text(&self, text: &str) -> Option<Vec<u32>> {
|
||||
self.0.encode(text, false).ok()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use half::{bf16, f16};
|
||||
use llm_multimodal::{ModelSpecificValue, PreprocessedImages};
|
||||
use llm_multimodal::{ModelSpecificValue, PreprocessedEncoderInputs as PreprocessedImages};
|
||||
use vllm_engine_core_client::protocol::dtype::ModelDtype;
|
||||
use vllm_engine_core_client::protocol::multimodal::MmKwargValue as ProtocolKwargValue;
|
||||
use vllm_engine_core_client::protocol::tensor::{ShapeExt as _, WireTensor};
|
||||
@@ -31,14 +31,14 @@ pub(super) fn collect_tensors(
|
||||
float_dtype: ModelDtype,
|
||||
) -> Result<HashMap<String, KwargValue>> {
|
||||
let PreprocessedImages {
|
||||
pixel_values,
|
||||
encoder_input,
|
||||
model_specific,
|
||||
..
|
||||
} = preprocessed;
|
||||
|
||||
let pixel_values = {
|
||||
let shape = pixel_values.shape().to_vec();
|
||||
let data = pixel_values.into_iter().collect();
|
||||
let shape = encoder_input.shape().to_vec();
|
||||
let data = encoder_input.into_iter().collect();
|
||||
KwargValue::from_f32_tensor(data, shape, float_dtype)?
|
||||
};
|
||||
|
||||
|
||||
@@ -559,7 +559,7 @@ fn qwen_multimodal_model_info() -> vllm_chat::multimodal::MultimodalModelInfo {
|
||||
));
|
||||
fs::write(
|
||||
&config_path,
|
||||
r#"{"model_type":"qwen2_vl","vision_token_id":151655}"#,
|
||||
r#"{"model_type":"qwen2_vl","image_token_id":151655}"#,
|
||||
)
|
||||
.expect("write qwen test config");
|
||||
let info = vllm_chat::multimodal::MultimodalModelInfo::from_paths(
|
||||
|
||||
Reference in New Issue
Block a user