<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: neha</title>
    <description>The latest articles on DEV Community by neha (@neha_deshpande_2767979fb9).</description>
    <link>https://dev.to/neha_deshpande_2767979fb9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4102721%2Fb04a01c4-54b6-485b-878e-c9bd8a979240.png</url>
      <title>DEV Community: neha</title>
      <link>https://dev.to/neha_deshpande_2767979fb9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neha_deshpande_2767979fb9"/>
    <language>en</language>
    <item>
      <title>Tokenization in LLM</title>
      <dc:creator>neha</dc:creator>
      <pubDate>Mon, 31 Aug 2026 13:19:17 +0000</pubDate>
      <link>https://dev.to/neha_deshpande_2767979fb9/tokenization-in-llm-144f</link>
      <guid>https://dev.to/neha_deshpande_2767979fb9/tokenization-in-llm-144f</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0thvvx2h43cev0ahl5i3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0thvvx2h43cev0ahl5i3.jpg" alt="hi!!!" width="299" height="168"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Hii!!&lt;/p&gt;

&lt;p&gt;I have started my journey to learn basics about AI and LLM and have decided to write something about what I learn along the way.&lt;/p&gt;

&lt;h4&gt;
  
  
  Need for tokenization
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frd6370kh00excduahgcs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frd6370kh00excduahgcs.jpg" alt=" " width="750" height="350"&gt;&lt;/a&gt;&lt;br&gt;
LLMs don't process text directly. Neural networks operate on numerical representations, so the text needs to be converted into numbers before it can be processed by the model. Aside from understanding, it also needs to relate it to other things. To process data, models need numbers.&lt;br&gt;
A token is a piece of text chosen by the tokenizer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feqba9jeb2aa3mfymh5sl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feqba9jeb2aa3mfymh5sl.jpg" alt=" " width="246" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, &lt;br&gt;
Piece of text - Tokens&lt;br&gt;
Number assigned to each token- Token ID  &lt;/p&gt;

&lt;p&gt;A token can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A whole word&lt;/li&gt;
&lt;li&gt;Part of a word&lt;/li&gt;
&lt;li&gt;Punctuation&lt;/li&gt;
&lt;li&gt;Whitespace + a word&lt;/li&gt;
&lt;li&gt;Sometimes even individual bytes
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;example,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;text&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;love&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;kittens&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;might&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;split&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;into:&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"I"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;" love"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;" kittens"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;These&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;tokens&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;are&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;then&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;mapped&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;token&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;IDs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;such&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;as:&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;821&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5632&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;At high level, the token ID is used to look up the corresponding embedding vector. These vectors are then provided to the Transformer for further processing.&lt;/p&gt;
&lt;h4&gt;
  
  
  About token IDs
&lt;/h4&gt;

&lt;p&gt;Tokenization happens at the very beginning before any processing happens.&lt;br&gt;
Different models can use different tokenizers, so the token IDs generated for the same text can be different for different models. &lt;/p&gt;

&lt;p&gt;For example,&lt;br&gt;
Consider input as: &lt;code&gt;hi&lt;/code&gt;&lt;br&gt;
one model might assign token ID 12 and another might assign it 25.&lt;/p&gt;

&lt;p&gt;Token IDs are integer numbers assigned to each token.&lt;/p&gt;
&lt;h5&gt;
  
  
  Vocabulary
&lt;/h5&gt;

&lt;p&gt;In simple terms, it refers to mapping of chunk of words to a particular number.A vocabulary is essentially a collection of tokens and their corresponding IDs. The tokenizer learns or constructs this vocabulary during tokenizer training, and the resulting vocabulary is then used to tokenize text.  &lt;/p&gt;

&lt;p&gt;The chunks generated from data gets assigned to the number based on this vocabulary.  &lt;/p&gt;
&lt;h5&gt;
  
  
  Why not use individual characters as tokens?
&lt;/h5&gt;

&lt;p&gt;Every character has a corresponding Unicode code point. We could theoretically use characters directly as tokens, but this has some drawbacks:&lt;/p&gt;

&lt;p&gt;Unicode contains a very large number of possible characters, making a character-level vocabulary large.&lt;br&gt;
If we restrict the vocabulary to only a limited set of characters, characters outside that set can result in out-of-vocabulary (OOV) problems.&lt;br&gt;
Character-level representations can also result in much longer sequences than subword representations.&lt;/p&gt;

&lt;p&gt;To address these problems, different tokenization algorithms have been developed, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Byte-pair encoding (BPE)&lt;/li&gt;
&lt;li&gt;Byte-level BPE (BBPE)&lt;/li&gt;
&lt;li&gt;Wordpiece&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  High level flow
&lt;/h4&gt;

&lt;p&gt;We can understand at a very high level, flow is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text
 ↓
Tokenizer
 ↓
Tokens
 ↓
Token IDs
 ↓
Embedding vectors
 ↓
Transformer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I love kitten"
       ↓
Tokenizer
       ↓
["I", " love", " kitten"]
       ↓
[40, 821, 5632]       ← token IDs
       ↓
[vector, vector, vector]
       ↓
Transformer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Why does the number of tokens matter?
&lt;/h4&gt;

&lt;p&gt;As many of you have observed, we see number of tokens we have used when we interact with models. For example, Copilot shows how many tokens we have used. Tokens are associated with both the user input and output generated by LLM.  &lt;/p&gt;

&lt;p&gt;The number of tokens affects how much text a model can process within its context window and how much computation is required. More tokens generally mean more computation.  &lt;/p&gt;

&lt;h4&gt;
  
  
  That's it for now!
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8d6d51s91kph18kb8bk3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8d6d51s91kph18kb8bk3.jpg" alt=" " width="447" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what I have understood about tokenization and token IDs so far. There is still a lot more to explore, especially how algorithms like BPE actually create these tokens.&lt;/p&gt;

&lt;p&gt;I'll be diving into that next and sharing what I learn along the way. 🚀&lt;/p&gt;

&lt;p&gt;If you spot anything I got wrong or have suggestions for what I should learn next, feel free to let me know!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>basic</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
