Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 74 additions & 14 deletions docs/source/notebooks/retrieval/comparing_techniques.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"# Evaluating RAG Architectures on Benchmark Tasks\n",
"\n",
"\n",
"\n",
"#### Introduction\n",
"\n",
"If you ever wanted to compare different approaches to Q&A over docs, you'll find this notebook helpful to get started evaluating different configurations and common RAG architectures on benchmark tasks. The goal is to make it easy for you to experiment with different techniques, understand their tradeoffs, and make informed decisions for your specific use case.\n",
Expand Down Expand Up @@ -73,6 +72,18 @@
"os.environ[\"TOKENIZERS_PARALLELISM\"] = \"false\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import uuid\n",
"\n",
"# Generate a unique run ID for these experiments\n",
"run_uid = uuid.uuid4().hex[:6]"
]
},
{
"cell_type": "markdown",
"id": "2e8a666d-8bf5-4bfd-8b20-8b7defdb8cd5",
Expand Down Expand Up @@ -267,6 +278,12 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, retriever, llm=llm),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"claude-2 qa-chain simple-index {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -338,8 +355,16 @@
"source": [
"chunked_results = client.run_on_dataset(\n",
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, retriever, llm=llm),\n",
" llm_or_chain_factory=partial(chain_factory, chunked_retriever, llm=llm),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"claude-2 qa-chain chunked {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"chunk_size\": 4000,\n",
" \"chunk_overlap\": 200,\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -399,6 +424,12 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, parent_doc_retriever, llm=llm),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"claude-2 qa-chain parent-doc {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"parent-doc\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -447,9 +478,15 @@
"source": [
"hyde_test_run = client.run_on_dataset(\n",
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, retriever),\n",
" llm_or_chain_factory=partial(chain_factory, retriever=retriever, llm=llm),\n",
" evaluation=RAG_EVALUATION,\n",
" verbose=True,\n",
" project_name=f\"claude-2 qa-chain HyDE {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"HyDE\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
")"
]
},
Expand Down Expand Up @@ -515,6 +552,12 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, openai_retriever),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"claude-2 qa-chain oai-emb basic {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"openai/text-embedding-ada-002\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -559,16 +602,6 @@
"ollama = ChatOllama(model=\"yarn-llama2:7b-128k\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "256b75fe-9f0c-4820-8e6c-9c87df39f0a7",
"metadata": {},
"outputs": [],
"source": [
"ollama.invoke(\"Hi there\")"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -593,6 +626,12 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(chain_factory, llm=ollama, retriever=retriever),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"yarn-llama2:7b-128k qa-chain basic {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"ollama/yarn-llama2:7b-128k\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -649,9 +688,16 @@
"claude_simple_prompt_test_run = client.run_on_dataset(\n",
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=partial(\n",
" chain_factory, response_generator=generator, retriever=retriever\n",
" chain_factory, response_generator=generator, retriever=retriever, llm=llm\n",
" ),\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"claude-2 qa-chain basic rag-simple {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"prompt\": \"wfh/rag-simple\",\n",
" \"llm\": \"claude-2\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -771,6 +817,13 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=agent_executor,\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"oai-functions basic rag-simple {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"gpt-4-1106-preview\",\n",
" \"architecture\": \"oai-functions-agent\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down Expand Up @@ -839,6 +892,13 @@
" dataset_name=langchain_docs.name,\n",
" llm_or_chain_factory=assistant_exector,\n",
" evaluation=RAG_EVALUATION,\n",
" project_name=f\"oai-assistant basic rag-simple {run_uid}\",\n",
" project_metadata={\n",
" \"index_method\": \"basic\",\n",
" \"embedding_model\": \"thenlper/gte-base\",\n",
" \"llm\": \"gpt-4-1106-preview\",\n",
" \"architecture\": \"oai-assistant\",\n",
" },\n",
" verbose=True,\n",
")"
]
Expand Down
Loading