Hướng dẫn thiết kế—Trí thông minh nhân tạo trong doanh nghiệp – Inferencing (4)

Kết quả xác nhận

Giới thiệu

Thiết kế đã được xác thực của Dell dành cho suy luận AI sáng tạo nhằm mục đích đơn giản hóa và đẩy nhanh việc triển khai cơ sở hạ tầng phức tạp cho AI tổng hợp bằng cách cung cấp các kiến ​​trúc đã được xác thực và chứng minh. Nó giúp khách hàng bằng cách giảm phỏng đoán và rủi ro tiềm ẩn liên quan đến việc thiết kế và triển khai các giải pháp tùy chỉnh ban đầu.

Chúng tôi đã xác thực nhiều mô hình trên kiến ​​trúc tham chiếu của mình để đảm bảo phần cứng và phần mềm của Dell và NVIDIA được tối ưu hóa và tích hợp để cung cấp các giải pháp hiệu suất cao và đáng tin cậy. Chúng tôi đã xác thực cả NeMo và các mô hình mã nguồn mở.

 

Xác thực mô hình AI sáng tạo

Cấu hình hệ thống

Bảng sau liệt kê cấu hình hệ thống và ngăn xếp phần mềm được sử dụng để xác thực AI tổng quát: 

Bảng 5. Cấu hình hệ thống và ngăn xếp phần mềm

Thành phần

Chi tiết

Phần cứng

Máy chủ tính toán cho suy luận

PowerEdge R760xa

GPU

4 x GPU NVIDIA H100 PCIe

bộ điều hợp mạng

ConnectX6 25 Gb Ethernet

chuyển đổi mạng

2 x Công tắc nguồn S5248F-ON

Phần mềm

Hệ điều hành

Ubuntu 22.04.1 LTS

quản lý cụm

Phần mềm quản lý cụm NVIDIA

Kubernetes

Kubernetes ngược dòng – Phiên bản v1.24.9

nhà điều hành GPU

Nhà điều hành GPU NVIDIA v22.9.2

máy chủ suy luận

Máy chủ suy luận NVIDIA Triton v23.04

khung AI

Bộ chứa NVIDIA NeMo v23.04

Các mô hình được sử dụng để xác nhận 

Các mô hình GPT là các mô hình ngôn ngữ nâng cao được biết đến với khả năng tạo văn bản và xử lý ngôn ngữ tự nhiên ấn tượng. Họ sử dụng kiến ​​trúc Transformer, cho phép họ hiểu các mẫu ngôn ngữ phức tạp và các mối quan hệ. Các mô hình này được đào tạo trước trên một lượng lớn dữ liệu văn bản và có thể được tinh chỉnh cho các tác vụ cụ thể, cho phép chúng hoạt động tốt trong các ứng dụng NLP khác nhau.

Trong thiết kế đã được xác thực này, chúng tôi đã xác thực các mô hình Sáng tạo sau. Chúng tôi đã xác thực hầu hết các mẫu NeMo GPT với Máy chủ suy luận Triton. Chúng tôi đã chạy suy luận về các mô hình BLOOM, Llama và Stable Diffusion trên các bộ chứa Python hoặc PyTorch tiêu chuẩn có sẵn từ NVIDIA NGC. 

Bảng 6. Các mô hình AI tổng hợp và vùng chứa xác thực

Model

Sự miêu tả

Vùng chứa cơ sở được sử dụng để xác thực

NeMo GPT 20B

Mô hình ngôn ngữ dựa trên máy biến áp với tổng số tham số có thể đào tạo là 20 B

Triton – nvcr.io/ea-bignlp/bignlp-inference:22.08-py3 

NeMo – nvcr.io/nvidia/nemo:23.04

NeMo GPT-2B-001

Mô hình ngôn ngữ dựa trên máy biến áp với tổng số tham số có thể huấn luyện là 2 B

Triton – nvcr.io/ea-bignlp/bignlp-inference:22.08-py3 

NeMo – nvcr.io/nvidia/nemo:23.04

NeMo GPT 1.3B

Mô hình ngôn ngữ dựa trên máy biến áp với tổng số tham số có thể đào tạo là 1,3 B

Triton – nvcr.io/ea-bignlp/bignlp-inference:22.08-py3 

NeMo – nvcr.io/nvidia/nemo:23.04

NeMo GPT 345M

Mô hình ngôn ngữ dựa trên máy biến áp với tổng số tham số có thể huấn luyện là 345 M

Triton – nvcr.io/ea-bignlp/bignlp-inference:22.08-py3 

NeMo – nvcr.io/nvidia/nemo:23.04

NeMo GPT 5B

Mô hình ngôn ngữ dựa trên máy biến áp với tổng số tham số có thể huấn luyện là 5 B

Triton – nvcr.io/ea-bignlp/bignlp-inference:22.08-py3 

NeMo – nvcr.io/nvidia/nemo:23.04

BLOOM 7B

Khoa học lớn Khoa học mở lớn Mô hình ngôn ngữ đa ngôn ngữ truy cập mở

nvcr.io/nvidia/cuda:12.1.0-devel-ubi8

Llama 2 7B

Mô hình máy biến áp được tối ưu hóa với số lượng tham số 7B

nvcr.io/nvidia/pytorch:23.06-py3 

Llama 2 13B

Mô hình máy biến áp được tối ưu hóa với số lượng tham số 13B

nvcr.io/nvidia/pytorch:23.06-py3 

Stable Diffusion 2.00

Mô hình tạo văn bản thành hình ảnh

trăn: mới nhất 

kịch bản xác nhận

Chúng tôi đã triển khai và xác thực các mô hình trước đó trong các tình huống sau:

  • Triển khai mô hình NeMo bằng Triton Inference Server
  • Triển khai mô hình BLOOM, Llama và Khuếch tán ổn định bằng cách sử dụng khung Ôm khuôn mặt và trên các bộ chứa Python hoặc PyTorch tiêu chuẩn có sẵn từ NVIDIA NGC.
  • Xác thực mô hình bằng cách sử dụng Phân loại văn bản và AI21 RTE

Không phải tất cả các mô hình đều được xác thực trong tất cả các tình huống khác nhau do các hạn chế được nêu trong các phần sau.

Triển khai mô hình NeMo bằng Triton Inference Server

Để tối ưu hóa thông lượng và độ trễ của mô hình NeMo, nó có thể được chuyển đổi sang định dạng FasterTransformer (FT), bao gồm các sửa đổi hiệu suất đối với các lớp bộ mã hóa và giải mã trong kiến ​​trúc máy biến áp. Việc chuyển đổi này được thực hiện bằng cách khởi chạy bộ chứa NeMo Docker bằng lệnh được chỉ định trong bài đăng trên blog này. Chúng tôi đã triển khai tất cả các mẫu NeMo được liệt kê trong Bảng 6 với Máy chủ suy luận Triton, ngoại trừ mẫu NeMo GPT-2B-00 1 mà chúng tôi đã triển khai bằng cách sử dụng máy chủ suy luận được mô tả trong thẻ mẫu.

Hình dưới đây cho thấy các mô hình đang được sản xuất bằng Triton Inference Server: 

Hình 7. Các mô hình đang được sản xuất bằng Triton Inference Server

Chúng tôi đã xác nhận mô hình bằng cách hỏi những câu hỏi đơn giản, như thể hiện trong hình dưới đây:

Hình 8. Nhắc và phản hồi với mô hình NeMo GPT

Triển khai mô hình BLOOM

Mô hình BLOOM đã được đề xuất với nhiều phiên bản khác nhau thông qua BigScience Workshop. BigScience được lấy cảm hứng từ các sáng kiến ​​khoa học mở khác, trong đó các nhà nghiên cứu đã tập hợp thời gian và nguồn lực của họ để cùng nhau đạt được tác động cao hơn. Kiến trúc BLOOM tương tự như GPT3 (mô hình tự hồi quy cho dự đoán mã thông báo tiếp theo) nhưng đã được đào tạo trên 46 ngôn ngữ và 13 ngôn ngữ lập trình khác nhau. Một số phiên bản nhỏ hơn của các mô hình đã được đào tạo trên cùng một tập dữ liệu.

Chúng tôi đã triển khai mô hình BLOOM trên máy chủ PowerEdge R760xa bằng hướng dẫn có sẵn trên trang GitHub . Chúng tôi đã sử dụng các thư viện mới nhất sau đây để mô hình có thể được triển khai trên GPU NVIDIA H100:

  • ngọn đuốc 2.0.0+cu118
  • máy biến áp 4.27.4
  • tốc độ sâu 0.8.3 
  • tăng tốc 0.18.0
  • súng trường 20.1.0
  • fastapi 0.89.1
  • uvicorn 0.19.0
  • jinja2 3.1.2
  • pydantic 1.10.2
  • ômface_hub 0.12.1 
  • công cụ grpcio 1.50

Hình dưới đây cho thấy suy luận mô hình:

Hình 9. Suy luận mô hình bằng BLOOM

Triển khai mô hình Llama 2 7B và 13B 

Llama 2 là một tập hợp các mô hình văn bản tổng quát được tinh chỉnh trước và tinh chỉnh với quy mô từ 7 tỷ đến 70 tỷ tham số. Llama 2 có sẵn từ Ôm mặt và để truy cập kho lưu trữ, bạn phải chấp nhận thỏa thuận cấp phép Meta. Chúng tôi đã triển khai mô hình trên bộ chứa Pytorch:23.06 từ NVIDIA NGC sau khi cài đặt các gói theo yêu cầu của Llama và được liệt kê trong tệp  tests.txt của nó.

Hình dưới đây là một ví dụ về chạy suy luận của mô hình Llama:

Hình 10. Suy luận mô hình cho Llama

khuếch tán ổn định

Khuếch tán ổn định là một mô hình học sâu thực hiện các tác vụ chuyển văn bản thành hình ảnh, tập trung vào việc tạo hình ảnh chi tiết dựa trên mô tả văn bản. Ngoài ra, mô hình linh hoạt này có thể được mở rộng để xử lý các tác vụ khác nhau, bao gồm cả inpainting, outpainting và dịch từ hình ảnh sang hình ảnh được hướng dẫn bằng lời nhắc bằng văn bản. 

Chúng tôi đã làm theo hướng dẫn trong Github để tải xuống và chạy mô hình. Chúng tôi đã sử dụng tệp Docker sau.

TỪ trăn: mới nhất

CHẠY rm -rf /usr/local/cuda/lib64/stub

SAO CHÉP yêu cầu.txt /

CHẠY cài đặt pip -r tests.txt \

  –extra-index-url https://download.pytorch.org/whl/cu118

CHẠY useradd -m hugface

USER ôm mặt

WORKDIR /home/hugface

ENV USE_TORCH=1

CHẠY mkdir -p /home/huggingface/.cache/huggingface \

  && mkdir -p /home/huggingface/input \

  && mkdir -p /home/huggingface/đầu ra

SAO CHÉP docker-entrypoint.py /usr/local/bin

SAO CHÉP token.txt /home/huggingface

ENTRYPOINT [ “docker-entrypoint.py” ]

Chúng tôi đã sử dụng tệp tests.txt sau:

bộ khuếch tán [đèn pin]==0.17.1

onnxruntime==1.15.1

két sắt==0.3.1

ngọn đuốc==2.0.1+cu118

máy biến áp==4.30.1

xformers==0.0.20

Hình dưới đây là hình ảnh được tạo bằng cách sử dụng dấu nhắc Phi hành gia cưỡi ngựa trên sao Hỏa:

Hình 11. Hình ảnh được tạo ra Khuếch tán ổn định cho lời nhắc “Phi hành gia cưỡi ngựa trên sao Hỏa”

Xác thực mô hình bằng AI21 RTE

Chúng tôi đã sử dụng Bộ kiểm tra đánh giá mô hình ngôn ngữ từ Phòng thí nghiệm AI21 , cụ thể là bộ RTE, để xác thực suy luận mô hình NeMo. Mục tiêu là tái tạo các kết quả có sẵn trong Thẻ mô hình NeMo. RTE bao gồm các bộ dữ liệu nhắc phản hồi Đúng hoặc Sai. 

Văn bản sau đây là một ví dụ về lời nhắc và phản hồi:

Lời nhắc: Bão nhiệt đới Irene vào ngày 11 tháng 8 năm 2005 lúc 16:15 UTC. Bão nhiệt đới Irene sẽ mạnh lên trong vài ngày tới, có thể mạnh lên thành cuồng phong đổ bộ vào bờ biển phía đông nước Mỹ, Trung tâm Bão quốc gia Miami, Florida cho biết trong một báo cáo hôm nay. Irene nằm cách Bermuda khoảng 975 km về phía nam-đông nam vào lúc 16:00 UTC hôm nay. Các nhà dự báo thời tiết nói rằng cơn bão hiện đang di chuyển theo hướng tây tây bắc với sức gió duy trì ở mức cao nhất là 40 dặm một giờ. Bão Irene sắp đổ bộ vào bờ biển phía Đông nước Mỹ. Đúng hay sai? 

Trả lời: Đúng

Bảng sau đây cho thấy số điểm mà chúng tôi đo được. So sánh điểm số này với các mô hình khác cung cấp một cơ chế để so sánh độ chính xác của các mô hình.

Bảng 7. Điểm RTE

Người mẫu

điểm RTE

NeMo GPT 20B

0,527076

NeMo GPT-2B-001

0,519856

Xác thực mô hình bằng cách sử dụng phân loại văn bản

Chúng tôi đã xác thực các mô hình NeMo để phân loại văn bản nhị phân bằng cách sử dụng bộ dữ liệu Stanford Politeness Corpus , có các cụm từ văn bản được gắn nhãn là lịch sự hoặc bất lịch sự. Chúng tôi đánh giá các mô hình bằng cách sử dụng tập dữ liệu thử nghiệm cố định chứa 700 cụm từ. Bộ dữ liệu yêu cầu phân tích tình cảm từ các mô hình LLM. 

Văn bản sau đây là một ví dụ về lời nhắc và phản hồi: 

Lời nhắc: Ý bạn là gì? Làm sao tôi có thể minh oan cho lời buộc tội lố bịch này đây? Câu hỏi: lịch sự hay bất lịch sự? 

Phản ứng: Bất lịch sự

Bảng sau đây tóm tắt số điểm mà chúng tôi đạt được cho các mẫu NeMo. Có thể tìm thấy lời giải thích về các số liệu hiệu suất tại đây .

Bảng 8. Tổng hợp điểm

Người mẫu

Nhãn

Độ chính xác

Nhớ lại

F1

NeMo GPT-345M

Lịch sự

95,36

93,51

94,43

Bất lịch sự

93,29

95,21

94,24

NeMo GPT-2B-001

Lịch sự

94,67

92,21

93,42

Bất lịch sự

92

94,52

93,24

NeMo GPT 20B

Lịch sự

94.08

92,86

93,46

NeMo GPT 20B

Bất lịch sự

92,57

93,84

93.2

Đo lường độ chính xác của LLM là rất quan trọng để đánh giá hiệu suất của chúng, so sánh các mô hình khác nhau và theo dõi tiến trình trong lĩnh vực NLP. Nó sẽ hướng dẫn người dùng xác định mô hình nền tảng nào sẽ sử dụng để tùy chỉnh và tinh chỉnh thêm. Ngoài ra, các chỉ số đánh giá chính xác sẽ xác thực các kết quả nghiên cứu, hỗ trợ tối ưu hóa mô hình và giải quyết các thành kiến ​​tiềm ẩn hoặc các mối lo ngại về đạo đức. Cuối cùng, việc đánh giá chính xác đảm bảo việc triển khai LLM được thông báo và có trách nhiệm trong các ứng dụng đa dạng trong thế giới thực.

Mỗi ngày, các mô hình LLM mới hơn và hoạt động tốt hơn đang được phát hành. Hơn nữa, các số liệu đánh giá cho LLM đã phát triển theo thời gian để giải quyết các thách thức độc đáo do các mô hình phức tạp này đặt ra và để đánh giá hiệu suất của chúng hiệu quả hơn trên nhiều tác vụ xử lý ngôn ngữ tự nhiên. Xác nhận của chúng tôi chủ yếu tập trung vào các mô hình NeMo có sẵn công khai. Trong tương lai, chúng tôi sẽ cập nhật phần này để kết hợp các mô hình được phát hành gần đây bằng cách sử dụng các số liệu và công cụ được công nhận và chấp nhận rộng rãi trong lĩnh vực này. Chúng tôi cũng sẽ cập nhật phần này để minh họa việc triển khai các mô hình có sẵn mã nguồn mở khác từ HuggingFace bằng cách sử dụng Máy chủ Triton Inference.