이 샘플 리포지토리는 Amazon Bedrock Titan Embeddings Generation 1(G1) LLM(Large Language Model)에서 릴레이하는 RAG(검색 증강 생성) 방법을 사용하여 다음을 위한 벡터 엔진 지원과 함께 Amazon OpenSearch에 저장될 텍스트 임베딩을 생성하기 위한 샘플 코드를 제공합니다. LLM의 보다 정확한 대응을 위해 신속한 엔지니어링 작업을 지원합니다.
OpenSearch에 임베딩을 성공적으로 로드한 후 LangChain을 사용하여 LLM 쿼리를 시작합니다. 보다 정확한 프롬프트를 위해 유사한 임베딩을 검색하여 질문할 것입니다.
--bedrock-model-id
매개변수를 사용하여 Amazon Bedrock에서 사용 가능한 기초 모델 중 하나를 원활하게 선택할 수 있습니다. 이 모델의 기본값은 Anthropic Claude v2이며 다른 모델 공급자의 다른 모델로 교체하여 가장 성능이 좋은 기초를 선택할 수 있습니다. 모델.
인류:
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?"
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?"
이것은 Python 3.11.4에서 테스트되었습니다.
깨끗한 환경에서 작업하고 virtualenv
또는 기타 가상 환경 관리자를 사용하는 것이 좋습니다.
pip install virtualenv
python -m virtualenv venv
source ./venv/bin/activate
설치 요구 사항 pip install -r requirements.txt
Terraform을 설치하여 OpenSearch 클러스터 만들기
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
모델 액세스 페이지로 이동하여 사용하려는 기초 모델을 활성화하세요.
첫 번째 단계에서는 Terraform을 사용하여 OpenSearch 클러스터를 시작합니다.
cd ./terraform
terraform init
terraform apply -auto-approve
이 클러스터 구성은 이 샘플 코드의 사용을 단순화하기 위해 엔드포인트가 공개되므로 제안 테스트용입니다.
이제 벡터 엔진을 지원하는 실행 중인 OpenSearch 클러스터가 있으므로 신속한 엔지니어링에 도움이 될 데이터 업로드를 시작하겠습니다. 이 샘플에서는 Hugging Face embedding-training-data gooaq_pairs의 데이터 소스를 사용하고 이를 다운로드한 후 Titan 임베딩을 호출하여 다음 단계를 위해 OpenSearch에 저장할 텍스트 임베딩을 가져옵니다.
python load-data-to-opensearch.py --recreate 1 --early-stop 1
선택적 인수:
--recreate
OpenSearch에서 인덱스를 다시 생성하기 위한 것입니다.--early-stop
- OpenSearch에 포함된 문서 100개만 로드--index
기본 래그 와 다른 인덱스를 사용하려면--region
(기본 us-east-1을 사용하지 않는 경우)
이제 OpenSearch 클러스터에 텍스트가 포함되었으므로 RAG를 사용하여 Amazon Bedrock에서 LLM 모델 Titan 텍스트 쿼리를 시작할 수 있습니다.
python ask-bedrock-with-rag.py --ask " your question here "
선택적 인수:
--index
기본 래그 와 다른 인덱스를 사용하려면--region
(기본 us-east-1을 사용하지 않는 경우)--bedrock-model-id
Anthropic의 Claude v2와 다른 모델을 선택
cd ./terraform
terraform destroy # When prompt for confirmation, type yes, and press enter.
자세한 내용은 기여를 참조하세요.
이 라이브러리는 MIT-0 라이선스에 따라 라이선스가 부여됩니다. 라이센스 파일을 참조하십시오.