Skip to content

Instantly share code, notes, and snippets.

@kevinbird15
Last active April 30, 2018 05:13
Show Gist options
  • Save kevinbird15/e4bd985620741c6e55ed621fd8655a3a to your computer and use it in GitHub Desktop.
Save kevinbird15/e4bd985620741c6e55ed621fd8655a3a to your computer and use it in GitHub Desktop.
Counting Example for Language Model
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Building a Language Model\n## Using a Simple Idea to Generate Valuable Insights\nAuthored By: [Kevin Bird](https://twitter.com/kjbird15) "
},
{
"metadata": {},
"cell_type": "markdown",
"source": "After many classes of building language models, I decided it was time to understand exactly what was going on underneath the hood. The problem I was having with the language models we had already created is that they had thousands of words. This meant that in order to train them properly, the model needed hundreds of columns to describe the words and hundreds of hidden activations for the model to optimize. My goal was to create a simple model that would be predictive using the same model structure, but on a much less massive scale. I would highly recommend following along and trying to build this at some point and see how it goes!"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import fastai\nfrom fastai import learner\nfrom fastai import dataset\nfrom fastai import model\nfrom pathlib import Path\nfrom fastai.text import *\n\nimport pandas as pd\nimport numpy as np\nimport spacy\nimport json\nimport re\nimport html",
"execution_count": 1,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Creating the Data\nMy first roadblock that I ran into was how to get data that would be useful for such a task.\n\nUsually I see people use completely random data when they don't have a dataset to show a concept. Instead, I'm going to use a counting dataset that starts at a random number and then counts up 10, wrapping around from \"nine\" to \"zero\". \n\nThis gave me data that should be quite easy to predict since it was fairly predictable. The only time they wouldn’t follow the rule of increment by one is between the end of one row and the beginning of another row."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "numbers = [\"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\"]\n\ndef DataGenerator():\n numlist = \"\"\n starting_num = random.randint(0,9) #pick a random number from 0-9\n for i in range(10):\n if i==0:\n numlist = str(numbers[(starting_num+i)%10])\n else:\n numlist = numlist + \" \" + str(numbers[(starting_num+i)%10])\n return numlist",
"execution_count": 2,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Time to test that my function actually works..."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "DataGenerator()",
"execution_count": 5,
"outputs": [
{
"data": {
"text/plain": "'eight nine zero one two three four five six seven'"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Perfect, we are now counting 10 numbers and printing them out. Now it's time to put this into a loop and generate a decent amount of data. The more data we have, the better the predictions will be, but also the more resources (time and RAM) our model will require. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "myData = pd.DataFrame()\nfor i in range(1000):\n myData = myData.append(pd.Series(DataGenerator()), ignore_index=True)",
"execution_count": 6,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "After generating the data, I needed to tokenize each of the number strings. To do this, I used the Fast.ai Tokenizer class."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tok = Tokenizer()",
"execution_count": 7,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "This tokenizer utilizes multiple CPU cores by first dividing the text between however many cores the machine has using [partition_by_cores](https://github.com/fastai/fastai/blob/master/fastai/core.py#L88:5). This gives a list of numpy arrays with each numpy array containing `number of lines of data/number of cores`. After this, the list is passed into the proc_all_mp function which breaks them into small chunks for each processor to tokenize."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "texts = myData[0].astype(str)\n\ntexts.values[0:10]\n\ndata = tok.proc_all_mp(partition_by_cores(texts.values.astype(str)))",
"execution_count": 8,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Now that we have the data, let's build a frequency map. This will tell us how many times each word was seen. Since we have 10 numbers (0-9) and are doing 1000 sequences, all of these will be exactly 1000. Usually this will not be the case and this part will help filter out any words that are only seen a low number of time. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "freq = Counter(p for o in data for p in o)",
"execution_count": 11,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "itos will be used to translate the number back into a string. In a regular language model, this is where you would determine the maximum number of words you want to have (max dictionary size) and minimum number of times a word has to be used to be put into the dictionary (minimum frequency). In this example, I used 10 as the max dictionary size and 2 as the minimum frequency. \n\nWe are also inserting an \\_eos_ token to signify the end of the string."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "itos = [o for o,c in freq.most_common(10) if c > 2]\nfor i in [\"_eos_\", \"_pad_\", \"_unk_\"]:\n itos.insert(0, i)",
"execution_count": 12,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "So now our itos variable has 13 records after the addition of an unknown variable, a padding variable, and an end of sentence variable. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "itos",
"execution_count": 13,
"outputs": [
{
"data": {
"text/plain": "['_unk_',\n '_pad_',\n '_eos_',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine']"
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "freq.most_common(10)",
"execution_count": 14,
"outputs": [
{
"data": {
"text/plain": "[('zero', 1000),\n ('one', 1000),\n ('two', 1000),\n ('three', 1000),\n ('four', 1000),\n ('five', 1000),\n ('six', 1000),\n ('seven', 1000),\n ('eight', 1000),\n ('nine', 1000)]"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "itos should then be iterated through using a defaultdict that has a dictionary of the tokens as the key and the index as the value. This gives us the stoi and will be used to translate each of the words into an int that the language model can consume. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "stoi = collections.defaultdict(lambda:0, {v:k for k,v in enumerate(itos)})\nlen(itos)",
"execution_count": 16,
"outputs": [
{
"data": {
"text/plain": "13"
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "The lambda:0 is telling this that if you don't know what the word is, give it a value of \"0\" which we know is tied to '_unk_' so translating it back, would replace that word with '_unk_'"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "unknownNumber = stoi[\"ten\"];print(\"unknownNumber idx: \" + str(unknownNumber))\nknownNumber = stoi[\"nine\"];print(\"knownNumber idx: \" + str(knownNumber))\nprint(itos[unknownNumber])\nprint(itos[knownNumber])",
"execution_count": 17,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "unknownNumber idx: 0\nknownNumber idx: 12\n_unk_\nnine\n"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "All I'm doing here is feeding each of my numbers through and turning the string into an int using stoi[wordtotokenize]"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "tokenized_data = [[stoi[o] for o in i] for i in data]",
"execution_count": 18,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "I went from an array with strings of numbers to a list with arrays of token index’s. These token index’s are what the model will use to train the activations. At this point, I added token index 2 to the end of every string representation. This will help the model train by keeping some more of the metadata in tact."
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "for datanew in tokenized_data:\n datanew+=[2]",
"execution_count": 19,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Your values will be different, but will look similar to the screenshot below\n![image.png](attachment:image.png)",
"attachments": {
"image.png": {
"image/png": "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"
}
}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "At this point, the data is clean and we are ready to select our model architecture. There are a lot of hyper-parameters that can be modified. I will discuss the ones that I used. It is highly recommended to not read the rest of this section unless you are following along in the code. At this point, I would recommend going back and actually implementing the data piece yourself.\n\nOne last thing we will do is combine all of the tokenized lists together into one long string of numbers. This is what the model will expect the data to look like. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "combined_tokenized_data = np.concatenate(tokenized_data)",
"execution_count": 24,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "PATH = Path(\"data/counterExample/\")",
"execution_count": 22,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "##### LanguageModelLoader\nFor this model, I used the LanguageModelLoader class from FastAI’s text.py library. I fed in a numpy array of the tokenized data, a batch size of 4, and a Back Prop Through Time (BPTT) of 12. The batch size of 4 was chosen after a few different steps of trial and error. This is definitely dependent on the size of data that is being used. Make this as high as possible and then tune it down if your model is having troubles. The higher the batch size, the faster the model will train. BPTT should be set as high as possible before running out of GPU memory. BPTT can also be modified if training is unstable or if a model is taking longer to train than wanted."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "bptt=12\nbs=4\ndataloader = LanguageModelLoader(combined_tokenized_data, bs, bptt)",
"execution_count": 25,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "##### LanguageModelData\nAfter this, I use the LanguageModelData class also from FastAI’s text.py library. This requires a PATH which I put into Path(“data/counterExample/”) using the pathlib library. Pad Index was set to 1. This was determined earlier by inserting a _pad_ string into itos’ 1 index. Next is the vocab size which in my case is 13 (_unk_, _pad_, _eos_, “zero”, “one”, “two”, “three”, “four”, “five”, “six”, “seven”, “eight”, and “nine”). Next, the training data loader is inserted. After this, the validation data loader is inserted. In my case, I used the same data loader to fulfill both of these, but in a real problem, this is definitely something that should be separate since this is how you can judge the effectiveness of a model and ensure that it isn’t over-fitting."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#PATH\n#Pad_Idx\n#Number of tokens\n#dataloader - Training\n#dataloader - Validation (Should be different from Training)\nmodeldata = LanguageModelData(PATH,1,len(itos), dataloader, dataloader)",
"execution_count": 26,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "##### Dropout\nThe model dropout is the next thing to select. In language models, there are 5 separate dropouts. Input dropout (dropouti), linear model dropout (dropout), dropout used for an LSTM’s internal recurrent weights (wdrop), embedding layer dropout (dropoute), and hidden layer dropout (dropouth). A good ratio for these seems to be [0.25,0.1,0.2,0.02,0.15]*DropoutWeight but this is something that can be experimented with. A general rule of thumb is that the more data that you have, the lower you can put your DropoutWeight. This is because it will be harder for the model to over-fit on specific patterns if there is more data so less hiding of the data is needed to reduce over-fitting.\n\n##### get_model\nNow call the get_model function using the LanguageModelData object created above. The optimizer function can be whatever you choose, I used optim.Adam, but try out other optimizers as well and see what works best. Some other optimizers to try are ASGD, SGD, and Adamax. Embedding size should be chosen based off the size of your dictionary. This should be big enough to extract meaning clusters from the words. I would recommend playing around with this a bit, but the smaller the dictionary you are working with, the closer your embedding size will be to the vocab size, but as the vocab size increases, the embedding size can have a smaller embedding/vocab word count ratio. Next, choose the number of hidden activations. I would recommend starting at 2x the embedding size and then try increasing and decreasing it to see if it makes a difference. I started with my hidden activations much, much larger than my embedding size and was getting a very poorly trained model. I believe this could have worked, but I would have needed to generate a lot larger amount of data and really it didn’t need to be as complex as it was. Use the simplest model possible that still predicts how you want it to. The last parameter to choose is the number of LSTMs to use in the model. For this, I would start with 3 layers and modify as needed. I was able to use just two LSTMs and get predictive results."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "drops=np.array([0.25, 0.1, 0.2, 0.02, 0.15])*0.7\n\nem_sz,nh,nl = 8,16,2\nopt_fn = optim.Adam\n\nlearner = modeldata.get_model(opt_fn, em_sz, nh, nl,dropouti=drops[0], dropout=drops[1], wdrop=drops[2], dropoute=drops[3], dropouth=drops[4])\nlearner.metrics = [accuracy]\nlearner.unfreeze()",
"execution_count": 27,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "At this point, we have an model that has random weights that are ready to be trained on our data!"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learner",
"execution_count": 28,
"outputs": [
{
"data": {
"text/plain": "SequentialRNN(\n (0): RNN_Encoder(\n (encoder): Embedding(13, 8, padding_idx=1)\n (encoder_with_dropout): EmbeddingDropout(\n (embed): Embedding(13, 8, padding_idx=1)\n )\n (rnns): ModuleList(\n (0): WeightDrop(\n (module): LSTM(8, 16, dropout=0.105)\n )\n (1): WeightDrop(\n (module): LSTM(16, 8, dropout=0.105)\n )\n )\n (dropouti): LockedDropout(\n )\n (dropouths): ModuleList(\n (0): LockedDropout(\n )\n (1): LockedDropout(\n )\n )\n )\n (1): LinearDecoder(\n (decoder): Linear(in_features=8, out_features=13)\n (dropout): LockedDropout(\n )\n )\n)"
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "##### lr_find()\nNext, we find a learning rate that will fit our model using the learner object created with the get_model function. FastAI has a lr_find() function that sweeps a wide range of learning rates which can then be plotted. The key to choosing a learning rate is to choose a learning rate where the loss is still going down, not the absolute bottom point. for this model, I chose 10^-2. I probably could have went up to 10^-1, but I knew the model would train pretty quickly so I went on the safe side. This is another parameter that should be as high as possible without reducing the accuracy of the model."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "learner.lr_find()\nlearner.sched.plot()",
"execution_count": 29,
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "db8411e0e2f8427cb08a2290774dc22d",
"version_major": 2,
"version_minor": 0
},
"text/html": "<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n<p>\n If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n that the widgets JavaScript is still loading. If this message persists, it\n likely means that the widgets JavaScript library is either not installed or\n not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n Widgets Documentation</a> for setup instructions.\n</p>\n<p>\n If you're reading this message in another frontend (for example, a static\n rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n it may mean that your frontend doesn't currently support widgets.\n</p>\n",
"text/plain": "HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "epoch trn_loss val_loss accuracy \n 0 2.477381 2.56495 0.010456 \n\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "lr = 10e-2",
"execution_count": 31,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Training the Model\nNow that we have a model, it’s time to train it on the data generated above. There are a lot of very interesting parameters to finetune when training the model. The FastAI library allows variable learning rates, weight decays, and many other parameters when fitting the model. For this model, we will just keep it simple and use the learner.fit() function which takes in at a minimum the learning rate and the number of cycles that you want to train it."
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "learner.fit(lr,10)",
"execution_count": 32,
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1effa6fa05534ce992e2ddfd08d1a6b9",
"version_major": 2,
"version_minor": 0
},
"text/html": "<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n<p>\n If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n that the widgets JavaScript is still loading. If this message persists, it\n likely means that the widgets JavaScript library is either not installed or\n not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n Widgets Documentation</a> for setup instructions.\n</p>\n<p>\n If you're reading this message in another frontend (for example, a static\n rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n it may mean that your frontend doesn't currently support widgets.\n</p>\n",
"text/plain": "HBox(children=(IntProgress(value=0, description='Epoch', max=10), HTML(value='')))"
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": "epoch trn_loss val_loss accuracy \n 0 0.877209 0.613849 0.829531 \n 1 0.756472 0.578578 0.826748 \n 2 0.802857 0.575006 0.832028 \n 3 0.831325 0.588339 0.823894 \n 4 0.738141 0.561355 0.825936 \n 5 0.916614 0.610922 0.829739 \n 6 0.945601 0.646737 0.824805 \n 7 0.929306 0.598057 0.826581 \n 8 0.836129 0.579624 0.827866 \n 9 0.76676 0.568329 0.830627 \n\n"
},
{
"data": {
"text/plain": "[0.5683291, 0.83062704064344106]"
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Making a Prediction\nAfter 10 cycles of training and an accuracy of ~82%, a prediction can be made. To make a prediction, the learner.model function is called and a torch variable is passed as the argument with a list of the desired prediction. Since I know my index should always just increment by one, I skip the translate from word to integer step and feed the token directly into the predictor."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "needPrediction = np.array([[5]])\nprobs = learner.model(V(needPrediction))",
"execution_count": 33,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "In index 0 of the prediction set there is a Torch variable with 13 predictions."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "probs[0]",
"execution_count": 34,
"outputs": [
{
"data": {
"text/plain": "Variable containing:\n\nColumns 0 to 7 \n -9.8337 -10.0553 3.9059 -0.1862 -5.8219 -2.0377 7.0377 3.7314\n\nColumns 8 to 12 \n 0.0088 -7.0428 -0.0959 -2.0290 -7.9542\n[torch.cuda.FloatTensor of size 1x13 (GPU 0)]"
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Next, take the softmax of this number to convert into a percent chance that the number is the next in the sequence"
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "total_percentage = 0\nfor i in to_np(F.softmax(probs[0])):\n total_percentage+=i\nprint(total_percentage)",
"execution_count": 35,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "[ 0. 0. 0.0403 0.00067 0. 0.00011 0.92342 0.03384 0.00082 0. 0.00074 0.00011\n 0. ]\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "total_percentage.round(3)",
"execution_count": 53,
"outputs": [
{
"data": {
"text/plain": "array([ 0. , 0. , 0.021, 0. , 0. , 0.002, 0.953, 0.02 , 0. , 0. , 0. , 0.004, 0. ], dtype=float32)"
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "After seeing that the predictions are reasonable, I created a loop that checks the prediction output for each of the 13 outputs that we have."
},
{
"metadata": {
"scrolled": true,
"trusted": true
},
"cell_type": "code",
"source": "for i in range(0,13):\n needPrediction = np.array([[i]])\n probs = learner.model(V(needPrediction))\n print(itos[i] + \"--->\" + itos[to_np(probs[0][-1].exp()).argmax()] + \"\\t\"+str(to_np(F.softmax(probs[0][-1])).round(3)))",
"execution_count": 58,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "_unk_--->_eos_\t[ 0. 0. 0.652 0.003 0.344 0. 0. 0. 0. 0.001 0. 0. 0. ]\n_pad_--->zero\t[ 0. 0. 0.195 0.234 0.146 0.006 0. 0.204 0.214 0.001 0. 0. 0. ]\n_eos_--->_eos_\t[ 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077 0.077]\nzero--->one\t[ 0. 0. 0.257 0.007 0.73 0.003 0. 0.002 0.001 0. 0. 0. 0. ]\none--->two\t[ 0. 0. 0.03 0. 0. 0.968 0.002 0. 0. 0. 0. 0.001 0. ]\ntwo--->three\t[ 0. 0. 0.032 0. 0. 0.005 0.931 0.026 0. 0. 0. 0.005 0. ]\nthree--->four\t[ 0. 0. 0.097 0. 0. 0. 0. 0.902 0. 0. 0. 0. 0. ]\nfour--->five\t[ 0. 0. 0.145 0. 0. 0. 0. 0. 0.855 0. 0. 0. 0. ]\nfive--->six\t[ 0. 0. 0.079 0. 0. 0. 0. 0. 0. 0.907 0.012 0.001 0.001]\nsix--->seven\t[ 0. 0. 0.046 0. 0. 0. 0. 0.001 0.014 0.008 0.93 0.001 0. ]\nseven--->eight\t[ 0. 0. 0.103 0. 0. 0. 0. 0. 0. 0. 0.002 0.862 0.032]\neight--->nine\t[ 0. 0. 0.216 0.001 0. 0. 0. 0. 0. 0. 0. 0.001 0.781]\nnine--->zero\t[ 0. 0. 0.186 0.808 0.001 0.004 0. 0. 0.001 0. 0. 0. 0. ]\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "markdown",
"source": "## Final Thoughts"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "This model may not have much of a life outside of a classroom setting, but don’t underestimate the power of simplification of a concept. This model takes an idea that is usually many thousands of words and simplifies it into just 10 words, and 13 total tokens. This not only makes training fast to iterate your thinking, but also allows a lot more experimentation of the many different hyper-parameters. If this is your first time experiencing language models, I highly recommend looking into Fast.ai which will teach you how to achieve great results and explains all of the concepts that I talked about up top. There are more parameters than I could possibly talk about in a single blog post so I hope that you were able to gather some useful insights from this post and if there are any parameters you would like to see that I didn’t discuss, please let me know and I will add it in."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/e4bd985620741c6e55ed621fd8655a3a"
},
"gist": {
"id": "e4bd985620741c6e55ed621fd8655a3a",
"data": {
"description": "Counting Example for Language Model",
"public": true
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"04dba83d703c4c97973b8da5ef017ead": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "success",
"description": "Epoch",
"layout": "IPY_MODEL_1108f27619c04d0c9d1d9d4426a6d44a",
"max": 10,
"style": "IPY_MODEL_e10ddd3114834c63afeea0c9bfee32a1",
"value": 10
}
},
"1108f27619c04d0c9d1d9d4426a6d44a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"149c1ac37c9b499f842f63d178d2bbc0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_bfc4471dab35446fbd062cee50bc2847",
"style": "IPY_MODEL_2c78bfc16b424345822b8d9ebc5ac7c8",
"value": "100% 10/10 [00:05&lt;00:00, 1.81it/s]"
}
},
"171a3d23566a4916a2d6b38cba073108": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"17fab208c1f24c2da68669be65607e02": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"1a18ef3b0cf44c44b1b1c8fd5b3d2d76": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_04dba83d703c4c97973b8da5ef017ead",
"IPY_MODEL_f8e46f870e7e4adf8082d957777c08f0"
],
"layout": "IPY_MODEL_eab5cdadf3dc446aaf8c51f5a5cea696"
}
},
"1d883cb12ddb470cab085f26452a0799": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_bba46c77a54442e89a600703618806ed",
"style": "IPY_MODEL_3850389523bd4061a875a4f37bcff987",
"value": " 0% 0/1 [00:00&lt;?, ?it/s]"
}
},
"2817a1e93ee84813a93fe3511ed5d7f7": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"2c78bfc16b424345822b8d9ebc5ac7c8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"32ba039760b346578df3f09c14fe73ea": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_6b473e701eca4822bb8b8b99db3c4895",
"style": "IPY_MODEL_c083769380ef4a46a141905cce1186e6",
"value": "100% 15/15 [00:08&lt;00:00, 1.75it/s]"
}
},
"3850389523bd4061a875a4f37bcff987": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"3b46fb458f9b4dda8d895c773bc729ee": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"3f9fcf7d19264eb5b3f30e1e538ff6d8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"46f844869b6847c29efc5d499d5d6acb": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_6b051936f29a4a14b6ab740d52c2f6e5",
"IPY_MODEL_d8f90f2fb1bc452688b37f06cc9bcb4e"
],
"layout": "IPY_MODEL_d1273af340b74f5ba133d5bb64969035"
}
},
"49e99574d3464b559337da997c06b39b": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"4fb7b8299d9043c0a8d3b192de40b57d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "success",
"description": "Epoch",
"layout": "IPY_MODEL_5b72faa4fe8c45e3a3d22c70a6c5243f",
"max": 10,
"style": "IPY_MODEL_a36ebd91b6c848f3bddb4e3d217d6d53",
"value": 10
}
},
"5871c1f5cc7b457cbaa797c3efdfe905": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "success",
"description": "Epoch",
"layout": "IPY_MODEL_866a435f08b542e5b68b6a58a71584d0",
"max": 15,
"style": "IPY_MODEL_3b46fb458f9b4dda8d895c773bc729ee",
"value": 15
}
},
"5b72faa4fe8c45e3a3d22c70a6c5243f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"63871322b0d2493785a64b1cfaab2659": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_4fb7b8299d9043c0a8d3b192de40b57d",
"IPY_MODEL_149c1ac37c9b499f842f63d178d2bbc0"
],
"layout": "IPY_MODEL_e18888eafcc74d02ad321836ad293ca5"
}
},
"65dae5ebd0c742d7a305399423c390ec": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"6b051936f29a4a14b6ab740d52c2f6e5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "success",
"description": "Epoch",
"layout": "IPY_MODEL_171a3d23566a4916a2d6b38cba073108",
"max": 10,
"style": "IPY_MODEL_a5a133ee051e49479606ac4220b033ed",
"value": 10
}
},
"6b473e701eca4822bb8b8b99db3c4895": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"6f45fc011e0b41ed9e0947ed109198d3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_fb6d77fb2c5b4b5e9c9e870ef85951c5",
"IPY_MODEL_c53ab2d1e299414b8d0f099d80d0d802"
],
"layout": "IPY_MODEL_65dae5ebd0c742d7a305399423c390ec"
}
},
"71988522634f4cf2bb83ac497f944924": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"739576ba78a4474194ebe2d056a02646": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7892d81a5cef498abbea3e73bd73a9ff": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_c2f9d01f36b9435fad8f80abe783be47",
"IPY_MODEL_1d883cb12ddb470cab085f26452a0799"
],
"layout": "IPY_MODEL_919dad157b264202925bb3c01ae0c57d"
}
},
"84091e10212a43b09db81bc8a97c92d5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"866a435f08b542e5b68b6a58a71584d0": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"919dad157b264202925bb3c01ae0c57d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"959dbb9efd6941ca8bdf548f8de88d7c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"a36ebd91b6c848f3bddb4e3d217d6d53": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"a5a133ee051e49479606ac4220b033ed": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"a9a611129ff6427d9b5cbc5c40de62bd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"bba46c77a54442e89a600703618806ed": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"bfc4471dab35446fbd062cee50bc2847": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"c083769380ef4a46a141905cce1186e6": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"c2f9d01f36b9435fad8f80abe783be47": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "danger",
"description": "Epoch",
"layout": "IPY_MODEL_959dbb9efd6941ca8bdf548f8de88d7c",
"max": 1,
"style": "IPY_MODEL_3f9fcf7d19264eb5b3f30e1e538ff6d8"
}
},
"c53ab2d1e299414b8d0f099d80d0d802": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_d966057d73304877be1afb753f8f87a0",
"style": "IPY_MODEL_2817a1e93ee84813a93fe3511ed5d7f7",
"value": "100% 100/100 [00:56&lt;00:00, 1.78it/s]"
}
},
"d1273af340b74f5ba133d5bb64969035": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d2875ddf016045d2837f2083faa77fa3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_5871c1f5cc7b457cbaa797c3efdfe905",
"IPY_MODEL_32ba039760b346578df3f09c14fe73ea"
],
"layout": "IPY_MODEL_17fab208c1f24c2da68669be65607e02"
}
},
"d8f90f2fb1bc452688b37f06cc9bcb4e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_49e99574d3464b559337da997c06b39b",
"style": "IPY_MODEL_a9a611129ff6427d9b5cbc5c40de62bd",
"value": "100% 10/10 [00:05&lt;00:00, 1.77it/s]"
}
},
"d966057d73304877be1afb753f8f87a0": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"e10ddd3114834c63afeea0c9bfee32a1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"e18888eafcc74d02ad321836ad293ca5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"eab5cdadf3dc446aaf8c51f5a5cea696": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.0.0",
"model_name": "LayoutModel",
"state": {}
},
"f56541c7d04f4a6b9819665e2004fb64": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"f8e46f870e7e4adf8082d957777c08f0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_739576ba78a4474194ebe2d056a02646",
"style": "IPY_MODEL_84091e10212a43b09db81bc8a97c92d5",
"value": "100% 10/10 [00:05&lt;00:00, 1.79it/s]"
}
},
"fb6d77fb2c5b4b5e9c9e870ef85951c5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.1.0",
"model_name": "IntProgressModel",
"state": {
"bar_style": "success",
"description": "Epoch",
"layout": "IPY_MODEL_71988522634f4cf2bb83ac497f944924",
"style": "IPY_MODEL_f56541c7d04f4a6b9819665e2004fb64",
"value": 100
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment