breve
BM25 A Geração Aprimorada de Recuperação (BM25 RAG) é uma técnica avançada que combina o algoritmo BM25 (Best Matching 25) para recuperação de informações com um modelo de linguagem grande para geração de texto. Ao usar um modelo de recuperação probabilístico validado, esse método melhora a precisão e a relevância das respostas geradas.
Fluxo de trabalho do BM25 RAG
Início rápido
Caderno de anotações
Você pode executar o notebook Jupyter fornecido nesta base de código para explorar o BM25 RAG em detalhes. https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_BM25_RAG
aplicativo de bate-papo
- Instalar dependências:
pip install -r requirements.txt
- Execute o aplicativo:
python app.py
- Ingestão dinâmica de dados:
python app.py --ingest --data_dir /path/to/documents
servidor (computador)
Execute o servidor:
python server.py
O servidor contém dois pontos de extremidade:
/api/ingest
para a ingestão de novos documentos/api/query
: para consulta BM25 RAG sistemas
Principais recursos do BM25 RAG
- pesquisa probabilísticaBM25: usa um modelo probabilístico para classificar documentos, fornecendo uma base teoricamente sólida para a recuperação.
- saturação de frequência de palavras: o BM25 leva em conta a diminuição dos retornos marginais dos termos duplicados e melhora a qualidade da recuperação.
- Normalização do comprimento do documentoO algoritmo leva em conta o tamanho do documento e reduz a tendência de preferência por documentos mais longos.
- relevância contextualResposta: Ao gerar uma resposta com base nas informações recuperadas, o BM25 RAG fornece uma resposta mais precisa e relevante.
- escalabilidadeA etapa de pesquisa do BM25 lida com eficiência com grandes conjuntos de documentos.
Vantagens do BM25 RAG
- Precisão aprimoradaCombinando as vantagens da recuperação probabilística e da geração de texto neural.
- interpretabilidadeO mecanismo de pontuação do BM25 é mais interpretável do que o método de recuperação de vetor denso.
- Como lidar com consultas de cauda longaExcelente em consultas que exigem informações específicas ou raras.
- Não é necessário incorporarDiferentemente dos RAGs baseados em vetores, o BM25 não exige a incorporação de documentos, o que reduz a sobrecarga computacional.
pré-condições
- Python 3.7+
- Jupyter Notebook ou JupyterLab (para executar o notebook)
- Pacotes Python necessários (consulte
requisitos.txt
) - Chave de API para o modelo de idioma selecionado (por exemplo, chave de API da OpenAI)