Welcome to my blog! I am a developer who enjoys writing code and sharing learnings from my technical career.
Recent Blog
Intro to RAG: Foundations of Retrieval Augmented Generation, part 2
Photo credit In the last post, we discussed the basics of Retrieval Augmented Generation (RAG) and how it enhances the capabilities of Large Language Models (LLMs) by integrating them with external knowledge sources. We also introduced the concept of vector embeddings and their role in semantic search.
In this post, we’ll dive deeper into the different layers of RAG, including vector RAG, graph RAG, and agents. We’ll explore how these layers can be combined to create more powerful and effective AI systems.
read moreIntro to RAG: Foundations of Retrieval Augmented Generation, part 1
Photo credit Retrieval Augmented Generation (RAG) may sound complex, but it accurately represents the process of the system. RAG is a method that enhances the capabilities of Large Language Models (LLMs) by integrating them with external knowledge sources.
Each term represents a piece of the puzzle:
Retrieval - data retrieved from some external source outside the LLM (most often a database, but can include files, webpages, etc)
Augmented - "augmenting" (or adding to) an LLM’s training data.
read moreGenAI blood, sweat, and tears: Loading data to Pinecone
Photo credit As someone who is pretty familiar with relational and graph databases, I wanted to dig a little deeper into vector databases and understand the strengths and quirks they bring to the database table. I put together a conference abstract on vector RAG versus GraphRAG which got picked up, so I went to work building a demo and learning all I could.
I pivoted a few times along the way, but ended up with a Spring AI application that connects to both Pinecone (vector database) and Neo4j (graph database).
read more