Jalankan pembuatan teks dengan model GPT dan Bloom di Amazon SageMaker JumpStart

Pada bulan Desember 2020, AWS mengumumkan ketersediaan umum Mulai Lompatan Amazon SageMaker, kemampuan Amazon SageMaker yang membantu Anda memulai machine learning (ML) dengan cepat dan mudah. JumpStart menyediakan penyetelan satu klik dan penerapan berbagai model terlatih di seluruh tugas ML populer, serta pilihan solusi ujung ke ujung yang memecahkan masalah bisnis umum. Fitur-fitur ini menghilangkan beban berat dari setiap langkah proses ML, membuatnya lebih mudah untuk mengembangkan model berkualitas tinggi dan mengurangi waktu penerapan.

Posting ini adalah yang keempat dalam rangkaian penggunaan JumpStart untuk tugas ML tertentu. Dalam Pos pertama, kami menunjukkan cara menjalankan kasus penggunaan klasifikasi gambar di JumpStart. Dalam pos kedua, kami mendemonstrasikan cara menjalankan kasus penggunaan klasifikasi teks. Dalam pos ketiga, kami menjalankan kasus penggunaan segmentasi gambar.

Dalam postingan ini, kami memberikan panduan langkah demi langkah tentang cara menerapkan model pembuatan teks pra-pelatihan. Kami menjelajahi dua cara untuk mendapatkan hasil yang sama: melalui antarmuka grafis JumpStart aktif Studio Amazon SageMaker, dan secara terprogram melalui API JumpStart.

Jika Anda ingin langsung masuk ke kode JumpStart API yang kami bahas di postingan ini, Anda dapat merujuk ke contoh notebook Jupyter berikut: Pengantar JumpStart โ€“ Pembuatan Teks.

Ikhtisar JumpStart

JumpStart membantu Anda memulai model ML untuk berbagai tugas tanpa menulis satu baris kode pun. Saat ini, JumpStart memungkinkan Anda melakukan hal berikut:

  • Terapkan model terlatih untuk tugas ML umum โ€“ JumpStart memungkinkan Anda untuk menangani tugas ML umum tanpa upaya pengembangan dengan menyediakan penerapan model yang telah dilatih sebelumnya dengan mudah pada kumpulan data besar yang tersedia untuk umum. Komunitas riset ML telah berupaya keras untuk membuat sebagian besar model yang dikembangkan baru-baru ini tersedia untuk umum untuk digunakan. JumpStart menampung koleksi lebih dari 300 model, mencakup 15 tugas ML paling populer seperti deteksi objek, klasifikasi teks, dan pembuatan teks, sehingga memudahkan pemula untuk menggunakannya. Model ini diambil dari hub model populer seperti TensorFlow, PyTorch, Hugging Face, dan MXNet.
  • Sempurnakan model yang telah dilatih sebelumnya โ€“ JumpStart memungkinkan Anda menyempurnakan model pra-terlatih tanpa perlu menulis algoritme pelatihan Anda sendiri. Di ML, kemampuan untuk mentransfer pengetahuan yang dipelajari di satu domain ke domain lain disebut belajar transfer. Anda dapat menggunakan pembelajaran transfer untuk menghasilkan model yang akurat pada kumpulan data Anda yang lebih kecil, dengan biaya pelatihan yang jauh lebih rendah daripada yang terlibat dalam pelatihan model asli. JumpStart juga menyertakan algoritme pelatihan populer berdasarkan LightGBM, CatBoost, XGBoost, dan Scikit-learn, yang dapat Anda latih dari awal untuk regresi dan klasifikasi tabular.
  • Gunakan solusi yang dibuat sebelumnya โ€“ JumpStart menyediakan 17 solusi untuk kasus penggunaan ML umum, seperti perkiraan permintaan dan aplikasi industri dan keuangan, yang dapat Anda terapkan hanya dengan beberapa klik. Solusi adalah aplikasi ML ujung ke ujung yang menyatukan berbagai layanan AWS untuk menyelesaikan kasus penggunaan bisnis tertentu. Mereka menggunakan Formasi AWS Cloud template dan arsitektur referensi untuk penerapan cepat, yang berarti dapat disesuaikan sepenuhnya.
  • Lihat contoh buku catatan untuk algoritme SageMaker โ€“ SageMaker menyediakan rangkaian algoritme bawaan untuk membantu ilmuwan data dan praktisi ML memulai pelatihan dan penerapan model ML dengan cepat. JumpStart menyediakan contoh buku catatan yang dapat Anda gunakan untuk menggunakan algoritme ini dengan cepat.
  • Tinjau video dan blog pelatihan โ€“ JumpStart juga menyediakan banyak posting blog dan video yang mengajari Anda cara menggunakan berbagai fungsi dalam SageMaker.

JumpStart menerima pengaturan VPC khusus dan Layanan Manajemen Kunci AWS (AWS KMS) kunci enkripsi, sehingga Anda dapat menggunakan model dan solusi yang tersedia dengan aman dalam lingkungan perusahaan Anda. Anda dapat meneruskan pengaturan keamanan Anda ke JumpStart di dalam Studio atau melalui SageMaker Python SDK.

Pembuatan teks, GPT-2, dan Bloom

Pembuatan teks adalah tugas menghasilkan teks yang fasih dan tampak tidak dapat dibedakan dari teks tulisan manusia. Ia juga dikenal sebagai generasi bahasa alami.

GPT-2 adalah model pembuatan teks berbasis transformer yang populer. Ini dilatih sebelumnya pada korpus besar teks bahasa Inggris mentah tanpa pelabelan manusia. Itu dilatih pada tugas di mana, dengan urutan parsial (kalimat atau potongan teks), model perlu memprediksi kata atau token berikutnya dalam urutan tersebut.

Bloom juga merupakan model pembuatan teks berbasis transformer dan dilatih mirip dengan GPT-2. Namun, Bloom dilatih sebelumnya dalam 46 bahasa berbeda dan 13 bahasa pemrograman. Berikut adalah contoh running text generation dengan model Bloom:

Input: "Some people like dogs, some people like cats"
Output: "Some people like dogs, some people like cats some people like birds, some people like fish,"

Ikhtisar solusi

Bagian berikut menyediakan demo langkah demi langkah untuk melakukan inferensi, baik melalui Studio UI maupun melalui JumpStart API. Kami berjalan melalui langkah-langkah berikut:

  1. Akses JumpStart melalui UI Studio untuk menerapkan dan menjalankan inferensi pada model yang telah dilatih sebelumnya.
  2. Gunakan JumpStart secara terprogram dengan SageMaker Python SDK untuk menerapkan model terlatih dan menjalankan inferensi.

Akses JumpStart melalui UI Studio dan jalankan inferensi dengan model terlatih

Di bagian ini, kami mendemonstrasikan cara melatih dan menerapkan model JumpStart melalui UI Studio.

Video berikut menunjukkan cara menemukan model pembuatan teks terlatih di JumpStart dan menerapkannya. Halaman model berisi informasi berharga tentang model dan cara menggunakannya. Anda dapat menggunakan salah satu model terlatih yang tersedia di JumpStart. Untuk inferensi, kami memilih jenis instans ml.p3.2xlarge, karena memberikan akselerasi GPU yang diperlukan untuk latensi inferensi rendah pada titik harga rendah. Setelah Anda mengonfigurasi instans hosting SageMaker, pilih Menyebarkan. Mungkin diperlukan waktu 20-25 menit hingga titik akhir persisten Anda aktif dan berjalan.

Setelah titik akhir Anda beroperasi, siap untuk menanggapi permintaan inferensi!

Untuk mempercepat waktu Anda menuju inferensi, JumpStart menyediakan buku catatan contoh yang menunjukkan cara menjalankan inferensi pada titik akhir yang baru Anda terapkan. Memilih Buka Buku Catatan bawah Gunakan Endpoint dari Studio.

Gunakan JumpStart secara terprogram dengan SageMaker SDK

Di bagian sebelumnya, kami menunjukkan cara menggunakan UI JumpStart untuk menerapkan model terlatih secara interaktif, hanya dengan beberapa klik. Namun, Anda juga dapat menggunakan model JumpStart secara terprogram dengan menggunakan API yang terintegrasi ke dalam SDK SageMaker.

Di bagian ini, kita membahas contoh singkat tentang cara mereplikasi proses sebelumnya dengan SageMaker SDK. Kami memilih model terlatih yang sesuai di JumpStart, menerapkan model ini ke titik akhir SageMaker, dan menjalankan inferensi pada titik akhir yang diterapkan. Semua langkah dalam demo ini tersedia di notebook yang disertakan Pengantar JumpStart โ€“ Pembuatan Teks.

Deploy model yang telah dilatih sebelumnya

SageMaker adalah platform yang memanfaatkan kontainer Docker secara ekstensif untuk tugas build dan runtime. JumpStart menggunakan framework-spesifik yang tersedia Wadah Pembelajaran Mendalam SageMaker (DLC). Kami pertama-tama mengambil paket tambahan apa pun, serta skrip untuk menangani pelatihan dan inferensi untuk tugas yang dipilih. Terakhir, artefak model pra-pelatihan diambil secara terpisah model_uris, yang memberikan fleksibilitas pada platform. Anda dapat menggunakan sejumlah model yang telah dilatih sebelumnya pada tugas yang sama dengan satu skrip inferensi. Lihat kode berikut:

model_id, model_version = "huggingface-textgeneration-bloom-560m", "*"

# Retrieve the inference docker container uri
deploy_image_uri = image_uris.retrieve(
    region=None,
    framework=None,  # automatically inferred from model_id
    image_scope="inference",
    model_id=model_id,
    model_version=model_version,
    instance_type=inference_instance_type,
)

# Retrieve the inference script uri
deploy_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="inference")

base_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="inference")

Bloom adalah model yang sangat besar dan membutuhkan waktu hingga 20โ€“25 menit untuk diterapkan. Anda juga dapat menggunakan model yang lebih kecil seperti GPT-2. Untuk men-deploy model GPT-2 terlatih, Anda dapat menyetel model_id = huggingface-textgeneration-gpt2. Untuk daftar model lain yang tersedia di JumpStart, lihat Tabel Model yang Tersedia JumpStart.

Selanjutnya, kami memasukkan sumber daya ke dalam a Model SageMaker contoh dan gunakan titik akhir:

# Create the SageMaker model instance
model = Model(
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    model_data=base_model_uri,
    entry_point="inference.py",  # entry point file in source_dir and present in deploy_source_uri
    role=aws_role,
    predictor_cls=Predictor,
    name=endpoint_name,
)

# deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class,
# for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    predictor_cls=Predictor,
    endpoint_name=endpoint_name,
)

Setelah model kita di-deploy, kita bisa mendapatkan prediksi darinya secara real time!

Jalankan inferensi

Cuplikan kode berikut memberi Anda gambaran sekilas seperti apa keluarannya. Untuk mengirim permintaan ke model yang di-deploy, teks masukan harus disediakan dalam a utf-8 format yang dikodekan.

def query(model_predictor, text):
    """Query the model predictor."""

    encoded_text = json.dumps(text).encode("utf-8")

    query_response = model_predictor.predict(
        encoded_text,
        {
            "ContentType": "application/x-text",
            "Accept": "application/json",
        },
    )
    return query_response

Respons titik akhir adalah objek JSON yang berisi teks masukan diikuti dengan teks yang dihasilkan:

def parse_response(query_response):
    """Parse response and return the generated text."""

    model_predictions = json.loads(query_response)
    generated_text = model_predictions["generated_text"]
    return generated_text
    
text = "Some people like dogs, some people like cats"
query_response = query(model_predictor, text)
parse_response(query_response)

Output kami adalah sebagai berikut:

"Some people like dogs, some people like cats some people like birds, some people like fish,"

Kesimpulan

Dalam postingan ini, kami menunjukkan cara menerapkan model pembuatan teks terlatih menggunakan JumpStart. Anda dapat melakukannya tanpa perlu menulis kode. Cobalah solusinya sendiri dan kirimkan komentar Anda kepada kami. Untuk mempelajari lebih lanjut tentang JumpStart dan cara menggunakan model terlatih sumber terbuka untuk berbagai tugas ML lainnya, lihat yang berikut ini Video AWS re:Invent 2020.


Tentang Penulis

Jalankan pembuatan teks dengan model GPT dan Bloom di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Dr Vivek Madan adalah Ilmuwan Terapan dengan tim JumpStart Amazon SageMaker. Dia mendapatkan gelar PhD dari University of Illinois di Urbana-Champaign dan merupakan Peneliti Pasca Doktoral di Georgia Tech. Dia adalah peneliti aktif dalam pembelajaran mesin dan desain algoritma dan telah menerbitkan makalah di konferensi EMNLP, ICLR, COLT, FOCS, dan SODA.

Jalankan pembuatan teks dengan model GPT dan Bloom di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Santosh Kulkarni adalah Arsitek Solusi Perusahaan di Amazon Web Services yang bekerja dengan pelanggan olahraga di Australia. Dia bersemangat membangun aplikasi terdistribusi skala besar untuk memecahkan masalah bisnis menggunakan pengetahuannya dalam AI/ML, data besar, dan pengembangan perangkat lunak.

Jalankan pembuatan teks dengan model GPT dan Bloom di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Dr Ashish Khetan adalah Ilmuwan Terapan Senior dengan algoritme bawaan Amazon SageMaker dan membantu mengembangkan algoritme pembelajaran mesin. Dia 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