Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Layanan Web Amazon

Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Layanan Web Amazon

Hari ini, kami dengan gembira mengumumkan bahwa model fondasi OpenAI Whisper telah tersedia untuk digunakan oleh pelanggan Mulai Lompatan Amazon SageMaker. Whisper adalah model terlatih untuk pengenalan ucapan otomatis (ASR) dan terjemahan ucapan. Dilatih pada 680 ribu jam data berlabel, model Whisper menunjukkan kemampuan yang kuat untuk melakukan generalisasi ke banyak kumpulan data dan domain tanpa perlu penyesuaian. Sagemaker JumpStart adalah pusat pembelajaran mesin (ML) dari SageMaker yang menyediakan akses ke model dasar selain algoritme bawaan dan templat solusi menyeluruh untuk membantu Anda memulai ML dengan cepat.

Anda juga dapat melakukan ASR menggunakan Amazon Transkripsikan , layanan pengenalan suara otomatis yang dikelola sepenuhnya dan terus dilatih.

Dalam postingan ini, kami menunjukkan cara menyebarkan BukaAI Whisper memodelkan dan memanggil model untuk menyalin dan menerjemahkan audio.

Model OpenAI Whisper menggunakan inferensi pelukanwajah-pytorch wadah. Sebagai pelanggan hub model SageMaker JumpStart, Anda dapat menggunakan ASR tanpa harus memelihara skrip model di luar SageMaker SDK. Model SageMaker JumpStart juga meningkatkan postur keamanan dengan titik akhir yang memungkinkan isolasi jaringan.

Model fondasi di SageMaker

SageMaker JumpStart menyediakan akses ke berbagai model dari hub model populer termasuk Hugging Face, PyTorch Hub, dan TensorFlow Hub, yang dapat Anda gunakan dalam alur kerja pengembangan ML Anda di SageMaker. Kemajuan terkini dalam ML telah memunculkan kelas model baru yang dikenal sebagai model pondasi, yang biasanya dilatih tentang miliaran parameter dan dapat disesuaikan dengan kategori kasus penggunaan yang luas, seperti peringkasan teks, menghasilkan seni digital, dan terjemahan bahasa. Karena model ini mahal untuk dilatih, pelanggan ingin menggunakan model pondasi yang telah dilatih sebelumnya dan menyempurnakannya sesuai kebutuhan, daripada melatih sendiri model tersebut. SageMaker menyediakan daftar model pilihan yang dapat Anda pilih di konsol SageMaker.

Anda sekarang dapat menemukan model pondasi dari penyedia model yang berbeda dalam SageMaker JumpStart, memungkinkan Anda memulai model pondasi dengan cepat. SageMaker JumpStart menawarkan model dasar berdasarkan tugas atau penyedia model yang berbeda, dan Anda dapat dengan mudah meninjau karakteristik model dan ketentuan penggunaan. Anda juga dapat mencoba model ini menggunakan widget pengujian UI. Saat Anda ingin menggunakan model dasar dalam skala besar, Anda dapat melakukannya tanpa meninggalkan SageMaker dengan menggunakan notebook bawaan dari penyedia model. Karena model dihosting dan diterapkan di AWS, Anda percaya bahwa data Anda, baik digunakan untuk mengevaluasi atau menggunakan model dalam skala besar, tidak akan dibagikan kepada pihak ketiga.

Model fondasi OpenAI Whisper

Whisper adalah model terlatih untuk ASR dan terjemahan ucapan. Whisper diusulkan di koran Pengenalan Ucapan yang Kuat melalui Pengawasan Lemah Berskala Besar oleh Alec Radford, dan lainnya, dari OpenAI. Kode asli dapat ditemukan di repositori GitHub ini.

Whisper adalah model encoder-decoder berbasis Transformer, juga disebut sebagai a urutan ke urutan model. Ia dilatih pada 680 ribu jam data ucapan berlabel yang dianotasi menggunakan pengawasan lemah berskala besar. Model Whisper menunjukkan kemampuan yang kuat untuk menggeneralisasi ke banyak kumpulan data dan domain tanpa memerlukan penyesuaian.

Model-model tersebut dilatih pada data berbahasa Inggris saja atau data multibahasa. Model yang hanya berbahasa Inggris dilatih untuk tugas pengenalan suara. Model multibahasa dilatih tentang pengenalan ucapan dan terjemahan ucapan. Untuk pengenalan ucapan, model memprediksi transkripsi di sama bahasa sebagai audio. Untuk terjemahan ucapan, model memprediksi transkripsi ke a berbeda bahasa ke audio.

Pos pemeriksaan Whisper hadir dalam lima konfigurasi dengan ukuran model yang berbeda-beda. Empat anak terkecil dilatih menggunakan data berbahasa Inggris saja atau multibahasa. Pos pemeriksaan terbesar hanya dapat digunakan dalam multibahasa. Kesepuluh pos pemeriksaan terlatih tersedia di Hub Wajah Memeluk. Pos pemeriksaan dirangkum dalam tabel berikut dengan tautan ke model di hub:

Nama model Jumlah parameter Multilingual
berbisik-kecil 39 M Yes
basis bisikan 74 M Yes
bisikan-kecil 244 M Yes
bisikan-medium 769 M Yes
berbisik-besar 1550 M Yes
bisikan-besar-v2 1550 M Yes

Mari jelajahi bagaimana Anda dapat menggunakan model Whisper di SageMaker JumpStart.

Model dasar OpenAI Whisper WER dan perbandingan latensi

Tingkat kesalahan kata (WER) untuk model OpenAI Whisper yang berbeda berdasarkan Tes LibriSpeech-bersih ditunjukkan pada tabel berikut. WER adalah metrik umum untuk kinerja sistem pengenalan suara atau terjemahan mesin. Ini mengukur perbedaan antara teks referensi (kebenaran dasar atau transkripsi yang benar) dan keluaran sistem ASR dalam hal jumlah kesalahan, termasuk penggantian, penyisipan, dan penghapusan yang diperlukan untuk mengubah keluaran ASR menjadi referensi. teks. Angka-angka ini diambil dari Wajah Memeluk website.

Model WER (persen)
berbisik-kecil 7.54
basis bisikan 5.08
bisikan-kecil 3.43
bisikan-medium 2.9
berbisik-besar 3
bisikan-besar-v2 3

Untuk blog ini, kami mengambil file audio di bawah dan membandingkan latensi pengenalan ucapan di berbagai model bisikan. Latensi adalah jumlah waktu sejak pengguna mengirimkan permintaan hingga aplikasi Anda menunjukkan bahwa permintaan telah diselesaikan. Angka-angka dalam tabel berikut mewakili latensi rata-rata untuk total 100 permintaan menggunakan file audio yang sama dengan model yang dihosting di instance ml.g5.2xlarge.

Model Latensi rata-rata keluaran model
berbisik-kecil 0.43 Kita hidup di masa yang sangat menyenangkan dengan penerangan mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir seperti yang kami menangkan di tahun-tahun mendatang. Kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.
basis bisikan 0.49 Kita hidup di masa yang sangat menyenangkan dengan pembelajaran mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir yang kami menangkan di tahun-tahun mendatang. Kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.
bisikan-kecil 0.84 Kita hidup di masa yang sangat menyenangkan dengan pembelajaran mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir yang kita inginkan di tahun-tahun mendatang kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.
bisikan-medium 1.5 Kita hidup di masa yang sangat menyenangkan dengan pembelajaran mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir yang kita inginkan di tahun-tahun mendatang kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.
berbisik-besar 1.96 Kita hidup di masa yang sangat menyenangkan dengan pembelajaran mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir yang kita inginkan di tahun-tahun mendatang kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.
bisikan-besar-v2 1.98 Kita hidup di masa yang sangat menyenangkan dengan pembelajaran mesin. Kecepatan pengembangan model ML akan meningkat. Namun Anda tidak akan mencapai kondisi akhir yang kita inginkan di tahun-tahun mendatang kecuali kita benar-benar membuat model ini lebih mudah diakses oleh semua orang.

Panduan solusi

Anda dapat menerapkan model Whisper menggunakan konsol Amazon SageMaker atau menggunakan Notebook Amazon SageMaker. Dalam postingan ini, kami mendemonstrasikan cara menerapkan Whisper API menggunakan konsol SageMaker Studio atau Notebook SageMaker, lalu menggunakan model yang diterapkan untuk pengenalan ucapan dan terjemahan bahasa. Kode yang digunakan dalam posting ini dapat ditemukan di buku catatan GitHub ini.

Mari kembangkan setiap langkah secara mendetail.

Terapkan Whisper dari konsol

  1. Untuk memulai SageMaker JumpStart, buka konsol Amazon SageMaker Studio dan buka halaman peluncuran SageMaker JumpStart dan pilih Memulai dengan JumpStart.
  2. Untuk memilih model Whisper, Anda dapat menggunakan tab di bagian atas atau menggunakan kotak pencarian di kanan atas seperti yang ditunjukkan pada gambar layar berikut. Untuk contoh ini, gunakan kotak pencarian di kanan atas dan enter Whisper, lalu pilih model Whisper yang sesuai dari menu tarik-turun.
    Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.
  3. Setelah Anda memilih model Whisper, Anda dapat menggunakan konsol untuk menyebarkan model tersebut. Anda dapat memilih instans untuk diterapkan atau menggunakan default.
    Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Terapkan model dasar dari Sagemaker Notebook

Langkah-langkah untuk menerapkan terlebih dahulu dan kemudian menggunakan model yang diterapkan untuk menyelesaikan berbagai tugas adalah:

  1. Mendirikan
  2. Pilih model
  3. Ambil artefak dan terapkan titik akhir
  4. Gunakan model yang diterapkan untuk ASR
  5. Gunakan model yang diterapkan untuk terjemahan bahasa
  6. Bersihkan titik akhir

Mendirikan

Notebook ini diuji pada instans ml.t3.medium di SageMaker Studio dengan kernel Python 3 (ilmu data) dan dalam instans Notebook Amazon SageMaker dengan conda_python3 inti.

%pip install --upgrade sagemaker --quiet

Pilih model terlatih

Siapkan Sesi SageMaker menggunakan Boto3, lalu pilih ID model yang ingin Anda terapkan.

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

Ambil artefak dan terapkan titik akhir

Dengan menggunakan SageMaker, Anda dapat melakukan inferensi pada model yang telah dilatih sebelumnya, bahkan tanpa menyempurnakannya terlebih dahulu pada kumpulan data baru. Untuk menghosting model terlatih, buatlah sebuah instance sagemaker.model.Model dan menyebarkannya. Kode berikut menggunakan instance default ml.g5.2xlarge untuk titik akhir inferensi model Whisper-large-v2. Anda dapat menerapkan model pada tipe instans lain dengan meneruskan instance_type dalam JumpStartModel kelas. Penerapannya mungkin memakan waktu beberapa menit.

#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()

Pengenalan ucapan otomatis

Selanjutnya, Anda membaca contoh file audio, sample1.wav, dari publik SageMaker Jumpstart Layanan Penyimpanan Sederhana Amazon (Amazon S3) lokasi dan meneruskannya ke prediktor untuk pengenalan suara. Anda dapat mengganti file sampel ini dengan file audio sampel lainnya, namun pastikan file .wav diambil sampelnya pada 16 kHz karena diperlukan oleh model pengenalan suara otomatis. File audio masukan harus kurang dari 30 detik.

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"])

Model ini mendukung banyak parameter saat melakukan inferensi. Mereka termasuk:

  • max_length: Model menghasilkan teks hingga panjang keluaran. Jika ditentukan, maka harus berupa bilangan bulat positif.
  • bahasa dan tugas: Tentukan bahasa keluaran dan tugas di sini. Model mendukung tugas transkripsi atau terjemahan.
  • max_new_tokens: Jumlah maksimum token yang akan dihasilkan.
  • num_return_sequences: Jumlah urutan keluaran yang dikembalikan. Jika ditentukan, maka harus berupa bilangan bulat positif.
  • num_beams: Jumlah balok yang digunakan dalam pencarian serakah. Jika ditentukan, bilangan bulatnya harus lebih besar dari atau sama dengan num_return_sequences.
  • no_repeat_ngram_size: Model memastikan bahwa rangkaian kata no_repeat_ngram_size tidak diulangi dalam urutan keluaran. Jika ditentukan, maka harus berupa bilangan bulat positif yang lebih besar dari 1.
  • suhu: Ini mengontrol keacakan dalam output. Suhu yang lebih tinggi menghasilkan urutan keluaran dengan kata-kata dengan probabilitas rendah, dan suhu yang lebih rendah menghasilkan urutan keluaran dengan kata-kata dengan probabilitas tinggi. Jika suhu mendekati 0, ini menghasilkan decoding yang serakah. Jika ditentukan, itu harus berupa pelampung positif.
  • early_stopping: Jika True, pembuatan teks selesai ketika semua hipotesis balok mencapai akhir token kalimat. Jika ditentukan, itu harus boolean.
  • do_sample: Jika True, contoh kata berikutnya untuk mengetahui kemungkinannya. Jika ditentukan, itu harus boolean.
  • top_k: Dalam setiap langkah pembuatan teks, sampel hanya dari top_k kata-kata yang paling mungkin. Jika ditentukan, itu harus berupa bilangan bulat positif.
  • top_p: Dalam setiap langkah pembuatan teks, ambil sampel dari kumpulan kata sekecil mungkin dengan probabilitas kumulatif top_p. Jika ditentukan, itu harus berupa float antara 0 dan 1.

Anda dapat menentukan subset apa pun dari parameter sebelumnya saat memanggil titik akhir. Selanjutnya, kami tunjukkan contoh cara memanggil titik akhir dengan argumen ini.

Terjemahan bahasa

Untuk menampilkan terjemahan bahasa menggunakan model Whisper, gunakan file audio berikut dalam bahasa Prancis dan terjemahkan ke bahasa Inggris. File harus diambil sampelnya pada 16 kHz (seperti yang disyaratkan oleh model ASR), jadi pastikan untuk mengambil sampel ulang file jika diperlukan dan pastikan sampel Anda tidak melebihi 30 detik.

  1. Download sample_french1.wav dari SageMaker JumpStart dari lokasi S3 publik sehingga dapat diteruskan dalam payload untuk diterjemahkan oleh model 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. Tetapkan parameter tugas sebagai translate dan bahasa sebagai French untuk memaksa model Whisper melakukan terjemahan ucapan.
    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. penggunaan prediktor untuk memprediksi terjemahan bahasa. Jika Anda menerima kesalahan klien (kesalahan 413), periksa ukuran muatan ke titik akhir. Muatan untuk permintaan titik akhir pemanggilan SageMaker dibatasi sekitar 5 MB.
    response = predictor.predict(payload)
    print(response["text"])

  4. Output teks yang diterjemahkan ke bahasa Inggris dari file audio Perancis sebagai berikut:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

Membersihkan

Setelah Anda menguji titik akhir, hapus titik akhir inferensi SageMaker dan hapus model untuk menghindari dikenakan biaya.

Kesimpulan

Dalam postingan ini, kami menunjukkan kepada Anda cara menguji dan menggunakan model OpenAI Whisper untuk membangun aplikasi menarik menggunakan Amazon SageMaker. Cobalah model dasar di SageMaker hari ini dan beri tahu kami tanggapan Anda!

Panduan ini hanya untuk tujuan informasi. Anda tetap harus melakukan penilaian independen dan mengambil tindakan untuk memastikan bahwa Anda mematuhi praktik dan standar kendali mutu spesifik Anda, serta peraturan, undang-undang, regulasi, lisensi, dan ketentuan penggunaan setempat yang berlaku untuk Anda, konten Anda, dan konten Anda. model pihak ketiga yang dirujuk dalam panduan ini. AWS tidak memiliki kendali atau wewenang atas model pihak ketiga yang dirujuk dalam panduan ini dan tidak membuat pernyataan atau jaminan apa pun bahwa model pihak ketiga aman, bebas virus, operasional, atau kompatibel dengan lingkungan dan standar produksi Anda. AWS tidak membuat pernyataan, jaminan, atau jaminan apa pun bahwa informasi apa pun dalam panduan ini akan menghasilkan keluaran atau akibat tertentu.


Tentang penulis

Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Hemant Singh adalah Ilmuwan Terapan dengan pengalaman di Amazon SageMaker JumpStart. Ia mendapatkan gelar masternya dari Courant Institute of Mathematical Sciences dan B.Tech dari IIT Delhi. Dia memiliki pengalaman dalam menangani beragam masalah pembelajaran mesin dalam domain pemrosesan bahasa alami, visi komputer, dan analisis deret waktu.

Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Rakhna Chadha adalah Arsitek Solusi Utama AI/ML dalam Akun Strategis di AWS. Rachna adalah seorang optimis yang percaya bahwa penggunaan AI secara etis dan bertanggung jawab dapat meningkatkan masyarakat di masa depan dan membawa kemakmuran ekonomi dan sosial. Di waktu senggangnya, Rachna suka menghabiskan waktu bersama keluarganya, mendaki gunung dan mendengarkan musik.

Model bisikan untuk pengenalan ucapan otomatis kini tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Dr Ashish Khetan adalah Ilmuwan Terapan Senior dengan algoritme bawaan Amazon SageMaker dan membantu mengembangkan algoritme pembelajaran mesin. Ia mendapatkan gelar PhD dari University of Illinois Urbana-Champaign. Dia adalah peneliti aktif dalam pembelajaran mesin dan inferensi statistik, dan telah menerbitkan banyak makalah di konferensi NeurIPS, ICML, ICLR, JMLR, ACL, dan EMNLP.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS