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

Triển khai mô hình Stable LM Zephyr 3B trên AWS SageMaker là quá trình sử dụng nền tảng Amazon SageMaker để huấn luyện hoặc triển khai mô hình ngôn ngữ lớn (LLM) Stable LM Zephyr 3B. Stable LM Zephyr 3B là một mô hình AI có khả năng xử lý ngôn ngữ tự nhiên, có thể thực hiện nhiều tác vụ như sinh văn bản, phân tích dữ liệu hoặc các ứng dụng AI khác. AWS SageMaker cung cấp cơ sở hạ tầng dễ sử dụng để huấn luyện, đánh giá và triển khai mô hình AI trên quy mô lớn với các tài nguyên tính toán mạnh mẽ.

Tham khảo

Lý do chọn mô hình Zephyr 3B

  1. Hiệu quả: Với chỉ 3 tỷ tham số, LLM nhẹ này cân bằng giữa yêu cầu tính toán và hiệu suất.
  2. Hiệu suất cạnh tranh: Mặc dù kích thước nhỏ, Zephyr 3B mang lại kết quả mạnh mẽ trong nhiều tác vụ NLP.
  3. Cải thiện khả năng tuân theo hướng dẫn: Mô hình được tinh chỉnh bằng Direct Preference Optimization (DPO).
  4. Cam kết AI có đạo đức: Được phát hành với trọng tâm về an toàn, độ tin cậy và sự phù hợp.

Triển khai Endpoint Inference

Để triển khai mô hình này, sử dụng một Jupyter Notebook trên một instance SageMaker phù hợp với chi phí bạn lựa chọn thôi (Ví dụ: ml.m5.medium).

import boto3

import sagemaker

from sagemaker import get_execution_role

from sagemaker.model import Model

from sagemaker.predictor import Predictor

# Thiết lập SageMaker session

sagemaker_session = sagemaker.Session()

# Lấy execution role

role = get_execution_role()

hub = {

  'HF_MODEL_ID':'stabilityai/stablelm-zephyr-3b',

  'HF_TASK':'text-generation',

  'HUGGING_FACE_HUB_TOKEN':'<thay bằng token Hugging Face của bạn>'

}

model = Model(

  image_uri='763104351884.dkr.ecr.ap-southeast-1.amazonaws.com/huggingface-pytorch-tgi-inference:2.3.0-tgi2.2.0-gpu-py310-cu121-ubuntu22.04-v2.0',

  role=role,

  sagemaker_session=sagemaker_session,

  env=hub

)

predictor = model.deploy(

  initial_instance_count=1,

  instance_type='ml.m5.medium',

  endpoint_name='zephyr-22',

  container_startup_health_check_timeout=400,

  container_startup_health_check_frequency=200

)

print(f"Endpoint đã được triển khai thành công.")

Kiểm tra Inference của Mô hình

Sau khi triển khai, sử dụng đoạn mã sau để kiểm tra mô hình trên Inference Endpoint:

import boto3

import json

from sagemaker.serializers import JSONSerializer

from sagemaker.deserializers import JSONDeserializer

from sagemaker.predictor import Predictor

from sagemaker.session import Session

boto_session = boto3.Session(region_name='ap-southeast-1')

sagemaker_runtime = boto_session.client('sagemaker-runtime')

sagemaker_session = Session(boto_session=boto_session, sagemaker_client=sagemaker_runtime)

endpoint_name = 'zephyr-22'

predictor = Predictor(

  endpoint_name=endpoint_name,

  sagemaker_session=sagemaker_session,

  serializer=JSONSerializer(),

  deserializer=JSONDeserializer()

)

input_data = {

  "inputs": "Can you please let us know more details about George Washington?",

}

response = predictor.predict(input_data)

print("Phản hồi của Mô hình:")

print(json.dumps(response, indent=2))

Kết quả đầu ra của mô hình:

{

  "generated_text": "Can you please let us know more details about George Washington?\nSure, George Washington was the first President of the United States, serving from 1789 to 1797. He was the commander-in-chief of the Continental Army during the American Revolutionary War. Prior to his presidency, Washington had served as a Virginia state legislator, the First President of the Continental Congress, and as the leader of the Northern Confederacy. He was known for his strong leadership skills, his plain manner, and his commitment to fulfilling the promises of the American Revolution. After"

}

Các Issues

  1. Mô hình mới: Stable LM Zephyr 3B được phát hành vào ngày 7/12/2023 và chưa có sẵn trong SageMaker Jumpstart.
  2. Vấn đề tương thích phiên bản: Phương pháp triển khai được đề xuất sử dụng HuggingFaceModel không hoạt động do phiên bản không tương thích của thư viện transformers.
  3. Lỗi nhận dạng kiến trúc mô hình: Khi thực hiện inference, gặp lỗi:
The checkpoint you are trying to load has model type `stablelm` but Transformers does not recognize this architecture.

Giải pháp

Tìm được container HuggingFace Text Generation Inference (TGI) phiên bản v2.0-hf-tgi-2.2.0-pt-2.3.0-inf-gpu-py310

Đáp ứng tất cả các yêu cầu về phụ thuộc:

  • PyTorch 2.3.0
  • Python 3.10
  • Transformers 4.43.1

Cho nên đã chọn container trên để tiến hành triển khai Inference Endpoint thành công và thực hiện dự đoán với mô hình đã triển khai.

Kết luận

Triển khai mô hình Stable LM Zephyr 3B trên AWS SageMaker đòi hỏi nhiều kinh nghiệm và nghiêm túc trong công việc.

Dưới đây là các bài học nên nhớ:

  1. Tầm quan trọng của nghiên cứu kỹ lưỡng: Khi làm việc với mô hình mới, việc hiểu rõ các yêu cầu và hạn chế là rất quan trọng.
  2. Linh hoạt trong giải quyết vấn đề: Sẵn sàng thử nghiệm các phương pháp tiếp cận khác nhau khi gặp trở ngại.
  3. Tầm quan trọng của phiên bản tương thích: Đảm bảo tương thích giữa mô hình, các thư viện phụ thuộc và môi trường triển khai là chìa khóa để triển khai thành công.

Giá trị của cộng đồng: Tận dụng tài nguyên cộng đồng và tài liệu chính thức có thể giúp vượt qua các thách thức phức tạp.