Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Hôm nay, chúng tôi vui mừng thông báo rằng mô hình nền tảng OpenAI Whisper đã có sẵn cho khách hàng sử dụng Khởi động Amazon SageMaker. Whisper là một mô hình được đào tạo trước để nhận dạng giọng nói tự động (ASR) và dịch giọng nói. Được đào tạo trên 680 nghìn giờ dữ liệu được gắn nhãn, các mô hình Whisper thể hiện khả năng khái quát hóa mạnh mẽ cho nhiều tập dữ liệu và miền mà không cần tinh chỉnh. Sagemaker JumpStart là trung tâm máy học (ML) của SageMaker cung cấp quyền truy cập vào các mô hình nền tảng bên cạnh các thuật toán tích hợp sẵn và các mẫu giải pháp toàn diện để giúp bạn nhanh chóng bắt đầu với ML.

Bạn cũng có thể thực hiện ASR bằng cách sử dụng Phiên âm Amazon ,một dịch vụ nhận dạng giọng nói tự động được đào tạo liên tục và được quản lý toàn phần.

Trong bài đăng này, chúng tôi chỉ cho bạn cách triển khai OpenAI thì thầm mô hình và gọi mô hình để phiên âm và dịch âm thanh.

Mô hình OpenAI Whisper sử dụng ôm mặt-pytorch-suy luận thùng đựng hàng. Với tư cách là khách hàng của trung tâm mô hình SageMaker JumpStart, bạn có thể sử dụng ASR mà không cần phải duy trì tập lệnh mô hình bên ngoài SDK SageMaker. Các mô hình SageMaker JumpStart cũng cải thiện trạng thái bảo mật với các điểm cuối cho phép cách ly mạng.

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ù được sử 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.

Các mô hình nền tảng OpenAI Whisper

Whisper là một mô hình được đào tạo trước cho ASR và dịch giọng nói. Lời thì thầm đã được đề xuất trong bài báo Nhận dạng giọng nói mạnh mẽ thông qua giám sát yếu trên quy mô lớn của Alec Radford và những người khác từ OpenAI. Mã gốc có thể được tìm thấy trong kho GitHub này.

Whisper là mô hình mã hóa-giải mã dựa trên Transformer, còn được gọi là mô hình nối tiếp nhau người mẫu. Nó được đào tạo trên 680 nghìn giờ dữ liệu giọng nói được gắn nhãn và được chú thích bằng cách sử dụng giám sát yếu trên quy mô lớn. Các mô hình Whisper thể hiện khả năng khái quát hóa mạnh mẽ cho nhiều bộ dữ liệu và miền mà không cần tinh chỉnh.

Các mô hình được đào tạo trên dữ liệu chỉ có tiếng Anh hoặc dữ liệu đa ngôn ngữ. Các mô hình chỉ nói tiếng Anh đã được đào tạo về nhiệm vụ nhận dạng giọng nói. Các mô hình đa ngôn ngữ đã được đào tạo về nhận dạng giọng nói và dịch giọng nói. Để nhận dạng giọng nói, mô hình dự đoán phiên âm trong tương tự ngôn ngữ như âm thanh. Đối với dịch giọng nói, mô hình dự đoán phiên âm thành một khác nhau ngôn ngữ sang âm thanh.

Điểm kiểm tra thì thầm có năm cấu hình với các kích cỡ mô hình khác nhau. Bốn nhóm nhỏ nhất được đào tạo trên dữ liệu chỉ có tiếng Anh hoặc đa ngôn ngữ. Các điểm kiểm tra lớn nhất chỉ có đa ngôn ngữ. Tất cả mười điểm kiểm tra được đào tạo trước đều có sẵn trên Trung tâm ôm mặt. Các điểm kiểm tra được tóm tắt trong bảng sau với các liên kết đến các mô hình trên trung tâm:

tên mẫu Số tham số Đa ngôn ngữ
thì thầm nhỏ xíu 39 M
cơ sở thì thầm 74 M
thì thầm nhỏ 244 M
thì thầm vừa 769 M
thì thầm lớn 1550 M
thì thầm-lớn-v2 1550 M

Hãy khám phá cách bạn có thể sử dụng mô hình Whisper trong SageMaker JumpStart.

Mô hình nền tảng OpenAI Whisper WER và so sánh độ trễ

Tỷ lệ lỗi từ (WER) của các mô hình OpenAI Whisper khác nhau dựa trên Kiểm tra LibriSpeech sạch được thể hiện trong bảng sau. WER là thước đo chung cho hiệu suất của hệ thống nhận dạng giọng nói hoặc dịch máy. Nó đo lường sự khác biệt giữa văn bản tham chiếu (sự thật cơ bản hoặc bản phiên âm chính xác) và đầu ra của hệ thống ASR về số lượng lỗi, bao gồm các thay thế, chèn và xóa cần thiết để chuyển đổi đầu ra ASR thành tham chiếu chữ. Những con số này được lấy từ Ôm mặt trang web.

Mô hình WER (phần trăm)
thì thầm nhỏ xíu 7.54
cơ sở thì thầm 5.08
thì thầm nhỏ 3.43
thì thầm vừa 2.9
thì thầm lớn 3
thì thầm-lớn-v2 3

Đối với blog này, chúng tôi đã lấy tệp âm thanh bên dưới và so sánh độ trễ nhận dạng giọng nói giữa các mô hình thì thầm khác nhau. Độ trễ là khoảng thời gian kể từ thời điểm người dùng gửi yêu cầu cho đến khi ứng dụng của bạn cho biết yêu cầu đã được hoàn thành. Các số trong bảng sau biểu thị độ trễ trung bình cho tổng số 100 yêu cầu sử dụng cùng một tệp âm thanh với mô hình được lưu trữ trên phiên bản ml.g5.2xlarge.

Mô hình (Các) độ trễ trung bình Đầu ra mô hình
thì thầm nhỏ xíu 0.43 Chúng ta đang sống trong thời kỳ rất thú vị với ánh sáng máy móc. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi đã giành được trong những năm tới. Trừ khi chúng ta thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.
cơ sở thì thầm 0.49 Chúng ta đang sống trong thời kỳ rất thú vị với học máy. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi đã giành được trong những năm tới. Trừ khi chúng ta thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.
thì thầm nhỏ 0.84 Chúng ta đang sống trong thời kỳ rất thú vị với học máy. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi mong muốn trong những năm tới trừ khi chúng tôi thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.
thì thầm vừa 1.5 Chúng ta đang sống trong thời kỳ rất thú vị với học máy. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi mong muốn trong những năm tới trừ khi chúng tôi thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.
thì thầm lớn 1.96 Chúng ta đang sống trong thời kỳ rất thú vị với học máy. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi mong muốn trong những năm tới trừ khi chúng tôi thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.
thì thầm-lớn-v2 1.98 Chúng ta đang sống trong thời kỳ rất thú vị với học máy. Tốc độ phát triển mô hình ML sẽ thực sự tăng lên. Nhưng bạn sẽ không đạt được trạng thái cuối cùng mà chúng tôi mong muốn trong những năm tới trừ khi chúng tôi thực sự làm cho những mô hình này dễ tiếp cận hơn với mọi người.

Hướng dẫn giải pháp

Bạn có thể triển khai các mô hình Whisper bằng bảng điều khiển Amazon SageMaker hoặc sử dụng Sổ tay Amazon SageMaker. Trong bài đăng này, chúng tôi trình bày cách triển khai API Whisper bằng bảng điều khiển SageMaker Studio hoặc SageMaker Notebook, sau đó sử dụng mô hình đã triển khai để nhận dạng giọng nói và dịch ngôn ngữ. Mã được sử dụng trong bài viết này có thể được tìm thấy trong sổ ghi chép GitHub này.

Hãy mở rộng từng bước một cách chi tiết.

Triển khai Whisper từ bảng điều khiển

  1. Để bắt đầu với SageMaker JumpStart, hãy mở bảng điều khiển Amazon SageMaker Studio và truy cập trang khởi chạy của SageMaker JumpStart rồi chọn Bắt đầu với JumpStart.
  2. Để chọn kiểu Whisper, bạn có thể sử dụng các tab ở trên cùng hoặc sử dụng hộp tìm kiếm ở trên cùng bên phải như trong ảnh chụp màn hình sau. Đối với ví dụ này, hãy sử dụng hộp tìm kiếm ở trên cùng bên phải và nhập Whisper, sau đó chọn mô hình Whisper thích hợp từ menu thả xuống.
    Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.
  3. Sau khi chọn mô hình Whisper, bạn có thể sử dụng bảng điều khiển để triển khai mô hình. Bạn có thể chọn một phiên bản để triển khai hoặc sử dụng phiên bản mặc định.
    Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Triển khai mô hình nền tảng từ Sagemaker Notebook

Các bước triển khai đầu tiên và sau đó sử dụng mô hình đã triển khai để giải quyết các nhiệm vụ khác nhau là:

  1. Thiết lập
  2. Chọn một mô hình
  3. Truy xuất các tạo phẩm và triển khai một điểm cuối
  4. Sử dụng mô hình đã triển khai cho ASR
  5. Sử dụng mô hình đã triển khai để dịch ngôn ngữ
  6. Làm sạch điểm cuối

Thiết lập

Sổ ghi chép này đã được thử nghiệm trên phiên bản ml.t3.medium trong SageMaker Studio với nhân Python 3 (khoa học dữ liệu) và trong phiên bản Sổ ghi chép Amazon SageMaker với conda_python3 nhân.

%pip install --upgrade sagemaker --quiet

Chọn một mô hình được đào tạo trước

Thiết lập Phiên SageMaker bằng Boto3, sau đó chọn ID mô hình mà bạn muốn triển khai.

model_id = "huggingface-asr-whisper-large-v2"

Truy xuất các tạo phẩm và triển khai một điểm cuối

Khi sử dụng SageMaker, bạn có thể thực hiện suy luận trên mô hình được đào tạo trước, ngay cả khi không tinh chỉnh mô hình đó trước trên tập dữ liệu mới. Để lưu trữ mô hình được đào tạo trước, hãy tạo một phiên bản của sagemaker.model.Model và triển khai nó. Đoạn mã sau sử dụng phiên bản mặc định ml.g5.2xlarge cho điểm cuối suy luận của mô hình thì thầm lớn-v2. Bạn có thể triển khai mô hình trên các loại phiên bản khác bằng cách chuyển instance_type trong JumpStartModel lớp học. Việc triển khai có thể mất vài phút.

#Deploying the model from sagemaker.jumpstart.model import JumpStartModel
from sagemaker.serializers import JSONSerializer my_model = JumpStartModel(model_id=dropdown.value)
predictor = my_model.deploy()

Tự động nhận dạng giọng nói

Tiếp theo, bạn đọc tệp âm thanh mẫu, sample1.wav, từ công khai SageMaker Jumpstart Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) vị trí và chuyển nó đến người dự đoán để nhận dạng giọng nói. Bạn có thể thay thế tệp mẫu này bằng bất kỳ tệp âm thanh mẫu nào khác nhưng hãy đảm bảo tệp .wav được lấy mẫu ở tần số 16 kHz do các mô hình nhận dạng giọng nói tự động yêu cầu. Tệp âm thanh đầu vào phải nhỏ hơn 30 giây.

from scipy.io.wavfile import read
import json
import boto3
from sagemaker.jumpstart import utils # The wav files must be sampled at 16kHz (this is required by the automatic speech recognition models), so make sure to resample them if required. The input audio file must be less than 30 seconds.
s3_bucket = utils.get_jumpstart_content_bucket(boto3.Session().region_name)
key_prefix = "training-datasets/asr_notebook_data"
input_audio_file_name = "sample1.wav" s3_client = boto3.client("s3")
s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name ) with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() # If you receive client error (413) please check the payload size to the endpoint. Payloads for SageMaker invoke endpoint requests are limited to about 5MB
response = predictor.predict(wav_file_read)
print(response["text"])

Mô hình này hỗ trợ nhiều tham số khi thực hiện suy luận. Chúng bao gồm:

  • max_length: Mô hình tạo văn bản cho đến độ dài đầu ra. Nếu được chỉ định, nó phải là số nguyên dương.
  • ngôn ngữ và tác vụ: Chỉ định ngôn ngữ đầu ra và tác vụ tại đây. Mô hình hỗ trợ nhiệm vụ phiên âm hoặc dịch thuật.
  • max_new_tokens: Số lượng mã thông báo tối đa cần tạo.
  • num_return_sequences: Số lượng chuỗi đầu ra được trả về. Nếu được chỉ định, nó phải là số nguyên dương.
  • num_beams: Số lượng chùm tia được sử dụng trong tìm kiếm tham lam. Nếu được chỉ định, nó phải là số nguyên lớn hơn hoặc bằng num_return_sequences.
  • no_repeat_ngram_size: Mô hình đảm bảo rằng một chuỗi các từ của no_repeat_ngram_size không được lặp lại trong chuỗi đầu ra. Nếu được chỉ định, nó phải là số nguyên dương lớn hơn 1.
  • nhiệt độ: Điều này kiểm soát tính ngẫu nhiên ở đầu ra. Nhiệt độ cao hơn dẫn đến chuỗi đầu ra có các từ có xác suất thấp và nhiệt độ thấp hơn dẫn đến chuỗi đầu ra có các từ có xác suất cao. Nếu nhiệt độ tiến tới 0, nó sẽ dẫn đến giải mã tham lam. Nếu được chỉ định, nó phải là số float dương.
  • early_stopping: Nếu True, việc tạo văn bản kết thúc khi tất cả các giả thuyết chùm đạt đến cuối mã thông báo câu. Nếu được chỉ định thì nó phải là boolean.
  • do_sample: Nếu True, lấy mẫu từ tiếp theo để biết khả năng xảy ra. Nếu được chỉ định thì nó phải là boolean.
  • top_k: Trong mỗi bước tạo văn bản, chỉ lấy mẫu từ top_k những từ có khả năng nhất. Nếu được chỉ định, nó phải là một số nguyên dương.
  • top_p: Trong mỗi bước tạo văn bản, lấy mẫu từ tập hợp từ nhỏ nhất có thể có xác suất tích lũy top_p. Nếu được chỉ định, nó phải là số float trong khoảng từ 0 đến 1.

Bạn có thể chỉ định bất kỳ tập hợp con nào của các tham số trước đó khi gọi điểm cuối. Tiếp theo, chúng tôi sẽ giới thiệu cho bạn một ví dụ về cách gọi điểm cuối bằng các đối số này.

Dịch ngôn ngữ

Để giới thiệu bản dịch ngôn ngữ bằng mô hình Whisper, hãy sử dụng tệp âm thanh sau bằng tiếng Pháp và dịch nó sang tiếng Anh. Tệp phải được lấy mẫu ở tần số 16 kHz (theo yêu cầu của mô hình ASR), vì vậy hãy đảm bảo lấy mẫu lại tệp nếu cần và đảm bảo mẫu của bạn không vượt quá 30 giây.

  1. Tải về sample_french1.wav từ SageMaker JumpStart từ vị trí S3 công khai để nó có thể được chuyển trong tải trọng để dịch bằng mô hình Whisper.
    input_audio_file_name = "sample_french1.wav" s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name )

  2. Đặt tham số tác vụ là translate và ngôn ngữ như French để buộc mô hình Whisper thực hiện dịch giọng nói.
    with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() payload = {"audio_input": wav_file_read.hex(), "language": "french", "task": "translate"} predictor.serializer = JSONSerializer()
    predictor.content_type = "application/json"

  3. Sử dụng người dự đoán để dự đoán bản dịch của ngôn ngữ. Nếu bạn nhận được lỗi máy khách (lỗi 413), hãy kiểm tra kích thước tải trọng đến điểm cuối. Tải trọng cho các yêu cầu điểm cuối gọi SageMaker được giới hạn ở khoảng 5 MB.
    response = predictor.predict(payload)
    print(response["text"])

  4. Đầu ra văn bản được dịch sang tiếng Anh từ tệp âm thanh tiếng Pháp như sau:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Làm sạch

Sau khi bạn đã kiểm tra điểm cuối, hãy xóa điểm cuối suy luận SageMaker và xóa mô hình để tránh phát sinh phí.

Kết luận

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách kiểm tra và sử dụng các mô hình OpenAI Whisper để xây dựng các ứng dụng thú vị bằng Amazon SageMaker. Hãy dùng thử mô hình nền tảng trong SageMaker ngay hôm nay và cho chúng tôi biết phản hồi của bạn!

Hướng dẫn này chỉ nhằm mục đích cung cấp thông tin. Bạn vẫn phải thực hiện đánh giá độc lập của riêng mình và thực hiện các biện pháp để đảm bảo rằng bạn tuân thủ các thông lệ và tiêu chuẩn kiểm soát chất lượng cụ thể của riêng mình cũng như các quy tắc, luật pháp, quy định, giấy phép và điều khoản sử dụng của địa phương áp dụng cho bạn, nội dung của bạn và mô hình của bên thứ ba được tham chiếu trong hướng dẫn này. AWS không có quyền kiểm soát hay thẩm quyền đối với mô hình của bên thứ ba được tham chiếu trong hướng dẫn này và không đưa ra bất kỳ tuyên bố hay bảo đảm nào rằng mô hình của bên thứ ba là an toàn, không có vi rút, hoạt động hoặc tương thích với môi trường và tiêu chuẩn sản xuất của bạn. AWS không đưa ra bất kỳ tuyên bố, bảo đảm hay đảm bảo nào rằng mọi thông tin trong hướng dẫn này sẽ dẫn đến kết quả hoặc kết quả cụ thể.


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

Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Hemant Singh là Nhà khoa học ứng dụng có kinh nghiệm về Amazon SageMaker JumpStart. Anh có bằng thạc sĩ tại Viện Khoa học Toán học Courant và B.Tech từ IIT Delhi. Anh ấy có kinh nghiệm làm việc với nhiều vấn đề về học máy trong lĩnh vực xử lý ngôn ngữ tự nhiên, thị giác máy tính và phân tích chuỗi thời gian.

Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên 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 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.

Các mô hình thì thầm để nhận dạng giọng nói tự động hiện có sẵn trên 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