Este repositório de amostra fornece um código de amostra para usar o método RAG (Retrieval Augmented Generation) retransmitindo no Amazon Bedrock Titan Embeddings Generation 1 (G1) LLM (Large Language Model), para criar incorporação de texto que será armazenada no Amazon OpenSearch com suporte de mecanismo de vetor para auxiliando na tarefa de engenharia imediata para uma resposta mais precisa dos LLMs.
Depois de carregarmos com sucesso os embeddings no OpenSearch, começaremos a consultar nosso LLM, usando LangChain. Faremos perguntas, recuperando incorporações semelhantes para uma solicitação mais precisa.
Você pode usar o parâmetro --bedrock-model-id
para escolher perfeitamente um dos modelos de base disponíveis no Amazon Bedrock, cujo padrão é Anthropic Claude v2 e pode ser substituído por qualquer outro modelo de qualquer outro fornecedor de modelos para escolher sua base de melhor desempenho modelo.
Antrópico:
python ./ask-bedrock-with-rag.py --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-instant-v1 --ask "How will AI will change our every day life?"
Laboratórios AI21:
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-ultra-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-mid-v1 --ask "How will AI will change our every day life?"
Isso foi testado em Python 3.11.4
É aconselhável trabalhar em um ambiente limpo, usar virtualenv
ou qualquer outro gerenciador de ambiente virtual.
pip install virtualenv
python -m virtualenv venv
source ./venv/bin/activate
Requisitos de instalação pip install -r requirements.txt
Instale o terraform para criar o cluster OpenSearch
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
Vá para a página Acesso ao modelo e habilite os modelos básicos que deseja usar.
Na primeira etapa lançaremos um cluster OpenSearch usando Terraform.
cd ./terraform
terraform init
terraform apply -auto-approve
Esta configuração de cluster é apenas para fins de teste, pois seu endpoint é público para simplificar o uso deste código de amostra.
Agora que temos um cluster OpenSearch em execução com suporte a mecanismo vetorial, começaremos a enviar nossos dados que nos ajudarão na engenharia imediata. Para este exemplo, usaremos uma fonte de dados de Hugging Face embedding-training-data gooaq_pairs, faremos o download e invocaremos a incorporação do Titan para obter uma incorporação de texto, que armazenaremos no OpenSearch para as próximas etapas.
python load-data-to-opensearch.py --recreate 1 --early-stop 1
Argumentos opcionais:
--recreate
para recriar o índice no OpenSearch--early-stop
para carregar apenas 100 documentos incorporados no OpenSearch--index
para usar um índice diferente do pano padrão--region
caso você não esteja usando o padrão us-east-1
Agora que incorporamos o texto em nosso cluster OpenSearch, podemos começar a consultar nosso modelo LLM de texto Titan no Amazon Bedrock com RAG
python ask-bedrock-with-rag.py --ask " your question here "
Argumentos opcionais:
--index
para usar um índice diferente do pano padrão--region
caso você não esteja usando o padrão us-east-1--bedrock-model-id
para escolher modelos diferentes do Claude v2 da Anthropic
cd ./terraform
terraform destroy # When prompt for confirmation, type yes, and press enter.
Consulte CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.