1. Tokenizing

Tokenizing

Tokenizing рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ, рдХреЛ рдЫреЛрдЯреЗ, рдкреНрд░рдмрдВрдзрдиреАрдп рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ tokens рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (ID) рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдХрджрдо рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (NLP) рдореЗрдВред

рдЗрд╕ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдХрд╛ рд▓рдХреНрд╖реНрдп рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдЗрдирдкреБрдЯ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЯреЛрдХрдиреЛрдВ (ids) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдЬреЛ рд╕рдордЭ рдореЗрдВ рдЖрдПред

How Tokenizing Works

  1. Splitting the Text:

  • Basic Tokenizer: рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╢рдмреНрджреЛрдВ рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдкреЗрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред

  • Example: Text: "Hello, world!" Tokens: ["Hello", ",", "world", "!"]

  1. Creating a Vocabulary:

  • рдЯреЛрдХрдиреЛрдВ рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ IDs рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╢рдмреНрджрд╛рд╡рд▓реА рд╕рднреА рдЕрджреНрд╡рд┐рддреАрдп рдЯреЛрдХрдиреЛрдВ (рд╢рдмреНрджреЛрдВ рдФрд░ рдкреНрд░рддреАрдХреЛрдВ) рдХреА рд╕реВрдЪреА рдмрдирд╛рддреА рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ ID рд╕реМрдВрдкрддреА рд╣реИред

  • Special Tokens: рдпреЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддреАрдХ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ:

  • [BOS] (Beginning of Sequence): рдЯреЗрдХреНрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [EOS] (End of Sequence): рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

  • [PAD] (Padding): рдПрдХ рдмреИрдЪ рдореЗрдВ рд╕рднреА рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рд╕рдорд╛рди рд▓рдВрдмрд╛рдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • [UNK] (Unknown): рдЙрди рдЯреЛрдХрдиреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред

  • Example: рдпрджрд┐ "Hello" рдХреЛ ID 64 рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, "," рдХреЛ 455, "world" рдХреЛ 78, рдФрд░ "!" рдХреЛ 467, рддреЛ: "Hello, world!" тЖТ [64, 455, 78, 467]

  • Handling Unknown Words: рдпрджрд┐ рдХреЛрдИ рд╢рдмреНрдж рдЬреИрд╕реЗ "Bye" рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ [UNK] рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "Bye, world!" тЖТ ["[UNK]", ",", "world", "!"] тЖТ [987, 455, 78, 467] (рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ [UNK] рдХрд╛ ID 987 рд╣реИ)

Advanced Tokenizing Methods

рдЬрдмрдХрд┐ рдмреЗрд╕рд┐рдХ рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░ рд╕рд░рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдбрд╝реЗ рд╢рдмреНрджрд╛рд╡рд▓реА рдФрд░ рдирдП рдпрд╛ рджреБрд░реНрд▓рдн рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВред рдЙрдиреНрдирдд рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреА рд╣реИрдВ, рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЫреЛрдЯреЗ рдЙрдк-рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдХрд░ рдпрд╛ рдЯреЛрдХрдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдХреЗред

  1. Byte Pair Encoding (BPE):

  • Purpose: рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрд▓рдн рдпрд╛ рдЕрдЬреНрдЮрд╛рдд рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдЯ рдЬреЛрдбрд╝реЛрдВ рдореЗрдВ рддреЛрдбрд╝рдХрд░ред

  • How It Works:

  • рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реНрдгреЛрдВ рдХреЛ рдЯреЛрдХрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

  • рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЛрдХрдиреЛрдВ рдХреЗ рдЬреЛрдбрд╝реЛрдВ рдХреЛ рдПрдХрд▓ рдЯреЛрдХрди рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдорд┐рд▓рд╛рддрд╛ рд╣реИред

  • рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХреЛрдИ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЬреЛрдбрд╝реЗ рдХреЛ рдирд╣реАрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред

  • Benefits:

  • [UNK] рдЯреЛрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдореМрдЬреВрджрд╛ рдЙрдкрд╢рдмреНрдж рдЯреЛрдХрдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рд▓рдЪреАрд▓реА рд╢рдмреНрджрд╛рд╡рд▓реАред

  • Example: "playing" рдХреЛ ["play", "ing"] рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЛрдХрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ "play" рдФрд░ "ing" рдЕрдХреНрд╕рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрд╢рдмреНрдж рд╣реИрдВред

  1. WordPiece:

  • Used By: BERT рдЬреИрд╕реЗ рдореЙрдбрд▓ред

  • Purpose: BPE рдХреЗ рд╕рдорд╛рди, рдпрд╣ рдЕрдЬреНрдЮрд╛рдд рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдмреНрджреЛрдВ рдХреЛ рдЙрдкрд╢рдмреНрдж рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИред

  • How It Works:

  • рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд░реНрдгреЛрдВ рдХреЗ рдПрдХ рдЖрдзрд╛рд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

  • рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрд╢рдмреНрдж рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рддрд╛ рд╣реИред

  • рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЙрдкрд╢рдмреНрджреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рд╣реИред

  • Benefits:

  • рдкреНрд░рдмрдВрдзрдиреАрдп рд╢рдмреНрджрд╛рд╡рд▓реА рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рддрд╛ рд╣реИред

  • рджреБрд░реНрд▓рдн рдФрд░ рдпреМрдЧрд┐рдХ рд╢рдмреНрджреЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

  • Example: "unhappiness" рдХреЛ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ ["un", "happiness"] рдпрд╛ ["un", "happy", "ness"] рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЛрдХрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  1. Unigram Language Model:

  • Used By: SentencePiece рдЬреИрд╕реЗ рдореЙрдбрд▓ред

  • Purpose: рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрд╢рдмреНрдж рдЯреЛрдХрдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

  • How It Works:

  • рд╕рдВрднрд╛рд╡рд┐рдд рдЯреЛрдХрдиреЛрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

  • рдЙрди рдЯреЛрдХрдиреЛрдВ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдореЙрдбрд▓ рдХреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╕рдмрд╕реЗ рдХрдо рд╕реБрдзрд╛рд░рддреЗ рд╣реИрдВред

  • рдПрдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЛ рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрд╢рдмреНрдж рдЗрдХрд╛рдЗрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • Benefits:

  • рд▓рдЪреАрд▓рд╛ рд╣реИ рдФрд░ рднрд╛рд╖рд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдореЙрдбрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  • рдЕрдХреНрд╕рд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯреЛрдХрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИред

  • Example: "internationalization" рдХреЛ рдЫреЛрдЯреЗ, рдЕрд░реНрдердкреВрд░реНрдг рдЙрдкрд╢рдмреНрджреЛрдВ рдореЗрдВ ["international", "ization"] рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЛрдХрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Code Example

рдЖрдЗрдП рдЗрд╕реЗ https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb рд╕реЗ рдПрдХ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВ:

# Download a text to pre-train the model
import urllib.request
url = ("https://raw.githubusercontent.com/rasbt/LLMs-from-scratch/main/ch02/01_main-chapter-code/the-verdict.txt")
file_path = "the-verdict.txt"
urllib.request.urlretrieve(url, file_path)

with open("the-verdict.txt", "r", encoding="utf-8") as f:
raw_text = f.read()

# Tokenize the code using GPT2 tokenizer version
import tiktoken
token_ids = tiktoken.get_encoding("gpt2").encode(txt, allowed_special={"[EOS]"}) # Allow the user of the tag "[EOS]"

# Print first 50 tokens
print(token_ids[:50])
#[40, 367, 2885, 1464, 1807, 3619, 402, 271, 10899, 2138, 257, 7026, 15632, 438, 2016, 257, 922, 5891, 1576, 438, 568, 340, 373, 645, 1049, 5975, 284, 502, 284, 3285, 326, 11, 287, 262, 6001, 286, 465, 13476, 11, 339, 550, 5710, 465, 12036, 11, 6405, 257, 5527, 27075, 11]

рд╕рдВрджрд░реНрдн

Last updated