AIBA BERT-BiLSTM Multi-Task Model

Multi-task BERT-BiLSTM model for banking transaction processing in multiple languages.

🎯 Tasks

  1. Named Entity Recognition (NER) - Extract transaction entities (receiver name, INN, amount, etc.)
  2. Intent Classification - Classify transaction intent (create, list, partial)
  3. Language Detection - Detect input language (Uzbek Latin/Cyrillic, Russian, English, Mixed)

πŸ“Š Performance

Task Metric Score
NER F1 0.9941
Intent F1 0.9611
Language F1 0.9146
Average F1 0.9566

πŸš€ Quick Start

Installation

pip install transformers torch safetensors huggingface-hub

Basic Usage

from nn_model import load_model_and_tokenizer
import torch

# Load model
model, tokenizer, config = load_model_and_tokenizer("YOUR_USERNAME/aiba-bert-bilstm")

# Example text
text = "Qabul qiluvchi Omad Biznes MCHJ STIR 123456789 summa 500000 UZS"

# Tokenize
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=192)

# Predict
with torch.no_grad():
    outputs = model(**inputs)

# Get results
ner_logits = outputs['ner_logits']
intent_logits = outputs['intent_logits']
lang_logits = outputs['lang_logits']

Using the Inference Script

from inference import predict

result = predict("ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ООО ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ ИНН 987654321 сумма 1000000 Ρ€ΡƒΠ±")

print(f"Intent: {result['intent']}")
print(f"Language: {result['language']}")
print(f"Entities: {result['entities']}")

πŸ“¦ Model Architecture

  • Base: google-bert/bert-base-multilingual-uncased
  • NER Head: BiLSTM (256 hidden units) + Linear classifier
  • Pooling: Attention-based pooling for sequence tasks
  • Intent Head: 3-layer MLP with GELU activation
  • Language Head: 2-layer MLP with GELU activation

🏷️ Labels

NER Entities (16)

agreement_number_indicator, amount, date, description, indicator_amount, indicator_date, indicator_description, indicator_receiver_hr, indicator_receiver_inn, indicator_receiver_name, indicator_status, mfo, receiver_hr, receiver_inn, receiver_name, status

Intents (3)

create_transaction, list_transaction, partial_entities

Languages (5)

en, mixed, ru, uz_cyrl, uz_latn

πŸ“‚ Repository Structure

.
β”œβ”€β”€ config.json              # Model configuration
β”œβ”€β”€ pytorch_model.bin        # Model weights
β”œβ”€β”€ model.safetensors       # Model weights (safetensors format)
β”œβ”€β”€ tokenizer_config.json   # Tokenizer configuration
β”œβ”€β”€ nn_model.py             # Model architecture code
β”œβ”€β”€ inference.py            # Example inference script
β”œβ”€β”€ requirements.txt        # Python dependencies
└── README.md              # This file

πŸ”§ Training Details

  • Epochs: 3
  • Learning Rate: 8e-06
  • Batch Size: 48
  • Max Sequence Length: 192
  • Optimizer: AdamW
  • Loss Weights: NER=0.5, Intent=0.35, Lang=0.15

πŸ’‘ Use Cases

  • Banking Chatbots: Extract transaction details from user messages
  • Payment Processing: Automatically parse payment instructions
  • Transaction Routing: Classify transaction type and route appropriately
  • Multilingual Support: Handle inputs in Uzbek, Russian, and English

⚠️ Limitations

  • Maximum sequence length: 192 tokens
  • Trained on banking/financial domain data
  • Best performance on transaction-related text

πŸ“„ Citation

@misc{aiba-bert-bilstm,
  title = {AIBA BERT-BiLSTM Multi-Task Model},
  author = {YOUR_USERNAME},
  year = {2024},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/YOUR_USERNAME/aiba-bert-bilstm}}
}

πŸ“§ Contact

For questions or issues, please open an issue on the repository.

πŸ“œ License

Apache 2.0

Downloads last month
18
Safetensors
Model size
0.2B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support