\n",
"\n",
"![anthropic blog poas](https://www.anthropic.com/_next/image?url=https%3A%2F%2Fwww-cdn.anthropic.com%2Fimages%2F4zrzovbb%2Fwebsite%2F2496e7c6fedd7ffaa043895c23a4089638b0c21b-3840x2160.png&w=3840&q=75)\n",
"\n",
"This is an approach proposed by Anthropic in a recent [blog poas](https://www.anthropic.com/news/contextual-retrieval). It involves improving retrieval by providing each document chunk with an in context summary."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Problems
\n",
"\n",
"As one may gather from the explanation, there is a requirement that each chunk be appropriately contextualized with respect to the rest of the document. So essentially the whole document has to be passed into the prompt each time along with the chunk. There are two problems with this:\n",
"\n",
"1. This would be very expensive in terms of input token count.\n",
"2. For models with smaller context windows, the whole document may exceed it.( Further, there is a sense in which fitting a whole document into a models context width defeats the point of performing RAG.)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
Whole Document Summarization
\n",
"\n",
"The solution I have come up with is to instead summarize the document into a more manageable size."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"\n",
"Refine is properly configured but we ran into this error.\n",
"\n",
"```python\n",
"ResourceExhausted: 429 Resource has been exhausted (e.g. check quota).\n",
"```\n",
"\n",
"This is a problem on the part of our llm provider not the code.\n",
"\n",
"
Next Steps
\n",
"\n",
"The best approach will be to use local models to achive this kind of heavy inference. For that we will turn to either **Ollama** or hugging face **Transformers**."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}