| from transformers import PretrainedConfig, VisionEncoderDecoderConfig |
| from typing import Any, Optional |
|
|
|
|
| class Magiv2Config(PretrainedConfig): |
| """ |
| Klasa konfiguracyjna dla modelu Magiv2. |
| |
| Magiv2Config dziedziczy po PretrainedConfig z biblioteki transformers i definiuje |
| kompletną konfigurację dla modelu wizyjnego składającego się z trzech głównych komponentów: |
| - Model detekcji obiektów (detection) |
| - Model OCR (rozpoznawanie tekstu) |
| - Model embedowania wyciętych fragmentów obrazu (crop embeddings) |
| |
| Attributes: |
| model_type: Identyfikator typu modelu dla biblioteki transformers |
| disable_ocr: Flaga wyłączająca moduł OCR |
| disable_crop_embeddings: Flaga wyłączająca moduł embedowania wyciętych fragmentów |
| disable_detections: Flaga wyłączająca moduł detekcji obiektów |
| detection_model_config: Konfiguracja modelu detekcji (po deserializacji) |
| ocr_model_config: Konfiguracja modelu OCR (po deserializacji) |
| crop_embedding_model_config: Konfiguracja modelu embedowania (po deserializacji) |
| detection_image_preprocessing_config: Parametry przetwarzania obrazu dla detekcji |
| ocr_pretrained_processor_path: Ścieżka do wytrenowanego procesora OCR |
| crop_embedding_image_preprocessing_config: Parametry przetwarzania obrazu dla embedowania |
| """ |
|
|
| |
| model_type: str = "magiv2" |
|
|
| def __init__( |
| self, |
| disable_ocr: bool = False, |
| disable_crop_embeddings: bool = False, |
| disable_detections: bool = False, |
| detection_model_config: Optional[dict[str, Any]] = None, |
| ocr_model_config: Optional[dict[str, Any]] = None, |
| crop_embedding_model_config: Optional[dict[str, Any]] = None, |
| detection_image_preprocessing_config: Optional[dict[str, Any]] = None, |
| ocr_pretrained_processor_path: Optional[str] = None, |
| crop_embedding_image_preprocessing_config: Optional[dict[str, Any]] = None, |
| **kwargs: Any, |
| ) -> None: |
| """ |
| Inicjalizuje konfigurację modelu Magiv2. |
| |
| Konstruktor przyjmuje parametry kontrolujące które moduły modelu są aktywne, |
| oraz konfiguracje dla poszczególnych komponentów. Konfiguracje przekazane jako |
| słowniki są deserializowane do odpowiednich obiektów Config z transformers. |
| |
| Args: |
| disable_ocr: Czy wyłączyć moduł rozpoznawania tekstu (OCR). |
| Domyślnie False - OCR jest aktywne. |
| disable_crop_embeddings: Czy wyłączyć moduł tworzenia embeddingów dla wyciętych |
| fragmentów obrazu. Domyślnie False - embedowanie aktywne. |
| disable_detections: Czy wyłączyć moduł detekcji obiektów na obrazie. |
| Domyślnie False - detekcja aktywna. |
| detection_model_config: Słownik z konfiguracją modelu detekcji obiektów. |
| Jeśli podany, zostanie zdeserializowany do PretrainedConfig. |
| ocr_model_config: Słownik z konfiguracją modelu OCR (encoder-decoder). |
| Jeśli podany, zostanie zdeserializowany do VisionEncoderDecoderConfig. |
| crop_embedding_model_config: Słownik z konfiguracją modelu embedowania wyciętych |
| fragmentów. Jeśli podany, zostanie zdeserializowany |
| do PretrainedConfig. |
| detection_image_preprocessing_config: Słownik z parametrami preprocessingu obrazu |
| dla modułu detekcji (np. rozmiar, normalizacja). |
| ocr_pretrained_processor_path: Ścieżka do katalogu lub Hub ID z wytrenowanym |
| procesorem obrazu dla modułu OCR. |
| crop_embedding_image_preprocessing_config: Słownik z parametrami preprocessingu |
| obrazu dla modułu embedowania. |
| **kwargs: Dodatkowe argumenty przekazywane do klasy bazowej PretrainedConfig. |
| |
| Returns: |
| None |
| |
| Note: |
| - Konfiguracje modeli są deserializowane z dict do obiektów Config tylko wtedy, |
| gdy zostały przekazane (nie są None) |
| - Flagi disable_* pozwalają na selektywne wyłączanie poszczególnych modułów |
| - Wszystkie dodatkowe kwargs są przekazywane do klasy bazowej PretrainedConfig |
| """ |
| |
| self.disable_ocr: bool = disable_ocr |
| self.disable_crop_embeddings: bool = disable_crop_embeddings |
| self.disable_detections: bool = disable_detections |
|
|
| |
| self.kwargs: dict[str, Any] = kwargs |
|
|
| |
| |
| self.detection_model_config: Optional[PretrainedConfig] = None |
| self.ocr_model_config: Optional[VisionEncoderDecoderConfig] = None |
| self.crop_embedding_model_config: Optional[PretrainedConfig] = None |
|
|
| |
| if detection_model_config is not None: |
| self.detection_model_config = PretrainedConfig.from_dict( |
| detection_model_config |
| ) |
|
|
| |
| |
| if ocr_model_config is not None: |
| self.ocr_model_config = VisionEncoderDecoderConfig.from_dict( |
| ocr_model_config |
| ) |
|
|
| |
| if crop_embedding_model_config is not None: |
| self.crop_embedding_model_config = PretrainedConfig.from_dict( |
| crop_embedding_model_config |
| ) |
|
|
| |
| |
| self.detection_image_preprocessing_config: Optional[dict[str, Any]] = ( |
| detection_image_preprocessing_config |
| ) |
|
|
| |
| self.ocr_pretrained_processor_path: Optional[str] = ocr_pretrained_processor_path |
|
|
| |
| |
| self.crop_embedding_image_preprocessing_config: Optional[dict[str, Any]] = ( |
| crop_embedding_image_preprocessing_config |
| ) |
|
|
| |
| super().__init__(**kwargs) |
|
|