제퍼넷 로고

Amazon Bedrock |에서 자체 일관성 메시지를 통해 생성 언어 모델의 성능 향상 아마존 웹 서비스

시간

생성 언어 모델은 논리적이고 분석적인 자연어 처리(NLP) 작업을 해결하는 데 매우 능숙한 것으로 입증되었습니다. 또한, 신속한 엔지니어링 성능을 눈에 띄게 향상시킬 수 있습니다. 예를 들어, 생각의 사슬 (CoT)는 복잡한 다단계 문제에 대한 모델의 용량을 향상시키는 것으로 알려져 있습니다. 추론과 관련된 작업의 정확성을 추가로 높이기 위해 자기 일관성 언어 생성 중 탐욕을 확률론적 디코딩으로 대체하는 프롬프트 방식이 제안되었습니다.

아마존 기반암 광범위한 구축 기능 세트와 함께 단일 API를 통해 선도적인 AI 기업과 Amazon의 고성능 기반 모델을 선택할 수 있는 완전 관리형 서비스입니다. 생성 적 AI 보안, 개인 정보 보호 및 책임 있는 AI를 갖춘 애플리케이션입니다. 와 더불어 배치 추론 API를 사용하면 Amazon Bedrock을 사용하여 기초 모델에 대한 일괄 추론을 실행하고 더 효율적으로 응답을 얻을 수 있습니다. 이 게시물에서는 산술 및 객관식 추론 작업에서 모델 성능을 향상시키기 위해 Amazon Bedrock에서 배치 추론을 통해 자체 일관성 프롬프트를 구현하는 방법을 보여줍니다.

솔루션 개요

언어 모델의 자체 일관성 프롬프트는 최종 답변으로 집계되는 다중 응답 생성에 의존합니다. CoT와 같은 단일 세대 접근 방식과 달리, 자체 일관성 샘플링 및 주변화 절차는 보다 일관된 솔루션으로 이어지는 다양한 모델 완성을 생성합니다. 탐욕적인 디코딩 전략이 아닌 확률론적인 디코딩 전략을 사용하기 때문에 주어진 프롬프트에 대해 서로 다른 응답을 생성하는 것이 가능합니다.

다음 그림은 다양한 추론 경로 세트를 생성하고 이를 집계하여 최종 답변을 생성한다는 점에서 자체 일관성이 탐욕적 CoT와 어떻게 다른지 보여줍니다.

자기 일관성과 CoT 프롬프트의 차이점.

텍스트 생성을 위한 디코딩 전략

디코더 전용 언어 모델에 의해 생성된 텍스트는 단어별로 전개되며, 후속 토큰은 이전 컨텍스트를 기반으로 예측됩니다. 주어진 프롬프트에 대해 모델은 각 토큰이 시퀀스의 다음에 나타날 가능성을 나타내는 확률 분포를 계산합니다. 디코딩에는 이러한 확률 분포를 실제 텍스트로 변환하는 작업이 포함됩니다. 텍스트 생성은 다음 세트에 의해 중재됩니다. 추론 매개변수 이는 종종 디코딩 방법 자체의 하이퍼파라미터입니다. 한 가지 예는 온도이는 다음 토큰의 확률 분포를 변조하고 모델 출력의 무작위성에 영향을 미칩니다.

그리디 디코딩 각 단계에서 가장 높은 확률을 가진 토큰을 선택하는 결정론적 디코딩 전략입니다. 이 접근 방식은 간단하고 효율적이지만 더 넓은 확률 공간을 무시하기 때문에 반복적인 패턴에 빠질 위험이 있습니다. 추론 시 온도 매개변수를 0으로 설정하는 것은 본질적으로 그리디 디코딩을 구현하는 것과 같습니다.

샘플링 예측된 확률 분포를 기반으로 각 후속 토큰을 무작위로 선택하여 디코딩 프로세스에 확률성을 도입합니다. 이러한 임의성으로 인해 출력 변동성이 커집니다. 확률론적 디코딩은 잠재적인 출력의 다양성을 포착하는 데 더 능숙하며 종종 더 상상력이 풍부한 응답을 생성합니다. 온도 값이 높을수록 변동이 더 많아지고 모델 반응의 창의성이 높아집니다.

프롬프트 기술: CoT 및 자체 일관성

언어 모델의 추론 능력은 신속한 엔지니어링을 통해 강화될 수 있습니다. 특히 CoT는 다음과 같은 것으로 나타났습니다. 추론을 이끌어낸다 복잡한 NLP 작업에서 구현하는 한 가지 방법 제로 샷 CoT는 "단계별로 생각하라"는 지시를 통해 즉각적인 강화를 통해 이루어집니다. 또 다른 방법은 모델을 중간 추론 단계의 예시에 노출시키는 것입니다. 몇 번의 메시지 표시 패션. 두 시나리오 모두 일반적으로 그리디 디코딩을 사용합니다. CoT는 산술, 상식, 기호 추론 작업에 대한 간단한 지시에 비해 상당한 성능 향상을 가져옵니다.

자기 일관성을 촉구 추론 과정에 다양성을 도입하면 모델이 정답에 수렴하는 데 도움이 될 수 있다는 가정에 기반을 두고 있습니다. 이 기술은 확률적 디코딩을 사용하여 세 단계로 이 목표를 달성합니다.

  1. 추론을 이끌어내기 위해 CoT 예시를 사용하여 언어 모델에 메시지를 표시합니다.
  2. 탐욕스러운 디코딩을 샘플링 전략으로 대체하여 다양한 추론 경로 세트를 생성합니다.
  3. 결과를 집계하여 응답 세트에서 가장 일관된 답변을 찾습니다.

자체 일관성은 대중적인 산술 및 상식 추론 벤치마크에서 CoT 프롬프트보다 뛰어난 성능을 보이는 것으로 나타났습니다. 이 접근 방식의 한계는 더 큰 계산 비용입니다.

이 게시물은 산술 문제 해결 및 객관식 도메인별 질문 응답이라는 두 가지 NLP 추론 작업에서 자체 일관성 프롬프트가 생성 언어 모델의 성능을 어떻게 향상시키는지 보여줍니다. Amazon Bedrock에서 배치 추론을 사용하는 접근 방식을 보여줍니다.

  • 우리는 JupyterLab의 Amazon Bedrock Python SDK에 액세스합니다. 아마존 세이지 메이커 노트북 인스턴스.
  • 산술적 추론을 위해 우리는 코히어 명령 초등학교 수학 문제의 GSM8K 데이터세트에 관한 것입니다.
  • 객관식 추론을 위해 우리는 프롬프트를 표시합니다 AI21 연구소 Jurassic-2 Mid AWS 공인 솔루션스 아키텍트 – 어소시에이트 시험의 간단한 질문 샘플에 대해 알아보세요.

사전 조건

이 연습에서는 다음과 같은 전제 조건을 가정합니다.

Amazon Bedrock에서 모델 액세스 관리

이 게시물에 표시된 코드를 실행하는 데 드는 예상 비용은 $100이며, 온도 기반 샘플링에 하나의 값을 사용하여 30개의 추론 경로로 한 번 메시지를 표시하는 자체 일관성을 실행한다고 가정합니다.

산술 추론 능력을 조사하기 위한 데이터 세트

GSM8K 높은 언어적 다양성을 특징으로 하는 인간이 조립한 초등학교 수학 문제의 데이터 세트입니다. 각 문제는 2~8단계를 거쳐 해결되며 기본 산술 연산을 통해 일련의 기본 계산을 수행해야 합니다. 이 데이터는 일반적으로 생성 언어 모델의 다단계 산술 추론 기능을 벤치마킹하는 데 사용됩니다. 그만큼 GSM8K 열차 세트 7,473개의 레코드로 구성됩니다. 다음은 예입니다.

{"question": "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May?", "answer": "Natalia sold 48/2 = <<48/2=24>>24 clips in May.nNatalia sold 48+24 = <<48+24=72>>72 clips altogether in April and May.n#### 72"}

Amazon Bedrock을 사용하여 배치 추론을 실행하도록 설정

배치 추론을 사용하면 Amazon Bedrock에 대한 여러 추론 호출을 비동기적으로 실행하고 대규모 데이터 세트에 대한 모델 추론 성능을 향상시킬 수 있습니다. 이 서비스는 이 글을 쓰는 시점에서 미리 보기 상태이며 API를 통해서만 사용할 수 있습니다. 인용하다 일괄 추론 실행 맞춤형 SDK를 통해 일괄 추론 API에 액세스합니다.

다운로드 후 압축을 푼 후 파이썬 SDK SageMaker 노트북 인스턴스에서는 Jupyter 노트북 셀에서 다음 코드를 실행하여 설치할 수 있습니다.

# Install preview SDK packages
!pip install -q $(ls ./bedrock-python-sdk-reinvent/botocore-*.whl | head -1)
!pip install -q $(ls ./bedrock-python-sdk-reinvent/boto3-*.whl | head -1)

Amazon S3에 입력 데이터 형식 지정 및 업로드

일괄 추론을 위한 입력 데이터는 JSONL 형식으로 준비되어야 합니다. recordIdmodelInput 열쇠. 후자는 Amazon Bedrock에서 호출할 모델의 본문 필드와 일치해야 합니다. 특히 일부 Cohere 명령에 대해 지원되는 추론 매개변수 are temperature 무작위성을 위해, max_tokens 출력 길이 num_generations 여러 응답을 생성하기 위해 이 모든 응답은 prompt as modelInput:

data = [
    {
        "recordId": "1",
        "modelInput": {
            "prompt": prompt,
            "temperature": temperature,
            "max_tokens": max_tokens,
            "num_generations": n,
        },
    },
    ...,
]

만나다 기초 모델에 대한 추론 매개변수 다른 모델 제공자를 포함한 자세한 내용은

산술 추론에 대한 실험은 Cohere Command를 사용자 정의하거나 미세 조정하지 않고 Few-Shot 설정에서 수행됩니다. 우리는 생각의 연쇄에서 나온 동일한 8개의 소수 예시 세트를 사용합니다(표 20) 및 자기 일관성(표 17) 논문. 프롬프트는 GSM8K 열차 세트의 각 질문과 예시를 연결하여 생성됩니다.

우리가 설정 한 max_tokens 512 및 num_generations Cohere Command에서 허용하는 최대값인 5까지입니다. 탐욕스러운 디코딩을 위해 다음과 같이 설정했습니다. temperature 0으로 설정하고 자체 일관성을 위해 온도 0.5, 0.7, 1에서 세 가지 실험을 실행했습니다. 각 설정은 해당 온도 값에 따라 서로 다른 입력 데이터를 생성합니다. 데이터는 JSONL 형식으로 Amazon S3에 저장됩니다.

# Set up S3 client
session = boto3.Session()
s3 = session.client("s3")

# Create S3 bucket with unique name to store input/output data
suffix = str(uuid.uuid4())[:8]
bucket = f"bedrock-self-consistency-{suffix}"
s3.create_bucket(
    Bucket=bucket, CreateBucketConfiguration={"LocationConstraint": session.region_name}
)

# Process data and output to new lines as JSONL
input_key = f"gsm8k/T{temperature}/input.jsonl"
s3_data = ""
for row in data:
    s3_data += json.dumps(row) + "n"
s3.put_object(Body=s3_data, Bucket=bucket, Key=input_key)

Amazon Bedrock에서 배치 추론 작업 생성 및 실행

일괄 추론 작업을 생성하려면 Amazon Bedrock 클라이언트가 필요합니다. S3 입력 및 출력 경로를 지정하고 각 호출 작업에 고유한 이름을 지정합니다.

# Create Bedrock client							    
bedrock = boto3.client("bedrock")

# Input and output config						     
input_config = {"s3InputDataConfig": {"s3Uri": f"s3://{bucket}/{input_key}"}}
output_config = {"s3OutputDataConfig": {"s3Uri": f"s3://{bucket}/{output_key}"}}

# Create a unique job name
suffix = str(uuid.uuid4())[:8] 
job_name = f"command-batch-T{temperature}-{suffix}"

직업은 만든 IAM 역할, 모델 ID, 작업 이름 및 입력/출력 구성을 Amazon Bedrock API에 매개변수로 전달하여 다음을 수행합니다.

response = bedrock.create_model_invocation_job(
    roleArn=f"arn:aws:iam::{account_id}:role/BedrockBatchInferenceRole",
    modelId="cohere.command-text-v14",
    jobName=job_name,
    inputDataConfig=input_config,
    outputDataConfig=output_config,
)
job_arn = response["jobArn"]

ICO정보제출, 모니터링멎는 일괄 추론 작업은 해당 API 호출을 통해 지원됩니다. 생성 시 작업은 다음과 같이 먼저 나타납니다. Submitted, 다음으로 InProgress, 그리고 마지막으로 Stopped, FailedCompleted.

# Get job details
job_details = bedrock.get_model_invocation_job(jobIdentifier=job_arn)

작업이 성공적으로 완료되면 고유한 출력 위치를 사용하여 Amazon S3에서 생성된 콘텐츠를 검색할 수 있습니다.

# Get the output file key
s3_prefix = f"s3://{bucket}/"
output_path = job_details["outputDataConfig"]["s3OutputDataConfig"]["s3Uri"].replace(
    s3_prefix, ""
)
output_folder = job_details["jobArn"].split("/")[1]
output_file = (
    f'{job_details["inputDataConfig"]["s3InputDataConfig"]["s3Uri"].split("/")[-1]}.out'
)
result_key = f"{output_path}{output_folder}/{output_file}"

# Get output data
obj = s3.get_object(Bucket=bucket, Key=result_key)
content = obj["Body"].read().decode("utf-8").strip().split("n")

# Show answer to the first question
print(json.loads(content[0])["modelOutput"]["generations"][0]["text"])

[Out]: 'Natalia sold 48 * 1/2 = 24 clips less in May. This means she sold 48 + 24 = 72 clips in April and May. The answer is 72.'

자체 일관성으로 산술 작업의 모델 정확도가 향상됩니다.

Cohere Command의 자체 일관성 프롬프트는 GSM8K 데이터 세트의 정확성 측면에서 탐욕스러운 CoT 기준을 능가합니다. 일관성을 위해 우리는 세 가지 다른 온도에서 30개의 독립적인 추론 경로를 샘플링했습니다. topPtopK 그들의 설정 기본값. 최종 솔루션은 다수결 투표를 통해 가장 일관된 결과를 선택하여 집계됩니다. 동점인 경우 다수의 응답 중 하나를 무작위로 선택합니다. 우리는 100회 실행에 대한 평균 정확도와 표준 편차 값을 계산합니다.

다음 그림은 온도 값 8(노란색), 0.5(녹색), 0.7(주황색)에서 탐욕적인 CoT(파란색) 및 자체 일관성을 사용하여 실행된 Cohere 명령의 GSM1.0K 데이터세트에 대한 정확도를 샘플링된 수의 함수로 보여줍니다. 추론 경로.

자체 일관성과 CoT 프롬프트를 사용하는 Cohere 명령의 정확성.

앞의 그림은 샘플링된 경로 수가 8개 정도로 낮을 때 자체 일관성이 그리디 CoT에 비해 산술 정확도를 향상시키는 것을 보여줍니다. 추가 추론 경로를 통해 성능이 지속적으로 향상되어 사고 생성에 다양성을 도입하는 것의 중요성이 확인되었습니다. Cohere Command는 CoT를 사용하여 메시지를 표시할 때 GSM51.7K 질문 세트를 68%의 정확도로 해결하고 T=30에서 1.0개의 일관된 추론 경로를 사용하여 XNUMX%의 정확도로 해결합니다. 조사된 세 가지 온도 값 모두 유사한 결과를 산출하며, 샘플링된 경로가 적을수록 온도가 낮을수록 성능이 상대적으로 더 좋습니다.

효율성과 비용에 대한 실질적인 고려 사항

프롬프트당 여러 출력을 생성할 때 발생하는 응답 시간과 비용 증가로 인해 자체 일관성이 제한됩니다. 실제적인 예시로, 7,473개의 GSM8K 레코드에 대한 Cohere Command를 사용한 그리디 생성에 대한 일괄 추론은 20분 이내에 완료되었습니다. 이 작업은 5.5만 개의 토큰을 입력으로 사용하고 630,000개의 출력 토큰을 생성했습니다. 현재 Amazon Bedrock 추론 가격, 발생한 총 비용은 약 9.50달러였습니다.

Cohere Command와의 자체 일관성을 위해 추론 매개변수를 사용합니다. num_generations 프롬프트당 여러 개의 완성을 생성합니다. 이 글을 쓰는 시점에서 Amazon Bedrock은 최대 5세대와 3세대 동시 사용을 허용합니다. Submitted 일괄 추론 작업. 채용은 다음으로 진행됩니다. InProgress 상태가 순차적으로 수행되므로 5개 이상의 경로를 샘플링하려면 여러 번 호출해야 합니다.

다음 그림은 GSM8K 데이터 세트에서 Cohere Command의 런타임을 보여줍니다. 총 런타임은 x축에 표시되고 y축에는 샘플링된 추론 경로당 런타임이 표시됩니다. 그리디 생성은 가장 짧은 시간에 실행되지만 샘플링된 경로당 더 높은 시간 비용이 발생합니다.

Cohere Command의 런타임

Greedy 생성은 전체 GSM20K 세트에 대해 8분 이내에 완료되며 고유한 추론 경로를 샘플링합니다. 50개 샘플의 자체 일관성을 유지하려면 완료하는 데 약 14.50% 더 오랜 시간이 걸리고 약 $500의 비용이 들지만 해당 시간에 1개 경로(2% 이상)가 생성됩니다. 샘플링된 경로가 5개 추가될 때마다 총 실행 시간과 비용이 단계적으로 증가합니다. 비용 편익 분석에 따르면 10~XNUMX개의 샘플링 경로가 포함된 XNUMX~XNUMX개의 일괄 추론 작업이 자체 일관성을 실제로 구현하기 위해 권장되는 설정입니다. 이를 통해 비용과 대기 시간을 최소화하면서 향상된 모델 성능을 얻을 수 있습니다.

자체 일관성은 산술적 추론을 넘어 모델 성능을 향상시킵니다.

자기 일관성 프롬프트의 적합성을 입증하기 위한 중요한 질문은 해당 방법이 추가 NLP 작업 및 언어 모델에서 성공하는지 여부입니다. Amazon 관련 사용 사례의 확장으로 우리는 Amazon의 샘플 질문에 대한 소규모 분석을 수행합니다. AWS 솔루션스 아키텍트 어소시에이트 자격증. 이 시험은 도메인 지식과 여러 옵션 중에서 추론하고 결정하는 능력이 필요한 AWS 기술 및 서비스에 대한 객관식 시험입니다.

우리는 다음으로부터 데이터 세트를 준비합니다. SAA-C01SAA-C03 샘플 시험 문제. 사용 가능한 20개의 질문 중 처음 4개를 소수 예시로 사용하고 모델이 나머지 16개에 답하도록 유도합니다. 이번에는 AI21 Labs Jurassic-2 Mid 모델로 추론을 실행하고 최대 10개의 추론 경로를 생성합니다. 온도 0.7. 결과는 자기 일관성이 성능을 향상시킨다는 것을 보여줍니다. 탐욕스러운 CoT는 11개의 정답을 생성하지만 자기 일관성은 2개를 더 성공합니다.

다음 표는 5회 실행에 대한 평균을 낸 10개 및 100개의 샘플링된 경로에 대한 정확도 결과를 보여줍니다.

. 그리디 디코딩 티 = 0.7
# 샘플링된 경로: 5 68.6 74.1 0.7 ±
# 샘플링된 경로: 10 68.6 78.9 ± 0.3

다음 표에서는 자기 일관성이 성공하는 동안 탐욕스러운 CoT에 의해 오답된 두 가지 시험 문제를 제시하며, 각 경우에 모델이 정확하거나 잘못된 응답을 생성하도록 이끈 올바른(녹색) 또는 잘못된(빨간색) 추론 추적을 강조 표시합니다. 자체 일관성에 의해 생성된 모든 샘플링된 경로가 정확하지는 않지만 샘플링된 경로 수가 증가함에 따라 대다수는 실제 답으로 수렴됩니다. 우리는 일반적으로 5~10개의 경로가 욕심 많은 결과를 개선하기에 충분하며, 효율성 측면에서 해당 값을 넘어서는 수익이 감소한다는 것을 관찰했습니다.

문제

웹 애플리케이션을 통해 고객은 S3 버킷에 주문을 업로드할 수 있습니다. 결과 Amazon S3 이벤트는 SQS 대기열에 메시지를 삽입하는 Lambda 함수를 트리거합니다. 단일 EC2 인스턴스는 대기열에서 메시지를 읽고 처리한 후 고유한 주문 ID로 분할된 DynamoDB 테이블에 저장합니다. 다음 달 트래픽은 10배 증가할 것으로 예상되며 솔루션 설계자는 가능한 확장 문제에 대해 아키텍처를 검토하고 있습니다.

새로운 트래픽을 수용하기 위해 확장할 수 있도록 재설계가 가장 필요한 구성 요소는 무엇입니까?

A. 람다 함수
B. SQS 대기열
다. EC2 인스턴스
D. DynamoDB 테이블

AWS에서 실행되는 애플리케이션은 데이터베이스에 Amazon Aurora 다중 AZ DB 클러스터 배포를 사용합니다. 성능 지표를 평가할 때 솔루션 설계자는 데이터베이스 읽기로 인해 높은 I/O가 발생하고 데이터베이스에 대한 쓰기 요청에 대기 시간이 추가된다는 사실을 발견했습니다.

읽기 요청과 쓰기 요청을 분리하려면 솔루션 아키텍트가 무엇을 해야 합니까?

A. Aurora 데이터베이스에서 연속 읽기 캐싱을 활성화합니다.
B. 다중 AZ 대기 인스턴스에서 읽도록 애플리케이션을 업데이트합니다.
C. Aurora 복제본을 생성하고 적절한 엔드포인트를 사용하도록 애플리케이션을 수정합니다.
D. 두 번째 Aurora 데이터베이스를 생성하고 이를 읽기 전용 복제본으로 기본 데이터베이스에 연결합니다.

정답 C – 단일 EC2 인스턴스는 확장되지 않으며 아키텍처의 단일 실패 지점입니다. 훨씬 더 나은 솔루션은 2개의 가용 영역에 걸쳐 Auto Scaling 그룹의 EC2 인스턴스가 대기열에서 메시지를 읽도록 하는 것입니다. 다른 응답은 확장되도록 구성할 수 있거나 자동으로 확장될 모든 관리형 서비스입니다. C – Aurora 복제본은 읽기 트래픽을 오프로드하는 방법을 제공합니다. Aurora 복제본은 기본 데이터베이스와 동일한 기본 스토리지를 공유하므로 일반적으로 지연 시간이 매우 짧습니다. Aurora 복제본에는 자체 엔드포인트가 있으므로 읽기 트래픽을 새 엔드포인트로 보내도록 애플리케이션을 구성해야 합니다.
그리디 디코딩 인스턴스 크기를 조정하는 것이 불가능할 수 있으므로 EC2 인스턴스를 직접 확장하는 것은 불가능할 수 있습니다. Lambda 함수를 확장하는 것만으로는 충분하지 않을 수 있습니다., Lambda 함수에는 6GB의 메모리 할당 제한이 있기 때문입니다. SQS 대기열을 확장하는 것만으로는 충분하지 않을 수 있습니다., SQS에는 10,000개의 메시지 제한이 있기 때문입니다. DynamoDB 테이블은 더 많은 용량 단위를 프로비저닝하여 확장할 수 있습니다. 정답은 D입니다. 다중 AZ 대기 인스턴스에서 읽도록 애플리케이션 수정 (옵션 B)가 최선의 접근 방식입니다.. 대기 인스턴스는 기본 인스턴스에서 비동기식으로 복제되므로 읽기 작업이 쓰기 작업을 방해하지 않습니다. 연속 읽기 캐싱 활성화(옵션 A) 또는 Aurora 복제본(옵션 C)을 생성해도 I/O 경합 문제가 해결되지 않습니다.. 두 번째 Aurora 데이터베이스를 생성하고 이를 읽기 전용 복제본(옵션 D)으로 연결해도 I/O 경합 문제가 해결되지 않습니다. 정답은 B입니다.
샘플링된 경로 #1 EC2 인스턴스를 현재 크기의 10배로 확장하는 것은 비용이나 성능 측면에서 불가능할 수 있습니다. 더 큰 인스턴스가 필요하므로 비용이 많이 들 수 있습니다. 보다 비용 효율적인 접근 방식은 더 작은 인스턴스 떼(예: Auto Scaling 그룹)를 사용하여 로드를 공유하는 것일 수 있습니다. 이 경우 EC2 인스턴스를 다시 설계해야 할 가능성이 높습니다. 정답은 C입니다. 적절한 엔드포인트를 사용하도록 애플리케이션을 수정하는 것은 애플리케이션 코드를 변경해야 하므로 실용적인 솔루션이 아닙니다. 정답은 C: Aurora 복제본을 생성하고 적절한 엔드포인트를 사용하도록 애플리케이션을 수정합니다.
샘플링된 경로 #2 단일 EC2 인스턴스를 확장하는 것은 다른 서비스 구성 요소를 확장하는 것보다 더 어렵고 문제가 많습니다. Amazon SQS, Lambda 및 DynamoDB는 모두 자동으로 확장 가능 증가된 부하에 대처하기 위해. 정답은 C입니다.

(C) Aurora 복제본을 생성하고 적절한 엔드포인트를 사용하도록 애플리케이션을 수정합니다.

Aurora 복제본을 구성하면 읽기 트래픽과 쓰기 트래픽을 분리할 수 있습니다. Aurora 복제본은 다른 엔드포인트 URL을 사용합니다., 기본 데이터베이스 대신 복제본으로 읽기 트래픽을 전달할 수 있습니다. 복제본은 기본 데이터베이스에 대한 쓰기 요청과 동시에 읽기 요청을 처리할 수 있습니다., I/O 및 대기 시간을 줄입니다.

정리

Amazon Bedrock에서 일괄 추론 실행에는 Amazon Bedrock 가격에 따라 요금이 부과됩니다. 연습을 완료하면 향후 요금이 발생하지 않도록 SageMaker 노트북 인스턴스를 삭제하고 S3 버킷에서 모든 데이터를 제거하십시오.

고려

시연된 솔루션은 자체 일관성이 요구될 때 향상된 언어 모델 성능을 보여주지만 이 연습은 프로덕션 준비가 되어 있지 않다는 점에 유의하는 것이 중요합니다. 프로덕션에 배포하기 전에 다음 요구 사항을 염두에 두고 이 개념 증명을 자체 구현에 맞게 조정해야 합니다.

  • 무단 사용을 방지하기 위해 API 및 데이터베이스에 대한 액세스 제한.
  • IAM 역할 액세스 및 보안 그룹과 관련된 AWS 보안 모범 사례를 준수합니다.
  • 즉각적인 주입 공격을 방지하기 위해 사용자 입력을 검증하고 삭제합니다.
  • 테스트 및 감사를 가능하게 하기 위해 트리거된 프로세스를 모니터링하고 로깅합니다.

결론

이 게시물은 산술 및 객관식 논리 기술이 필요한 복잡한 NLP 작업에서 자체 일관성 프롬프트가 생성 언어 모델의 성능을 향상시킨다는 것을 보여줍니다. 자체 일관성은 온도 기반 확률론적 디코딩을 사용하여 다양한 추론 경로를 생성합니다. 이는 정답에 도달하기 위해 다양하고 유용한 생각을 이끌어내는 모델의 능력을 향상시킵니다.

Amazon Bedrock 배치 추론을 사용하면 언어 모델 Cohere Command에 일련의 산술 문제에 대한 일관된 답변을 생성하라는 메시지가 표시됩니다. 정확도는 탐욕적 디코딩의 경우 51.7%에서 T=68에서 자체 일관성 샘플링 30개의 추론 경로의 경우 1.0%로 향상됩니다. 7.5개 경로를 샘플링하면 이미 정확도가 21% 포인트 향상됩니다. AWS 자격증 시험의 AI2 Labs Jurassic-5 Mid 모델 결과에서 알 수 있듯이 이 접근 방식은 다른 언어 모델 및 추론 작업으로 전환 가능합니다. 작은 크기의 질문 세트에서 XNUMX개의 샘플링된 경로를 사용한 자체 일관성은 그리디 CoT에 비해 정확도를 XNUMX% 포인트 높입니다.

생성 언어 모델을 사용하여 자체 애플리케이션의 성능 향상을 위한 자체 일관성을 구현하는 것이 좋습니다. 자세히 알아보기 코히어 명령AI21 연구소 쥬라기 Amazon Bedrock에서 사용 가능한 모델입니다. 일괄 추론에 대한 자세한 내용은 다음을 참조하세요. 일괄 추론 실행.

감사의 글

저자는 유용한 피드백을 주신 기술 검토자 Amin Tajgardoon과 Patrick McSweeney에게 감사드립니다.


저자에 관하여

루시아 산타마리아 Amazon ML University의 수석 응용 과학자로 실습 교육을 통해 회사 전체의 ML 역량 수준을 높이는 데 주력하고 있습니다. Lucía는 천체물리학 박사 학위를 보유하고 있으며 기술 지식과 도구에 대한 접근을 민주화하는 데 열정을 갖고 있습니다.

spot_img

최신 인텔리전스

spot_img