#atom

Techniques for accessing and selecting relevant information from LLM memory stores

Core Idea: Memory retrieval methods enable LLMs to efficiently search through stored information and extract the most contextually relevant content for the current interaction.

Key Elements

Implementation Example

from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings

# Setup vector store for memory
embeddings = OpenAIEmbeddings()
memory_vectorstore = Chroma(embedding_function=embeddings)

# Store memories with embeddings
for memory in memories:
    memory_vectorstore.add_texts([memory.content], metadatas=[{"timestamp": memory.timestamp}])

# Retrieve relevant memories for current query
def retrieve_relevant_memories(query, k=5):
    # Perform similarity search
    results = memory_vectorstore.similarity_search_with_score(
        query, 
        k=k,
        fetch_k=20  # Retrieve more candidates for reranking
    )
    
    # Rerank results (optional advanced step)
    reranked_results = rerank_by_relevance(results, query)
    
    return reranked_results

Applications

Connections

References

  1. Lewis, P., et al. (2020). "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"
  2. Guu, K., et al. (2020). "REALM: Retrieval-Augmented Language Model Pre-Training"
  3. Maharana, A., et al. (2024). "Evaluating Very Long-Term Conversational Memory of LLM Agents"

#memory-retrieval #vector-search #semantic-similarity #information-retrieval #llm-agents

Sources: