Thanks! This is a great video for understand RAG. I agree chunking and embedding play a major role. Per my experience so far, most of the times the LLM (GPT4 in my case) is answering the questions well from my data if the quality of chunks are good! The challenges I face so far in chunking: 1) My PDFs contain a lot of contents with complex tabular structures (with merged rows and columns) for product specifications. Chunking break the relationship between rows and columns. 2) same kind of contents that replicate across different PDFs for different products. Unfortunately the pdfs are not named by products. Therefore the vector search is returning contents from an a wrong product not asked in the user query. 3) Sometimes with in the same PDF (Containing multiple products), the contents repeat with different specification per product. If I ask for input voltage for a product A, it might return product B since the context is lost while chunking. Looking for smarter ways to chunk to retain the contexts across the chunks.
🎯 Key Takeaways for quick navigation: 01:23 📚 Embeddings are multi-dimensional feature vectors that represent words or sentences in a semantic space, preserving their meaning. 04:06 🧩 Embeddings are crucial in retrieval augmented generation systems to find the closest text chunks based on user queries. 05:44 🚀 The choice of embedding model is vital as it directly impacts the performance of the response generation in document-based chat systems. 08:45 🔄 OpenAI embeddings can be used for document retrieval but come with a cost, while various open-source embeddings provide alternatives. 13:31 ⏱️ Local embedding models like BGE and Instructor are faster for computations compared to remote OpenAI embeddings, which involve server calls. Made with HARPA AI
The only problem lies in this question : 1. when an LLM model is trained ( not by us, by the ones who made it ) - the input embedding matrix is already fixed 2. What then, is the need of creating external embeddings in the first place? is there a way we can reuse the model's embeddings ? and if not, why? we could very well tokenize our input text, and model would take care of looking up the corresponding embedding. I know it wont fit with RAG Logic , but then counter question is - how are you sure performance wont be affected if using custom embeddings ( for storage in vectorDB) vs kind of embeddings that have been generated per token within LLM itself. is using RAG embeddings means we are bypassing LLM embeddings?
How do you pick your embedding models? Most of us have no context for understanding what’s valuable in a model or what the criteria would be. So you slide over that as if we should know how to pick an embedding model.
Its one thing to be good at what one does but being good at teaching it to someone else is next level. The best playlist for fully understanding the *essence* of what's happening. amazing!
You started off creating an embedding for a sentence but it appears each chunk is more than a sentence. Would love to know more how you decide how to chunk the data.
When you click on the next sequence of code lines, how is it that that stuff magically materializes? Do you copy and paste it from someplace else as obviously you don’t take the time to write it all out like a mortal. Where do these lines of code come from?
Amazing tutorial. I barely understand this stuff, but you walking me through this helps me understand it a bit more. Plus i am able to recreate your process and test things out myself.
Great video. Thanks for sharing. Just a little comment about analogies by vector arithmetic. In the 2:44 you said that if you subtract a vector man from vector king you would get a vector woman where in fact the resultant vector would represent royalty I think. Thanks
thanks for the summary. Been trying to follow your videos. Have you tried to run llama index with mistral 7B model and instructor embedding ? Is there already a colab notebook and video?
Thanks! any idea how "chunking" or embeddings will be different if we are dealing with python code instead of English language? Like for example I want to use RAG method with Code Llama or CodeWizard for my github repo containing Python code.
Thank you for sharing. I really like your structured approach and explanations. Very well done
Thanks, glad it was helpful
Please make a video on alternatives for Open AI llms as well..
You didn’t explain how to compare query embeddings with dataset embeddings
Awesome video! one question, does this give better result than your standard Pinecone/Chorma approach?
Pinecone/Chroma are vector store for storing the embeddings. What type of semantic search you use will have an impact.
Thank You. A good review !
This is an absolutely OUTSTANDING video that summed up so many things so well. Thank you for it!
Thanks! This is a great video for understand RAG.
I agree chunking and embedding play a major role. Per my experience so far, most of the times the LLM (GPT4 in my case) is answering the questions well from my data if the quality of chunks are good!
The challenges I face so far in chunking:
1) My PDFs contain a lot of contents with complex tabular structures (with merged rows and columns) for product specifications. Chunking break the relationship between rows and columns.
2) same kind of contents that replicate across different PDFs for different products. Unfortunately the pdfs are not named by products. Therefore the vector search is returning contents from an a wrong product not asked in the user query.
3) Sometimes with in the same PDF (Containing multiple products), the contents repeat with different specification per product. If I ask for input voltage for a product A, it might return product B since the context is lost while chunking.
Looking for smarter ways to chunk to retain the contexts across the chunks.
🎯 Key Takeaways for quick navigation:
01:23 📚 Embeddings are multi-dimensional feature vectors that represent words or sentences in a semantic space, preserving their meaning.
04:06 🧩 Embeddings are crucial in retrieval augmented generation systems to find the closest text chunks based on user queries.
05:44 🚀 The choice of embedding model is vital as it directly impacts the performance of the response generation in document-based chat systems.
08:45 🔄 OpenAI embeddings can be used for document retrieval but come with a cost, while various open-source embeddings provide alternatives.
13:31 ⏱️ Local embedding models like BGE and Instructor are faster for computations compared to remote OpenAI embeddings, which involve server calls.
Made with HARPA AI
The only problem lies in this question :
1. when an LLM model is trained ( not by us, by the ones who made it ) - the input embedding matrix is already fixed
2. What then, is the need of creating external embeddings in the first place? is there a way we can reuse the model's embeddings ? and if not, why? we could very well tokenize our input text, and model would take care of looking up the corresponding embedding.
I know it wont fit with RAG Logic , but then counter question is - how are you sure performance wont be affected if using custom embeddings ( for storage in vectorDB) vs kind of embeddings that have been generated per token within LLM itself. is using RAG embeddings means we are bypassing LLM embeddings?
How do you pick your embedding models? Most of us have no context for understanding what’s valuable in a model or what the criteria would be. So you slide over that as if we should know how to pick an embedding model.
Its one thing to be good at what one does but being good at teaching it to someone else is next level. The best playlist for fully understanding the *essence* of what's happening. amazing!
You started off creating an embedding for a sentence but it appears each chunk is more than a sentence. Would love to know more how you decide how to chunk the data.
When you click on the next sequence of code lines, how is it that that stuff magically materializes? Do you copy and paste it from someplace else as obviously you don’t take the time to write it all out like a mortal. Where do these lines of code come from?
Need an index of all topics of prompt engineering to understand where to begin.
Yes
An exemplary and crystal-clear exposition of a complex subject that leaves no room for confusion.
I recommend that you just put code in your thumbnail and see how that sells. That’ll make it super uncool.
Amazing tutorial. I barely understand this stuff, but you walking me through this helps me understand it a bit more. Plus i am able to recreate your process and test things out myself.
Glad to hear that!
Thanks, embedding was like black magic to me
Superb Lesson... Thank you! ♥
Great educational value! I'm really looking forward to the comparison video for different embeddings.
Great video. Thanks a lot ! Could you perhaps recommend a good free embeddings model for German language documents?
The models from mistral.ai/ supports German, they even have their own embeddings which I think supports German.
how do you find that chunksize =800 and overlap 20 is a good number?
chunk size and overlap is really doc dependent. I think openai uses similar parameters in their assistants by default.
Thank you for awesome content
The video is awesome! Can't wait for the next one!
Your video is better than those made by llamaindex!
thanks :)
Excellent content!!
Thank you!
Great video. Thanks for sharing.
Just a little comment about analogies by vector arithmetic. In the 2:44 you said that if you subtract a vector man from vector king you would get a vector woman where in fact the resultant vector would represent royalty I think.
Thanks
Good thing this showed up on my feed. You got you another subscriber.
Welcome aboard!
persist and you will go very big, rooting for you
Thank you 🙏
Your tutorials are objectively the best.
Thank you 😊
thanks for the summary. Been trying to follow your videos. Have you tried to run llama index with mistral 7B model and instructor embedding ? Is there already a colab notebook and video?
Very useful video on the topic
Glad you liked it
Is Llama index better than langchain? If so, what are the contributors of the improved performance?
please make the video comparing different embedding models
Can you make a video on chat element in streamlit which uses prompt template.
Good explanation 👏
Thank you 🙂
what is the difference between embedings and lora
How can i perform the same task with Gemini
Watch my latest video :)
Which one sir
The section on Emebeddings with all the cool visualizations, where is that from? If it's from somewhere else, could you please share the link?
that's my own :)
Thanks! any idea how "chunking" or embeddings will be different if we are dealing with python code instead of English language? Like for example I want to use RAG method with Code Llama or CodeWizard for my github repo containing Python code.
Check this out: ua-cam.com/video/aD-u0gl93wM/v-deo.html
awesome video!
as always, you will never find a bad quality content by this guy
Excellent video. Thank you very much. I will wait for the next one on the subject 🦾