text: retriever_multi_qa])Remove redundant results from the merged retrievers.â€‹# We can remove redundant results from both retrievers using yet another embedding.# Using multiples embeddings in diff steps could help reduce biases.filter = EmbeddingsRedundantFilter(embeddings=filter_embeddings)pipeline = DocumentCompressorPipeline(transformers=[filter])compression_retriever = ContextualCompressionRetriever(    base_compressor=pipeline, base_retriever=lotr)Pick a representative sample of documents from the merged retrievers.â€‹# This filter will divide the documents vectors into clusters or "centers" of meaning.# Then it will pick the closest document to that center for the final results.# By default the result document will be ordered/grouped by clusters.filter_ordered_cluster = EmbeddingsClusteringFilter(    embeddings=filter_embeddings,    num_clusters=10,    num_closest=1,)# If you want the final document to be ordered by the original retriever scores# you need to add the "sorted" parameter.filter_ordered_by_retriever = EmbeddingsClusteringFilter(    embeddings=filter_embeddings,    num_clusters=10,    num_closest=1,    sorted=True,)pipeline = DocumentCompressorPipeline(transformers=[filter_ordered_by_retriever])compression_retriever = ContextualCompressionRetriever(    base_compressor=pipeline, base_retriever=lotr)Re-order results to avoid performance degradation.â€‹No matter the architecture of your model, there is a sustancial performance degradation when you include 10+ retrieved documents.