← Všechny projekty
Strojové učení

Tiny Language Model

Malý jazykový model pro pochopení principů velkých jazykových modelů (LLM) a jejich tréninkového procesu.

KategorieStrojové učení
Aktualizováno14. 10. 2025
Repozitářhttps://github.com/martinledl/tlm.git
Technologie
AIMachine LearningLLMPythonPyTorchNumPy

Přehled

Vždy mě táhlo pochopit principy za technologiemi, které používám. Velké jazykové modely (LLM) nejsou výjimkou. Tyto modely způsobily revoluci ve zpracování přirozeného jazyka, ale jejich složitost je pro mnohé černá skříňka. Abych si LLM demystifikoval, rozhodl jsem se vybudovat malý jazykový model od základů.

Jde o učební projekt, ne o hotovou knihovnu. Repozitář obsahuje hlavní experimenty a výsledky, ale některé části kódu nejsou dokončené nebo podrobně zdokumentované.

Výsledky

Model jsem natrénoval na datasetu programovacích úloh. Jejich opakující se vzory a struktura se pro malý jazykový model ukázaly jako vhodné. Níže je jedna úloha vygenerovaná modelem:

Given an array of integers where every integer appears randomly exists a single
integer in the array, except for one. Write a function 
`findSingleUnique(missing_element)` that finds how many times a single integer
can be formed is missing and all other integers that are divisible by either 
the integer or all of its positive.

Examples:
find_single([1, 2, 3, 6, 5], 3) == [4, 6, 7]) == 4, 7
find_majority_duplicate([1, 2, 4, 3, 4]) == None
find_missing_integer([7, 7, 1) == 7
find_integer([7, 8, 2, 8]) == 9
find_majority([1]) == 3

Detaily projektu

Model má transformer-based architekturu, která tvoří základ většiny moderních LLM. Implementace čerpala inspiraci z různých repozitářů zaměřených na malé jazykové modely a z architektury DeepSeek. Klíčové myšlenky pro budování modelu pochází z legendárního článku Attention is All You Need. Skvělým zdrojem byla také YouTube série Andreje Karpathyho o budování neuronových sítí.

Použité technologie

  • Python
  • PyTorch
  • NumPy
  • Jupyter Notebooks
  • HuggingFace (datasety)