From ea78da78348b397b00cab6e7784485f467001927 Mon Sep 17 00:00:00 2001 From: jhqxxx <18280426169@163.com> Date: Mon, 30 Mar 2026 00:44:41 +0800 Subject: [PATCH] add LFM2.5-VL-1.6B|LFM2-VL-1.6B --- Cargo.lock | 12 +- Cargo.toml | 4 +- README.md | 2 +- README.zh-CN.md | 3 + assets/img/aha_weixingqun.jpg | Bin 141558 -> 0 bytes assets/img/aha_weixinqun.png | Bin 0 -> 156182 bytes src/api/mod.rs | 45 +++-- src/exec/lfm2.rs | 2 +- src/exec/lfm2vl.rs | 76 ++++++++ src/exec/mod.rs | 1 + src/exec/qwen2_5vl.rs | 4 +- src/exec/qwen3_asr.rs | 2 +- src/exec/qwen3vl.rs | 4 +- src/main.rs | 56 +++--- src/models/lfm2/model.rs | 2 +- src/models/lfm2vl/config.rs | 9 +- src/models/lfm2vl/generate.rs | 152 +++++++++++++-- src/models/lfm2vl/mod.rs | 2 +- src/models/lfm2vl/model.rs | 325 +++++++++++++++++++++++++++++++++ src/models/lfm2vl/processor.rs | 22 ++- src/models/mod.rs | 136 ++++++++------ src/utils/tensor_utils.rs | 22 +++ tests/config_tests.rs | 15 +- tests/test_health_models.rs | 16 +- tests/test_lfm2.rs | 7 +- tests/test_lfm2vl.rs | 81 ++++++-- tests/weight_test.rs | 23 +++ 27 files changed, 847 insertions(+), 176 deletions(-) delete mode 100644 assets/img/aha_weixingqun.jpg create mode 100644 assets/img/aha_weixinqun.png create mode 100644 src/exec/lfm2vl.rs diff --git a/Cargo.lock b/Cargo.lock index 58f18ce..9c7d449 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ dependencies = [ "num", "rayon", "realfft", - "reqwest 0.12.28", + "reqwest 0.13.2", "rocket", "sentencepiece", "serde", @@ -2805,9 +2805,9 @@ dependencies = [ [[package]] name = "modelscope" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c0ce1b3f708ede609c998fc460d5dce1b8b9458f99d71715fc8735f8335d8f3" +checksum = "e70d3712581a1c6148246dc7cefd63d2dbb3a40ba70602170adbec34bb7319bf" dependencies = [ "anyhow", "clap", @@ -3810,21 +3810,16 @@ checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", - "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "h2 0.4.13", "http 1.4.0", "http-body 1.0.1", "http-body-util", "hyper 1.8.1", - "hyper-rustls", "hyper-tls", "hyper-util", "js-sys", "log", - "mime", "mime_guess", "native-tls", "percent-encoding", @@ -3858,6 +3853,7 @@ dependencies = [ "cookie", "cookie_store", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2 0.4.13", diff --git a/Cargo.toml b/Cargo.toml index ab4596c..6db4f22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ serde_json = "1.0.145" anyhow = "1.0.100" ffmpeg-next = { version = "8.0.0", optional = true } image = "0.25.8" -reqwest = { version = "0.12.23", features = ["blocking"] } +reqwest = { version = "0.13", features = ["blocking"] } base64 = "0.22.1" num = "0.4.3" minijinja = "2.12.0" @@ -28,7 +28,7 @@ rocket = { version = "0.5.1", features = ["serde_json", "json"] } tokio = "1.47.1" hound = "3.5.1" clap = { version = "4.5.51", features = ["derive"] } -modelscope = "0.1.4" +modelscope = "0.1.5" dirs = "6.0.0" sysinfo = "0.33" url = "2.5.7" diff --git a/README.md b/README.md index fcc6932..d63a326 100644 --- a/README.md +++ b/README.md @@ -214,7 +214,7 @@ Apache-2.0 — See [LICENSE](LICENSE) for details. - All model authors and contributors ## Wechat -![260326 expired](./assets/img/aha_weixingqun.jpg) +![260405 expired](./assets/img/aha_weixingqun.png) ---

diff --git a/README.zh-CN.md b/README.zh-CN.md index dbebe5b..c23ce81 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -218,6 +218,9 @@ Apache-2.0 — 详见 [LICENSE](LICENSE) - [Candle](https://github.com/huggingface/candle) - 优秀的 Rust 机器学习框架 - 所有模型作者和贡献者 +## Wechat +![260405 expired](./assets/img/aha_weixinqun.png) + ---

diff --git a/assets/img/aha_weixingqun.jpg b/assets/img/aha_weixingqun.jpg deleted file mode 100644 index e6f25db8367273ecd8bfcbaa885e14e766614999..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141558 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 aKMO>+EzYR2Quig#O6!QO`l~}{um2B3Tk|FW literal 0 HcmV?d00001 diff --git a/src/api/mod.rs b/src/api/mod.rs index 4ade969..6cd72cc 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -249,8 +249,10 @@ fn which_model_to_id(which_model: WhichModel) -> &'static str { WhichModel::MiniCPM4_0_5B => "minicpm4-0.5b", WhichModel::LFM2_1_2B => "lfm2-1.2b", WhichModel::LFM2_5_1_2BInstruct => "lfm2.5-1.2b-instruct", - WhichModel::Qwen2_5vl3B => "qwen2.5vl-3b", - WhichModel::Qwen2_5vl7B => "qwen2.5vl-7b", + WhichModel::LFM2_5VL1_6B => "lfm2.5-vl-1.6b", + WhichModel::LFM2VL1_6B => "lfm2-vl-1.6b", + WhichModel::Qwen2_5VL3B => "qwen2.5vl-3b", + WhichModel::Qwen2_5VL7B => "qwen2.5vl-7b", WhichModel::Qwen3_0_6B => "qwen3-0.6b", WhichModel::Qwen3_5_0_8B => "qwen3.5-0.8b", WhichModel::Qwen3_5_2B => "qwen3.5-2b", @@ -259,10 +261,10 @@ fn which_model_to_id(which_model: WhichModel) -> &'static str { WhichModel::Qwen3_5Gguf => "qwen3.5-gguf", WhichModel::Qwen3ASR0_6B => "qwen3asr-0.6b", WhichModel::Qwen3ASR1_7B => "qwen3asr-1.7b", - WhichModel::Qwen3vl2B => "qwen3vl-2b", - WhichModel::Qwen3vl4B => "qwen3vl-4b", - WhichModel::Qwen3vl8B => "qwen3vl-8b", - WhichModel::Qwen3vl32B => "qwen3vl-32b", + WhichModel::Qwen3VL2B => "qwen3vl-2b", + WhichModel::Qwen3VL4B => "qwen3vl-4b", + WhichModel::Qwen3VL8B => "qwen3vl-8b", + WhichModel::Qwen3VL32B => "qwen3vl-32b", WhichModel::DeepSeekOCR => "deepseek-ocr", WhichModel::DeepSeekOCR2 => "deepseek-ocr2", WhichModel::HunyuanOCR => "hunyuan-ocr", @@ -281,12 +283,12 @@ fn which_model_to_id(which_model: WhichModel) -> &'static str { fn which_model_to_owner(which_model: WhichModel) -> &'static str { match which_model { WhichModel::MiniCPM4_0_5B => "OpenBMB", - WhichModel::Qwen2_5vl3B | WhichModel::Qwen2_5vl7B => "Qwen", + WhichModel::Qwen2_5VL3B | WhichModel::Qwen2_5VL7B => "Qwen", WhichModel::Qwen3_0_6B | WhichModel::Qwen3ASR0_6B | WhichModel::Qwen3ASR1_7B => "Qwen", - WhichModel::Qwen3vl2B - | WhichModel::Qwen3vl4B - | WhichModel::Qwen3vl8B - | WhichModel::Qwen3vl32B + WhichModel::Qwen3VL2B + | WhichModel::Qwen3VL4B + | WhichModel::Qwen3VL8B + | WhichModel::Qwen3VL32B | WhichModel::Qwen3_5Gguf => "Qwen", WhichModel::Qwen3_5_0_8B | WhichModel::Qwen3_5_2B @@ -299,7 +301,10 @@ fn which_model_to_owner(which_model: WhichModel) -> &'static str { WhichModel::VoxCPM | WhichModel::VoxCPM1_5 => "OpenBMB", WhichModel::GlmASRNano2512 | WhichModel::GlmOCR => "ZhipuAI", WhichModel::FunASRNano2512 => "FunAudioLLM", - WhichModel::LFM2_1_2B | WhichModel::LFM2_5_1_2BInstruct => "LiquidAI", + WhichModel::LFM2_1_2B + | WhichModel::LFM2_5_1_2BInstruct + | WhichModel::LFM2_5VL1_6B + | WhichModel::LFM2VL1_6B => "LiquidAI", } } @@ -380,13 +385,13 @@ mod tests { #[test] fn test_get_model_type_llm() { assert_eq!(WhichModel::Qwen3_0_6B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen3vl2B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen3VL2B.model_type(), "llm"); assert_eq!(WhichModel::MiniCPM4_0_5B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen2_5vl3B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen2_5vl7B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen3vl4B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen3vl8B.model_type(), "llm"); - assert_eq!(WhichModel::Qwen3vl32B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen2_5VL3B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen2_5VL7B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen3VL4B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen3VL8B.model_type(), "llm"); + assert_eq!(WhichModel::Qwen3VL32B.model_type(), "llm"); } #[test] @@ -407,6 +412,10 @@ mod tests { #[test] fn test_get_model_type_image() { assert_eq!(WhichModel::RMBG2_0.model_type(), "image"); + } + + #[test] + fn test_get_model_type_tts() { assert_eq!(WhichModel::VoxCPM.model_type(), "image"); assert_eq!(WhichModel::VoxCPM1_5.model_type(), "image"); } diff --git a/src/exec/lfm2.rs b/src/exec/lfm2.rs index 41986ff..2c99099 100644 --- a/src/exec/lfm2.rs +++ b/src/exec/lfm2.rs @@ -1,4 +1,4 @@ -//! MiniCPM4-0.5B exec implementation for CLI `run` subcommand +//! LFM2 exec implementation for CLI `run` subcommand use std::time::Instant; diff --git a/src/exec/lfm2vl.rs b/src/exec/lfm2vl.rs new file mode 100644 index 0000000..53be6b9 --- /dev/null +++ b/src/exec/lfm2vl.rs @@ -0,0 +1,76 @@ +//! LFM2.5VL exec implementation for CLI `run` subcommand + +use std::time::Instant; + +use anyhow::{Ok, Result}; + +use crate::exec::ExecModel; +use crate::models::GenerateModel; +use crate::models::lfm2vl::generate::Lfm2VLGenerateModel; +use crate::utils::get_file_path; + +pub struct Lfm2VLExec; + +impl ExecModel for Lfm2VLExec { + fn run(input: &[String], output: Option<&str>, weight_path: &str) -> Result<()> { + let input_text = &input[0]; + let target_text = if input_text.starts_with("file://") { + let path = get_file_path(input_text)?; + std::fs::read_to_string(path)? + } else { + input_text.clone() + }; + let url = &input[1]; + let input_url = if url.starts_with("http://") + || url.starts_with("https://") + || url.starts_with("file://") + { + url.clone() + } else { + format!("file://{}", url) + }; + let i_start = Instant::now(); + let mut model = Lfm2VLGenerateModel::init(weight_path, None, None)?; + let i_duration = i_start.elapsed(); + println!("Time elapsed in load model is: {:?}", i_duration); + + let message = format!( + r#"{{ + "model": "lfm2.5vl", + "messages": [ + {{ + "role": "user", + "content": [ + {{ + "type": "image", + "image_url": {{ + "url": "{}" + }} + }}, + {{ + "type": "text", + "text": "{}" + }} + ] + }} + ] + }}"#, + input_url, target_text + ); + let mes = serde_json::from_str(&message)?; + + let i_start = Instant::now(); + let result = model.generate(mes)?; + let i_duration = i_start.elapsed(); + println!("Time elapsed in generate is: {:?}", i_duration); + + println!("Result: {:?}", result); + + if let Some(out) = output { + std::fs::write(out, format!("{:?}", result))?; + println!("Output saved to: {}", out); + } + + Ok(()) + } +} diff --git a/src/exec/mod.rs b/src/exec/mod.rs index 0e59094..a2922c8 100644 --- a/src/exec/mod.rs +++ b/src/exec/mod.rs @@ -9,6 +9,7 @@ pub mod glm_asr_nano; pub mod glm_ocr; pub mod hunyuan_ocr; pub mod lfm2; +pub mod lfm2vl; pub mod minicpm4; pub mod paddleocr_vl; pub mod qwen2_5vl; diff --git a/src/exec/qwen2_5vl.rs b/src/exec/qwen2_5vl.rs index ecaaa2e..f374902 100644 --- a/src/exec/qwen2_5vl.rs +++ b/src/exec/qwen2_5vl.rs @@ -8,9 +8,9 @@ use crate::exec::ExecModel; use crate::models::{GenerateModel, qwen2_5vl::generate::Qwen2_5VLGenerateModel}; use crate::utils::get_file_path; -pub struct Qwen2_5vlExec; +pub struct Qwen2_5VLExec; -impl ExecModel for Qwen2_5vlExec { +impl ExecModel for Qwen2_5VLExec { fn run(input: &[String], output: Option<&str>, weight_path: &str) -> Result<()> { let input_text = &input[0]; let target_text = if input_text.starts_with("file://") { diff --git a/src/exec/qwen3_asr.rs b/src/exec/qwen3_asr.rs index 2b6bde0..acd13f3 100644 --- a/src/exec/qwen3_asr.rs +++ b/src/exec/qwen3_asr.rs @@ -1,4 +1,4 @@ -//! Fun-ASR-Nano-2512 exec implementation for CLI `run` subcommand +//! Qwen3ASR exec implementation for CLI `run` subcommand use std::time::Instant; diff --git a/src/exec/qwen3vl.rs b/src/exec/qwen3vl.rs index 26c1c0f..7622047 100644 --- a/src/exec/qwen3vl.rs +++ b/src/exec/qwen3vl.rs @@ -8,9 +8,9 @@ use crate::exec::ExecModel; use crate::models::{GenerateModel, qwen3vl::generate::Qwen3VLGenerateModel}; use crate::utils::get_file_path; -pub struct Qwen3vlExec; +pub struct Qwen3VLExec; -impl ExecModel for Qwen3vlExec { +impl ExecModel for Qwen3VLExec { fn run(input: &[String], output: Option<&str>, weight_path: &str) -> Result<()> { let input_text = &input[0]; let target_text = if input_text.starts_with("file://") { diff --git a/src/main.rs b/src/main.rs index 299d77a..19422b3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -246,8 +246,8 @@ fn run_list(args: ListArgs) -> anyhow::Result<()> { WhichModel::MiniCPM4_0_5B, WhichModel::LFM2_1_2B, WhichModel::LFM2_5_1_2BInstruct, - WhichModel::Qwen2_5vl3B, - WhichModel::Qwen2_5vl7B, + WhichModel::Qwen2_5VL3B, + WhichModel::Qwen2_5VL7B, WhichModel::Qwen3_0_6B, WhichModel::Qwen3_5_0_8B, WhichModel::Qwen3_5_2B, @@ -255,10 +255,10 @@ fn run_list(args: ListArgs) -> anyhow::Result<()> { WhichModel::Qwen3_5_9B, WhichModel::Qwen3ASR0_6B, WhichModel::Qwen3ASR1_7B, - WhichModel::Qwen3vl2B, - WhichModel::Qwen3vl4B, - WhichModel::Qwen3vl8B, - WhichModel::Qwen3vl32B, + WhichModel::Qwen3VL2B, + WhichModel::Qwen3VL4B, + WhichModel::Qwen3VL8B, + WhichModel::Qwen3VL32B, WhichModel::DeepSeekOCR, WhichModel::DeepSeekOCR2, WhichModel::HunyuanOCR, @@ -471,13 +471,21 @@ fn run_run(args: RunArgs) -> anyhow::Result<()> { use aha::exec::lfm2::Lfm2Exec; Lfm2Exec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen2_5vl3B => { - use aha::exec::qwen2_5vl::Qwen2_5vlExec; - Qwen2_5vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::LFM2_5VL1_6B => { + use aha::exec::lfm2vl::Lfm2VLExec; + Lfm2VLExec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen2_5vl7B => { - use aha::exec::qwen2_5vl::Qwen2_5vlExec; - Qwen2_5vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::LFM2VL1_6B => { + use aha::exec::lfm2vl::Lfm2VLExec; + Lfm2VLExec::run(&input, output.as_deref(), &weight_path)?; + } + WhichModel::Qwen2_5VL3B => { + use aha::exec::qwen2_5vl::Qwen2_5VLExec; + Qwen2_5VLExec::run(&input, output.as_deref(), &weight_path)?; + } + WhichModel::Qwen2_5VL7B => { + use aha::exec::qwen2_5vl::Qwen2_5VLExec; + Qwen2_5VLExec::run(&input, output.as_deref(), &weight_path)?; } WhichModel::Qwen3_0_6B => { use aha::exec::qwen3::Qwen3Exec; @@ -511,21 +519,21 @@ fn run_run(args: RunArgs) -> anyhow::Result<()> { use aha::exec::qwen3_asr::Qwen3ASRExec; Qwen3ASRExec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen3vl2B => { - use aha::exec::qwen3vl::Qwen3vlExec; - Qwen3vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::Qwen3VL2B => { + use aha::exec::qwen3vl::Qwen3VLExec; + Qwen3VLExec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen3vl4B => { - use aha::exec::qwen3vl::Qwen3vlExec; - Qwen3vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::Qwen3VL4B => { + use aha::exec::qwen3vl::Qwen3VLExec; + Qwen3VLExec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen3vl8B => { - use aha::exec::qwen3vl::Qwen3vlExec; - Qwen3vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::Qwen3VL8B => { + use aha::exec::qwen3vl::Qwen3VLExec; + Qwen3VLExec::run(&input, output.as_deref(), &weight_path)?; } - WhichModel::Qwen3vl32B => { - use aha::exec::qwen3vl::Qwen3vlExec; - Qwen3vlExec::run(&input, output.as_deref(), &weight_path)?; + WhichModel::Qwen3VL32B => { + use aha::exec::qwen3vl::Qwen3VLExec; + Qwen3VLExec::run(&input, output.as_deref(), &weight_path)?; } WhichModel::DeepSeekOCR => { use aha::exec::deepseek_ocr::DeepSeekORExec; diff --git a/src/models/lfm2/model.rs b/src/models/lfm2/model.rs index 7e25a33..09070a6 100644 --- a/src/models/lfm2/model.rs +++ b/src/models/lfm2/model.rs @@ -197,7 +197,7 @@ impl Lfm2DecoderLayer { } pub struct Lfm2Decoder { - embed_tokens: Embedding, + pub embed_tokens: Embedding, layers: Vec, // rotary_emb: RoPE, pos_emb: RoPE, diff --git a/src/models/lfm2vl/config.rs b/src/models/lfm2vl/config.rs index 6d6872e..483c211 100644 --- a/src/models/lfm2vl/config.rs +++ b/src/models/lfm2vl/config.rs @@ -2,7 +2,6 @@ use candle_nn::Activation; use crate::models::lfm2::config::Lfm2Config; - #[derive(Debug, Clone, PartialEq, serde::Deserialize)] pub struct Lfm2VLConfig { pub do_image_splitting: bool, @@ -19,7 +18,7 @@ pub struct Lfm2VLConfig { pub projector_bias: bool, pub projector_hidden_act: Activation, pub projector_hidden_size: usize, - pub projector_use_layernorm: bool, + pub projector_use_layernorm: Option, pub text_config: Lfm2Config, pub tile_size: usize, pub use_image_special_tokens: bool, @@ -27,7 +26,6 @@ pub struct Lfm2VLConfig { pub vision_config: Lfm2VLVisionConfig, } - #[derive(Debug, Clone, PartialEq, serde::Deserialize)] pub struct Lfm2VLVisionConfig { pub attention_dropout: f64, @@ -37,8 +35,8 @@ pub struct Lfm2VLVisionConfig { pub intermediate_size: usize, pub layer_norm_eps: f64, pub model_type: String, - pub num_attention_heads: u32, - pub num_channels: u32, + pub num_attention_heads: usize, + pub num_channels: usize, pub num_hidden_layers: usize, pub num_patches: usize, pub patch_size: usize, @@ -79,4 +77,3 @@ pub struct Size { pub struct Lfm2ProcessorConfig { pub image_processor: Lfm2ImageConfig, } - diff --git a/src/models/lfm2vl/generate.rs b/src/models/lfm2vl/generate.rs index cc3ba78..8e32718 100644 --- a/src/models/lfm2vl/generate.rs +++ b/src/models/lfm2vl/generate.rs @@ -1,22 +1,28 @@ -use aha_openai_dive::v1::resources::chat::ChatCompletionParameters; +use aha_openai_dive::v1::resources::chat::{ChatCompletionParameters, ChatCompletionResponse}; use anyhow::Result; -use candle_core::{DType, Device}; +use candle_core::{DType, Device, Tensor}; +use candle_nn::VarBuilder; use crate::{ chat_template::ChatTemplate, models::{ + GenerateModel, lfm2::config::Lfm2GenerateConfig, - lfm2vl::{config::Lfm2VLConfig, processor::Lfm2VLProcessor}, + lfm2vl::{config::Lfm2VLConfig, model::Lfm2VLModel, processor::Lfm2VLProcessor}, }, tokenizer::TokenizerModel, - utils::{find_type_files, get_device, get_dtype, get_logit_processor}, + utils::{ + build_completion_chunk_response, build_completion_response, find_type_files, get_device, + get_dtype, get_logit_processor, + }, }; +use rocket::async_stream::stream; pub struct Lfm2VLGenerateModel<'a> { chat_template: ChatTemplate<'a>, tokenizer: TokenizerModel, device: Device, - // model: Lfm2VLModel, + model: Lfm2VLModel, processor: Lfm2VLProcessor, eos_token_id: u32, model_name: String, @@ -33,8 +39,8 @@ impl<'a> Lfm2VLGenerateModel<'a> { let model_path = find_type_files(path, "safetensors")?; let dtype = get_dtype(dtype, &cfg.dtype); - // let vb = unsafe { VarBuilder::from_mmaped_safetensors(&model_path, dtype, &device)? }; - // let model = Lfm2Model::new(vb, &cfg)?; + let vb = unsafe { VarBuilder::from_mmaped_safetensors(&model_path, dtype, &device)? }; + let model = Lfm2VLModel::new(vb, &cfg)?; let processor = Lfm2VLProcessor::new(path, dtype, &device)?; let eos_token_id = gen_cfg.eos_token_id; let model_name = std::path::Path::new(path) @@ -46,14 +52,16 @@ impl<'a> Lfm2VLGenerateModel<'a> { chat_template, tokenizer, device, - // model, + model, processor, eos_token_id, model_name, }) } +} - pub fn generate(&mut self, mes: ChatCompletionParameters) -> Result<()> { +impl<'a> GenerateModel for Lfm2VLGenerateModel<'a> { + fn generate(&mut self, mes: ChatCompletionParameters) -> Result { let mes_render = self.chat_template.apply_chat_template(&mes)?; let mut logits = get_logit_processor( mes.temperature, @@ -63,11 +71,125 @@ impl<'a> Lfm2VLGenerateModel<'a> { ); let (pixel_values, pixel_attention_mask, spatial_shapes, text) = self.processor.process_info(&mes, &mes_render)?; - let input_ids = self.tokenizer.text_encode(text, &self.device)?; - println!("pixel_values: {}", pixel_values); - println!("pixel_attention_mask: {}", pixel_attention_mask); - println!("spatial_shapes: {}", spatial_shapes); - println!("input_ids: {}", input_ids); - Ok(()) + let mut input_ids = self.tokenizer.text_encode(text, &self.device)?; + let mut seq_len = input_ids.dim(1)?; + let prompt_tokens = seq_len as u32; + let mut seqlen_offset = 0; + let mut generate = vec![]; + let sample_len = mes.max_tokens.unwrap_or(1024); + let mut pixel_values = Some(pixel_values); + let mut pixel_attention_mask = Some(pixel_attention_mask); + let mut spatial_shapes = Some(spatial_shapes); + for _ in 0..sample_len { + let logit = self.model.forward( + &input_ids, + pixel_values.as_ref(), + pixel_attention_mask.as_ref(), + spatial_shapes.as_ref(), + seqlen_offset, + )?; + let logit = logit.squeeze(0)?.squeeze(0)?; + let next_token = logits.sample(&logit)?; + generate.push(next_token); + if next_token == self.eos_token_id { + break; + } + input_ids = Tensor::new(vec![next_token], &self.device)?.unsqueeze(0)?; + seqlen_offset += seq_len; + seq_len = 1; + pixel_values = None; + pixel_attention_mask = None; + spatial_shapes = None; + } + self.model.clear_cache(); + let completion_tokens = generate.len() as u32; + let decode = self.tokenizer.token_decode(generate)?; + let mes = build_completion_response( + decode, + &self.model_name, + Some(completion_tokens), + Some(prompt_tokens), + ); + Ok(mes) + } + + fn generate_stream( + &mut self, + mes: ChatCompletionParameters, + ) -> Result< + Box< + dyn rocket::futures::Stream< + Item = Result< + aha_openai_dive::v1::resources::chat::ChatCompletionChunkResponse, + anyhow::Error, + >, + > + Send + + Unpin + + '_, + >, + > { + let mes_render = self.chat_template.apply_chat_template(&mes)?; + let mut logits = get_logit_processor( + mes.temperature, + mes.top_p, + None, + mes.seed.unwrap_or(34562) as u64, + ); + let (pixel_values, pixel_attention_mask, spatial_shapes, text) = + self.processor.process_info(&mes, &mes_render)?; + let mut input_ids = self.tokenizer.text_encode(text, &self.device)?; + let mut seq_len = input_ids.dim(1)?; + let mut seqlen_offset = 0; + let sample_len = mes.max_tokens.unwrap_or(1024); + let mut pixel_values = Some(pixel_values); + let mut pixel_attention_mask = Some(pixel_attention_mask); + let mut spatial_shapes = Some(spatial_shapes); + let stream = stream! { + let mut err_tokens = vec![]; + for _ in 0..sample_len { + let logit = self.model.forward( + &input_ids, + pixel_values.as_ref(), + pixel_attention_mask.as_ref(), + spatial_shapes.as_ref(), + seqlen_offset, + )?; + let logit = logit.squeeze(0)?.squeeze(0)?; + let next_token = logits.sample(&logit)?; + let mut decode_ids = vec![]; + if !err_tokens.is_empty() { + decode_ids.extend_from_slice(&err_tokens); + } + decode_ids.push(next_token); + let decode = self.tokenizer.token_decode(decode_ids)?; + if decode.contains("�") { + err_tokens.push(next_token); + if err_tokens.len() > 3 { + err_tokens.clear(); + } + input_ids = Tensor::new(vec![next_token], &self.device)?.unsqueeze(0)?; + seqlen_offset += seq_len; + seq_len = 1; + pixel_values = None; + pixel_attention_mask = None; + spatial_shapes = None; + continue; + } + err_tokens.clear(); + let chunk = build_completion_chunk_response(decode, &self.model_name, None, None); + yield Ok(chunk); + if next_token == self.eos_token_id { + break; + } + input_ids = Tensor::new(vec![next_token], &self.device)?.unsqueeze(0)?; + seqlen_offset += seq_len; + seq_len = 1; + pixel_values = None; + pixel_attention_mask = None; + spatial_shapes = None; + } + self.model.clear_cache(); + }; + Ok(Box::new(Box::pin(stream))) } } diff --git a/src/models/lfm2vl/mod.rs b/src/models/lfm2vl/mod.rs index ce9b2a0..8b1baf7 100644 --- a/src/models/lfm2vl/mod.rs +++ b/src/models/lfm2vl/mod.rs @@ -1,4 +1,4 @@ pub mod config; pub mod generate; pub mod model; -pub mod processor; \ No newline at end of file +pub mod processor; diff --git a/src/models/lfm2vl/model.rs b/src/models/lfm2vl/model.rs index e69de29..1199e96 100644 --- a/src/models/lfm2vl/model.rs +++ b/src/models/lfm2vl/model.rs @@ -0,0 +1,325 @@ +use crate::{ + models::{ + common::{NaiveAttnTwoLinearMLPBlock, get_layer_norm}, + lfm2::model::Lfm2Decoder, + lfm2vl::config::{Lfm2VLConfig, Lfm2VLVisionConfig}, + }, + utils::{ + interpolate::interpolate_bilinear, + tensor_utils::{get_equal_mask, masked_scatter_dim0, prepare_mask}, + }, +}; +use anyhow::{Result, anyhow}; +use candle_core::{D, IndexOp, Tensor}; +use candle_nn::{Activation, LayerNorm, Linear, Module, VarBuilder, embedding, linear_b}; +use num::integer::Roots; + +pub struct Siglip2VisionEmbeddings { + // embed_dim: usize, + // patch_size: usize, + patch_embedding: Linear, + // position_embedding_size: usize, + // position_embedding: Embedding, + postitional_embeddings: Tensor, +} + +impl Siglip2VisionEmbeddings { + pub fn new(vb: VarBuilder, cfg: &Lfm2VLVisionConfig) -> Result { + let embed_dim = cfg.hidden_size; + let patch_size = cfg.patch_size; + let patch_embedding = linear_b( + cfg.num_channels * patch_size * patch_size, + embed_dim, + true, + vb.pp("patch_embedding"), + )?; + let position_embedding_size = cfg.num_patches.sqrt(); + let position_embedding = + embedding(cfg.num_patches, embed_dim, vb.pp("position_embedding"))?; + // (num_patches, embed_dim) -> (h, w, embed_dim) + // ->(embed_dim, h, w) -> (1, embe_dim, h, w) + let postitional_embeddings = position_embedding + .embeddings() + .reshape((position_embedding_size, position_embedding_size, ()))? + .permute((2, 0, 1))? + .unsqueeze(0)?; + Ok(Self { + // embed_dim, + // patch_size, + patch_embedding, + // position_embedding_size, + // position_embedding, + postitional_embeddings, + }) + } + + fn resize_positional_embeddings( + &self, + spatial_shapes: &Tensor, + max_length: usize, + ) -> Result { + let mut result_pos_embeddings = vec![]; + let bs = spatial_shapes.dim(0)?; + for i in 0..bs { + let shape_i = spatial_shapes.i(i)?.to_vec1::()?; + let height = *shape_i.first().unwrap_or(&32) as usize; + let width = *shape_i.get(1).unwrap_or(&32) as usize; + + if height == 0 || width == 0 || height * width > max_length { + return Err(anyhow!("img height or width illigal")); + } + // (1, dim, height, width) -> (height*width, dim) + let resize_embeddings = interpolate_bilinear( + &self.postitional_embeddings, + (height, width), + Some(false), + Some(true), + )? + .reshape(((), height * width))? + .transpose(0, 1)?; + let resize_embeddings = if height * width < max_length { + let pad = max_length - height * width; + let pad_embedding = resize_embeddings.i(0)?.unsqueeze(0)?.repeat((pad, 1))?; + Tensor::cat(&[&resize_embeddings, &pad_embedding], 0)? + } else { + resize_embeddings + }; + result_pos_embeddings.push(resize_embeddings); + } + + let result_pos_embeddings = Tensor::stack(&result_pos_embeddings, 0)?; + Ok(result_pos_embeddings) + } + + pub fn forward(&self, pixel_values: &Tensor, spatial_shapes: &Tensor) -> Result { + let patch_embeds = self.patch_embedding.forward(pixel_values)?; + let max_length = pixel_values.dim(1)?; + let resize_pos_embeddings = + self.resize_positional_embeddings(spatial_shapes, max_length)?; + let embedding = patch_embeds.add(&resize_pos_embeddings)?; + Ok(embedding) + } +} + +pub struct Siglip2Encoder { + layers: Vec, +} + +impl Siglip2Encoder { + pub fn new(vb: VarBuilder, cfg: &Lfm2VLVisionConfig) -> Result { + let vb_layers = vb.pp("layers"); + let mut layers = vec![]; + for i in 0..cfg.num_hidden_layers { + let layer = NaiveAttnTwoLinearMLPBlock::new( + vb_layers.pp(i), + cfg.hidden_size, + cfg.num_attention_heads, + None, + None, + true, + "self_attn", + Some("out_proj"), + cfg.intermediate_size, + cfg.hidden_act, + true, + "mlp", + "fc1", + "fc2", + cfg.layer_norm_eps, + "layer_norm1", + "layer_norm2", + )?; + layers.push(layer); + } + Ok(Self { layers }) + } + + pub fn forward(&self, xs: &Tensor, attention_mask: Option<&Tensor>) -> Result { + let mut xs = xs.clone(); + for layer in &self.layers { + xs = layer.forward(&xs, None, None, attention_mask, false)?; + } + Ok(xs) + } +} + +pub struct Siglip2VisionModel { + embeddings: Siglip2VisionEmbeddings, + encoder: Siglip2Encoder, + post_layernorm: LayerNorm, +} + +impl Siglip2VisionModel { + pub fn new(vb: VarBuilder, cfg: &Lfm2VLVisionConfig) -> Result { + let vb = vb.pp("vision_model"); + let embeddings = Siglip2VisionEmbeddings::new(vb.pp("embeddings"), cfg)?; + let encoder = Siglip2Encoder::new(vb.pp("encoder"), cfg)?; + let post_layernorm = get_layer_norm( + vb.pp("post_layernorm"), + cfg.layer_norm_eps, + cfg.hidden_size, + true, + )?; + Ok(Self { + embeddings, + encoder, + post_layernorm, + }) + } + + pub fn forward( + &self, + pixel_values: &Tensor, + attention_mask: &Tensor, + spatial_shapes: &Tensor, + ) -> Result { + let xs = self.embeddings.forward(pixel_values, spatial_shapes)?; + let mask = prepare_mask(attention_mask)?.to_dtype(xs.dtype())?; + let xs = self.encoder.forward(&xs, Some(&mask))?; + let xs = self.post_layernorm.forward(&xs)?; + Ok(xs) + } +} + +pub struct Lfm2VlMultiModalProjector { + factor: usize, + layer_norm: Option, + linear_1: Linear, + act: Activation, + linear_2: Linear, +} + +impl Lfm2VlMultiModalProjector { + pub fn new(vb: VarBuilder, cfg: &Lfm2VLConfig) -> Result { + let in_channels = cfg.vision_config.hidden_size * (cfg.downsample_factor).pow(2); + let factor = cfg.downsample_factor; + let layer_norm = if let Some(flag) = cfg.projector_use_layernorm + && !flag + { + None + } else { + let layer_norm = get_layer_norm( + vb.pp("layer_norm"), + cfg.vision_config.layer_norm_eps, + in_channels, + true, + )?; + Some(layer_norm) + }; + let linear_1 = linear_b( + in_channels, + cfg.projector_hidden_size, + cfg.projector_bias, + vb.pp("linear_1"), + )?; + let act = cfg.projector_hidden_act; + let linear_2 = linear_b( + cfg.projector_hidden_size, + cfg.text_config.hidden_size, + cfg.projector_bias, + vb.pp("linear_2"), + )?; + Ok(Self { + factor, + layer_norm, + linear_1, + act, + linear_2, + }) + } + + pub fn forward(&self, xs: &Tensor) -> Result { + let (bs, w, h, c) = xs.dims4()?; + let xs = xs.reshape((bs, w, h / self.factor, c * self.factor))?; + let xs = xs.permute((0, 2, 1, 3))?; + let xs = xs.reshape(( + bs, + h / self.factor, + w / self.factor, + c * self.factor * self.factor, + ))?; + let mut xs = xs.permute((0, 2, 1, 3))?.contiguous()?; + if let Some(norm) = &self.layer_norm { + xs = norm.forward(&xs)?; + } + xs = self.linear_1.forward(&xs)?.apply(&self.act)?; + xs = self.linear_2.forward(&xs)?; + Ok(xs) + } +} + +pub struct Lfm2VLModel { + vision_tower: Siglip2VisionModel, + multi_modal_projector: Lfm2VlMultiModalProjector, + language_model: Lfm2Decoder, + lm_head: Linear, + img_id: u32, +} + +impl Lfm2VLModel { + pub fn new(vb: VarBuilder, cfg: &Lfm2VLConfig) -> Result { + let vb = vb.pp("model"); + let vision_tower = Siglip2VisionModel::new(vb.pp("vision_tower"), &cfg.vision_config)?; + let multi_modal_projector = + Lfm2VlMultiModalProjector::new(vb.pp("multi_modal_projector"), cfg)?; + let language_model = Lfm2Decoder::new(vb.pp("language_model"), &cfg.text_config)?; + let lm_head = Linear::new(language_model.embed_tokens.embeddings().clone(), None); + Ok(Self { + vision_tower, + multi_modal_projector, + language_model, + lm_head, + img_id: cfg.image_token_id, + }) + } + + pub fn forward( + &mut self, + input_ids: &Tensor, + pixel_values: Option<&Tensor>, + pixel_attention_mask: Option<&Tensor>, + spatial_shapes: Option<&Tensor>, + seqlen_offset: usize, + ) -> Result { + let mut inputs_embeds = self.language_model.embed_tokens.forward(input_ids)?; + if let Some(pixel) = pixel_values + && let Some(mask) = pixel_attention_mask + && let Some(shapes) = spatial_shapes + { + let image_embeds = self.vision_tower.forward(pixel, mask, shapes)?; + println!("image_embeds: {}", image_embeds); + let bs = image_embeds.dim(0)?; + let img_featrure_length = mask.sum(1)?.to_vec1::()?; + let mut image_features = vec![]; + for img_idx in 0..bs { + let feature = image_embeds.i(img_idx)?; + let feature = feature.narrow(0, 0, img_featrure_length[img_idx] as usize)?; + let shape = shapes.i(img_idx)?.to_vec1::()?; + let h = shape[0]; + let w = shape[1]; + let feature = feature + .reshape((1, h as usize, w as usize, ()))? + .contiguous()?; + let img_embedding = self.multi_modal_projector.forward(&feature)?; + let dim = img_embedding.dim(D::Minus1)?; + let img_embedding = img_embedding.reshape(((), dim))?; + image_features.push(img_embedding); + } + let image_embeds = Tensor::cat(&image_features, 0)?; + println!("image_embeds: {}", image_embeds); + let image_mask = get_equal_mask(input_ids, self.img_id)?; + inputs_embeds = masked_scatter_dim0(&inputs_embeds, &image_embeds, &image_mask)?; + } + let output = self + .language_model + .forward(input_ids, Some(&inputs_embeds), seqlen_offset)?; + let seq_len = output.dim(1)?; + let last = output.narrow(1, seq_len - 1, 1)?; + let logits = self.lm_head.forward(&last)?; + Ok(logits) + } + + pub fn clear_cache(&mut self) { + self.language_model.clear_cache(); + } +} diff --git a/src/models/lfm2vl/processor.rs b/src/models/lfm2vl/processor.rs index 327020e..74236dd 100644 --- a/src/models/lfm2vl/processor.rs +++ b/src/models/lfm2vl/processor.rs @@ -33,17 +33,24 @@ pub struct Lfm2VLProcessor { image_thumbnail_token: String, } +#[allow(clippy::type_complexity)] impl Lfm2VLProcessor { pub fn new(path: &str, dtype: DType, device: &Device) -> Result { - let path = path.to_string(); assert!( - std::path::Path::new(&path).exists(), + std::path::Path::new(path).exists(), "model path file not exists" ); - let processor_cfg_path = path + "/processor_config.json"; - let processor_cfg: Lfm2ProcessorConfig = - serde_json::from_slice(&std::fs::read(processor_cfg_path)?)?; - let image_config = processor_cfg.image_processor; + let processor_cfg_path = path.to_string() + "/processor_config.json"; + let processor_cfg = + serde_json::from_slice::(&std::fs::read(processor_cfg_path)?); + + let image_config = match processor_cfg { + Ok(cfg) => cfg.image_processor, + Err(_) => { + let processor_cfg_path = path.to_string() + "/preprocessor_config.json"; + serde_json::from_slice::(&std::fs::read(processor_cfg_path)?)? + } + }; // 256 let max_thumbnail_image_patches = image_config.max_image_tokens * image_config.downsample_factor.pow(2); @@ -160,7 +167,7 @@ impl Lfm2VLProcessor { let (new_height, new_width) = img_smart_resize( height, width, - self.total_factor as u32, + self.total_factor, self.smart_resize_min_pixels as u32, self.smart_resize_max_pixels as u32, )?; @@ -331,7 +338,6 @@ impl Lfm2VLProcessor { ) = self.process_imgs(imgs)?; let text = self.expand_text_with_placeholders(text, num_cols_list, num_rows_list, image_size_list); - Ok((pixel_values, pixel_attention_mask, spatial_shapes, text)) } } diff --git a/src/models/mod.rs b/src/models/mod.rs index c15debb..200780d 100644 --- a/src/models/mod.rs +++ b/src/models/mod.rs @@ -33,70 +33,74 @@ use crate::models::{ fun_asr_nano::generate::FunAsrNanoGenerateModel, glm_asr_nano::generate::GlmAsrNanoGenerateModel, glm_ocr::generate::GlmOcrGenerateModel, hunyuan_ocr::generate::HunyuanOCRGenerateModel, lfm2::generate::Lfm2GenerateModel, - minicpm4::generate::MiniCPMGenerateModel, paddleocr_vl::generate::PaddleOCRVLGenerateModel, - qwen2_5vl::generate::Qwen2_5VLGenerateModel, qwen3::generate::Qwen3GenerateModel, - qwen3_5::generate::Qwen3_5GenerateModel, qwen3_asr::generate::Qwen3AsrGenerateModel, - qwen3vl::generate::Qwen3VLGenerateModel, rmbg2_0::generate::RMBG2_0Model, - voxcpm::generate::VoxCPMGenerate, + lfm2vl::generate::Lfm2VLGenerateModel, minicpm4::generate::MiniCPMGenerateModel, + paddleocr_vl::generate::PaddleOCRVLGenerateModel, qwen2_5vl::generate::Qwen2_5VLGenerateModel, + qwen3::generate::Qwen3GenerateModel, qwen3_5::generate::Qwen3_5GenerateModel, + qwen3_asr::generate::Qwen3AsrGenerateModel, qwen3vl::generate::Qwen3VLGenerateModel, + rmbg2_0::generate::RMBG2_0Model, voxcpm::generate::VoxCPMGenerate, }; #[derive(Debug, Clone, Copy, PartialEq, Eq, clap::ValueEnum)] pub enum WhichModel { - #[value(name = "lfm2-1.2b", hide = true)] + #[value(name = "lfm2-1.2b")] LFM2_1_2B, - #[value(name = "lfm2.5-1.2b-instruct", hide = true)] + #[value(name = "lfm2.5-1.2b-instruct")] LFM2_5_1_2BInstruct, - #[value(name = "minicpm4-0.5b", hide = true)] + #[value(name = "lfm2.5-vl-1.6b")] + LFM2_5VL1_6B, + #[value(name = "lfm2-vl-1.6b")] + LFM2VL1_6B, + #[value(name = "minicpm4-0.5b")] MiniCPM4_0_5B, - #[value(name = "qwen2.5vl-3b", hide = true)] - Qwen2_5vl3B, - #[value(name = "qwen2.5vl-7b", hide = true)] - Qwen2_5vl7B, - #[value(name = "qwen3-0.6b", hide = true)] + #[value(name = "qwen2.5vl-3b")] + Qwen2_5VL3B, + #[value(name = "qwen2.5vl-7b")] + Qwen2_5VL7B, + #[value(name = "qwen3-0.6b")] Qwen3_0_6B, - #[value(name = "qwen3.5-0.8b", hide = true)] + #[value(name = "qwen3.5-0.8b")] Qwen3_5_0_8B, - #[value(name = "qwen3.5-2b", hide = true)] + #[value(name = "qwen3.5-2b")] Qwen3_5_2B, - #[value(name = "qwen3.5-4b", hide = true)] + #[value(name = "qwen3.5-4b")] Qwen3_5_4B, - #[value(name = "qwen3.5-9b", hide = true)] + #[value(name = "qwen3.5-9b")] Qwen3_5_9B, - #[value(name = "qwen3.5-gguf", hide = true)] + #[value(name = "qwen3.5-gguf")] Qwen3_5Gguf, - #[value(name = "qwen3asr-0.6b", hide = true)] + #[value(name = "qwen3asr-0.6b")] Qwen3ASR0_6B, - #[value(name = "qwen3asr-1.7b", hide = true)] + #[value(name = "qwen3asr-1.7b")] Qwen3ASR1_7B, - #[value(name = "qwen3vl-2b", hide = true)] - Qwen3vl2B, - #[value(name = "qwen3vl-4b", hide = true)] - Qwen3vl4B, - #[value(name = "qwen3vl-8b", hide = true)] - Qwen3vl8B, - #[value(name = "qwen3vl-32b", hide = true)] - Qwen3vl32B, - #[value(name = "deepseek-ocr", hide = true)] + #[value(name = "qwen3vl-2b")] + Qwen3VL2B, + #[value(name = "qwen3vl-4b")] + Qwen3VL4B, + #[value(name = "qwen3vl-8b")] + Qwen3VL8B, + #[value(name = "qwen3vl-32b")] + Qwen3VL32B, + #[value(name = "deepseek-ocr")] DeepSeekOCR, - #[value(name = "deepseek-ocr2", hide = true)] + #[value(name = "deepseek-ocr2")] DeepSeekOCR2, - #[value(name = "hunyuan-ocr", hide = true)] + #[value(name = "hunyuan-ocr")] HunyuanOCR, - #[value(name = "paddleocr-vl", hide = true)] + #[value(name = "paddleocr-vl")] PaddleOCRVL, - #[value(name = "paddleocr-vl1.5", hide = true)] + #[value(name = "paddleocr-vl1.5")] PaddleOCRVL1_5, #[value(name = "rmbg2.0")] RMBG2_0, - #[value(name = "voxcpm", hide = true)] + #[value(name = "voxcpm")] VoxCPM, - #[value(name = "voxcpm1.5", hide = true)] + #[value(name = "voxcpm1.5")] VoxCPM1_5, - #[value(name = "glm-asr-nano-2512", hide = true)] + #[value(name = "glm-asr-nano-2512")] GlmASRNano2512, - #[value(name = "fun-asr-nano-2512", hide = true)] + #[value(name = "fun-asr-nano-2512")] FunASRNano2512, - #[value(name = "glm-ocr", hide = true)] + #[value(name = "glm-ocr")] GlmOCR, } @@ -106,9 +110,11 @@ impl WhichModel { match self { WhichModel::LFM2_1_2B => "LiquidAI/LFM2-1.2B", WhichModel::LFM2_5_1_2BInstruct => "LiquidAI/LFM2.5-1.2B-Instruct", + WhichModel::LFM2_5VL1_6B => "LiquidAI/LFM2.5-VL-1.6B", + WhichModel::LFM2VL1_6B => "LiquidAI/LFM2-VL-1.6B", WhichModel::MiniCPM4_0_5B => "OpenBMB/MiniCPM4-0.5B", - WhichModel::Qwen2_5vl3B => "Qwen/Qwen2.5-VL-3B-Instruct", - WhichModel::Qwen2_5vl7B => "Qwen/Qwen2.5-VL-7B-Instruct", + WhichModel::Qwen2_5VL3B => "Qwen/Qwen2.5-VL-3B-Instruct", + WhichModel::Qwen2_5VL7B => "Qwen/Qwen2.5-VL-7B-Instruct", WhichModel::Qwen3_0_6B => "Qwen/Qwen3-0.6B", WhichModel::Qwen3_5_0_8B => "Qwen/Qwen3.5-0.8B", WhichModel::Qwen3_5_2B => "Qwen/Qwen3.5-2B", @@ -117,10 +123,10 @@ impl WhichModel { WhichModel::Qwen3_5Gguf => "GGUF", WhichModel::Qwen3ASR0_6B => "Qwen/Qwen3-ASR-0.6B", WhichModel::Qwen3ASR1_7B => "Qwen/Qwen3-ASR-1.7B", - WhichModel::Qwen3vl2B => "Qwen/Qwen3-VL-2B-Instruct", - WhichModel::Qwen3vl4B => "Qwen/Qwen3-VL-4B-Instruct", - WhichModel::Qwen3vl8B => "Qwen/Qwen3-VL-8B-Instruct", - WhichModel::Qwen3vl32B => "Qwen/Qwen3-VL-32B-Instruct", + WhichModel::Qwen3VL2B => "Qwen/Qwen3-VL-2B-Instruct", + WhichModel::Qwen3VL4B => "Qwen/Qwen3-VL-4B-Instruct", + WhichModel::Qwen3VL8B => "Qwen/Qwen3-VL-8B-Instruct", + WhichModel::Qwen3VL32B => "Qwen/Qwen3-VL-32B-Instruct", WhichModel::DeepSeekOCR => "deepseek-ai/DeepSeek-OCR", WhichModel::DeepSeekOCR2 => "deepseek-ai/DeepSeek-OCR-2", WhichModel::HunyuanOCR => "Tencent-Hunyuan/HunyuanOCR", @@ -143,17 +149,19 @@ impl WhichModel { | WhichModel::Qwen3_0_6B | WhichModel::LFM2_1_2B | WhichModel::LFM2_5_1_2BInstruct => "llm", - WhichModel::Qwen2_5vl3B - | WhichModel::Qwen2_5vl7B - | WhichModel::Qwen3vl2B - | WhichModel::Qwen3vl4B - | WhichModel::Qwen3vl8B - | WhichModel::Qwen3vl32B + WhichModel::Qwen2_5VL3B + | WhichModel::Qwen2_5VL7B + | WhichModel::Qwen3VL2B + | WhichModel::Qwen3VL4B + | WhichModel::Qwen3VL8B + | WhichModel::Qwen3VL32B | WhichModel::Qwen3_5_0_8B | WhichModel::Qwen3_5_2B | WhichModel::Qwen3_5_4B | WhichModel::Qwen3_5_9B - | WhichModel::Qwen3_5Gguf => "vlm", + | WhichModel::Qwen3_5Gguf + | WhichModel::LFM2_5VL1_6B + | WhichModel::LFM2VL1_6B => "vlm", // OCR models WhichModel::DeepSeekOCR | WhichModel::DeepSeekOCR2 @@ -167,7 +175,8 @@ impl WhichModel { | WhichModel::GlmASRNano2512 | WhichModel::FunASRNano2512 => "asr", // Image models - WhichModel::RMBG2_0 | WhichModel::VoxCPM | WhichModel::VoxCPM1_5 => "image", + WhichModel::RMBG2_0 => "image", + WhichModel::VoxCPM | WhichModel::VoxCPM1_5 => "tts", } } } @@ -190,6 +199,7 @@ pub trait GenerateModel { pub enum ModelInstance<'a> { MiniCPM4(MiniCPMGenerateModel<'a>), Lfm2(Lfm2GenerateModel<'a>), + Lfm2VL(Lfm2VLGenerateModel<'a>), Qwen2_5VL(Qwen2_5VLGenerateModel<'a>), Qwen3(Qwen3GenerateModel<'a>), Qwen3_5(Qwen3_5GenerateModel<'a>), @@ -210,6 +220,7 @@ impl<'a> GenerateModel for ModelInstance<'a> { match self { ModelInstance::MiniCPM4(model) => model.generate(mes), ModelInstance::Lfm2(model) => model.generate(mes), + ModelInstance::Lfm2VL(model) => model.generate(mes), ModelInstance::Qwen2_5VL(model) => model.generate(mes), ModelInstance::Qwen3(model) => model.generate(mes), ModelInstance::Qwen3_5(model) => model.generate(mes), @@ -240,6 +251,7 @@ impl<'a> GenerateModel for ModelInstance<'a> { match self { ModelInstance::MiniCPM4(model) => model.generate_stream(mes), ModelInstance::Lfm2(model) => model.generate_stream(mes), + ModelInstance::Lfm2VL(model) => model.generate_stream(mes), ModelInstance::Qwen2_5VL(model) => model.generate_stream(mes), ModelInstance::Qwen3(model) => model.generate_stream(mes), ModelInstance::Qwen3_5(model) => model.generate_stream(mes), @@ -276,11 +288,19 @@ pub fn load_model<'a>( let model = Lfm2GenerateModel::init(path, None, None)?; ModelInstance::Lfm2(model) } - WhichModel::Qwen2_5vl3B => { + WhichModel::LFM2_5VL1_6B => { + let model = Lfm2VLGenerateModel::init(path, None, None)?; + ModelInstance::Lfm2VL(model) + } + WhichModel::LFM2VL1_6B => { + let model = Lfm2VLGenerateModel::init(path, None, None)?; + ModelInstance::Lfm2VL(model) + } + WhichModel::Qwen2_5VL3B => { let model = Qwen2_5VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen2_5VL(model) } - WhichModel::Qwen2_5vl7B => { + WhichModel::Qwen2_5VL7B => { let model = Qwen2_5VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen2_5VL(model) } @@ -320,19 +340,19 @@ pub fn load_model<'a>( let model = Qwen3AsrGenerateModel::init(path, None, None)?; ModelInstance::Qwen3ASR(model) } - WhichModel::Qwen3vl2B => { + WhichModel::Qwen3VL2B => { let model = Qwen3VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen3VL(Box::new(model)) } - WhichModel::Qwen3vl4B => { + WhichModel::Qwen3VL4B => { let model = Qwen3VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen3VL(Box::new(model)) } - WhichModel::Qwen3vl8B => { + WhichModel::Qwen3VL8B => { let model = Qwen3VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen3VL(Box::new(model)) } - WhichModel::Qwen3vl32B => { + WhichModel::Qwen3VL32B => { let model = Qwen3VLGenerateModel::init(path, None, None)?; ModelInstance::Qwen3VL(Box::new(model)) } diff --git a/src/utils/tensor_utils.rs b/src/utils/tensor_utils.rs index fbf2953..e491af3 100644 --- a/src/utils/tensor_utils.rs +++ b/src/utils/tensor_utils.rs @@ -1,3 +1,5 @@ +use std::f32; + use anyhow::{Result, anyhow}; use candle_core::{D, DType, Device, IndexOp, Tensor, shape::Dim}; use candle_nn::ops::sigmoid; @@ -32,6 +34,26 @@ pub fn attn_masked_fill(on_true: &Tensor, mask: &Tensor, on_false: f32) -> Resul Ok(filled) } +pub fn prepare_mask(mask: &Tensor) -> Result { + //(bs, seq_len) + // [[1, 1, 1, 1, 0, 0]] + // -> + // [[1, 1, 1, 1, 0, 0], + // [1, 1, 1, 1, 0, 0], + // [1, 1, 1, 1, 0, 0], + // [1, 1, 1, 1, 0, 0], + // [1, 1, 1, 1, 0, 0], + // [1, 1, 1, 1, 0, 0],] + // (bs, 1, 1, seq_len) + let seq_len = mask.dim(1)?; + let mask = mask.unsqueeze(1)?.unsqueeze(1)?; + let mask = mask.repeat((1, 1, seq_len, 1))?; + let on_true = mask.zeros_like()?.to_dtype(DType::F32)?; + let on_false = Tensor::new(f32::NEG_INFINITY, mask.device())?.broadcast_as(mask.shape())?; + let mask = mask.where_cond(&on_true, &on_false)?; + Ok(mask) +} + pub fn prepare_causal_attention_mask( b_size: usize, tgt_len: usize, diff --git a/tests/config_tests.rs b/tests/config_tests.rs index 62ca94b..b13fdd6 100644 --- a/tests/config_tests.rs +++ b/tests/config_tests.rs @@ -1,5 +1,13 @@ use aha::models::{ - deepseek_ocr::config::DeepseekOCRConfig, hunyuan_ocr::config::HunYuanVLConfig, lfm2::config::Lfm2Config, lfm2vl::config::{Lfm2ProcessorConfig, Lfm2VLConfig}, minicpm4::config::MiniCPM4Config, paddleocr_vl::config::PaddleOCRVLConfig, qwen2_5vl::config::Qwen2_5VLConfig, qwen3vl::config::Qwen3VLConfig, voxcpm::config::VoxCPMConfig + deepseek_ocr::config::DeepseekOCRConfig, + hunyuan_ocr::config::HunYuanVLConfig, + lfm2::config::Lfm2Config, + lfm2vl::config::{Lfm2ProcessorConfig, Lfm2VLConfig}, + minicpm4::config::MiniCPM4Config, + paddleocr_vl::config::PaddleOCRVLConfig, + qwen2_5vl::config::Qwen2_5VLConfig, + qwen3vl::config::Qwen3VLConfig, + voxcpm::config::VoxCPMConfig, }; use anyhow::Result; @@ -104,7 +112,8 @@ fn lfm2vl_config() -> Result<()> { let config: Lfm2VLConfig = serde_json::from_slice(&std::fs::read(config_path)?)?; println!("{:?}", config); let processor_config_path = model_path.to_string() + "/processor_config.json"; - let processor_config: Lfm2ProcessorConfig = serde_json::from_slice(&std::fs::read(processor_config_path)?)?; + let processor_config: Lfm2ProcessorConfig = + serde_json::from_slice(&std::fs::read(processor_config_path)?)?; println!("{:?}", processor_config); Ok(()) -} \ No newline at end of file +} diff --git a/tests/test_health_models.rs b/tests/test_health_models.rs index ed0e334..1e3b1eb 100644 --- a/tests/test_health_models.rs +++ b/tests/test_health_models.rs @@ -8,8 +8,8 @@ fn test_model_type_classification() { // Since get_model_type and get_model_id are private to api.rs, // we document the expected behavior here for reference: // - // LLM models: MiniCPM4_0_5B, Qwen2_5vl3B, Qwen2_5vl7B, Qwen3_0_6B, - // Qwen3vl2B, Qwen3vl4B, Qwen3vl8B, Qwen3vl32B + // LLM models: MiniCPM4_0_5B, Qwen2_5VL3B, Qwen2_5VL7B, Qwen3_0_6B, + // Qwen3VL2B, Qwen3VL4B, Qwen3VL8B, Qwen3VL32B // OCR models: DeepSeekOCR, HunyuanOCR, PaddleOCRVL // ASR models: Qwen3ASR0_6B, Qwen3ASR1_7B, GlmASRNano2512, FunASRNano2512 // Image models: RMBG2_0, VoxCPM, VoxCPM1_5 @@ -17,13 +17,13 @@ fn test_model_type_classification() { // This test documents the expected model type classification let llm_models = [ WhichModel::MiniCPM4_0_5B, - WhichModel::Qwen2_5vl3B, - WhichModel::Qwen2_5vl7B, + WhichModel::Qwen2_5VL3B, + WhichModel::Qwen2_5VL7B, WhichModel::Qwen3_0_6B, - WhichModel::Qwen3vl2B, - WhichModel::Qwen3vl4B, - WhichModel::Qwen3vl8B, - WhichModel::Qwen3vl32B, + WhichModel::Qwen3VL2B, + WhichModel::Qwen3VL4B, + WhichModel::Qwen3VL8B, + WhichModel::Qwen3VL32B, ]; let ocr_models = [ diff --git a/tests/test_lfm2.rs b/tests/test_lfm2.rs index aea053a..08cff28 100644 --- a/tests/test_lfm2.rs +++ b/tests/test_lfm2.rs @@ -9,19 +9,18 @@ use std::{pin::pin, time::Instant}; #[test] fn lfm2_generate() -> Result<()> { // test with cuda: RUST_BACKTRACE=1 cargo test -F cuda --test test_lfm2 lfm2_generate -r -- --nocapture - // test with cuda+flash-attn: RUST_BACKTRACE=1 cargo test -F cuda,flash-attn qwen3_0_6b_generate -r -- --nocapture let save_dir = aha::utils::get_default_save_dir().ok_or(anyhow::anyhow!("Failed to get save dir"))?; - // let model_path = format!("{}/LiquidAI/LFM2-1.2B/", save_dir); - let model_path = format!("{}/LiquidAI/LFM2.5-1.2B-Instruct/", save_dir); + let model_path = format!("{}/LiquidAI/LFM2-1.2B/", save_dir); + // let model_path = format!("{}/LiquidAI/LFM2.5-1.2B-Instruct/", save_dir); let message = r#" { "model": "lfm2", "messages": [ { "role": "user", - "content": "你如何看待AI" + "content": "你是谁,你如何看待AI" } ] } diff --git a/tests/test_lfm2vl.rs b/tests/test_lfm2vl.rs index 9665d5d..22bbbb1 100644 --- a/tests/test_lfm2vl.rs +++ b/tests/test_lfm2vl.rs @@ -1,13 +1,71 @@ -use std::time::Instant; +use std::{pin::pin, time::Instant}; -use aha::{chat::ChatCompletionParameters, models::lfm2vl::generate::Lfm2VLGenerateModel}; +use aha::{ + chat::ChatCompletionParameters, + models::{GenerateModel, lfm2vl::generate::Lfm2VLGenerateModel}, +}; use anyhow::Result; +use rocket::futures::StreamExt; #[test] fn lfm2vl_generate() -> Result<()> { // test with cuda: RUST_BACKTRACE=1 cargo test -F cuda --test test_lfm2vl lfm2vl_generate -r -- --nocapture - + let save_dir = aha::utils::get_default_save_dir().ok_or(anyhow::anyhow!("Failed to get save dir"))?; + // let model_path = format!("{}/LiquidAI/LFM2.5-VL-1.6B/", save_dir); + let model_path = format!("{}/LiquidAI/LFM2-VL-1.6B/", save_dir); + let message = r#" + { + "model": "lfm2vl", + "messages": [ + { + "role": "user", + "content": [ + { + "type": "image", + "image_url": + { + "url": "file://./assets/img/ocr_test1.png" + } + }, + { + "type": "text", + "text": "图片里面是什么" + } + ] + } + ] + } + "#; + let mes: ChatCompletionParameters = serde_json::from_str(message)?; + let i_start = Instant::now(); + let mut model = Lfm2VLGenerateModel::init(&model_path, None, None)?; + let i_duration = i_start.elapsed(); + println!("Time elapsed in load model is: {:?}", i_duration); + + let i_start = Instant::now(); + let result = model.generate(mes)?; + let i_duration = i_start.elapsed(); + println!("generate: \n {:?}", result); + if let Some(usage) = &result.usage { + let num_token = usage.total_tokens; + let duration_secs = i_duration.as_secs_f64(); + let tps = num_token as f64 / duration_secs; + println!("Tokens per second (TPS): {:.2}", tps); + } + println!("Time elapsed in generate is: {:?}", i_duration); + + Ok(()) +} + +#[tokio::test] +async fn lfm2vl_stream() -> Result<()> { + // test with cuda: RUST_BACKTRACE=1 cargo test -F cuda --test test_lfm2vl lfm2vl_stream -r -- --nocapture + // test with cuda+flash-attn: RUST_BACKTRACE=1 cargo test -F cuda,flash-attn qwen3_0_6b_generate -r -- --nocapture + + let save_dir = + aha::utils::get_default_save_dir().ok_or(anyhow::anyhow!("Failed to get save dir"))?; + // let model_path = format!("{}/LiquidAI/LFM2-1.2B/", save_dir); let model_path = format!("{}/LiquidAI/LFM2.5-VL-1.6B/", save_dir); let message = r#" { @@ -39,16 +97,13 @@ fn lfm2vl_generate() -> Result<()> { println!("Time elapsed in load model is: {:?}", i_duration); let i_start = Instant::now(); - let result = model.generate(mes)?; + // let result = model.generate(mes)?; + let mut stream = pin!(model.generate_stream(mes)?); let i_duration = i_start.elapsed(); - // println!("generate: \n {:?}", result); - // if let Some(usage) = &result.usage { - // let num_token = usage.total_tokens; - // let duration_secs = i_duration.as_secs_f64(); - // let tps = num_token as f64 / duration_secs; - // println!("Tokens per second (TPS): {:.2}", tps); - // } - // println!("Time elapsed in generate is: {:?}", i_duration); + while let Some(token) = stream.next().await { + println!("generate: \n {:?}", token); + } + println!("Time elapsed in generate is: {:?}", i_duration); Ok(()) -} \ No newline at end of file +} diff --git a/tests/weight_test.rs b/tests/weight_test.rs index cd949b8..f80389d 100644 --- a/tests/weight_test.rs +++ b/tests/weight_test.rs @@ -287,3 +287,26 @@ fn lfm2_weight() -> Result<()> { println!("model_list: {:?}", model_list); Ok(()) } + +#[test] +fn lfm2vl_weight() -> Result<()> { + // cargo test -F cuda --test weight_test lfm2vl_weight -r -- --nocapture + let save_dir = + aha::utils::get_default_save_dir().ok_or(anyhow::anyhow!("Failed to get save dir"))?; + // let model_path = format!("{}/LiquidAI/LFM2.5-VL-1.6B/", save_dir); + let model_path = format!("{}/LiquidAI/LFM2-VL-1.6B/", save_dir); + let model_list = find_type_files(&model_path, "safetensors")?; + + let device = Device::Cpu; + for m in &model_list { + let weights = safetensors::load(m, &device)?; + for (key, tensor) in weights.iter() { + // if key.contains("lm_head") { + // println!("=== {} === {:?}", key, tensor.shape()); + // } + println!("=== {} === {:?}", key, tensor.shape()); + } + } + println!("model_list: {:?}", model_list); + Ok(()) +}