About the Project
Deploy a Scalable and Low-Latency Agentic Chatbot in python using cutting edge techniques like Cache Augmented Retrieval. Implement a professional MLOps Pipeline to ensure visibility, scalability, low latency, logging and continuous feature integration and deployment.
Resources
Week 0
- Understand Regression and Grad Descent
- Neural Networks
- Coding an NN in PyTorch, and a micrograd framework from scratch
Week 1 | Introduction to NLP and Sequence Models
Basic NLP
- NLP Playlist by Tensorflow
- Side by side, refer to this github repo
- Text Pre processing
- Text Normalization
- Bag of words representation
- Term Frequency-Inverse Document Frequency
- Continuous Bag of Words
- One Hot Encodings
Sequence Models
- Recurrent Neural Networks
- Mathematics of RNNs
- Long Short Term Memory
- overall idea of lstms and rnns with a little maths - video link
- Introduction to Transformers
- Attention in Transformers
Week 1 Additional Resources
- Attention Is All You Need
- QLoRA: Efficient Finetuning of Quantized LLMs
- LoRA: Low-Rank Adaptation of Large Language Models
- Fine Tuning Repository
Introduction to Python
- Intro to Python
- Exception Handling
- Anaconda
- Path and environment variables for Python and Anaconda in Windows
- Interactive Python Notebooks
- Venv
- Managing Packages with venv
- Python virtualenv
- PyEnv for Python Version Management
- Git
Week 2 | Retrieval Augmented Generation
APIs, LLMs and HuggingFace
- Requests and APIs:
- APIs
- REST API
- Requests
- Accessing LLMs via APIs:
- Explore models on Huggingface, resources are as follows:
RAGs
- LangChain Ecosystem
- Prompting
- RAGs
Week 3 | Agentic Systems
- Data Validation and Typing
- Concurrency
- Concurrency, Parallelism, and asyncio
- Repo for codes in (2.1)
- Async Programming in python
- A nice video tutorial (alternative to 2.3)
- Exception Handling in python asyncio
- Nice clarificaton from stackoverflow
- Parallelism v/s Concurrency
- Design Patterns
- Abstract Factory and Abstract Base Classes
- Factory Method, Composite Patterns, Decorators, State, Iterators etc from Refactoring Guru Design Patterns
- Grokking OOPs
- LlamaIndex
- [Tools, Agents, Agentic Orchestration]
- [Llamaindex Workflows]
Week 4 | Agentic and Advanced RAGs
Mini Advanced RAGs Roadmap
- Ingestion
- Data Preprocessing/Cleaning
- Chunking
- Fixed Size Chunking
- Content-aware Chunking
- Simple Sentence and Paragraph splitting
- Recursive Character Level Chunking
- Document structure-based chunking
- Semantic Chunking
- Contextual Retrieval: Provides scalability for larger documents
- Embedding:
- Semantic Embeddings
- Lexical Embeddings
- BM-25 (Best Matching 25): Lexical Matching which builds upon TF-IDF (Term Frequency-Inverse Document Frequency)
- Retrieval
- Search
- Semantic Search (dense vectors)
- Lexical Search (sparse vectors)
- Hybrid Search
- Querying Hybrid Index
- Querying Sparse and Dense Index and reranking
- Reranking: Increases quality of retrieved documents
- Search
- Augmentation
- Generation
- Evaluation
- Offline Metrics
- Binary Relevance Metrics
- Order-unaware:
- Precision@k: TP/(TP+FP) how many items in the result set are relevant
- Recall@k: TP/(TP+FN) how many relevant results your retrieval step returns from all existing relevant results for the query
- F1@k: (2 * Precision@k * Recall@k)/(Precision@k + Recall@k)
- Order-aware:
- Mean Reciprocal Rank (MRR)
- Mean Average Precision@K (MAP@K)
- Order-unaware:
- Graded Relevance Metrics
- Discounted Cumulative Gain (DCG@k)
- Normalized Discounted Cumulative Gain (DCG@k)
- Binary Relevance Metrics
- Online Metrics: Based on user data, RL-based
- Frameworks and Tooling
- Arize
- ARES
- RAGAS
- TraceLoop
- TruLens
- Galileo
- Offline Metrics
- Benchmarking AI Assistants
Additional Resources
Week 5 and 6| Creating a Python Module for Advanced RAGs
System Design and Patterns Review
- Python Design Patterns
- Design Patterns
- ABCs
- ABCs v/s protocols
- Sequence Diagrams
- Activity Diagrams
- Some case studies
Project Management
Repos of similar modules for reference
- FlashRAG: https://github.com/RUC-NLPIR/FlashRAG
- RAGligh: https://github.com/Bessouat40/RAGLight
Building and structuring modules
- How to design modular python projects
- Designing Modules
- Why the Plugin Architecture Gives You CRAZY Flexibility
- Clean Architectures in Python
- Why Use Design Patterns When Python Has Functions
Software testing:
- Unit, Integration and Functional Testing
- Types of Software Testing
- Unit v/s Integration Testing
- Unit v/s Integration Testing