Character Level Language Model implemented following "Bengio.et.al 2003"
Project description
Character-Level Language Models Repo 🕺🏽
This repository contains multiple character-level language models (charLLM). Each language model is designed to generate text at the character level, providing a granular level of control and flexibility.
🌟 Available Language Models
- Character-Level MLP LLM (First MLP LLM)
- GPT-2 (under process)
Character-Level MLP
The Character-Level MLP language model is implemented based on the approach described in the paper "A Neural Probabilistic Language Model" by Bential et al. (2002). It utilizes a multilayer perceptron architecture to generate text at the character level.
Installation
With PIP
This repository is tested on Python 3.8+, and PyTorch 2.0.0+.
First, create a virtual environment with the version of Python you're going to use and activate it.
Then, you will need to install PyTorch.
When backends has been installed, CharLLMs can be installed using pip as follows:
pip install charLLM
With GIT
CharLLMs can be installed using conda as follows:
git clone https://github.com/RAravindDS/Neural-Probabilistic-Language-Model.git
Quick Tour
To use the Character-Level MLP language model, follow these steps:
- Install the package dependencies.
- Import the
CharMLP
class from thecharLLM
module. - Create an instance of the
CharMLP
class. - Train the model on a suitable dataset.
- Generate text using the trained model.
Demo for NPLM
# Import the class
>>> from charLLM import NPLM # Neurl Probablistic Language Model
>>> text_path = "path-to-text-file.txt"
>>> model_parameters = {
"block_size" :3,
"train_size" :0.8,
'epochs' :10000,
'batch_size' :32,
'hidden_layer' :100,
'embedding_dimension' :50,
'learning_rate' :0.1
}
>>> obj = NPLM(text_path, model_parameters) # Initialize the class
>>> obj.train_model()
## It outputs the val_loss and image
>>> obj.sampling(words_needed=10) #It samples 10 tokens.
Model Output Graph
Feel free to explore the repository and experiment with the different language models provided.
Contributions
Contributions to this repository are welcome. If you have implemented a novel character-level language model or would like to enhance the existing models, please consider contributing to the project.
License
This repository is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file charLLM-0.0.4.tar.gz
.
File metadata
- Download URL: charLLM-0.0.4.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4829a5a9d356eee6c0e2fdf49f0d8ef67677986b11c43f53d561803bf075cd4 |
|
MD5 | 426e8d83d2c539760e1cd1c2bc127bd0 |
|
BLAKE2b-256 | 3295b5609d675e51999f7690e338b3b0a40411fbe149b59be7fa4278d84bad7f |
File details
Details for the file charLLM-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: charLLM-0.0.4-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 722cd739e7b0549bb7eb046a630441f0021e8c5e38da085138696a16b61a213a |
|
MD5 | 71d216158db34731a301e0600cff6396 |
|
BLAKE2b-256 | bb22738cf70c80533e1d329472bce80ada2d42c49bb8f5023f336be4dfd195bf |