Skip to main content

aha/models/lfm2vl/
config.rs

1use candle_nn::Activation;
2
3use crate::models::lfm2::config::Lfm2Config;
4
5#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
6pub struct Lfm2VLConfig {
7    pub do_image_splitting: bool,
8    pub downsample_factor: usize,
9    pub dtype: String,
10    pub encoder_patch_size: usize,
11    pub image_token_id: u32,
12    pub max_image_tokens: usize,
13    pub max_pixels_tolerance: f64,
14    pub max_tiles: usize,
15    pub min_image_tokens: usize,
16    pub min_tiles: usize,
17    pub model_type: String,
18    pub projector_bias: bool,
19    pub projector_hidden_act: Activation,
20    pub projector_hidden_size: usize,
21    pub projector_use_layernorm: Option<bool>,
22    pub text_config: Lfm2Config,
23    pub tile_size: usize,
24    pub use_image_special_tokens: bool,
25    pub use_thumbnail: bool,
26    pub vision_config: Lfm2VLVisionConfig,
27}
28
29#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
30pub struct Lfm2VLVisionConfig {
31    pub attention_dropout: f64,
32    pub dtype: String,
33    pub hidden_act: Activation,
34    pub hidden_size: usize,
35    pub intermediate_size: usize,
36    pub layer_norm_eps: f64,
37    pub model_type: String,
38    pub num_attention_heads: usize,
39    pub num_channels: usize,
40    pub num_hidden_layers: usize,
41    pub num_patches: usize,
42    pub patch_size: usize,
43    pub vision_use_head: bool,
44}
45
46#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
47pub struct Lfm2ImageConfig {
48    pub do_image_splitting: bool,
49    pub do_normalize: bool,
50    pub do_pad: bool,
51    pub do_rescale: bool,
52    pub do_resize: bool,
53    pub downsample_factor: usize,
54    pub encoder_patch_size: usize,
55    pub image_mean: Vec<f64>,
56    pub image_std: Vec<f64>,
57    pub max_image_tokens: usize,
58    pub max_num_patches: usize,
59    pub max_pixels_tolerance: f64,
60    pub max_tiles: usize,
61    pub min_image_tokens: usize,
62    pub min_tiles: usize,
63    pub resample: usize,
64    pub rescale_factor: f64,
65    pub size: Size,
66    pub tile_size: usize,
67    pub use_thumbnail: bool,
68}
69
70#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
71pub struct Size {
72    pub height: usize,
73    pub width: usize,
74}
75
76#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
77pub struct Lfm2ProcessorConfig {
78    pub image_processor: Lfm2ImageConfig,
79}