--- tags: - bert - transformers - litert - tflite - edge - on-device license: apache-2.0 base_model: google-bert/bert-base-uncased pipeline_tag: feature-extraction --- # bert-base-uncased - LiteRT This is a [LiteRT](https://ai.google.dev/edge/litert) (formerly TensorFlow Lite) conversion of [google-bert/bert-base-uncased](https://huggingface.co/google-bert/bert-base-uncased) for efficient on-device inference. ## Model Details | Property | Value | |----------|-------| | **Original Model** | [google-bert/bert-base-uncased](https://huggingface.co/google-bert/bert-base-uncased) | | **Format** | LiteRT (.tflite) | | **File Size** | 414.7 MB | | **Task** | Feature Extraction / Classification Base | | **Max Sequence Length** | 128 | | **Output Dimension** | 768 | | **Pooling Mode** | N/A (Full hidden states) | ## Performance Benchmarked on AMD CPU (WSL2): | Metric | Value | |--------|-------| | **Inference Latency** | 83.0 ms | | **Throughput** | 12.0/sec | | **Cosine Similarity vs Original** | 1.0000 ✅ | ## Quick Start ```python import numpy as np from ai_edge_litert.interpreter import Interpreter from transformers import AutoTokenizer # Load model and tokenizer interpreter = Interpreter(model_path="google-bert_bert-base-uncased.tflite") interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased") def get_hidden_states(text: str) -> np.ndarray: """Get hidden states for input text.""" encoded = tokenizer( text, padding="max_length", max_length=128, truncation=True, return_tensors="np" ) interpreter.set_tensor(input_details[0]["index"], encoded["input_ids"].astype(np.int64)) interpreter.set_tensor(input_details[1]["index"], encoded["attention_mask"].astype(np.int64)) interpreter.invoke() return interpreter.get_tensor(output_details[0]["index"]) # Example hidden = get_hidden_states("Hello, world!") cls_embedding = hidden[0, 0, :] # CLS token for classification print(f"Hidden shape: {hidden.shape}") # (1, 128, 768) ``` ## Files - `google-bert_bert-base-uncased.tflite` - The LiteRT model file ## Conversion Details - **Conversion Tool**: [ai-edge-torch](https://github.com/google-ai-edge/ai-edge-torch) - **Conversion Date**: 2026-01-12 - **Source Framework**: PyTorch → LiteRT - **Validation**: Cosine similarity 1.0000 vs original ## Intended Use - **Mobile Applications**: On-device semantic search, RAG systems - **Edge Devices**: IoT, embedded systems, Raspberry Pi - **Offline Processing**: Privacy-preserving inference - **Low-latency Applications**: Real-time processing ## Limitations - Fixed sequence length (128 tokens) - CPU inference (GPU delegate requires setup) - Tokenizer loaded separately from original model - Float32 precision ## License This model inherits the license from the original: - **License**: Apache 2.0 ([source](https://huggingface.co/google-bert/bert-base-uncased)) ## Citation ```bibtex @article{devlin2018bert, title={BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding}, author={Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, journal={arXiv preprint arXiv:1810.04805}, year={2018} } ``` ## Acknowledgments - Original model by [google-bert](https://huggingface.co/google-bert) - Conversion using [ai-edge-torch](https://github.com/google-ai-edge/ai-edge-torch) --- *Converted by [Bombek1](https://huggingface.co/Bombek1)*