Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Layanan Web Amazon

Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Layanan Web Amazon

Hari ini, kami sangat gembira mengumumkan bahwa model fondasi Code Llama, yang dikembangkan oleh Meta, tersedia untuk pelanggan melalui Mulai Lompatan Amazon SageMaker untuk diterapkan dengan satu klik untuk menjalankan inferensi. Code Llama adalah model bahasa besar (LLM) canggih yang mampu menghasilkan kode dan bahasa alami tentang kode baik dari kode maupun perintah bahasa alami. Anda dapat mencoba model ini dengan SageMaker JumpStart, hub pembelajaran mesin (ML) yang menyediakan akses ke algoritme, model, dan solusi ML sehingga Anda dapat memulai ML dengan cepat. Dalam postingan ini, kita akan membahas cara menemukan dan menerapkan model Code Llama melalui SageMaker JumpStart.

Kode Lama

Code Llama adalah model yang dirilis oleh meta yang dibangun di atas Llama 2. Model canggih ini dirancang untuk meningkatkan produktivitas tugas pemrograman bagi pengembang dengan membantu mereka membuat kode berkualitas tinggi dan terdokumentasi dengan baik. Model ini unggul dalam Python, C++, Java, PHP, C#, TypeScript, dan Bash, serta berpotensi menghemat waktu pengembang dan membuat alur kerja perangkat lunak lebih efisien.

Muncul dalam tiga varian, dirancang untuk mencakup berbagai macam aplikasi: model dasar (Code Llama), model khusus Python (Code Llama Python), dan model mengikuti instruksi untuk memahami instruksi bahasa alami (Code Llama Instruct). Semua varian Code Llama hadir dalam empat ukuran: parameter 7B, 13B, 34B, dan 70B. Varian dasar dan instruksi 7B dan 13B mendukung pengisian berdasarkan konten di sekitarnya, menjadikannya ideal untuk aplikasi asisten kode. Model tersebut dirancang menggunakan Llama 2 sebagai basis dan kemudian dilatih pada 500 miliar token data kode, dengan versi khusus Python dilatih pada tambahan 100 miliar token. Model Code Llama menyediakan generasi stabil dengan hingga 100,000 token konteks. Semua model dilatih pada urutan 16,000 token dan menunjukkan peningkatan pada input hingga 100,000 token.

Model ini tersedia dengan model yang sama lisensi komunitas sebagai Llama 2.

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 berbagai kategori kasus penggunaan, seperti peringkasan teks, pembuatan 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 dapat menemukan model pondasi dari penyedia model yang berbeda dalam SageMaker JumpStart, memungkinkan Anda memulai model pondasi dengan cepat. Anda dapat menemukan model dasar berdasarkan tugas atau penyedia model yang berbeda, dan 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 dapat yakin bahwa data Anda, baik digunakan untuk mengevaluasi atau menggunakan model dalam skala besar, tidak pernah dibagikan kepada pihak ketiga.

Temukan model Kode Llama di SageMaker JumpStart

Untuk menyebarkan model Code Llama 70B, selesaikan langkah-langkah berikut Studio Amazon SageMaker:

  1. Di halaman beranda SageMaker Studio, pilih Tingkatkan di panel navigasi.

    Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

  2. Cari model Code Llama dan pilih model Code Llama 70B dari daftar model yang ditampilkan.

    Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

    Anda dapat menemukan informasi lebih lanjut tentang model pada kartu model Kode Llama 70B.

    Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

    Tangkapan layar berikut menunjukkan pengaturan titik akhir. Anda dapat mengubah opsi atau menggunakan opsi default.

  3. Terima Perjanjian Lisensi Pengguna Akhir (EULA) dan pilih Menyebarkan.
    Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

    Ini akan memulai proses penerapan titik akhir, seperti yang ditunjukkan pada tangkapan layar berikut.

    Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.

Terapkan model dengan SageMaker Python SDK

Alternatifnya, Anda dapat menyebarkan melalui contoh buku catatan dengan memilih Buka Buku Catatan dalam halaman detail model Studio Klasik. Contoh notebook memberikan panduan menyeluruh tentang cara menyebarkan model untuk inferensi dan membersihkan sumber daya.

Untuk menerapkan menggunakan notebook, kita mulai dengan memilih model yang sesuai, yang ditentukan oleh model_id. Anda dapat menerapkan salah satu model yang dipilih di SageMaker dengan kode berikut:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-70b")
predictor = model.deploy(accept_eula=False) # Change EULA acceptance to True

Ini menyebarkan model pada SageMaker dengan konfigurasi default, termasuk jenis instans default dan konfigurasi VPC default. Anda dapat mengubah konfigurasi ini dengan menentukan nilai non-default di JumpStartModel. Perhatikan bahwa secara default, accept_eula diatur ke False. Anda perlu mengatur accept_eula=True untuk menyebarkan titik akhir dengan sukses. Dengan melakukan ini, Anda menerima perjanjian lisensi pengguna dan kebijakan penggunaan yang dapat diterima seperti yang disebutkan sebelumnya. Anda juga bisa Download perjanjian lisensi.

Panggil titik akhir SageMaker

Setelah titik akhir disebarkan, Anda dapat melakukan inferensi dengan menggunakan Boto3 atau SageMaker Python SDK. Dalam kode berikut, kami menggunakan SageMaker Python SDK untuk memanggil model untuk inferensi dan mencetak responsnya:

def print_response(payload, response): print(payload["inputs"]) print(f"> {response[0]['generated_text']}") print("n==================================n")

Fungsi print_response mengambil payload yang terdiri dari payload dan respon model dan mencetak hasilnya. Kode Llama mendukung banyak parameter saat melakukan inferensi:

  • panjang maksimal โ€“ Model menghasilkan teks hingga panjang output (yang mencakup panjang konteks input) tercapai max_length. Jika ditentukan, itu harus berupa bilangan bulat positif.
  • max_new_tokens โ€“ Model menghasilkan teks hingga panjang keluaran (tidak termasuk panjang konteks masukan) tercapai max_new_tokens. Jika ditentukan, itu harus berupa bilangan bulat positif.
  • nomor_balok โ€“ Ini menentukan jumlah balok yang digunakan dalam pencarian serakah. Jika ditentukan, maka harus berupa bilangan bulat yang lebih besar dari atau sama dengan num_return_sequences.
  • no_repeat_ngram_size โ€“ Model memastikan bahwa urutan kata-kata no_repeat_ngram_size tidak diulang dalam urutan output. Jika ditentukan, itu harus bilangan bulat positif lebih besar dari 1.
  • suhu โ€“ Ini mengontrol keacakan dalam keluaran. Lebih tinggi temperature menghasilkan urutan keluaran dengan kata-kata dengan probabilitas rendah, dan lebih rendah temperature menghasilkan urutan keluaran dengan kata-kata dengan probabilitas tinggi. Jika temperature adalah 0, ini menghasilkan decoding serakah. Jika ditentukan, itu harus berupa pelampung positif.
  • awal_berhenti - Jika True, pembuatan teks selesai ketika semua hipotesis balok mencapai akhir token kalimat. Jika ditentukan, itu harus Boolean.
  • lakukan_sampel - Jika True, model mengambil sampel kata berikutnya sesuai kemungkinannya. Jika ditentukan, itu harus Boolean.
  • teratas_k โ€“ Dalam setiap langkah pembuatan teks, model hanya mengambil sampel dari top_k kata-kata yang paling mungkin. Jika ditentukan, itu harus berupa bilangan bulat positif.
  • atas_p โ€“ Dalam setiap langkah pembuatan teks, model mengambil sampel dari kumpulan kata sekecil mungkin dengan probabilitas kumulatif top_p. Jika ditentukan, itu harus berupa float antara 0 dan 1.
  • return_full_text - Jika True, teks masukan akan menjadi bagian dari teks keluaran yang dihasilkan. Jika ditentukan, itu harus Boolean. Nilai defaultnya adalah False.
  • berhenti โ€“ Jika ditentukan, itu harus berupa daftar string. Pembuatan teks berhenti jika salah satu dari string tertentu dihasilkan.

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

Pelengkapan kode

Contoh berikut menunjukkan cara melakukan penyelesaian kode ketika respons titik akhir yang diharapkan merupakan kelanjutan alami dari perintah.

Pertama-tama kita jalankan kode berikut:

prompt = """
import socket def ping_exponential_backoff(host: str): """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Kami mendapatkan output berikut:

""" Pings the given host with exponential backoff. """ timeout = 1 while True: try: socket.create_connection((host, 80), timeout=timeout) return except socket.error: timeout *= 2

Untuk contoh berikutnya, kami menjalankan kode berikut:

prompt = """
import argparse
def main(string: str): print(string) print(string[::-1])
if __name__ == "__main__": """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
predictor.predict(payload)

Kami mendapatkan output berikut:

parser = argparse.ArgumentParser(description='Reverse a string') parser.add_argument('string', type=str, help='String to reverse') args = parser.parse_args() main(args.string)

Pembuatan kode

Contoh berikut menunjukkan pembuatan kode Python menggunakan Code Llama.

Pertama-tama kita jalankan kode berikut:

prompt = """
Write a python function to traverse a list in reverse. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Kami mendapatkan output berikut:

def reverse(list1): for i in range(len(list1)-1,-1,-1): print(list1[i]) list1 = [1,2,3,4,5]
reverse(list1)

Untuk contoh berikutnya, kami menjalankan kode berikut:

prompt = """
Write a python function to to carry out bubble sort. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.1, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Kami mendapatkan output berikut:

def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

Ini adalah beberapa contoh tugas terkait kode yang menggunakan Kode Llama 70B. Anda dapat menggunakan model tersebut untuk menghasilkan kode yang lebih rumit. Kami mendorong Anda untuk mencobanya menggunakan kasus dan contoh penggunaan terkait kode Anda sendiri!

Membersihkan

Setelah Anda menguji titik akhir, pastikan Anda menghapus titik akhir inferensi SageMaker dan model untuk menghindari dikenakan biaya. Gunakan kode berikut:

predictor.delete_endpoint()

Kesimpulan

Dalam postingan ini, kami memperkenalkan Kode Llama 70B di SageMaker JumpStart. Kode Llama 70B adalah model canggih untuk menghasilkan kode dari perintah bahasa alami serta kode. Anda dapat menerapkan model dengan beberapa langkah sederhana di SageMaker JumpStart dan kemudian menggunakannya untuk menjalankan tugas terkait kode seperti pembuatan kode dan pengisian kode. Sebagai langkah selanjutnya, coba gunakan model dengan kasus penggunaan dan data terkait kode Anda sendiri.


Tentang penulis

Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Dr.Kyle Ulrich adalah Ilmuwan Terapan di tim Amazon SageMaker JumpStart. Minat penelitiannya meliputi algoritma pembelajaran mesin yang dapat diskalakan, visi komputer, deret waktu, non-parametrik Bayesian, dan proses Gaussian. Gelar PhD-nya berasal dari Duke University dan dia telah menerbitkan makalah di NeurIPS, Cell, dan Neuron.

Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Dr.Farooq Sabir adalah Arsitek Solusi Spesialis Kecerdasan Buatan dan Pembelajaran Mesin Senior di AWS. Dia memegang gelar PhD dan MS di bidang Teknik Listrik dari University of Texas di Austin dan MS di bidang Ilmu Komputer dari Georgia Institute of Technology. Dia memiliki lebih dari 15 tahun pengalaman kerja dan juga suka mengajar dan membimbing mahasiswa. Di AWS, dia membantu pelanggan merumuskan dan memecahkan masalah bisnis mereka dalam ilmu data, pembelajaran mesin, visi komputer, kecerdasan buatan, pengoptimalan numerik, dan domain terkait. Berbasis di Dallas, Texas, dia dan keluarganya suka bepergian dan melakukan perjalanan jauh.

Kode Llama 70B sekarang tersedia di Amazon SageMaker JumpStart | Kecerdasan Data PlatoBlockchain Layanan Web Amazon. Pencarian Vertikal. Ai.Juni Won adalah manajer produk di SageMaker JumpStart. Dia berfokus untuk membuat model dasar mudah ditemukan dan digunakan untuk membantu pelanggan membangun aplikasi AI generatif. Pengalamannya di Amazon juga mencakup aplikasi belanja seluler dan pengiriman jarak jauh.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS