IA Galaxy -ll Crash Course Bölüm 2

Saberie

Active member


  1. IA Galaxy -ll Crash Course Bölüm 2

İnsan dili işlemek ve üretmek için büyük bir dilsel model (LLM) tasarlanmıştır. İlk bölümdeki LLM'nin temel genel bakışına göre, bu sefer bunlar donanım gereksinimleri ve önceden eğitilmiş farklı modellerdir.


Duyuru








Dr. Michael Stal, 1991'den beri Siemens teknolojisi üzerinde çalışıyor Yazılım mimarisi sorunları hakkında iş alanlarını önerin ve Siemens'in kıdemli yazılım mimarlarının mimari oluşumundan sorumludur.







Emniyet kemerlerini oruçlamak!




Donanım gerekli


Kenardaki donanım gereksinimleri üzerine bir gözlem: Açıklama, hem eğitim hem de yürütme (çıkarım) için taşıyıcılarla karmaşık matematiksel hesaplamalar olduğunu göstermektedir. GPU çekirdekleri ve nöral işlemciler bunlarda uzmanlaşmıştır. Bu nedenle, LLM geliştiricilerinin performans için TPU'ya veya GPU'ya mümkün olduğunca RAM'e ihtiyacı vardır. Normal CPU'lar ve az bellek ile çok küçük modeller dışında ileri gitmezsiniz. ALM'nin bağlamı ve hesaplanmış ağırlıkları GPU'nun hafızasına uyum sağlamalıdır. İkincisi, birkaç yüz gigabayt içerebilirken, bağlam bazı kilobaytlardan birçok megabayt arasında değişir. Deepseek R1 modeli 671 milyar ağırlık/tensöre ve dolayısıyla yaklaşık 500 gigabaytlık bir koruma gereksinimi vardır; Bazen açık modellerin terabayte ihtiyacı olmalıdır. Bunun için birkaç NVIDIA H100 GPU hızlandırıcılara ihtiyaç duyulacaktı. Sonuç olarak, geliştiriciler yalnızca yerel sistemlerinde, örneğin iyi donanım ekipmanları, en fazla 70 milyar parametreye sahip modeller ile modeller oluşturabilir ve gerçekleştirebilir.

Önceden eğitilmiş modeller: Aktarımı öğrenme gücü


Daha önce eğitilmiş modeller, yaratıcılarını büyük veri kayıtları konusunda eğiten ve belirli görevler için mükemmelleştirilen LLM'dir. Bu modeller, modelin eğitim sırasında öğrenilen modelleri ve ilişkileri kullanmasına izin vermek için diğer etkinlikler için bir başlangıç noktası görevi görür. Popüler model türleri:

  • Bert (Transformatörlerden çift yönlü kodlamanın temsilleri): Önceden eğitilmiş bir model, giriş metnindeki kelimelerde bağlamsallaştırılmış gösterimler oluşturmak için çeşitli seviyelerde çift yönlü bir transformatör kodlayan bir model.
  • Roberta (Optimize edilmiş sağlam Bert yaklaşımı): Bert mimarisinin değiştirilmiş bir versiyonunu ve başka bir eğitim hedefini kullanan önceden eğitilmiş bir model.
  • Xlnet (Aşırı Dilin Modellenmesi): Önceden eğitilmiş bir model, giriş metnindeki kelimelerin bağlamsal temsillerini oluşturmak için otomatikleştirme ve yazar uyumu tekniklerinin bir kombinasyonunu kullanır.
Bağlam penceresi: Model görüntüleme alanı


Bağlam penceresi, modelin belirli bir anda inceleyebileceği giriş metni miktarını ifade eder. Serinin ilk bölümünde zaten düşündük, ancak burada tekrar bahsedilmeliyiz. Bağlam penceresi, modelin mimarisine bağlı olarak sağlam veya dinamik olabilir. Daha geniş bir bağlam penceresi, modelin daha fazla bağlam kaydetmesini sağlar, ancak işleme çabasını da artırır. Modern LLM, birkaç bin ila birkaç milyon jeton bağlamına sahiptir.

Maskeler: Modelin Gözleri


Maskeler, modelin giriş metninin belirli bölümlerine dikkat etmesini önlemeye yardımcı olur. Farklı maske türleri vardır, aşağıdakiler de dahil olmak üzere:

  • Dolgu maskeleri, modelin sabit bir uzunluk vermek için giriş metnine eklenen dolgu jetonlarına dikkat etmesini önlemek için kullanılır. Bu jetonlar, örneğin belirteç EOS'u (dizinin sonu) içerir.
  • Modelde, referans maskeleri, bir sıradaki gelecekteki jetonlar gibi giriş metninin bazı bölümlerini önler.
  • Nedensel maskeler, modelin bir sırayla gelecekteki jetonlara dikkat etmesini önlemek ve böylece metne benzer metin oluşturmanıza izin vermek için yararlıdır.
Bir sorgunun ilk işlenmesi


Bir LLM'ye bir sorgu (istemi) eklenir eklenmez, sorgu aşağıdaki adımlardan geçer:

  • Tikenileştirme: Uygulama, kullanıcının isteğini (istemi) kelimeler veya alt -parole gibi bir jeton sonuçunda sökür.
  • Yaratılışın Birleştirilmesi: Her jeton, bir kuruluş katmanı aracılığıyla rehberlik ederek sayısal bir gösterimde değişir.
  • Konum Kodu: İstemi birleştirmesi, jeton sırasını elde etmek için modeli konumsal kodlamayla bağlar.
Sonra LLM aşağıdaki adımları gerçekleştirir:

  • Kendi kendine gönderi: Hızın dahil edilmesi, bağlamsallaştırılmış bir temsil oluşturmak için bir kendi kendine yaşlanma katmanından geçer.
  • Cross Post: Bağlamsallaştırılmış temsil, dış bilgileri dikkate almak için, örneğin giriş veya diğer modellerin metnini dikkate almak için bir enine düzeyden geçer.
  • Besleme seviyesi: LLM daha sonra ekranı daha yüksek bir seviyeye dönüştürmek için farklı güç katmanları üzerinden direk katmanının çıkışını yönlendirir. Amaç: Seviye doğrusal olmayan ve karmaşık modelleri öğrenme yeteneği ekler.
  • Bağlam penceresi: Son çıktı bir bağlam penceresi kullanarak LLM oluşturur. En üst düzey sunum seviyesinde çalışır. Bu, modelin sorgunun belirli bir kısmına odaklanmasını sağlar.
  • Maskeler: Sonunda, modelin dolgu belirteçlerinde olduğu gibi sorgunun belirli kısımlarına dikkat etmesini önlemek için son baskının maskelemesi gerçekleşir.
Aşağıdaki kod, tokenleştirme, oluşturma, konumsal kodlama, öz kontrol, çapraz istasyon, besleme seviyesi, bağlam penceresi ve maskeleme gibi bir sorgunun adım adım işlemesini göstermektedir.



import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer

# Laden Sie das vorab trainierte Modell und den Tokenizer
modell = AutoModelForMaskedLM.from_pretrained("bert-base-uncased")
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# Definieren Sie eine Abfrage
abfrage = "Erläutere die Geschichte des Haberler-Verlags."

# Tokenisieren Sie die Abfrage
eingabe = tokenizer(abfrage, return_tensors="pt")

# Erstellen Sie die Embeddings
embedded_abfrage = modell.embeddings(eingabe["input_ids"])

# Fügen Sie die positionale Kodierung hinzu
positionale_kodierung = modell.positional_encodings(embedded_abfrage)
embedded_abfrage = embedded_abfrage + positionale_kodierung

# Wenden Sie die Self-Attention an
kontextualisierte_darstellung = modell.self_attention(embedded_abfrage)

# Wenden Sie die Cross-Attention an
hoeher_ebene_darstellung = modell.cross_attention(kontextualisierte_darstellung)

# Wenden Sie die Feed-Forward-Layer an
transformierte_darstellung = modell.feed_forward_layers(hoeher_ebene_darstellung)

# Wenden Sie das Kontextfenster an
endgueltige_ausgabe = modell.context_window(transformierte_darstellung)

# Maskieren Sie die Ausgabe
antwort = modell.masking(endgueltige_ausgabe)

print(antwort)


Yürütme sırasında aşağıdaki dosyaları oluşturan veya değiştiren model:

  • Model.pth: Eğitimli Eğitim Dosyası
  • Tokenizer.json: Tokenizer yapılandırma dosyası
  • Query.txt: Giriş sorgu dosyası
  • Cevap.txt: Çıktı-yanıt dosyası
Not: Bu son derece basitleştirilmiş bir örnektir. Uygulamada, LLM ile gerçek uygulamalar çok daha karmaşık ve daha karmaşıktır.

Bir sonraki blog yazımda LLMS'den farklı mimarlık türlerine gidiyorum.


(RME)
 
Üst