Resim kaynağı: Sınırsız Yapay Zeka tarafından oluşturulmuştur
Meta kısa süre önce, ince ayar için Llama 2'yi temel alan, metin istemlerini kullanarak kod üretebilen ve araştırma ve ticari kullanım için açık kaynak olan büyük ölçekli bir dil modeli olan Code Llama'yı piyasaya sürdü.
Code Llama, mevcut geliştirici iş akışlarını daha hızlı ve daha verimli hale getirme ve kodlamayı öğrenenler için giriş engelini azaltma potansiyeline sahip, kodlama görevleri için son teknoloji ürünü bir açık LLM'dir. Code Llama, programcıların daha sağlam ve iyi belgelenmiş yazılımlar yazmasına yardımcı olacak bir üretkenlik ve eğitim aracı olarak kullanılma potansiyeline sahiptir.
Code Lama nasıl çalışır?
Bu yılın temmuz ayında Meta (eski adıyla Facebook), ücretsiz ve ticari olarak satılan açık kaynaklı bir model olan Llama 2'yi piyasaya sürdü. En son sürüm olan Code Llama, Llama2'nin özellikle kodlamaya yönelik özel bir sürümüdür; Llama 2'nin koda özgü veri kümesi üzerinde daha fazla eğitilmesi ve aynı veri kümesinden daha uzun süreler boyunca daha fazla veri örneklenmesiyle oluşturulmuştur.
Genel olarak Code Llama, Llama 2'nin üzerine inşa edilmiş gelişmiş kodlama özelliklerine sahiptir. Kod ve doğal dil ipuçlarına dayalı olarak kod ve kod hakkında doğal dil oluşturabilir (örneğin, "bana Fibonacci dizisinin çıktısını veren bir işlev yazın.") Ayrıca kodu tamamlamak ve hata ayıklamak için de kullanılabilir.
Code Llama, Python, C++, Java, PHP, Typeface (Java), C# ve Bash dahil olmak üzere günümüzde kullanılan en popüler dillerin çoğunu destekler.
Code Llama'nın şu anda üç parametre sürümü vardır: 7 milyar parametre, 13 milyar parametre, 34 milyar parametre.
Her sürüm 500B kod belirteci ve kodla ilgili verilerle eğitilir. 7 milyar ve 13 milyar parametre tabanı ve talimat modelleri aynı zamanda Orta Doldurma (FIM) yetenekleriyle de eğitilmiştir; bu da onların kodu mevcut koda eklemelerine olanak tanır; bu da, kod tamamlama gibi görevleri anında destekleyebilecekleri anlamına gelir. kutu.
Bu üç model farklı hizmet ve gecikme gereksinimlerini karşılar. Örneğin tek bir GPU üzerinde 7 milyar model çalışabiliyor. 34 milyarlık model en iyi sonuçları verir ve daha iyi kodlama yardımı sunar, ancak daha küçük olan 7 milyar ve 13 milyarlık modeller daha hızlıdır ve gerçek zamanlı kod tamamlama gibi düşük gecikme gerektiren görevler için daha uygundur.
Code Llama modeli, 100.000'e kadar bağlam belirteciyle istikrarlı üretim sağlar. Tüm modeller 16.000 jetonluk dizilerle eğitilmiştir ve 100.000 jetona kadar girişlerde iyileşme göstermektedir.
Daha uzun programlar oluşturmak için bir ön koşul olmasının yanı sıra, daha uzun giriş dizilerine sahip olmak Code LLM için heyecan verici yeni kullanım durumlarının kilidini açabilir. Örneğin kullanıcılar, nesilleri daha alakalı hale getirmek için modellere kod tabanlarından daha fazla bağlam sağlayabilir. Ayrıca, geliştiricilerin belirli bir sorunla ilgili tüm kodu kavramasının zor olabileceği daha büyük kod tabanlarındaki senaryolarda hata ayıklamaya da yardımcı olur. Geliştiriciler büyük miktarda kodda hata ayıklamayla karşı karşıya kaldıklarında kod uzunluğunun tamamını modele aktarabilirler.
Meta ayrıca Code Llama'nın iki ek sürümüne de ince ayar yapar: Code Llama - Python ve Code Llama - Instruct.
Code Llama - Python, Code Llama'nın dile özgü bir çeşididir ve Python kodunun 100B belirtecine göre daha da hassas ayarlanmıştır.
Code Llama - Instruct, Code Llama'nın talimatlarının ince ayarlı ve uyumlu bir versiyonudur. Talimat ayarlamaları eğitim sürecine devam eder, ancak farklı hedeflerle. Model, girdi ve beklenen çıktı olarak "doğal dil talimatlarını" kabul etmektedir. Bu, insanların bilgi isteminden ne beklediğini daha iyi anlamasına olanak tanır. Kod oluşturmak için Code Llama'yı kullanırken Code Llama - Instruct sürümünü kullanmanızı öneririz çünkü Code Llama - Instruct, doğal dilde yararlı ve güvenli yanıtlar oluşturacak şekilde hassas şekilde ayarlanmıştır.
Ancak Code Llama veya Code Llama - Python'un genel doğal dil görevleri için kullanılması önerilmez çünkü her iki model de doğal dil talimatlarını takip edecek şekilde tasarlanmamıştır. Code Lama koda özgü görevler için tasarlanmıştır ve diğer görevler için temel model olarak uygun değildir.
Code Lama'nın performansı nasıl?
İnsan ve Çoğunlukla Temel Python Programlaması (MBPP), kodlama yeterliliği için yaygın olarak kullanılan iki kriterdir: İnsan, bir modelin bir belge dizisinden kodu tamamlama yeteneğini test eder ve MBPP, bir modelin bir açıklamadan kod yazma yeteneğini test eder.
Code Llama'nın bu iki kritere göre test edilmesi, Code Llama'nın açık kaynaklı, koda özgü Llama'dan ve Llama 2'nin kendisinden daha iyi performans gösterdiğini göstermektedir. Örneğin Code Llama 34B, İnsanda %53,7 ve MBPP'de %56,2 puan alarak ChatGPT'yi geride bırakıyor ancak yine de İnsanda GPT-4'ten daha düşük puan alıyor.
Grafik kaynağı: Meta
*CodeLlama-34B'nin ince ayarlı modeli GPT-4'ü geride bıraktı mı? *
Code Llama testi kazanamasa da Code Llama'nın tamamı bu değil, bir diğer öne çıkan nokta da yine ince ayardır. Kullanıcılar, ihtiyaçlarını karşılayan en iyi sürümü oluşturmak için açık kaynaklı Code Lama'da yeniden ince ayar yapabilir.
Phind yakın zamanda CodeLlama-34B ve CodeLlama-34B-Python'da kendi veri setine göre ince ayar yaptı ve ince ayarlı sürümleri Human'da %67,6 ve %69,5'e ulaştı; bu, OpenAI tarafından Mart ayında açıklanan GPT-4'ün %67'sini geride bıraktı. toplam.
İlgili Bağlantılar:
Gerçek kullanım karşılaştırması ChatGPT ve Code Llama
Bu karşılaştırmada öncelikle ChatGPT'nin GPT-3.5 sürümü ve Perplexity platformunun desteklediği Code Llama kullanıldı. İkisinin başarıyla kod üretip üretmediğini karşılaştırmak için 8 soru soracağız.
Soru 1:
"Python kullanarak. Kelime1 ve kelime2 olmak üzere iki dize verildi. Kelime1'den başlayarak harfleri dönüşümlü sırayla ekleyerek dizeleri birleştirin. Bir dize diğerinden daha uzunsa, birleştirilen dizelere ek harfler ekleyin. end.
Birleştirilmiş dizeyi döndür.
Örnek 1:
• Giriş: word1='abc', word2='pqr'
• Çıktı: "apbqcr"
🟢 ChatGPT: Başarı için +1
🔵 Alev Kodu:成功+1
Soru 2:
"Python kullanarak. Bir s dizisi verildiğinde, dizideki tüm sesli harfleri ters çevirin ve onu döndürün.
Ünlü harfler "a", "e", "i", "o" ve "u" olup hem küçük hem de büyük harfle birden çok kez geçebilir.
Örnek 1:
Giriş: s = "merhaba"
Çıktı: "Salon"
🟢 ChatGPT: Başarı için +1
🔵 Kod Laması: Başarısız +0
Soru 3:
"Python kullanarak. Bir tamsayı dizisi verildiğinde, sıfır olmayan öğelerin göreceli sırasını korurken tüm 0'ları dizinin sonuna kaydırın.
Bunu, dizinin bir kopyasını yapmadan yerinde yapmanız gerektiğini unutmayın.
🟢 ChatGPT: Başarı için +1
🔵 Kod Laması: Başarısız +0
Soru 4:
"Python'u kullanarak. Bazı alanların ekili olduğu ve bazılarının ekmediği uzun bir çiçek tarhınız var. Ancak bitişik alanlara çiçekler ekilemez.
Bir çiçek yatağı için 0 ve 1'den oluşan bir tam sayı dizisi verildiğinde (0 boş anlamına gelir ve 1 boş değil anlamına gelir) ve bir n tam sayısı verildiğinde, eğer çiçek yatağına bitişik çiçek yok kuralını ihlal etmeden n yeni çiçek dikilebilirse doğru değerini döndürür, Aksi halde false değerini döndürür.
Örnek 1:
Giriş: çiçeklik = [1,0,0,0,1], n = 1
Çıktı: doğru
Örnek 2:
Giriş: çiçeklik = [1,0,0,0,1], n = 2
çıktı: yanlış
🟢 ChatGPT: Başarı için +1
🔵 Alev Kodu:成功+1
Soru 5:
"Python kullanarak. Bir giriş dizesi verildiğinde, kelimelerin sırasını tersine çevirin.
Kelime, boşluk olmayan karakterlerin dizisi olarak tanımlanır. E-postalardaki kelimeler en az bir boşlukla ayrılacaktır.
Tek boşluklarla birleştirilmiş bir sözcük dizesini ters sırada döndürür.
E-postaların başında veya sonunda boşluk veya iki sözcük arasında birden fazla boşluk bulunabileceğini unutmayın. Döndürülen dizede sözcükleri ayırmak için yalnızca bir boşluk bulunmalıdır. Fazladan boşluk eklemeyin.
Örnek 1:
Giriş: s = "Gökyüzü mavi"
Çıktı: "Mavi gökyüzüdür""
🟢 ChatGPT: Başarı için +1
🔵 Alev Kodu:成功+1
Soru 6:
"Python kullanarak. Bir s dizisi ve bir k tam sayısı verildiğinde, s cinsinden k uzunluğundaki herhangi bir alt dizideki maksimum sesli harf sayısını döndürün.
İngilizce'deki sesli harfler "a", "e", "i", "o" ve "u"dur.
Örnek 1:
Giriş: s = "leetcode", k = 3
Çıkış: 2
Açıklama: "lee", "eet" ve "ode" 2 sesli harf içerir.
🟢 ChatGPT: Başarı için +1
🔵 Alev Kodu:成功+1
Soru 7:
"Python kullanılıyor. Yıldız işaretleri * içeren bir s dizesi verildi.
Tek bir işlemle şunları yapabilirsiniz:
S'de bir yıldız seçin.
Sol taraftaki yıldız işareti olmayan en yakın karakteri ve yıldız işaretinin kendisini kaldırır.
Tüm yıldızları kaldırdıktan sonra dizeyi döndürür.
Örnek 1:
Giriş: s = "leet**cod*e"
Çıktı: "lecoe""
🟢 ChatGPT: Başarı için +1
🔵 Kod Laması: Başarısız +0
Soru 8:
"Python kullanarak. Günlük sıcaklıkları temsil eden bir dizi tamsayı sıcaklık verildiğinde, yanıtın bulunduğu bir yanıt dizisi döndürün [i] sıcaklıkların yükselmesini beklemek zorunda olduğunuz günlerin sayısıdır. Gelecekte bunu yapacak bir gün yoksa cevabı saklayın [i] == 0。
Örnek 1:
Giriş: Sıcaklık = [73,74,75,71,69,72,76,73]
Çıkış: [1,1,4,2,1,1,0,0]"
🟢 Sohbet GPT'si: +1
🔵 Deve Kodu: +1
Nihai sonuçlar:
🟢 SohbetGPT: 8/8
🔵 KodLlama: 5/8
Özetle, Code Llama, fiili kullanım etkisi açısından ChatGPT'ye kıyasla bariz avantajlar göstermemektedir, ancak yukarıdaki testler, karar için tamamen temel olarak kullanılamaz. Üstelik açık kaynaklı Code Llama, kullanıcıların ihtiyaçlarına göre özelleştirmesi açısından ChatGPT'den daha kolaydır ve bu da daha fazla olasılık getirebilir.
Referanslar:
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Meta bir yapay zeka "yapısı" başlattı; açık kaynak ve ücretsiz kod modeli Code Llama, ChatGPT ile nasıl karşılaştırılıyor?
Orijinal kaynak: AGI İnovasyon Laboratuvarı
Meta kısa süre önce, ince ayar için Llama 2'yi temel alan, metin istemlerini kullanarak kod üretebilen ve araştırma ve ticari kullanım için açık kaynak olan büyük ölçekli bir dil modeli olan Code Llama'yı piyasaya sürdü.
Code Llama, mevcut geliştirici iş akışlarını daha hızlı ve daha verimli hale getirme ve kodlamayı öğrenenler için giriş engelini azaltma potansiyeline sahip, kodlama görevleri için son teknoloji ürünü bir açık LLM'dir. Code Llama, programcıların daha sağlam ve iyi belgelenmiş yazılımlar yazmasına yardımcı olacak bir üretkenlik ve eğitim aracı olarak kullanılma potansiyeline sahiptir.
Code Lama nasıl çalışır?
Bu yılın temmuz ayında Meta (eski adıyla Facebook), ücretsiz ve ticari olarak satılan açık kaynaklı bir model olan Llama 2'yi piyasaya sürdü. En son sürüm olan Code Llama, Llama2'nin özellikle kodlamaya yönelik özel bir sürümüdür; Llama 2'nin koda özgü veri kümesi üzerinde daha fazla eğitilmesi ve aynı veri kümesinden daha uzun süreler boyunca daha fazla veri örneklenmesiyle oluşturulmuştur.
Genel olarak Code Llama, Llama 2'nin üzerine inşa edilmiş gelişmiş kodlama özelliklerine sahiptir. Kod ve doğal dil ipuçlarına dayalı olarak kod ve kod hakkında doğal dil oluşturabilir (örneğin, "bana Fibonacci dizisinin çıktısını veren bir işlev yazın.") Ayrıca kodu tamamlamak ve hata ayıklamak için de kullanılabilir.
Code Llama, Python, C++, Java, PHP, Typeface (Java), C# ve Bash dahil olmak üzere günümüzde kullanılan en popüler dillerin çoğunu destekler.
Code Llama'nın şu anda üç parametre sürümü vardır: 7 milyar parametre, 13 milyar parametre, 34 milyar parametre.
Her sürüm 500B kod belirteci ve kodla ilgili verilerle eğitilir. 7 milyar ve 13 milyar parametre tabanı ve talimat modelleri aynı zamanda Orta Doldurma (FIM) yetenekleriyle de eğitilmiştir; bu da onların kodu mevcut koda eklemelerine olanak tanır; bu da, kod tamamlama gibi görevleri anında destekleyebilecekleri anlamına gelir. kutu.
Bu üç model farklı hizmet ve gecikme gereksinimlerini karşılar. Örneğin tek bir GPU üzerinde 7 milyar model çalışabiliyor. 34 milyarlık model en iyi sonuçları verir ve daha iyi kodlama yardımı sunar, ancak daha küçük olan 7 milyar ve 13 milyarlık modeller daha hızlıdır ve gerçek zamanlı kod tamamlama gibi düşük gecikme gerektiren görevler için daha uygundur.
Code Llama modeli, 100.000'e kadar bağlam belirteciyle istikrarlı üretim sağlar. Tüm modeller 16.000 jetonluk dizilerle eğitilmiştir ve 100.000 jetona kadar girişlerde iyileşme göstermektedir.
Daha uzun programlar oluşturmak için bir ön koşul olmasının yanı sıra, daha uzun giriş dizilerine sahip olmak Code LLM için heyecan verici yeni kullanım durumlarının kilidini açabilir. Örneğin kullanıcılar, nesilleri daha alakalı hale getirmek için modellere kod tabanlarından daha fazla bağlam sağlayabilir. Ayrıca, geliştiricilerin belirli bir sorunla ilgili tüm kodu kavramasının zor olabileceği daha büyük kod tabanlarındaki senaryolarda hata ayıklamaya da yardımcı olur. Geliştiriciler büyük miktarda kodda hata ayıklamayla karşı karşıya kaldıklarında kod uzunluğunun tamamını modele aktarabilirler.
Meta ayrıca Code Llama'nın iki ek sürümüne de ince ayar yapar: Code Llama - Python ve Code Llama - Instruct.
Ancak Code Llama veya Code Llama - Python'un genel doğal dil görevleri için kullanılması önerilmez çünkü her iki model de doğal dil talimatlarını takip edecek şekilde tasarlanmamıştır. Code Lama koda özgü görevler için tasarlanmıştır ve diğer görevler için temel model olarak uygun değildir.
Code Lama'nın performansı nasıl?
İnsan ve Çoğunlukla Temel Python Programlaması (MBPP), kodlama yeterliliği için yaygın olarak kullanılan iki kriterdir: İnsan, bir modelin bir belge dizisinden kodu tamamlama yeteneğini test eder ve MBPP, bir modelin bir açıklamadan kod yazma yeteneğini test eder. Code Llama'nın bu iki kritere göre test edilmesi, Code Llama'nın açık kaynaklı, koda özgü Llama'dan ve Llama 2'nin kendisinden daha iyi performans gösterdiğini göstermektedir. Örneğin Code Llama 34B, İnsanda %53,7 ve MBPP'de %56,2 puan alarak ChatGPT'yi geride bırakıyor ancak yine de İnsanda GPT-4'ten daha düşük puan alıyor.
*CodeLlama-34B'nin ince ayarlı modeli GPT-4'ü geride bıraktı mı? *
Code Llama testi kazanamasa da Code Llama'nın tamamı bu değil, bir diğer öne çıkan nokta da yine ince ayardır. Kullanıcılar, ihtiyaçlarını karşılayan en iyi sürümü oluşturmak için açık kaynaklı Code Lama'da yeniden ince ayar yapabilir.
Phind yakın zamanda CodeLlama-34B ve CodeLlama-34B-Python'da kendi veri setine göre ince ayar yaptı ve ince ayarlı sürümleri Human'da %67,6 ve %69,5'e ulaştı; bu, OpenAI tarafından Mart ayında açıklanan GPT-4'ün %67'sini geride bıraktı. toplam.
İlgili Bağlantılar:
Gerçek kullanım karşılaştırması ChatGPT ve Code Llama
Bu karşılaştırmada öncelikle ChatGPT'nin GPT-3.5 sürümü ve Perplexity platformunun desteklediği Code Llama kullanıldı. İkisinin başarıyla kod üretip üretmediğini karşılaştırmak için 8 soru soracağız.
"Python kullanarak. Kelime1 ve kelime2 olmak üzere iki dize verildi. Kelime1'den başlayarak harfleri dönüşümlü sırayla ekleyerek dizeleri birleştirin. Bir dize diğerinden daha uzunsa, birleştirilen dizelere ek harfler ekleyin. end.
Birleştirilmiş dizeyi döndür.
Örnek 1: • Giriş: word1='abc', word2='pqr' • Çıktı: "apbqcr"
🟢 ChatGPT: Başarı için +1 🔵 Alev Kodu:成功+1
"Python kullanarak. Bir s dizisi verildiğinde, dizideki tüm sesli harfleri ters çevirin ve onu döndürün.
Ünlü harfler "a", "e", "i", "o" ve "u" olup hem küçük hem de büyük harfle birden çok kez geçebilir.
Örnek 1:
Giriş: s = "merhaba" Çıktı: "Salon"
🟢 ChatGPT: Başarı için +1 🔵 Kod Laması: Başarısız +0
"Python kullanarak. Bir tamsayı dizisi verildiğinde, sıfır olmayan öğelerin göreceli sırasını korurken tüm 0'ları dizinin sonuna kaydırın. Bunu, dizinin bir kopyasını yapmadan yerinde yapmanız gerektiğini unutmayın.
Örnek 1:
Giriş: sayılar = [0,1,0,3,12] Çıkış: [1,3,12,0,0]"
🟢 ChatGPT: Başarı için +1 🔵 Kod Laması: Başarısız +0
"Python'u kullanarak. Bazı alanların ekili olduğu ve bazılarının ekmediği uzun bir çiçek tarhınız var. Ancak bitişik alanlara çiçekler ekilemez. Bir çiçek yatağı için 0 ve 1'den oluşan bir tam sayı dizisi verildiğinde (0 boş anlamına gelir ve 1 boş değil anlamına gelir) ve bir n tam sayısı verildiğinde, eğer çiçek yatağına bitişik çiçek yok kuralını ihlal etmeden n yeni çiçek dikilebilirse doğru değerini döndürür, Aksi halde false değerini döndürür.
Örnek 1: Giriş: çiçeklik = [1,0,0,0,1], n = 1 Çıktı: doğru Örnek 2: Giriş: çiçeklik = [1,0,0,0,1], n = 2 çıktı: yanlış
🟢 ChatGPT: Başarı için +1 🔵 Alev Kodu:成功+1
"Python kullanarak. Bir giriş dizesi verildiğinde, kelimelerin sırasını tersine çevirin.
Kelime, boşluk olmayan karakterlerin dizisi olarak tanımlanır. E-postalardaki kelimeler en az bir boşlukla ayrılacaktır.
Tek boşluklarla birleştirilmiş bir sözcük dizesini ters sırada döndürür.
E-postaların başında veya sonunda boşluk veya iki sözcük arasında birden fazla boşluk bulunabileceğini unutmayın. Döndürülen dizede sözcükleri ayırmak için yalnızca bir boşluk bulunmalıdır. Fazladan boşluk eklemeyin.
Örnek 1: Giriş: s = "Gökyüzü mavi" Çıktı: "Mavi gökyüzüdür""
🟢 ChatGPT: Başarı için +1 🔵 Alev Kodu:成功+1
"Python kullanarak. Bir s dizisi ve bir k tam sayısı verildiğinde, s cinsinden k uzunluğundaki herhangi bir alt dizideki maksimum sesli harf sayısını döndürün. İngilizce'deki sesli harfler "a", "e", "i", "o" ve "u"dur.
Örnek 1: Giriş: s = "leetcode", k = 3 Çıkış: 2 Açıklama: "lee", "eet" ve "ode" 2 sesli harf içerir.
🟢 ChatGPT: Başarı için +1 🔵 Alev Kodu:成功+1
"Python kullanılıyor. Yıldız işaretleri * içeren bir s dizesi verildi.
Tek bir işlemle şunları yapabilirsiniz:
S'de bir yıldız seçin.
Sol taraftaki yıldız işareti olmayan en yakın karakteri ve yıldız işaretinin kendisini kaldırır.
Tüm yıldızları kaldırdıktan sonra dizeyi döndürür.
Örnek 1: Giriş: s = "leet**cod*e" Çıktı: "lecoe""
🟢 ChatGPT: Başarı için +1 🔵 Kod Laması: Başarısız +0
"Python kullanarak. Günlük sıcaklıkları temsil eden bir dizi tamsayı sıcaklık verildiğinde, yanıtın bulunduğu bir yanıt dizisi döndürün [i] sıcaklıkların yükselmesini beklemek zorunda olduğunuz günlerin sayısıdır. Gelecekte bunu yapacak bir gün yoksa cevabı saklayın [i] == 0。
Örnek 1: Giriş: Sıcaklık = [73,74,75,71,69,72,76,73] Çıkış: [1,1,4,2,1,1,0,0]"
🟢 Sohbet GPT'si: +1 🔵 Deve Kodu: +1
🟢 SohbetGPT: 8/8 🔵 KodLlama: 5/8
Özetle, Code Llama, fiili kullanım etkisi açısından ChatGPT'ye kıyasla bariz avantajlar göstermemektedir, ancak yukarıdaki testler, karar için tamamen temel olarak kullanılamaz. Üstelik açık kaynaklı Code Llama, kullanıcıların ihtiyaçlarına göre özelleştirmesi açısından ChatGPT'den daha kolaydır ve bu da daha fazla olasılık getirebilir.
Referanslar: