Mục lục bài viết

Tùy chỉnh Mô hình trong Amazon Bedrock là gì?

Amazon Bedrock giờ đây cung cấp hai phương pháp chính để tùy chỉnh mô hình:

  1. Fine-tuning: Tăng độ chính xác của mô hình bằng cách cung cấp bộ dữ liệu huấn luyện có nhãn đặc thù cho tác vụ cụ thể.
  2. Continued Pre-training: Huấn luyện mô hình bằng dữ liệu không nhãn của riêng bạn trong môi trường an toàn và được quản lý.

Fine-tuning trên Amazon Bedrock

Amazon Bedrock hiện hỗ trợ fine-tuning cho các mô hình sau:

  1. Meta Llama 2
  2. Cohere Command Light
  3. Amazon Titan

Hướng dẫn Fine-tuning

Dưới đây là hướng dẫn chi tiết về cách fine-tune mô hình Cohere Command Light để tóm tắt đoạn hội thoại:

Bước 1: Chuẩn bị dữ liệu

Chuyển đổi dữ liệu của bạn sang định dạng JSON Lines và tải lên Amazon S3. Mỗi dòng JSON cần có cả trường prompt và completion:

{"completion": "Mr. Smith's getting a check-up, and Doctor Haw...", "prompt": "Summarize the following conversation.\n\n#Pers..."}

{"completion": "Mrs Parker takes Ricky for his vaccines. Dr. P...", "prompt": "Summarize the following conversation.\n\n#Pers..."}

{"completion": "#Person1#'s looking for a set of keys and asks...", "prompt": "Summarize the following conversation.\n\n#Pers..."}

Bước 2: Tạo công việc fine-tuning

Sử dụng AWS SDK for Python (Boto3) để tạo công việc fine-tuning:

import boto3 

bedrock = boto3.client(service_name="bedrock")

bedrock_runtime = boto3.client(service_name="bedrock-runtime")

# Chọn mô hình nền tảng bạn muốn tùy chỉnh

base_model_id = "cohere.command-light-text-v14:7:4k"

bedrock.create_model_customization_job(

    customizationType="FINE_TUNING",

    jobName=job_name,

    customModelName=model_name,

    roleArn=role,

    baseModelIdentifier=base_model_id,

    hyperParameters = {

        "epochCount": "1",

        "batchSize": "8",

        "learningRate": "0.00001",

    },

    trainingDataConfig={"s3Uri": "s3://path/to/train-summarization.jsonl"},

    outputDataConfig={"s3Uri": "s3://path/to/output"},

)

# Kiểm tra trạng thái công việc

status = bedrock.get_model_customization_job(jobIdentifier=job_name)["status"]

Bước 3: Kiểm tra kết quả

So sánh kết quả giữa mô hình gốc và mô hình đã fine-tune:

prompt = """Summarize the following conversation.\\n\\n

#Person1#: Hello. My name is John Sandals, and I've got a reservation.\\n

#Person2#: May I see some identification, sir, please?\\n

#Person1#: Sure. Here you are.\\n

#Person2#: Thank you so much. Have you got a credit card, Mr. Sandals?\\n

#Person1#: I sure do. How about American Express?\\n

#Person2#: Unfortunately, at the present time we take only MasterCard or VISA.\\n

#Person1#: No American Express? Okay, here's my VISA.\\n

#Person2#: Thank you, sir. You'll be in room 507, nonsmoking, with a queen-size bed. Do you approve, sir?\\n

#Person1#: Yeah, that'll be fine.\\n

#Person2#: That's great. This is your key, sir. If you need anything at all, anytime, just dial zero.\\n\\n

Summary: """

body = {

    "prompt": prompt,

    "temperature": 0.5,

    "p": 0.9,

    "max_tokens": 512,

}

response = bedrock_runtime.invoke_model(

    modelId=provisioned_custom_model_arn,

    body=json.dumps(body)

)

Continued Pre-training trên Amazon Bedrock

Hiện tại, Continued Pre-training có sẵn ở chế độ preview công khai cho các mô hình Amazon Titan Text, bao gồm:

  1. Titan Text Express
  2. Titan Text Lite

Hướng dẫn Continued Pre-training

Bước 1: Chuẩn bị dữ liệu

Chuyển đổi dữ liệu của bạn sang định dạng JSON Lines và tải lên Amazon S3. Mỗi dòng JSON chỉ cần có trường input:

{"input": "Dear shareholders: As I sit down to..."}

{"input": "Over the last several months, we to..."}

{"input": "work came from optimizing the conne..."}

{"input": "of the Amazon shopping experience f..."}

Bước 2: Tạo công việc continued pre-training

# Chọn mô hình nền tảng bạn muốn tùy chỉnh

base_model_id = "amazon.titan-text-express-v1"

bedrock.create_model_customization_job(

    customizationType="CONTINUED_PRE_TRAINING",

    jobName=job_name,

    customModelName=model_name,

    roleArn=role,

    baseModelIdentifier=base_model_id,

    hyperParameters = {

        "epochCount": "10",

        "batchSize": "8",

        "learningRate": "0.00001",

    },

    trainingDataConfig={"s3Uri": "s3://path/to/train-continued-pretraining.jsonl"},

    outputDataConfig={"s3Uri": "s3://path/to/output"},

)

Những điều cần lưu ý

  1. Bảo mật Dữ liệu và Mạng
    • Dữ liệu của bạn vẫn riêng tư trong tài khoản AWS của bạn.
    • Dữ liệu không được sử dụng để cải thiện dịch vụ hoặc chia sẻ với bên thứ ba.
    • Dữ liệu được mã hóa trong quá trình truyền tải và lưu trữ.
    • Bạn có thể sử dụng AWS PrivateLink để tạo kết nối riêng tư giữa VPC và Amazon Bedrock.
  1. Tính phí
    • Amazon Bedrock tính phí cho việc tùy chỉnh mô hình, lưu trữ và suy luận.
    • Tùy chỉnh mô hình được tính phí theo số token được xử lý.
    • Lưu trữ mô hình được tính phí hàng tháng, cho mỗi mô hình.
    • Suy luận được tính phí theo giờ cho mỗi đơn vị mô hình sử dụng throughput dự phòng.
  1. Mô hình Tùy chỉnh và Throughput dự phòng

Giải thích về Throughput

Với chế độ Throughput dự phòng (Provisioned Throughput), bạn có thể mua các đơn vị mô hình cho một mô hình cơ bản hoặc tùy chỉnh cụ thể. Chế độ Throughput dự phòng chủ yếu được thiết kế cho các khối lượng công việc suy luận lớn và ổn định cần đảm bảo thông lượng. Các mô hình tùy chỉnh chỉ có thể được truy cập bằng cách sử dụng Throughput dự phòng.

Một đơn vị mô hình cung cấp một thông lượng nhất định, được đo bằng số lượng token đầu vào hoặc đầu ra tối đa được xử lý mỗi phút. Với cách tính giá Throughput dự phòng, bạn bị tính phí theo giờ, và bạn có sự linh hoạt để lựa chọn giữa các kỳ cam kết 1 tháng hoặc 6 tháng.

  1. Amazon Bedrock cho phép chạy suy luận trên các mô hình tùy chỉnh bằng cách mua throughput dự phòng.
  2. Bạn có thể mua throughput dự phòng theo giờ để đánh giá ban đầu mà không cần cam kết dài hạn.
  3. Có thể tạo tối đa hai throughput dự phòng cho mỗi tài khoản

Các Region hỗ trợ

    Fine-tuning có sẵn tại các khu vực AWS US East (N. Virginia) và US West (Oregon).

    Continued Pre-training có sẵn ở chế độ preview công khai tại các khu vực AWS US East (N. Virginia) và US West (Oregon).

    Kết luận

    Với khả năng tùy chỉnh mô hình trong Amazon Bedrock, giờ đây các nhà phát triển có thể phát triển các ứng dụng AI đặc thù phù hợp với nhu cầu của doanh nghiệp cũng như yêu cầu cụ thể của khách hàng.