Build and explore efficient retrieval-augmented generative models and applications
:round_pushpin: Installation • :rocket: Components • :books: Examples • :red_car: Getting Started • :pill: Demos • :pencil2: Scripts • :bar_chart: Benchmarks
fastRAG is a research framework for efficient and optimized retrieval augmented generative pipelines, incorporating state-of-the-art LLMs and Information Retrieval. fastRAG is designed to empower researchers and developers with a comprehensive tool-set for advancing retrieval augmented generation.
Comments, suggestions, issues and pull-requests are welcomed! :heart:
[!IMPORTANT] Now compatible with Haystack v2+. Please report any possible issues you find.
:mega: Updates
- 2024-05: fastRAG V3 is Haystack 2.0 compatible :fire:
- 2023-12: Gaudi2 and ONNX runtime support; Optimized Embedding models; Multi-modality and Chat demos; REPLUG text generation.
- 2023-06: ColBERT index modification: adding/removing documents; see IndexUpdater.
- 2023-05: RAG with LLM and dynamic prompt synthesis example.
- 2023-04: Qdrant
DocumentStoresupport.
Key Features
- Optimized RAG: Build RAG pipelines with SOTA efficient components for greater compute efficiency.
- Optimized for Intel Hardware: Leverage Intel extensions for PyTorch (IPEX), 🤗 Optimum Intel and 🤗 Optimum-Habana for running as optimal as possible on Intel® Xeon® Processors and Intel® Gaudi® AI accelerators.
- Customizable: fastRAG is built using Haystack and HuggingFace. All of fastRAG's components are 100% Haystack compatible.
:rocket: Components
For a brief overview of the various unique components in fastRAG refer to the Components Overview page.
| LLM Backends | |
| Intel Gaudi Accelerators | Running LLMs on Gaudi 2 |
| ONNX Runtime | Running LLMs with optimized ONNX-runtime |
| OpenVINO | Running quantized LLMs using OpenVINO |
| Llama-CPP | Running RAG Pipelines with LLMs on a Llama CPP backend |
| Optimized Components | |
| Embedders | Optimized int8 bi-encoders |
| Rankers | Optimized/sparse cross-encoders |
| RAG-efficient Components | |
| ColBERT | Token-based late interaction |
| Fusion-in-Decoder (FiD) | Generative multi-document encoder-decoder |
| REPLUG | Improved multi-document decoder |
| PLAID | Incredibly efficient indexing engine |
:round_pushpin: Installation
Preliminary requirements:
- Python 3.8 or higher.
- PyTorch 2.0 or higher.
To set up the software, install from pip or clone the project for the bleeding-edge updates. Run the following, preferably in a newly created virtual environment:
pip install fastrag
Extra Packages
There are additional dependencies that you can install based on your specific usage of fastRAG:
# Additional engines/components
pip install fastrag[intel] # Intel optimized backend [Optimum-intel, IPEX]
pip install fastrag[openvino] # Intel optimized backend using OpenVINO
pip install fastrag[elastic] # Support for ElasticSearch store
pip install fastrag[qdrant] # Support for Qdrant store
pip install fastrag[colbert] # Support for ColBERT+PLAID; requires FAISS
pip install fastrag[faiss-cpu] # CPU-based Faiss library
pip install fastrag[faiss-gpu] # GPU-based Faiss library
To work with the latest version of fastRAG, you can install it using the following command:
pip install .
Development tools
pip install .[dev]
License
The code is licensed under the Apache 2.0 License.
Disclaimer
This is not an official Intel product.
Metadata
Release files for fastrag 3.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastrag-3.1.2.tar.gz | 60.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastrag-3.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 137.5 kB
Release files / fastrag-3.1.2.tar.gz
| Download URL | fastrag-3.1.2.tar.gz |
|---|---|
| Size | 60.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
265747d1918b95e52c12e84218ddb2c33dbfa5cf101a4a345f72e59afd3bdc2b
|
|
BLAKE2b-256 checksum How to use checksums |
0bef0c8b42f4071a5e6c8a512f3744ebaf73be43856c4969e714011ae9067847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|
Release files / fastrag-3.1.2-py3-none-any.whl
| Download URL | fastrag-3.1.2-py3-none-any.whl |
|---|---|
| Size | 77.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
771a141be0450539f2d86fdf39c189d5a72a3adacf01c219ed65020513320f57
|
|
BLAKE2b-256 checksum How to use checksums |
b4d76ae1eb57ac4a2de7054360e5bfcb29c933c325f1342c4b008568ee5f8379
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|