Changelog:
**2023-07-07:**
- **Bug 1:** Initial model `LongNet` was not able to differentiate between multimodal and language only models.
- **Solution:** Introduced an additional class `LongNetSelector` that uses a factory method `get_model` to create either `LongNet` (multimodal) or `LongNetLanguage` (language only) model based on the user's input.
- **Bug 2:** The original model architecture lacked the capability to handle language only scenarios effectively.
- **Solution:** Introduced a new `LongNetLanguage` class, derived from `LongNet`, specifically designed to handle language-only tasks.
- **Bug 3:** The `LongNet` and `LongNetLanguage` classes were not tested thoroughly, which could lead to unnoticed bugs and failures.
- **Solution:** Developed a `LongNetTest` class that can simulate a forward pass through both types of models using dummy data, thus validating their architectures.