Zephyrnet Logosu

Code Llama 70B artık Amazon SageMaker JumpStart'ta mevcut | Amazon Web Hizmetleri

Tarih:

Bugün, Meta tarafından geliştirilen Code Llama temel modellerinin müşterilerimizin kullanımına sunulduğunu duyurmanın heyecanını yaşıyoruz. Amazon SageMaker Hızlı Başlangıç çıkarımı çalıştırmak için tek tıklamayla dağıtmak. Code Llama, hem kod hem de doğal dil bilgi istemlerinden kod ve kod hakkında doğal dil üretebilen, son teknoloji ürünü bir büyük dil modelidir (LLM). Bu modeli, ML'ye hızla başlayabilmeniz için algoritmalara, modellere ve ML çözümlerine erişim sağlayan bir makine öğrenimi (ML) merkezi olan SageMaker JumpStart ile deneyebilirsiniz. Bu yazıda Code Llama modelinin SageMaker JumpStart aracılığıyla nasıl keşfedilip dağıtılacağını açıklıyoruz.

Kod Laması

Code Llama tarafından yayınlanan bir modeldir. Meta Llama 2'nin üzerine inşa edilmiştir. Bu son teknoloji model, geliştiricilerin yüksek kaliteli, iyi belgelenmiş kod oluşturmalarına yardımcı olarak programlama görevlerinde üretkenliği artırmak üzere tasarlanmıştır. Modeller Python, C++, Java, PHP, C#, TypeScript ve Bash dillerinde mükemmeldir ve geliştiricilerin zamanından tasarruf etme ve yazılım iş akışlarını daha verimli hale getirme potansiyeline sahiptir.

Çok çeşitli uygulamaları kapsayacak şekilde tasarlanmış üç çeşidi mevcuttur: temel model (Code Llama), Python'a özel bir model (Code Llama Python) ve doğal dil talimatlarını anlamak için talimat takip eden bir model (Code Llama Instruct). Tüm Code Llama çeşitleri dört boyutta mevcuttur: 7B, 13B, 34B ve 70B parametreleri. 7B ve 13B tabanı ve talimat çeşitleri, çevredeki içeriğe dayalı dolguyu destekleyerek onları kod asistanı uygulamaları için ideal kılar. Modeller, temel olarak Llama 2 kullanılarak tasarlandı ve ardından 500 milyar token kod verisi üzerinde eğitildi; Python özel sürümü ise artan 100 milyar token üzerinde eğitildi. Code Llama modelleri, 100,000'e kadar bağlam belirteciyle istikrarlı nesiller sağlar. Tüm modeller 16,000 jetonluk diziler üzerinde eğitilmiştir ve 100,000 jetona kadar girdilerde iyileştirmeler göstermektedir.

Model aynı başlık altında kullanıma sunuldu Llama 2 olarak topluluk lisansı.

SageMaker'daki temel modelleri

SageMaker JumpStart, SageMaker'daki makine öğrenimi geliştirme iş akışınızda kullanabileceğiniz Hugging Face, PyTorch Hub ve TensorFlow Hub gibi popüler model merkezlerinden çeşitli modellere erişim sağlar. ML'deki son gelişmeler, olarak bilinen yeni bir model sınıfının ortaya çıkmasına neden oldu. temel modelleriGenellikle milyarlarca parametre üzerinde eğitilen ve metin özetleme, dijital sanat üretimi ve dil çevirisi gibi geniş bir kullanım senaryosu kategorisine uyarlanabilen. Bu modellerin eğitimi pahalı olduğundan müşteriler, bu modelleri kendileri eğitmek yerine mevcut önceden eğitilmiş temel modellerini kullanmak ve gerektiğinde bunlara ince ayar yapmak ister. SageMaker, SageMaker konsolunda arasından seçim yapabileceğiniz seçilmiş bir model listesi sunar.

Temel modellerine hızlı bir şekilde başlamanıza olanak tanıyan SageMaker JumpStart'ta farklı model sağlayıcıların temel modellerini bulabilirsiniz. Farklı görevlere veya model sağlayıcılara göre temel modelleri bulabilir, model özelliklerini ve kullanım koşullarını kolayca inceleyebilirsiniz. Bu modelleri bir test kullanıcı arayüzü widget'ı kullanarak da deneyebilirsiniz. Geniş ölçekte bir temel modeli kullanmak istediğinizde, model sağlayıcıların önceden oluşturulmuş dizüstü bilgisayarlarını kullanarak bunu SageMaker'dan ayrılmadan yapabilirsiniz. Modeller AWS'de barındırıldığı ve dağıtıldığı için, modeli değerlendirmek veya geniş ölçekte kullanmak için kullanılan verilerinizin hiçbir zaman üçüncü taraflarla paylaşılmadığından emin olabilirsiniz.

SageMaker JumpStart'ta Code Llama modelini keşfedin

Code Llama 70B modelini dağıtmak için aşağıdaki adımları tamamlayın: Amazon SageMaker Stüdyosu:

  1. SageMaker Studio ana sayfasında, HızlıBaşlangıç Gezinti bölmesinde.

  2. Code Llama modellerini arayın ve gösterilen modeller listesinden Code Llama 70B modelini seçin.

    Model hakkında daha fazla bilgiyi Code Llama 70B model kartında bulabilirsiniz.

    Aşağıdaki ekran görüntüsü uç nokta ayarlarını göstermektedir. Seçenekleri değiştirebilir veya varsayılan olanları kullanabilirsiniz.

  3. Son Kullanıcı Lisans Sözleşmesini (EULA) kabul edin ve Sürüş.

    Bu, aşağıdaki ekran görüntüsünde gösterildiği gibi uç nokta dağıtım işlemini başlatacaktır.

Modeli SageMaker Python SDK ile dağıtın

Alternatif olarak, aşağıdakileri seçerek örnek not defteri aracılığıyla dağıtım yapabilirsiniz: Not Defterini Aç Classic Studio'nun model detay sayfasında. Örnek not defteri, çıkarım ve kaynakların temizlenmesi için modelin nasıl dağıtılacağı konusunda uçtan uca rehberlik sağlar.

Dizüstü bilgisayar kullanarak dağıtım yapmak için, tarafından belirtilen uygun bir modeli seçerek başlıyoruz. model_id. Seçili modellerden herhangi birini SageMaker'da aşağıdaki kodla konuşlandırabilirsiniz:

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

Bu, modeli, varsayılan bulut sunucusu tipi ve varsayılan VPC yapılandırmaları dahil olmak üzere varsayılan yapılandırmalarla SageMaker'a dağıtır. Varsayılan olmayan değerler belirleyerek bu yapılandırmaları değiştirebilirsiniz. HızlıBaşlangıçModeli. Varsayılan olarak, accept_eula ayarlandı False. ayarlamanız gerekiyor accept_eula=True uç noktayı başarıyla dağıtmak için. Bunu yaparak, daha önce de belirtildiği gibi kullanıcı lisans sözleşmesini ve kabul edilebilir kullanım politikasını kabul etmiş olursunuz. Ayrıca indir lisans sözleşmesi.

Bir SageMaker uç noktası çağırın

Uç nokta konuşlandırıldıktan sonra Boto3 veya SageMaker Python SDK'yı kullanarak çıkarım yapabilirsiniz. Aşağıdaki kodda, modeli çıkarım için çağırmak ve yanıtı yazdırmak için SageMaker Python SDK'sını kullanıyoruz:

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

Bu fonksiyon print_response yük ve model yanıtından oluşan bir yük alır ve çıktıyı yazdırır. Code Llama, çıkarımı gerçekleştirirken birçok parametreyi destekler:

  • maksimum uzunluk – Model, çıktı uzunluğu (giriş içeriği uzunluğunu içerir) ulaşana kadar metin üretir. max_length. Belirtilmişse, pozitif bir tamsayı olmalıdır.
  • max_new_tokens – Model, çıktı uzunluğu (giriş bağlamı uzunluğu hariç) şu değere ulaşana kadar metin üretir: max_new_tokens. Belirtilmişse, pozitif bir tamsayı olmalıdır.
  • num_beams – Bu açgözlü aramada kullanılan ışın sayısını belirtir. Belirtilmişse, değerinden büyük veya ona eşit bir tamsayı olmalıdır num_return_sequences.
  • no_repeat_ngram_size – Model, bir sözcük dizisinin no_repeat_ngram_size çıktı dizisinde tekrarlanmaz. Belirtilmişse, 1'den büyük bir pozitif tamsayı olmalıdır.
  • sıcaklık – Bu, çıktıdaki rastgeleliği kontrol eder. Daha yüksek temperature düşük olasılıklı sözcükler içeren bir çıktı dizisiyle sonuçlanır ve daha düşük temperature yüksek olasılıklı kelimeler içeren bir çıktı dizisiyle sonuçlanır. Eğer temperature 0 ise açgözlü kod çözmeyle sonuçlanır. Belirtilmişse pozitif bir kayan nokta olmalıdır.
  • erken_durdurma - Eğer True, tüm ışın hipotezleri cümle sonu belirtecinin sonuna ulaştığında metin oluşturma tamamlanır. Belirtilmişse Boolean olmalıdır.
  • örnek yap - Eğer Truemodel, olasılığa göre bir sonraki kelimeyi örnekler. Belirtilmişse Boolean olmalıdır.
  • top_k – Metin oluşturmanın her adımında model yalnızca metinden örnekler alır. top_k büyük olasılıkla kelimeler. Belirtilmişse, pozitif bir tamsayı olmalıdır.
  • top_p – Metin oluşturmanın her adımında model, kümülatif olasılıkla mümkün olan en küçük kelime kümesinden örnekler alır top_p. Belirtilmişse 0 ile 1 arasında bir kayan nokta olmalıdır.
  • return_full_text - Eğer True, giriş metni çıktıda oluşturulan metnin bir parçası olacaktır. Belirtilmişse Boolean olmalıdır. Bunun için varsayılan değer False.
  • durdurmak – Belirtilmişse, dizelerin bir listesi olmalıdır. Belirtilen dizelerden herhangi biri oluşturulursa metin oluşturma durdurulur.

Bir uç noktayı çağırırken bu parametrelerin herhangi bir alt kümesini belirtebilirsiniz. Daha sonra, bu argümanlarla bir uç noktanın nasıl çağrılacağına dair bir örnek göstereceğiz.

Kod tamamlama

Aşağıdaki örnekler, beklenen uç nokta yanıtının istemin doğal devamı olduğu durumlarda kod tamamlamanın nasıl gerçekleştirileceğini gösterir.

Öncelikle aşağıdaki kodu çalıştırıyoruz:

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)

Aşağıdaki çıktıyı alıyoruz:

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

Bir sonraki örneğimiz için aşağıdaki kodu çalıştırıyoruz:

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)

Aşağıdaki çıktıyı alıyoruz:

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

Kod oluşturma

Aşağıdaki örneklerde Code Llama kullanılarak Python kod üretimi gösterilmektedir.

Öncelikle aşağıdaki kodu çalıştırıyoruz:

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)

Aşağıdaki çıktıyı alıyoruz:

def reverse(list1):
    for i in range(len(list1)-1,-1,-1):
        print(list1[i])

list1 = [1,2,3,4,5]
reverse(list1)

Bir sonraki örneğimiz için aşağıdaki kodu çalıştırıyoruz:

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)

Aşağıdaki çıktıyı alıyoruz:

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

Bunlar Code Llama 70B'yi kullanan kodla ilgili görevlerden bazılarıdır. Modeli daha da karmaşık kod oluşturmak için kullanabilirsiniz. Kodla ilgili kendi kullanım senaryolarınızı ve örneklerinizi kullanarak bunu denemenizi öneririz!

Temizlemek

Uç noktaları test ettikten sonra, ücret alınmasını önlemek için SageMaker çıkarım uç noktalarını ve modeli sildiğinizden emin olun. Aşağıdaki kodu kullanın:

predictor.delete_endpoint()

Sonuç

Bu yazıda SageMaker JumpStart'ta Code Llama 70B'yi tanıttık. Code Llama 70B, doğal dil istemlerinden ve kodlardan kod oluşturmaya yönelik son teknoloji ürünü bir modeldir. Modeli SageMaker JumpStart'ta birkaç basit adımla dağıtabilir ve ardından kod oluşturma ve kod doldurma gibi kodla ilgili görevleri gerçekleştirmek için kullanabilirsiniz. Bir sonraki adım olarak modeli kendi kodla ilgili kullanım senaryolarınız ve verilerinizle kullanmayı deneyin.


yazarlar hakkında

Doktor Kyle Ulrich Amazon SageMaker JumpStart ekibinde bir Uygulamalı Bilim Adamıdır. Araştırma ilgi alanları arasında ölçeklenebilir makine öğrenimi algoritmaları, bilgisayar görüşü, zaman serileri, Bayes parametrik olmayanları ve Gauss süreçleri yer alır. Doktorası Duke Üniversitesi'ndendir ve NeurIPS, Cell ve Neuron'da yayınlanmış makaleleri vardır.

Dr. Farooq Sabir AWS'de Kıdemli Yapay Zeka ve Makine Öğrenimi Uzmanı Çözüm Mimarıdır. Austin'deki Texas Üniversitesi'nden Elektrik Mühendisliği alanında doktora ve yüksek lisans derecelerine ve Georgia Institute of Technology'den Bilgisayar Bilimleri alanında yüksek lisans derecesine sahiptir. 15 yılı aşkın iş tecrübesine sahiptir ve ayrıca üniversite öğrencilerine ders vermeyi ve rehberlik etmeyi sever. AWS'de müşterilerin veri bilimi, makine öğrenimi, bilgisayar görüşü, yapay zeka, sayısal optimizasyon ve ilgili alanlarda iş sorunlarını formüle etmelerine ve çözmelerine yardımcı olur. Dallas, Teksas'ta yaşayan o ve ailesi seyahat etmeyi ve uzun yolculuklara çıkmayı seviyor.

haziran kazandı SageMaker JumpStart'ta bir ürün yöneticisidir. Müşterilerin üretken AI uygulamaları oluşturmasına yardımcı olmak için temel modelleri kolayca keşfedilebilir ve kullanılabilir hale getirmeye odaklanır. Amazon'daki deneyimi aynı zamanda mobil alışveriş uygulamasını ve son mil teslimatını da içeriyor.

spot_img

En Son İstihbarat

spot_img