Skip to content

Commit

Permalink
update README.md (#151)
Browse files Browse the repository at this point in the history
* update README.md

* update README.md index

* update README.md index

* Edit roadmap
  • Loading branch information
bwook00 authored Feb 8, 2024
1 parent 5c49ebe commit 17d22ea
Showing 1 changed file with 69 additions and 76 deletions.
145 changes: 69 additions & 76 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,77 +2,84 @@

RAG AutoML tool for automatically finds an optimal RAG pipeline for your data.

Explore our [Document](https://marker-inc-korea.github.io/AutoRAG/)!!
Explore our 📖 [Document](https://marker-inc-korea.github.io/AutoRAG/)!!

Plus, join our [Discord](https://discord.gg/P4DYXfmSAs) Community.
Plus, join our 📞 [Discord](https://discord.gg/P4DYXfmSAs) Community.
# 📑 Index

- [Introduction](#introduction)
- [Quick Install](#-quick-install)
- [Index](#-index)
- [Strengths](#-strengths)
- [QuickStart](#-quickstart)
- [1. Prepare your evaluation data](#1-prepare-your-evaluation-data)
- [2. Evaluate your data to various RAG modules](#2-evaluate-your-data-to-various-rag-modules)
- [3. Use a found optimal RAG pipeline](#3-use-a-found-optimal-rag-pipeline)
- [4. Share your RAG pipeline](#4-share-your-rag-pipeline)
- [+ Config yaml file](#-create-your-own-config-yaml-file)
- [Supporting RAG modules](#supporting-nodes--modules)
- [Roadmap](#roadmap)
- [Contribution](#contribution)

# Introduction

There are numerous RAG pipelines and modules out there,
but you don’t know what pipeline is great for “your own data” and "your own use-case."
Making and evaluating all RAG modules is very time-consuming and hard to do.
But without it, you will never know which RAG pipeline is the best for your own use-case.
There are numerous RAG pipelines and modules out there,
but you don’t know what pipeline is great for “your own data” and "your own use-case."
Making and evaluating all RAG modules is very time-consuming and hard to do.
But without it, you will never know which RAG pipeline is the best for your own use-case.

AutoRAG is a tool for finding optimal RAG pipeline for “your data.”
You can evaluate various RAG modules automatically with your own evaluation data,
and find the best RAG pipeline for your own use-case.
AutoRAG is a tool for finding optimal RAG pipeline for “your data.”
You can evaluate various RAG modules automatically with your own evaluation data,
and find the best RAG pipeline for your own use-case.

AutoRAG supports a simple way to evaluate numerous RAG module combinations.
Try now and find the best RAG pipeline for your own use-case.
AutoRAG supports a simple way to evaluate numerous RAG module combinations.
Try now and find the best RAG pipeline for your own use-case.

# Quick Install
# Quick Install

```bash
pip install AutoRAG
```

# Index

- [Introduction](#introduction)
- [Quick Install](#quick-install)
- [Index](#index)
- [Strengths](#strengths)
- [QuickStart](#quickstart)
- [Prepare your evaluation data](#prepare-your-evaluation-data)
- [Evaluate your data to various RAG modules](#evaluate-your-data-to-various-rag-modules)
- [Use a found optimal RAG pipeline](#use-a-found-optimal-rag-pipeline)
- [Share your RAG pipeline](#share-your-rag-pipeline)
- [Config yaml file](#config-yaml-file)
- [Supporting RAG modules](#supporting-rag-modules)
- [Roadmap](#roadmap)
- [Contribution](#contribution)

# Strengths
# 💪 Strengths

- Find your RAG baseline: Benchmark RAG pipelines with few lines of code. You can quickly get a high-performance RAG
### **1. Find your RAG baseline**
Benchmark RAG pipelines with few lines of code. You can quickly get a high-performance RAG
pipeline just for your data. Don’t waste time dealing with complex RAG modules and academic paper. Focus on your data.
- Analyze where is wrong: Sometimes it is hard to keep tracking where is the major problem within your RAG pipeline.
### **2. Analyze where is wrong**
Sometimes it is hard to keep tracking where is the major problem within your RAG pipeline.
AutoRAG gives you the data of it, so you can analyze and focus where is the major problem and where you to focus on.
- Quick Starter Pack for your new RAG product: Get the most effective RAG workflow among many pipelines, and start from
### **3. Quick Starter Pack for your new RAG product**
Get the most effective RAG workflow among many pipelines, and start from
there. Don’t start at toy-project level, start from advanced level.
- Share your experiment to others: It's really easy to share your experiment to others. Share your config yaml file and
### **4. Share your experiment to others**
It's really easy to share your experiment to others. Share your config yaml file and
summary csv files. Plus, check out others result and adapt to your use-case.

# QuickStart
# ⚡ QuickStart

### 1. Prepare your evaluation data

For evaluation, you need to prepare just three files.

- QA dataset file (qa.parquet)
- Corpus dataset file (corpus.parquet)
- Config yaml file (config.yaml)

### Prepare your evaluation data

There is a template for your evaluation data for using AutoRAG.
Check out the evaluation data rule at [here]().
Plus, you can get example datasets for testing AutoRAG at [here](./sample_dataset).

### Evaluate your data to various RAG modules
- Check out how to make evaluation data at [here](https://marker-inc-korea.github.io/AutoRAG/data_creation/tutorial.html).
- Check out the evaluation data rule at [here](https://marker-inc-korea.github.io/AutoRAG/data_creation/data_format.html).
- Plus, you can get example datasets for testing AutoRAG at [here](./sample_dataset).

You can get various config yaml files at [here]().
### 2. Evaluate your data to various RAG modules

You can get various config yaml files at [here](./sample_config).
We highly recommend using pre-made config yaml files for starter.

If you want to make your own config yaml files, check out the [Config yaml file](#config-yaml-file) section.
If you want to make your own config yaml files, check out the [Config yaml file](#-create-your-own-config-yaml-file) section.

You can evaluate your RAG pipeline with just a few lines of code.

Expand All @@ -93,9 +100,9 @@ Once it is done, you can see several files and folders created at your current d
At the trial folder named to numbers (like 0),
you can check `summary.csv` file that summarizes the evaluation results and the best RAG pipeline for your data.

For more details, you can check out how the folder structure looks like at [here]().
For more details, you can check out how the folder structure looks like at [here](https://marker-inc-korea.github.io/AutoRAG/optimization/folder_structure.html).

### Use a found optimal RAG pipeline
### 3. Use a found optimal RAG pipeline

You can use a found optimal RAG pipeline right away.
It needs just a few lines of code, and you are ready to use!
Expand All @@ -113,7 +120,7 @@ runner.run('your question')

Or, you can run this pipeline as api server.
You can use python code or CLI command.
Check out API endpoint at [here]().
Check out API endpoint at [here](https://marker-inc-korea.github.io/AutoRAG/deploy/api_endpoint.html).

```python
from autorag.deploy import Runner
Expand All @@ -128,7 +135,7 @@ You can run api server with CLI command.
autorag run_api --config_path your/path/to/pipeline.yaml --host 0.0.0.0 --port 8000
```

### Share your RAG pipeline
### 4. Share your RAG pipeline

You can use your RAG pipeline from extracted pipeline yaml file.
This extracted pipeline is great for sharing your RAG pipeline to others.
Expand All @@ -141,12 +148,13 @@ from autorag.deploy import extract_best_config

pipeline_dict = extract_best_config(trial_path='your/path/to/trial_folder', output_path='your/path/to/pipeline.yaml')
```

### Config yaml file
### ➕ Create your own Config yaml file

You can build your own evaluation process with config yaml file.
You can check detailed explaination how to configure each module and node at [here]().
You can check detailed explanation how to configure each module and node at [here](https://marker-inc-korea.github.io/AutoRAG/nodes/index.html#).

There is a simple yaml file example.

It evaluates two retrieval modules which are BM25 and Vector Retriever, and three reranking modules.
Lastly, it generates prompt and makes generation with two other LLM models and three temperatures.

Expand Down Expand Up @@ -189,39 +197,22 @@ node_lines:

```

# Supporting RAG modules

### Query Expansion

- Query Decompose
- HyDE

### Retrieval

- BM25
- Vector Retriever (choose your own embedding model)
- Hybrid with rrf (reciprocal rank fusion)
- Hybrid with cc (convex combination)

### Reranker
# ❗Supporting Nodes & modules

- UPR
- TART
- MonoT5

### Passage Compressor
| Nodes | Modules |
|:-----------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| [Query_Expansion](https://marker-inc-korea.github.io/AutoRAG/nodes/query_expansion/query_expansion.html) | [Query_Decompose](https://marker-inc-korea.github.io/AutoRAG/nodes/query_expansion/query_decompose.html)<br/>[HyDE](https://marker-inc-korea.github.io/AutoRAG/nodes/query_expansion/hyde.html) |
| [Retrieval](https://marker-inc-korea.github.io/AutoRAG/nodes/retrieval/retrieval.html) | [BM25](https://marker-inc-korea.github.io/AutoRAG/nodes/retrieval/bm25.html)<br/>[VectorDB (choose embedding model)](https://marker-inc-korea.github.io/AutoRAG/nodes/retrieval/vectordb.html)<br/>[Hybrid with rrf (reciprocal rank fusion)](https://marker-inc-korea.github.io/AutoRAG/nodes/retrieval/hybrid_rrf.html)<br/>[Hybrid with cc (convex combination)](https://marker-inc-korea.github.io/AutoRAG/nodes/retrieval/hybrid_cc.html) |
| [Passage_Reranker](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_reranker/passage_reranker.html) | [UPR](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_reranker/upr.html)<br/>[Tart](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_reranker/tart.html)<br/>[MonoT5](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_reranker/monot5.html) |
| [Passage_Compressor](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_compressor/passage_compressor.html) | [Tree Summarize](https://marker-inc-korea.github.io/AutoRAG/nodes/passage_compressor/tree_summarize.html) |
| [Prompt Maker](https://marker-inc-korea.github.io/AutoRAG/nodes/prompt_maker/prompt_maker.html) | [Default Prompt Maker (f-string)](https://marker-inc-korea.github.io/AutoRAG/nodes/prompt_maker/fstring.html) |
| [Generator](https://marker-inc-korea.github.io/AutoRAG/nodes/generator/generator.html) | [llama_index llm](https://marker-inc-korea.github.io/AutoRAG/nodes/generator/llama_index_llm.html) |

- Tree Summarize

### Prompt Maker

- Default Prompt Maker (f-string)

### Generator

- Llama Index LLM (choose your own model)

# Roadmap
# 🛣Roadmap

- [ ] Policy Module for modular RAG pipeline
- [ ] Visualize evaluation result
Expand All @@ -235,6 +226,8 @@ node_lines:

# Contribution

We are developing AutoRAG as open-source. Feel free to contribute to this project.
If you want to contribute to this project, please check out the [Contribution Guide](CONTRIBUTING.md).
Plus, check out our detailed documentation at [here]().
We are developing AutoRAG as open-source.

So this project welcomes contributions and suggestions. Feel free to contribute to this project.

Plus, check out our detailed documentation at [here](https://marker-inc-korea.github.io/AutoRAG/index.html).

0 comments on commit 17d22ea

Please sign in to comment.