업계 전반에 걸쳐 LLM의 채택이 거침없이 이루어지고 있음에도 불구하고 LLM은 새로운 AI 물결을 주도하는 광범위한 기술 생태계의 한 구성 요소입니다. 많은 대화형 AI 사용 사례에는 사용자 쿼리에 응답하기 위해 Llama 2, Flan T5, Bloom과 같은 LLM이 필요합니다. 이러한 모델은 질문에 대답하기 위해 파라메트릭 지식을 사용합니다. 모델은 훈련 중에 이 지식을 학습하고 이를 모델 매개변수로 인코딩합니다. 이 지식을 업데이트하려면 LLM을 재교육해야 하는데, 여기에는 많은 시간과 비용이 소요됩니다.
다행히도 우리는 LLM에 정보를 제공하기 위해 소스 지식을 사용할 수도 있습니다. 소스 지식은 입력 프롬프트를 통해 LLM에 제공되는 정보입니다. 소스 지식을 제공하는 인기 있는 접근 방식 중 하나는 검색 증강 생성(RAG)입니다. RAG를 사용하여 외부 데이터 소스에서 관련 정보를 검색하고 해당 정보를 LLM에 제공합니다.
이 블로그 게시물에서는 Amazon Sagemaker JumpStart를 사용하여 Llama-2와 같은 LLM을 배포하고 AI 환각을 방지하기 위해 Pinecone 벡터 데이터베이스를 사용하는 RAG(Retrieval Augmented Generation)를 통해 LLM을 관련 정보로 최신 상태로 유지하는 방법을 살펴보겠습니다. .
Amazon SageMaker의 RAG(증강 생성) 검색
Pinecone은 RAG의 검색 구성 요소를 처리하지만 LLM 추론을 실행할 위치와 임베딩 모델을 실행할 위치라는 두 가지 중요한 구성 요소가 더 필요합니다.
Amazon SageMaker Studio는 모든 기계 학습(ML) 개발을 수행하기 위해 특별히 제작된 도구에 액세스할 수 있는 단일 웹 기반 시각적 인터페이스를 제공하는 통합 개발 환경(IDE)입니다. 이는 사용자가 자신의 SageMaker 계정에서 특정 모델을 찾고, 미리 보고, 시작할 수 있는 모델 허브인 SageMaker JumpStart를 제공합니다. 이는 기초 모델을 포함하여 광범위한 문제 유형에 대해 사전 학습되고 공개적으로 사용 가능한 독점 모델을 제공합니다.
Amazon SageMaker Studio는 RAG 지원 LLM 파이프라인 개발을 위한 이상적인 환경을 제공합니다. 먼저 AWS 콘솔을 사용하여 Amazon SageMaker로 이동하여 SageMaker Studio 도메인을 생성하고 Jupyter Studio 노트북을 엽니다.
사전 조건
다음 전제조건 단계를 완료하십시오.
- Amazon SageMaker Studio를 설정합니다.
- Amazon SageMaker 도메인에 온보딩합니다.
- 무료 등급 Pinecone 벡터 데이터베이스에 등록하세요.
- 필수 라이브러리: SageMaker Python SDK, Pinecone 클라이언트
솔루션 연습
SageMaker Studio 노트북을 사용하려면 먼저 필수 라이브러리를 설치해야 합니다.
LLM 배포
이 게시물에서는 LLM 배포에 대한 두 가지 접근 방식에 대해 설명합니다. 첫 번째는 다음을 통해서이다. HuggingFaceModel
물체. Hugging Face 모델 허브에서 직접 LLM(및 임베딩 모델)을 배포할 때 이를 사용할 수 있습니다.
예를 들어 배포 가능한 구성을 생성할 수 있습니다. 구글/플랜-t5-xl 다음 화면 캡처에 표시된 모델:
Hugging Face에서 직접 모델을 배포하는 경우 my_model_configuration
다음과 같이
- An
env
config는 우리가 어떤 모델을 사용하고 어떤 작업에 사용하고 싶은지 알려줍니다. - SageMaker 실행
role
모델을 배포할 수 있는 권한을 제공합니다. - An
image_uri
Hugging Face에서 LLM을 배포하기 위한 이미지 구성입니다.
또는 SageMaker에는 더 간단한 모델과 직접 호환되는 모델 세트가 있습니다. JumpStartModel
물체. Llama 2와 같은 많은 인기 있는 LLM이 이 모델에서 지원되며 다음 화면 캡처와 같이 초기화될 수 있습니다.
두 버전 모두 my_model
, 다음 화면 캡처에 표시된 대로 배포합니다.
초기화된 LLM 엔드포인트를 사용하면 쿼리를 시작할 수 있습니다. 쿼리 형식은 다양할 수 있지만(특히 대화형 LLM과 비대화형 LLM 간) 프로세스는 일반적으로 동일합니다. 포옹 얼굴 모델의 경우 다음을 수행합니다.
솔루션은 다음에서 찾을 수 있습니다. GitHub 저장소.
여기서 우리가 받는 생성된 답변은 별로 의미가 없습니다. 환각입니다.
LLM에 추가 컨텍스트 제공
Llama 2는 내부 매개변수 지식만을 토대로 우리의 질문에 답하려고 시도합니다. 분명히 모델 매개변수는 SageMaker에서 관리형 스팟 훈련을 통해 어떤 인스턴스를 수행할 수 있는지에 대한 지식을 저장하지 않습니다.
이 질문에 올바르게 대답하려면 원천 지식을 사용해야 합니다. 즉, 프롬프트를 통해 LLM에 추가 정보를 제공합니다. 모델에 대한 추가 컨텍스트로 해당 정보를 직접 추가해 보겠습니다.
이제 우리는 질문에 대한 정답을 봅니다. 그것은 쉽다! 그러나 사용자는 프롬프트에 컨텍스트를 삽입할 가능성이 낮으며 이미 질문에 대한 답을 알고 있을 것입니다.
단일 컨텍스트를 수동으로 삽입하는 대신 보다 광범위한 정보 데이터베이스에서 관련 정보를 자동으로 식별합니다. 이를 위해서는 검색 증강 생성이 필요합니다.
검색 증강 생성
검색 증강 생성을 사용하면 정보 데이터베이스를 벡터 간의 근접성이 관련성/의미론적 유사성을 나타내는 벡터 공간으로 인코딩할 수 있습니다. 이 벡터 공간을 지식 기반으로 사용하면 새로운 사용자 쿼리를 변환하고 동일한 벡터 공간으로 인코딩하며 이전에 색인화한 가장 관련성이 높은 레코드를 검색할 수 있습니다.
이러한 관련 기록을 검색한 후 그 중 몇 개를 선택하고 이를 LLM 프롬프트에 추가 컨텍스트로 포함시켜 LLM에 관련성이 높은 원본 지식을 제공합니다. 이는 다음과 같은 XNUMX단계 프로세스입니다.
- 인덱싱은 데이터 세트의 정보로 벡터 인덱스를 채웁니다.
- 검색은 쿼리 중에 발생하며 벡터 인덱스에서 관련 정보를 검색하는 곳입니다.
두 단계 모두 사람이 읽을 수 있는 일반 텍스트를 의미론적 벡터 공간으로 변환하기 위한 임베딩 모델이 필요합니다. 다음 화면 캡처와 같이 Hugging Face의 매우 효율적인 MiniLM 문장 변환기를 사용하십시오. 이 모델은 LLM이 아니므로 Llama 2 모델과 동일한 방식으로 초기화되지 않습니다.
. hub_config
, 위 화면 캡처에 표시된 대로 모델 ID를 지정하지만 작업의 경우 LLM과 같은 텍스트가 아닌 벡터 임베딩을 생성하므로 기능 추출을 사용합니다. 그런 다음 다음을 사용하여 모델 구성을 초기화합니다. HuggingFaceModel
이전과 마찬가지로 이번에는 LLM 이미지가 없고 일부 버전 매개변수가 있습니다.
다음을 사용하여 모델을 다시 배포할 수 있습니다. deploy
, 더 작은(CPU 전용) 인스턴스를 사용하여 ml.t2.large
. MiniLM 모델은 크기가 작아서 CPU에서도 빠르게 임베딩을 생성할 수 있기 때문에 많은 메모리가 필요하지 않고 GPU도 필요하지 않습니다. 원하는 경우 GPU에서 모델을 더 빠르게 실행할 수 있습니다.
임베딩을 생성하려면 predict
메서드를 통해 인코딩할 컨텍스트 목록을 전달합니다. inputs
표시된 키:
두 개의 입력 컨텍스트가 전달되어 다음과 같이 두 개의 컨텍스트 벡터 임베딩을 반환합니다.
len(out)
2
MiniLM 모델의 임베딩 차원은 다음과 같습니다. 384
이는 MiniLM 출력을 포함하는 각 벡터의 차원이 다음과 같아야 함을 의미합니다. 384
. 그러나 임베딩 길이를 살펴보면 다음과 같은 내용을 확인할 수 있습니다.
len(out[0]), len(out[1])
(8, 8)
두 목록에는 각각 XNUMX개의 항목이 포함되어 있습니다. MiniLM은 먼저 토큰화 단계에서 텍스트를 처리합니다. 이 토큰화는 사람이 읽을 수 있는 일반 텍스트를 모델이 읽을 수 있는 토큰 ID 목록으로 변환합니다. 모델의 출력 기능에서 토큰 수준 임베딩을 볼 수 있습니다. 이러한 임베딩 중 하나는 다음의 예상 차원을 보여줍니다. 384
보여진 바와 같이:
len(out[0][0])
384
다음 그림과 같이 각 벡터 차원의 평균값을 사용하여 이러한 토큰 수준 임베딩을 문서 수준 임베딩으로 변환합니다.
각 입력 텍스트에 대해 하나씩 두 개의 384차원 벡터 임베딩을 사용합니다. 우리의 삶을 더 쉽게 만들기 위해 다음 화면 캡처에 표시된 것처럼 인코딩 프로세스를 단일 함수로 래핑합니다.
데이터 세트 다운로드
질문과 답변 열이 모두 포함된 데이터를 얻으려면 지식 기반으로 Amazon SageMaker FAQ를 다운로드하세요.
검색을 수행할 때 질문 열을 삭제할 수 있도록 답변만 찾으세요. 자세한 내용은 노트북을 참조하세요..
데이터세트와 임베딩 파이프라인이 준비되었습니다. 이제 우리에게 필요한 것은 해당 임베딩을 저장할 장소뿐입니다.
색인
Pinecone 벡터 데이터베이스는 벡터 임베딩을 저장하고 대규모로 효율적으로 검색합니다. 데이터베이스를 생성하려면 Pinecone의 무료 API 키가 필요합니다.
Pinecone 벡터 데이터베이스에 연결한 후 단일 벡터 인덱스를 생성합니다(기존 DB의 테이블과 유사). 인덱스 이름 지정 retrieval-augmentation-aws
그리고 인덱스 정렬 dimension
및 metric
임베딩 모델(이 경우 MiniLM)에 필요한 매개변수로 구성됩니다.
데이터 삽입을 시작하려면 다음을 실행하세요.
이 게시물의 앞부분에 나온 질문으로 인덱스 쿼리를 시작할 수 있습니다.
위 출력은 질문에 답하는 데 도움이 되는 관련 컨텍스트를 반환하고 있음을 보여줍니다. 우리 이후로 top_k = 1
, index.query
읽은 메타데이터와 함께 상위 결과를 반환했습니다. Managed Spot Training can be used with all instances supported in Amazon
.
프롬프트 강화
검색된 컨텍스트를 사용하여 프롬프트를 강화하고 LLM에 제공할 최대 컨텍스트 양을 결정합니다. 사용 1000
콘텐츠 길이를 초과할 때까지 반환된 각 컨텍스트를 프롬프트에 반복적으로 추가하기 위해 문자 제한이 적용됩니다.
피드 context_str
다음 화면 캡처에 표시된 대로 LLM 프롬프트로 이동합니다.
[입력]: SageMaker에서 관리형 스팟 훈련에 어떤 인스턴스를 사용할 수 있습니까? [출력]: 제공된 컨텍스트에 따라 Amazon SageMaker에서 지원되는 모든 인스턴스에서 관리형 스팟 학습을 사용할 수 있습니다. 따라서 대답은 다음과 같습니다. Amazon SageMaker에서는 모든 인스턴스가 지원됩니다.
논리는 작동하므로 단일 함수로 묶어서 깔끔하게 유지하세요.
이제 다음과 같은 질문을 할 수 있습니다.
정리
원치 않는 요금이 발생하지 않도록 하려면 모델과 엔드포인트를 삭제하세요.
결론
이 게시물에서는 SageMaker에서 오픈 액세스 LLM을 갖춘 RAG를 소개했습니다. 또한 Llama 2를 사용하여 Amazon SageMaker Jumpstart 모델을 배포하고 Flan T5를 사용하여 Hugging Face LLM을 배포하고 MiniLM을 사용하여 모델을 임베딩하는 방법도 보여주었습니다.
우리는 개방형 액세스 모델과 Pinecone 벡터 인덱스를 사용하여 완전한 엔드투엔드 RAG 파이프라인을 구현했습니다. 이를 사용하여 환각을 최소화하고 LLM 지식을 최신 상태로 유지하며 궁극적으로 시스템에 대한 사용자 경험과 신뢰를 향상시키는 방법을 보여주었습니다.
이 예제를 직접 실행하려면 이 GitHub 저장소를 복제하고 다음을 사용하여 이전 단계를 살펴보세요. GitHub의 질문 응답 노트북.
저자 소개
베단트 자이나교 전략적 생성 AI 이니셔티브를 담당하는 수석 AI/ML 전문가입니다. AWS에 합류하기 전에 Vedant는 Databricks, Hortonworks(현재 Cloudera) 및 JP Morgan Chase와 같은 다양한 회사에서 ML/데이터 과학 전문 직책을 맡았습니다. 작업 외에도 Vedant는 음악 제작, 암벽 등반, 과학을 활용하여 의미 있는 삶을 영위하고 전 세계 요리를 탐구하는 데 열정을 쏟고 있습니다.
제임스 브릭스 벡터 검색 및 AI/ML을 전문으로 하는 Pinecone의 Staff Developer Advocate입니다. 그는 온라인 교육을 통해 개발자와 기업이 자체 GenAI 솔루션을 개발하도록 안내합니다. Pinecone 이전에 James는 소규모 기술 스타트업부터 금융 회사 설립까지 AI 분야에서 일했습니다. 직장 밖에서 James는 서핑과 스쿠버부터 무에타이와 BJJ에 이르기까지 여행과 새로운 모험을 받아들이는 것에 대한 열정을 가지고 있습니다.
신황 Amazon SageMaker JumpStart 및 Amazon SageMaker 내장 알고리즘의 수석 응용 과학자입니다. 그는 확장 가능한 기계 학습 알고리즘 개발에 중점을 둡니다. 그의 연구 관심 분야는 자연어 처리, 테이블 형식 데이터에 대한 설명 가능한 딥 러닝, 비모수 시공간 클러스터링의 강력한 분석입니다. 그는 ACL, ICDM, KDD 컨퍼런스 및 왕립 통계 학회: 시리즈 A에서 많은 논문을 발표했습니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- 90
- a
- 소개
- 위의
- ACCESS
- 에 따르면
- 계정
- 가로질러
- 더하다
- 추가
- 추가 정보
- 양자
- 모험
- 변호사
- 다시
- AI
- 인공 지능 사용 사례
- AI / ML
- 알고리즘
- 일직선으로하다
- All
- 따라
- 이미
- 또한
- 아마존
- 아마존 세이지 메이커
- Amazon SageMaker 점프스타트
- 아마존 세이지 메이커 스튜디오
- Amazon Web Services
- 양
- an
- 분석
- 및
- 답변
- 답변
- 어떤
- API를
- 앱
- 적용된
- 접근
- 구혼
- 있군요
- 지역
- 약
- AS
- 문의
- At
- 시도
- 증가하다
- 증강 된
- 자동
- 자동적으로
- 가능
- AWS
- 기지
- 기반으로
- BE
- 때문에
- 전에
- 시작하다
- 사이에
- 블로그
- 꽃
- 두
- 더 넓은
- 빌드
- 내장
- 사업
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- CAN
- 포착
- 케이스
- 가지 경우
- 문자
- 요금
- 추적
- 황어 무리
- 명확하게
- 등반
- 클라우 데라
- 클러스터링
- 단
- 열
- 기업
- 호환
- 완전한
- 구성 요소
- 구성 요소들
- 회의
- 연결
- 콘솔에서
- 포함하는
- 이 포함되어 있습니다
- 함유량
- 문맥
- 문맥
- 이야기 잘하는
- 대화 형 AI
- 변하게 하다
- 기업
- 수정
- 바르게
- CPU
- 만들
- 임계
- 현재
- 데이터
- 데이터베이스
- 데이터 브릭
- 날짜
- DBS
- 결정하다
- 깊은
- 깊은 학습
- 배포
- 배치
- 개발자
- 개발자
- 개발
- 개발
- 외형 치수
- 직접
- 토론
- do
- 하지
- 들린
- 하지 않습니다
- 도메인
- 돈
- 드롭
- ...동안
- 마다
- 이전
- 쉽게
- 생태계
- 교육
- 효율적인
- 효율적으로
- 임베딩
- 포용
- 부호화
- end
- 끝으로 종료
- 종점
- 강화
- 환경
- 확립 된
- 에테르 (ETH)
- 조차
- 예
- 넘다
- 실행
- 기대하는
- 경험
- 탐험
- 탐색
- 광대 한
- 외부
- 추출물
- 페이스메이크업
- 빠른
- 특징
- 연방 준비 은행
- 를
- 재원
- Find
- 마무리
- 먼저,
- 흙손
- 집중
- 수행원
- 럭셔리
- 체재
- Foundation
- 무료
- 에
- 기능
- 일반적으로
- 생성
- 생성
- 세대
- 생성적인
- 제너레이티브 AI
- 얻을
- GitHub의
- 주기
- 주어진
- 제공
- Go
- 간다
- GPU
- 안내서
- 핸들
- 발생
- 있다
- he
- 개최
- 도움
- 여기에서 지금 확인해 보세요.
- 고도로
- 그의
- 방법
- How To
- 그러나
- HTTPS
- 황
- 허브
- 포옹 얼굴
- 인간이 읽을 수있는
- i
- IAM
- ID
- 이상
- 확인
- 식별자
- if
- 영상
- 구현
- import
- in
- 포함
- 포함
- 증가
- 색인
- 색인
- 산업
- 통보
- 정보
- 이니셔티브
- 입력
- 입력
- 설치
- 예
- 인스턴스
- 통합 된
- 이해
- 인터페이스
- 내부의
- 으로
- 소개
- IT
- 항목
- 제임스
- 가입
- JP 모건
- JP 모건 체이스
- JPG
- 유지
- 키
- 알아
- 지식
- 언어
- 넓은
- 큰
- 시작
- 리드
- 배우기
- 길이
- 도서관
- 생활
- 처럼
- 제한
- 명부
- 기울기
- 삶
- 야마
- 논리
- 보기
- 찾고
- 롯
- 기계
- 기계 학습
- 확인
- 유튜브 영상을 만드는 것은
- 관리
- 수동으로
- .
- 경기
- 성냥
- 최고
- 최대 금액
- XNUMX월..
- 평균
- 의미있는
- 방법
- 메모리
- 메타 데이터
- 방법
- 최소화
- 완화
- ML
- 모델
- 모델
- 돈
- 배우기
- 모건
- 가장
- 많은
- 여러
- 음악
- 절대로 필요한 것
- name
- 자연의
- 자연어
- 자연 언어 처리
- 필요
- 요구
- 신제품
- 다음 것
- nlp
- 수첩
- 지금
- numpy
- 대상
- of
- on
- ONE
- 온라인
- 온라인 교육
- 만
- 열 수
- 조작
- or
- 주문
- OS
- 그렇지 않으면
- 우리의
- 아웃
- 출력
- 출력
- 외부
- 자신의
- 서류
- 매개 변수
- 특별한
- 특별히
- 패스
- 합격
- 열정
- 열렬한
- 수행
- 실행할 수 있는
- 권한
- .
- 관로
- 평원
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 인기 문서
- 위치
- 게시하다
- 전원
- 예측
- 예측
- Predictor
- 선호하는
- 예방
- 시사
- 너무 이른
- 이전에
- 이전에
- 문제
- 방법
- 프로세스
- 처리
- 프로필
- 프롬프트
- 소유권
- 제공
- 제공
- 제공
- 공개적으로
- 출판
- Python
- 파이 토치
- 쿼리
- 문제
- 문의
- 빨리
- 범위
- 이르기까지
- 준비
- 전수
- 기록
- 지역
- 관련된
- 의지하다
- 저장소
- 대표
- 필요
- 필수
- 연구
- 응답
- 결과
- 결과
- return
- 반환
- 강력한
- 록
- 직위별
- 왕의
- 달리기
- 실행
- 현자
- 같은
- 라고
- 확장성
- 규모
- 과학
- 과학자
- 점수
- 화면
- SDK
- 검색
- 검색
- 참조
- 고르다
- 연장자
- 감각
- 문장
- 연속
- 시리즈 A
- 서비스
- 세트
- 영상을
- 표시
- 보여
- 표시
- 쇼
- 측면
- 비슷한
- 이후
- 단일
- 크기
- 작은
- 작은
- So
- 사회
- 혼자서
- 해결책
- 솔루션
- 일부
- 어딘가에
- 출처
- 스페이스 버튼
- 전문가
- 전문
- 스페셜티
- 구체적으로
- Spot
- 직원
- 신생
- 통계적인
- 단계
- 단계
- 중지
- 저장
- 상점
- 전략의
- 끈
- 스튜디오
- 이러한
- SUPPORT
- 지원
- 지원
- 체계
- 시스템은
- T
- 테이블
- 소요
- 태스크
- 기술
- 기술 스타트 업
- Technology
- 말하다
- 본문
- 타이어
- 보다
- 그
- XNUMXD덴탈의
- 지역
- 세계
- 그들의
- 그들
- 따라서
- Bowman의
- 그들
- 일
- 이
- 그
- 을 통하여
- 시간
- 에
- 토큰
- 토큰 화
- 너무
- 검색을
- 상단
- 전통적인
- 트레이닝
- 변압기
- 변압기
- 변환
- 번역
- 여행
- 믿어
- 두
- 유형
- 궁극적으로
- 가능성
- 멈출 수 없는.
- 까지
- 불필요한
- 업데이트
- URI
- us
- 사용
- 익숙한
- 사용자
- 사용자 경험
- 사용자
- 사용
- 마케팅은:
- 여러
- 버전
- 를 통해
- 시각
- 기다리다
- 연습
- 필요
- 였다
- 웨이브
- 방법..
- we
- 웹
- 웹 서비스
- 웹 기반
- 뭐
- 언제
- 어느
- 동안
- 넓은
- 넓은 범위
- 의지
- 과
- 없이
- 작업
- 일
- 일하는
- 일
- 세계
- 겠지
- 싸다
- X
- 예
- 당신
- 너의
- 제퍼 넷