BioMikeUkr/nlp-puzzles

A hands-on NLP/ML curriculum for trainees and juniors who already know basic Python, ML and want to get production-ready in AI/ML engineering from embeddings to production APIs.

Jupyter Notebook

73

32 commits

updated Mar 3, 2026

See the code

README

NLP Puzzles

alt text A hands-on NLP/ML curriculum for trainees and juniors who already know basic Python, ML and want to get production-ready in AI/ML engineering from embeddings to production APIs.


How to Study

Each puzzle follows the same flow:

1. Read README.md — start with theory. Understand the concepts before touching any code.

2. Work through learning/ notebooks — run cells, tweak parameters, break things. The goal is intuition, not just output.

3. Solve tasks/ notebooks — cells are empty, you fill them in. Each task has assert statements at the bottom — you're done when they all pass. Don't look at solutions until you've genuinely tried.

4. Do the Q&A — open QUESTIONS.md, try to answer each question out loud or in writing before reading the answer. These are the questions you'll get in interviews.

Solutions are in solutions/ — use them to compare approaches, not as a shortcut.


Setup

# Clone and create venv
git clone https://github.com/BioMikeUkr/nlp-puzzles.git
cd nlp-puzzles
python -m venv .venv && source .venv/bin/activate

# Install dependencies for a specific puzzle
pip install -r puzzles/01_python_data_fundamentals/requirements.txt

# Launch Jupyter
jupyter notebook puzzles/01_python_data_fundamentals/learning/

Puzzles

#TopicKey Tools
Foundation
01Python & Data Fundamentalspandas, numpy, regex
02ML Metricsscikit-learn, matplotlib, seaborn
Core NLP
03Text Embeddings & Semantic Searchsentence-transformers, scikit-learn
04FAISS for Vector Searchfaiss-cpu, sentence-transformers
05Cross-Encoders & NLIsentence-transformers, transformers
LLM Stack
06LLM APIsopenai, pydantic, tenacity
07Prompt Engineeringopenai, pydantic
08RAGopenai, sentence-transformers, faiss-cpu
09LangChain & Orchestrationlangchain, langchain-openai, faiss-cpu
ML Engineering
10Fine-tuning Sentence Transformerssentence-transformers, datasets
11Data Formats & SQLpyarrow, sqlalchemy, pandas
12FastAPI for MLfastapi, uvicorn, pydantic
13Testing & Code Qualitypytest, pytest-mock, ruff, mypy
14Spark Basicspyspark, pyarrow
Specialized
15NER with GLiNERgliner, transformers
16Text Classification with GLiClassgliclass, transformers
17Dataset Generation for NER & Classificationopenai, gliner, gliclass
18Gradio Demosgradio, gliner, gliclass

Puzzle Structure

puzzles/XX_name/
├── README.md        # theory and key concepts
├── QUESTIONS.md     # 30 deep Q&A
├── requirements.txt
├── fixtures/        # sample input/output data
├── learning/        # tutorial notebooks
├── tasks/           # livecoding tasks (you solve these)
└── solutions/       # reference solutions (check after solving)

Contributors

BioMikeUkr

32 commits

BioMikeUkr/nlp-puzzles

A hands-on NLP/ML curriculum for trainees and juniors who already know basic Python, ML and want to get production-ready in AI/ML engineering from embeddings to production APIs.

Jupyter Notebook

73

32 commits

updated Mar 3, 2026

See the code

README

NLP Puzzles

alt text A hands-on NLP/ML curriculum for trainees and juniors who already know basic Python, ML and want to get production-ready in AI/ML engineering from embeddings to production APIs.


How to Study

Each puzzle follows the same flow:

1. Read README.md — start with theory. Understand the concepts before touching any code.

2. Work through learning/ notebooks — run cells, tweak parameters, break things. The goal is intuition, not just output.

3. Solve tasks/ notebooks — cells are empty, you fill them in. Each task has assert statements at the bottom — you're done when they all pass. Don't look at solutions until you've genuinely tried.

4. Do the Q&A — open QUESTIONS.md, try to answer each question out loud or in writing before reading the answer. These are the questions you'll get in interviews.

Solutions are in solutions/ — use them to compare approaches, not as a shortcut.


Setup

# Clone and create venv
git clone https://github.com/BioMikeUkr/nlp-puzzles.git
cd nlp-puzzles
python -m venv .venv && source .venv/bin/activate

# Install dependencies for a specific puzzle
pip install -r puzzles/01_python_data_fundamentals/requirements.txt

# Launch Jupyter
jupyter notebook puzzles/01_python_data_fundamentals/learning/

Puzzles

#TopicKey Tools
Foundation
01Python & Data Fundamentalspandas, numpy, regex
02ML Metricsscikit-learn, matplotlib, seaborn
Core NLP
03Text Embeddings & Semantic Searchsentence-transformers, scikit-learn
04FAISS for Vector Searchfaiss-cpu, sentence-transformers
05Cross-Encoders & NLIsentence-transformers, transformers
LLM Stack
06LLM APIsopenai, pydantic, tenacity
07Prompt Engineeringopenai, pydantic
08RAGopenai, sentence-transformers, faiss-cpu
09LangChain & Orchestrationlangchain, langchain-openai, faiss-cpu
ML Engineering
10Fine-tuning Sentence Transformerssentence-transformers, datasets
11Data Formats & SQLpyarrow, sqlalchemy, pandas
12FastAPI for MLfastapi, uvicorn, pydantic
13Testing & Code Qualitypytest, pytest-mock, ruff, mypy
14Spark Basicspyspark, pyarrow
Specialized
15NER with GLiNERgliner, transformers
16Text Classification with GLiClassgliclass, transformers
17Dataset Generation for NER & Classificationopenai, gliner, gliclass
18Gradio Demosgradio, gliner, gliclass

Puzzle Structure

puzzles/XX_name/
├── README.md        # theory and key concepts
├── QUESTIONS.md     # 30 deep Q&A
├── requirements.txt
├── fixtures/        # sample input/output data
├── learning/        # tutorial notebooks
├── tasks/           # livecoding tasks (you solve these)
└── solutions/       # reference solutions (check after solving)

Contributors

BioMikeUkr

32 commits

Languages

Jupyter Notebook

98.4%

Python

1.6%