Daha küçük LLM'ler için pratik hızlı mühendislik

Maud Nalpas
Maud Nalpas

Büyük dil modellerinin etkililiği büyük ölçüde ver. İstem mühendisliği, LLM'den en iyi çıktıyı alacak şekilde soru oluşturma süreci. Bu, LLM tabanlı bir özelliğin uygulanmasında önemli bir adımdır.

İstem mühendisliği, yinelemeli bir süreçtir. Daha önce farklı LLM'ler geliştirdiyseniz, muhtemelen isteminizi kullanarak daha iyi sonuç elde edersiniz.

Bu durum farklı boyutlardaki modeller için de geçerlidir.

Gemini gibi büyük LLM'ler tarafından desteklenen sohbet arayüzleri veya ChatGPT gibi yöntemlerle normalde minimum düzeyde istem işlemiyle tatmin edici sonuçlar elde edilebilir. Ancak tam olarak ayarlanmamış, varsayılan ve daha küçük bir LLM ile çalışırken ve yaklaşımınızı uyarlamanız gerekir.

Daha küçük LLM'ler daha az güçlüdür ve bunlardan yararlanılabilecek daha küçük bir bilgi havuzuna sahiptir.

"Daha küçük LLM'ler" ile ne kastediyoruz?

LLM boyutlarının tanımlanması karmaşıktır ve her zaman açıkladık.

Bu dokümanda, "küçük LLM'ler" 30 milyar parametreleri altındaki herhangi bir model anlamına gelir. Bugünden itibaren, birkaç milyon ila birkaç milyar parametreye sahip modeller tarayıcı üzerinde, tüketici sınıfı cihazlarda gerçekçi bir şekilde çalıştırılmalıdır.

Daha küçük LLM'ler nerede kullanılır?

  • Cihaz üzerinde/tarayıcı içinde üretken yapay zeka (ör. Gemma 2B kullanıyorsanız) MediaPipe'in LLM Inference API'sini kullanın (yalnızca CPU kullanan cihazlar için bile uygundur) veya DistilBert, Transformers.js. Yalnızca kullanıcının cihazında model indirebilir ve çıkarım yapabilirsiniz web indirmelerini makul düzeyde tutmak ve web indirmelerine uygun olmasını sağlamak için bu küçük cihazın belleği ve GPU/CPU kısıtlamaları nedeniyle devre dışı bırakılır.
  • Özel sunucu tarafı üretken yapay zeka. Gemma 2B gibi açık ağırlıklı küçük modeller, Gemma 7B veya Gemma 27B, kendi sunucunuzda (ve isteğe bağlı olarak ince ayar yapabilirsiniz).

Başlayın

Gemini veya ChatGPT gibi büyük LLM'ler tarafından desteklenen sohbet arayüzleri, genellikle minimum istem çabasıyla tatmin edici sonuçlar üretebilir. Ancak daha küçük LLM'lerle çalışırken yaklaşımınızı uyarlamanız gerekir. Daha küçük LLM'ler daha az güçlüdür ve bunlardan yararlanılabilecek daha küçük bir bilgi havuzuna sahiptir.

Bağlam ve tam biçim talimatları sağlayın.

Küçük LLM'lerle en iyi sonuçları elde etmek için daha ayrıntılı ve spesifik istemler oluşturun.

Örneğin:

Based on a user review, provide a product rating as an integer between 1 and 5. \n
Only output the integer.

Review: "${review}"
Rating:
Giriş (inceleme) Çıkış (değerlendirme)
  Daha büyük LLM (Gemini 1.5) Daha küçük LLM (Gemma 2B)
Bu modele bayıldım! Tüm gün süren gezilerde bile ağırlığı iyi bir şekilde dağıtır ve şaşırtıcı derecede rahattır. Öneririm. 5 5 üzerinden 4 yıldız**
Kayışlar çok dar ve ağır yük altında omuzlarımı kazımaya başladılar. 1 5/2

Gemini 1.5 bu basit istemle istenen çıkışı sağlasa da Gemma'nın içeriği memnun olmadığını düşünüyorsanız:

  • Biçim yanlış. Puan için bir tam sayı istedik.
  • Derecelendirme tam olarak doğru görünmüyor. İlk yorum, 5 yıldızlı bir yorumu işaret edecek kadar istekli.

Bunu düzeltmek için istem mühendisliği tekniklerini Bir, birkaç ve çoklu çekim isteme ve zihinsel istem isteme. Ayrıca biçimle ilgili net talimatlar sağlamalı ve modelin tam puan aralığını kullanın.

Örneğin:

`Analyze a product review, and then based on your analysis give me the
corresponding rating (integer). The rating should be an integer between 1 and
5. 1 is the worst rating, and 5 is the best rating. A strongly dissatisfied
review that only mentions issues should have a rating of 1 (worst). A strongly
satisfied review that only mentions positives and upsides should have a rating
of 5 (best). Be opinionated. Use the full range of possible ratings (1 to
5). \n\n
    \n\n
    Here are some examples of reviews and their corresponding analyses and
    ratings:
    \n\n
    Review: 'Stylish and functional. Not sure how it'll handle rugged outdoor
    use, but it's perfect for urban exploring.'
    Analysis: The reviewer appreciates the product's style and basic
    functionality. They express some uncertainty about its ruggedness but
    overall find it suitable for their intended use, resulting in a positive,
    but not top-tier rating.
    Rating (integer): 4
    \n\n
    Review: 'It's a solid backpack at a decent price. Does the job, but nothing
    particularly amazing about it.'
    Analysis: This reflects an average opinion. The backpack is functional and
    fulfills its essential purpose. However, the reviewer finds it unremarkable
    and lacking any standout features deserving of higher praise.
    Rating (integer): 3
    \n\n
    Review: 'The waist belt broke on my first trip! Customer service was unresponsive too. Would not recommend.'
    Analysis: A serious product defect and poor customer service experience naturally warrants the lowest possible rating. The reviewer is extremely unsatisfied with both the product and the company.
    Rating (integer): 1
    \n\n
    Review: 'Love how many pockets and compartments it has. Keeps everything organized on long trips. Durable too!'
    Analysis: The enthusiastic review highlights specific features the user loves (organization and durability), indicating great satisfaction with the product. This justifies the highest rating.
    Rating (integer): 5
    \n\n
    Review: 'The straps are a bit flimsy, and they started digging into my shoulders under heavy loads.'
    Analysis: While not a totally negative review, a significant comfort issue leads the reviewer to rate the product poorly. The straps are a key component of a backpack, and their failure to perform well under load is a major flaw.
    Rating (integer): 1
    \n\n
    Now, here is the review you need to assess:
    \n
    Review: "${review}" \n`;
Giriş (inceleme) Daha küçük bir LLM ile çıkış yapın (Gemma 2B)

Bu modele bayıldım! Ağırlığı iyi ve şaşırtıcı bir şekilde dağıtıyor rahat hissetmelerini sağlar. Öneririm.

Analiz: Bu yorum son derece olumlu ve ürünün özelliklerini vurguluyor ve rahatlık sağlayarak üründen memnun kaldığınızı gösterir. Bu yüksek bir puanı haklı çıkarır.

Puan (tam sayı): 5

Kayışlar dar ve omuzlarımı kazımaya başladı ağır yük altında çalışır.

**Analiz:** Yorumda, kullanıcı deneyimiyle ilgili önemli bir rahatlama sorunu vurgulanmıştır. kayışlar. Ayrıca ürünün ağır yük ve ağır ekipmanlar için uzun süreli geziler olabilir.

**Derecelendirme:** 1 (en kötü)

Daha ayrıntılı istemimiz, birkaç denemelik isteme ve düşünce zincirine dayalı istem teknikleriyle birlikte daha doğru derecelendirmeler sağlıyor.

Manuel çıkış ayrıştırması beklenir

Bir LLM'nin çıkışını her zaman manuel olarak temizlemeniz ve yorumlamanız gerekse de bu, özellikle de daha az gösterişli sonuçlar ve daha küçük boyutlu LLM'ler için geçerlidir. bir fikir zinciri olabilir.

İlk örnekte düşünce zinciri istemini kullandık. Bu nedenle çıktı, hem bir analiz hem de derecelendirme oluşturur. Ayrıca, derecelendirme için manuel olarak ayrıştırmamız gerekir. Ayrıca önceki bölümde gösterilen çıktıdaki tutarsız biçimlendirmeye dikkat edin: Model bazen Markdown çıktısı verir, ancak her seferinde çıkış yapmaz.

// Use try/catch to catch (parsing) errors
try {
  // Parse the output for a rating
  const int = /[1-5]/;
  const ratingAsString = llmOutput.match(int)[0];
  // Parse as int
  const ratingAsInt = parseInt(ratingAsString);
  // `checkRating` checks the rating is a number between 1 and 5, since the
  // regEx may catch a number like "100"
  const finalRating = checkRating(ratingAsInt);
} catch (e) {
  console.error('Error', e);
}

Mind API farkları

Genellikle giriş bölümü olan Gemini API veya OpenAI gibi LLM bulut API'leri daha büyük LLM'lere yönlendirme yapıyor, kullanışlı istem özellikleri sunuyor. Örneğin, Gemini 1.5 Pro sistem talimatlarını sunar ve JSON modu.

Şu an için bu özellikler özel model kullanımında her zaman sunulmayabilir veya tarayıcı içi yapay zeka API'leri kullanılarak erişilen daha küçük LLM'ler için MediaPipe LLM Inference API veya Transformers.js. Bu teknik bir sınırlama olmasa da tarayıcı içi yapay zeka API'leri genellikle daha yalın olmalısınız.

Mind jeton sınırları

Çünkü daha küçük LLM'lere yönelik isteminizin örnekler veya daha ayrıntılı bilgiler içermesi gerekir. daha uzun sürer ve giriş jetonunuzu daha fazla yer kaplar. belirleyebilirsiniz.

Ayrıca, daha küçük modellerde giriş jetonu sınırı daha düşük olur. Örneğin, Örneğin, Gemini 1.5 Pro'da 1 milyon giriş jetonu sınırı vardır. Gemma modellerinde 8K bağlam penceresi vardır.

Jeton sayısı işlevlerini kullanma kontrol edin.

Süre tahminlerinizi uyarlayın

Mühendislik süre tahminlerinizde hızlı tasarım ve test işlemlerini göz önünde bulundurun.

API farklılıkları ve jeton sınırları nedeniyle muhtemelen daha fazla zaman ve çabaya ihtiyacınız olacaktır tıklayın. Test etme ve doğrulama LLM'nin çıktısı da daha fazla çaba gerektirebilir.

İstem mühendisi mi yoksa ince ayar mı?

Web geliştiricileri açısından, istem mühendisliği, üretken yapay zeka özel eğitim ve ince ayarlar yerine. Ancak bazı kullanım durumlarında, gelişmiş istem mühendisliği bile yeterli olmayabilir. özellikle de daha küçük bir LLM kullanıyorsanız.

İnce ayarı şu durumlarda kullanın:

  • Belirli bir görev için üst düzey doğruluk ve performansa ihtiyacınız var. İyi ince ayarı, optimum sonuçlar için modelin dahili parametrelerini doğrudan ayarlar.
  • Görevinizle ilgili iyi seçilmiş ve zaten tercih edilir. Etkili ince ayar yapmak için bu veriler gerekir.
  • Modeli aynı amaç için tekrar tekrar kullanıyorsanız. Hassas ayar yapılabilir. ve belirli bir görev için tekrar kullanılıyor olabilir.