Showing posts with label Frameworks. Show all posts
Showing posts with label Frameworks. Show all posts

Tuesday, May 14, 2024

Types of Chains in LangChain

The LangChain framework uses different methods for processing data, including "STUFF," "MAP REDUCE," "REFINE," and "MAP_RERANK."

Here's a summary of each method:


1. STUFF:
   - Simple method involving combining all input into one prompt and processing it with the language model to get a single response.
   - Cost-effective and straightforward but may not be suitable for diverse data chunks.


2. MAP REDUCE:
   - Involves passing data chunks with the query to the language model and summarizing all responses into a final answer.
   - Powerful for parallel processing and handling many documents but requires more processing calls.


3. REFINE:
   - Iteratively loops over multiple documents, building upon previous responses to refine and combine information gradually.
   - Leads to longer answers and depends on the results of previous calls.


4. MAP_RERANK:
   - Involves a single call to the language model for each document, requesting a relevance score, and selecting the highest score.
   - Relies on the language model to determine the score and can be more expensive due to multiple model calls.


The most common of these methods is the “stuff method”. The second most common is the “Map_reduce” method, which takes these chunks and sends them to the language model.

These methods are not limited to question-answering but can be applied to various data processing tasks within the LangChain framework.

For example, "Map_reduce" is commonly used for document summarization.