Truyền phát phản hồi mô hình ngôn ngữ lớn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Truyền phát phản hồi mô hình ngôn ngữ lớn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Chúng tôi rất vui mừng thông báo rằng Khởi động Amazon SageMaker giờ đây có thể truyền phát các phản hồi suy luận mô hình ngôn ngữ lớn (LLM). Truyền phát mã thông báo cho phép bạn xem đầu ra phản hồi của mô hình khi nó đang được tạo thay vì đợi LLM hoàn thành việc tạo phản hồi trước khi nó được cung cấp cho bạn sử dụng hoặc hiển thị. Khả năng phát trực tuyến trong SageMaker JumpStart có thể giúp bạn xây dựng các ứng dụng có trải nghiệm người dùng tốt hơn bằng cách tạo ra nhận thức về độ trễ thấp cho người dùng cuối.

Trong bài đăng này, chúng tôi sẽ hướng dẫn cách triển khai và truyền phát phản hồi từ một Mô hình hướng dẫn Falcon 7B điểm cuối.

Tại thời điểm viết bài này, các LLM sau có sẵn trong SageMaker JumpStart hỗ trợ phát trực tuyến:

  • Mistral AI 7B, Mistral AI 7B Hướng dẫn
  • Falcon 180B, Falcon 180B Trò chuyện
  • Falcon 40B, Falcon 40B Hướng dẫn
  • Falcon 7B, Falcon 7B Hướng dẫn
  • Hướng dẫn PPO GPT NeoX 4B của Rinna Nhật Bản
  • Hướng dẫn PPO GPT NeoX 3.6B của Rinna Nhật Bản

Để kiểm tra cập nhật về danh sách các mô hình hỗ trợ phát trực tuyến trong SageMaker JumpStart, hãy tìm kiếm “huggingface-llm” tại Các thuật toán tích hợp với Bảng mô hình được đào tạo trước.

Lưu ý rằng bạn có thể sử dụng tính năng phát trực tuyến of Amazon SageMaker lưu trữ ngay lập tức cho bất kỳ mô hình nào được triển khai bằng SageMaker TGI Deep Learning Container (DLC) như được mô tả trong Thông báo ra mắt bộ chứa Suy luận LLM ôm mặt mới trên Amazon SageMaker.

Các mô hình nền tảng trong SageMaker

SageMaker JumpStart cung cấp quyền truy cập vào nhiều mô hình từ các trung tâm mô hình phổ biến, bao gồm Hugging Face, PyTorch Hub và TensorFlow Hub mà bạn có thể sử dụng trong quy trình phát triển ML của mình trong SageMaker. Những tiến bộ gần đây trong ML đã tạo ra một loại mô hình mới được gọi là mô hình nền tảng, thường được đào tạo về hàng tỷ tham số và có thể được điều chỉnh cho phù hợp với nhiều loại trường hợp sử dụng, chẳng hạn như tóm tắt văn bản, tạo tác phẩm nghệ thuật kỹ thuật số và dịch ngôn ngữ. Bởi vì việc đào tạo những mô hình này tốn kém nên khách hàng muốn sử dụng các mô hình nền tảng được đào tạo trước hiện có và tinh chỉnh chúng khi cần, thay vì tự đào tạo những mô hình này. SageMaker cung cấp danh sách mô hình được tuyển chọn mà bạn có thể chọn trên bảng điều khiển SageMaker.

Giờ đây, bạn có thể tìm thấy các mô hình nền tảng từ các nhà cung cấp mô hình khác nhau trong SageMaker JumpStart, cho phép bạn bắt đầu nhanh chóng với các mô hình nền tảng. SageMaker JumpStart cung cấp các mô hình nền tảng dựa trên các tác vụ hoặc nhà cung cấp mô hình khác nhau và bạn có thể dễ dàng xem lại các đặc điểm của mô hình cũng như điều khoản sử dụng. Bạn cũng có thể thử các mô hình này bằng tiện ích giao diện người dùng thử nghiệm. Khi muốn sử dụng mô hình nền tảng trên quy mô lớn, bạn có thể làm như vậy mà không cần rời khỏi SageMaker bằng cách sử dụng sổ ghi chép dựng sẵn từ các nhà cung cấp mô hình. Vì các mô hình được lưu trữ và triển khai trên AWS nên bạn tin tưởng rằng dữ liệu của mình, dù dùng để đánh giá hay sử dụng mô hình trên quy mô lớn, sẽ không bị chia sẻ với bên thứ ba.

truyền mã thông báo

Truyền mã thông báo cho phép phản hồi suy luận được trả về khi nó được mô hình tạo ra. Bằng cách này, bạn có thể thấy phản hồi được tạo tăng dần thay vì đợi mô hình kết thúc trước khi cung cấp phản hồi hoàn chỉnh. Truyền trực tuyến có thể giúp mang lại trải nghiệm người dùng tốt hơn vì nó làm giảm nhận thức về độ trễ cho người dùng cuối. Bạn có thể bắt đầu thấy kết quả khi nó được tạo và do đó có thể ngừng tạo sớm nếu kết quả đầu ra có vẻ không hữu ích cho mục đích của bạn. Truyền trực tuyến có thể tạo ra sự khác biệt lớn, đặc biệt đối với các truy vấn dài hạn, vì bạn có thể bắt đầu thấy kết quả đầu ra khi nó được tạo, điều này có thể tạo ra cảm nhận về độ trễ thấp hơn mặc dù độ trễ từ đầu đến cuối vẫn giữ nguyên.

Tại thời điểm viết bài này, bạn có thể sử dụng tính năng phát trực tuyến trong SageMaker JumpStart cho các mô hình sử dụng Ôm mặt LLM Suy luận tạo văn bản DLC.

Phản hồi không hấp Phản hồi bằng tính năng phát trực tuyến

Tổng quan về giải pháp

Đối với bài đăng này, chúng tôi sử dụng mô hình Falcon 7B Instruct để giới thiệu khả năng phát trực tuyến SageMaker JumpStart.

Bạn có thể sử dụng mã sau để tìm các mẫu khác trong SageMaker JumpStart hỗ trợ phát trực tuyến:

from sagemaker.jumpstart.notebook_utils import list_jumpstart_models
from sagemaker.jumpstart.filters import And filter_value = And("task == llm", "framework == huggingface")
model_ids = list_jumpstart_models(filter=filter_value)
print(model_ids)

Chúng tôi nhận được các ID mẫu sau hỗ trợ phát trực tuyến:

['huggingface-llm-bilingual-rinna-4b-instruction-ppo-bf16', 'huggingface-llm-falcon-180b-bf16', 'huggingface-llm-falcon-180b-chat-bf16', 'huggingface-llm-falcon-40b-bf16', 'huggingface-llm-falcon-40b-instruct-bf16', 'huggingface-llm-falcon-7b-bf16', 'huggingface-llm-falcon-7b-instruct-bf16', 'huggingface-llm-mistral-7b', 'huggingface-llm-mistral-7b-instruct', 'huggingface-llm-rinna-3-6b-instruction-ppo-bf16']

Điều kiện tiên quyết

Trước khi chạy sổ ghi chép, cần thực hiện một số bước ban đầu để thiết lập. Chạy các lệnh sau:

%pip install --upgrade sagemaker –quiet

Triển khai mô hình

Bước đầu tiên, hãy sử dụng SageMaker JumpStart để triển khai mô hình Falcon 7B Instruct. Để biết hướng dẫn đầy đủ, hãy tham khảo Mô hình nền tảng Falcon 180B của TII hiện có sẵn thông qua Amazon SageMaker JumpStart. Sử dụng mã sau đây:

from sagemaker.jumpstart.model import JumpStartModel my_model = JumpStartModel(model_id="huggingface-llm-falcon-7b-instruct-bf16")
predictor = my_model.deploy()

Truy vấn điểm cuối và phản hồi luồng

Tiếp theo, tạo tải trọng để gọi điểm cuối đã triển khai của bạn. Điều quan trọng là tải trọng phải chứa cặp khóa/giá trị "stream": True. Điều này báo hiệu cho máy chủ suy luận tạo văn bản tạo ra phản hồi phát trực tuyến.

payload = { "inputs": "How do I build a website?", "parameters": {"max_new_tokens": 256}, "stream": True
}

Trước khi truy vấn điểm cuối, bạn cần tạo một trình vòng lặp có thể phân tích phản hồi luồng byte từ điểm cuối. Dữ liệu cho mỗi mã thông báo được cung cấp dưới dạng một dòng riêng biệt trong phản hồi, do đó, trình vòng lặp này trả về mã thông báo mỗi khi một dòng mới được xác định trong bộ đệm phát trực tuyến. Trình vòng lặp này được thiết kế tối thiểu và bạn có thể muốn điều chỉnh hành vi của nó cho phù hợp với trường hợp sử dụng của mình; ví dụ: trong khi trình lặp này trả về chuỗi mã thông báo, dữ liệu dòng chứa thông tin khác, chẳng hạn như xác suất nhật ký mã thông báo, có thể được quan tâm.

import io
import json class TokenIterator: def __init__(self, stream): self.byte_iterator = iter(stream) self.buffer = io.BytesIO() self.read_pos = 0 def __iter__(self): return self def __next__(self): while True: self.buffer.seek(self.read_pos) line = self.buffer.readline() if line and line[-1] == ord("n"): self.read_pos += len(line) + 1 full_line = line[:-1].decode("utf-8") line_data = json.loads(full_line.lstrip("data:").rstrip("/n")) return line_data["token"]["text"] chunk = next(self.byte_iterator) self.buffer.seek(0, io.SEEK_END) self.buffer.write(chunk["PayloadPart"]["Bytes"])

Bây giờ bạn có thể sử dụng Boto3 invoke_endpoint_with_response_stream API trên điểm cuối mà bạn đã tạo và bật tính năng phát trực tuyến bằng cách lặp qua TokenIterator ví dụ:

import boto3 client = boto3.client("runtime.sagemaker")
response = client.invoke_endpoint_with_response_stream( EndpointName=predictor.endpoint_name, Body=json.dumps(payload), ContentType="application/json",
) for token in TokenIterator(response["Body"]): print(token, end="")

Chỉ định trống end tham số cho print sẽ kích hoạt luồng hình ảnh mà không cần chèn ký tự dòng mới. Điều này tạo ra đầu ra sau:

Building a website can be a complex process, but it generally involves the following steps: 1. Determine the purpose and goals of your website
2. Choose a domain name and hosting provider
3. Design and develop your website using HTML, CSS, and JavaScript
4. Add content to your website and optimize it for search engines
5. Test and troubleshoot your website to ensure it is working properly
6. Maintain and update your website regularly to keep it running smoothly. There are many resources available online to guide you through these steps, including tutorials and templates. It may also be helpful to seek the advice of a web developer or designer if you are unsure about any of these steps.<|endoftext|>

Bạn có thể sử dụng mã này trong sổ tay hoặc các ứng dụng khác như Streamlit hoặc Gradio để xem hoạt động phát trực tuyến cũng như trải nghiệm mà nó mang lại cho khách hàng của bạn.

Làm sạch

Cuối cùng, hãy nhớ dọn dẹp mô hình và điểm cuối đã triển khai của bạn để tránh phát sinh thêm chi phí:

predictor.delete_model()
predictor.delete_endpoint()

Kết luận

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách sử dụng tính năng phát trực tuyến mới ra mắt trong SageMaker JumpStart. Chúng tôi hy vọng bạn sẽ sử dụng khả năng truyền phát mã thông báo để xây dựng các ứng dụng tương tác yêu cầu độ trễ thấp để có trải nghiệm người dùng tốt hơn.


Giới thiệu về tác giả

Truyền phát phản hồi mô hình ngôn ngữ lớn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.rachna chadha là Kiến trúc sư giải pháp chính AI/ML trong lĩnh vực Tài khoản chiến lược tại AWS. Rachna là một người lạc quan, tin rằng việc sử dụng AI có đạo đức và có trách nhiệm có thể cải thiện xã hội trong tương lai và mang lại sự thịnh vượng về kinh tế và xã hội. Khi rảnh rỗi, Rachna thích dành thời gian cho gia đình, đi bộ đường dài và nghe nhạc.

Truyền phát phản hồi mô hình ngôn ngữ lớn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Tiến sĩ Kyle Ulrich là một nhà khoa học ứng dụng với Các thuật toán tích hợp sẵn của Amazon SageMaker đội. Lĩnh vực nghiên cứu của ông bao gồm các thuật toán học máy có thể mở rộng, thị giác máy tính, chuỗi thời gian, phi tham số Bayesian và quy trình Gaussian. Tiến sĩ của anh ấy đến từ Đại học Duke và anh ấy đã xuất bản các bài báo trên NeurIPS, Cell và Neuron.

Truyền phát phản hồi mô hình ngôn ngữ lớn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Tiến sĩ Ashish Khetan là Nhà khoa học ứng dụng cấp cao với các thuật toán tích hợp Amazon SageMaker và giúp phát triển các thuật toán máy học. Ông lấy bằng Tiến sĩ tại Đại học Illinois Urbana-Champaign. Ông là một nhà nghiên cứu tích cực về học máy và suy luận thống kê, đồng thời đã xuất bản nhiều bài báo tại các hội nghị NeurIPS, ICML, ICLR, JMLR, ACL và EMNLP.

Dấu thời gian:

Thêm từ Học máy AWS