SON DAKİKA

Nvdia

Otonom Araç Uygulamaları için NVIDIA DriveOS LLM SDK ile LLM Dağıtımını Kolaylaştırma

Büyük dil modelleri (LLM) doğal dil işleme (NLP) alanında olağanüstü genelleme yetenekleri sergilemiştir. Çeviri, dijital asistanlar, öneri sistemleri, bağlam analizi, kod üretimi, siber güvenlik gibi çok sayıda uygulamada kullanılmaktadır. Otomotiv uygulamalarında, hem otonom sürüş hem de kabin içi özellikler için LLM tabanlı çözümlere artan bir talep vardır. Kaynakların kısıtlı olduğu otomotiv platformlarında LLM’lerin ve görüntü dili modellerinin (VLM) dağıtılması kritik bir zorluk haline gelmiştir.

Bu yazıda, otonom araçlar için NVIDIA DriveOS LLM SDK tanıtılacaktır. Bu kütüphane, DRIVE AGX platformunda son teknoloji LLM’lerin ve VLM’lerin çıkarımını optimize etmek için tasarlanmıştır. NVIDIA TensorRT çıkarım motorunun üzerine inşa edilmiş hafif bir araçtır. LLM’lerin otomotiv platformlarına dağıtımını sağlamak için özel dikkat çekici çekirdekler ve kuantizasyon teknikleri gibi LLM’ye özgü optimizasyonlar içerir.

SDK, bir TensorRT motorunu inşa etmek, çıkarım yapmak ve LLM’leri benchmark yapmak için kolay kullanılabilir C++ kütüphaneleri ve örnek kodlar sunar. SDK’nın desteklediği modeller ve dağıtım iş akışına dair ana bileşenlere göz atacağız.

NVIDIA DriveOS SDK Ana Bileşenleri

DriveOS LLM SDK, etkili LLM çıkarımı için tasarlanmış birkaç ana bileşen içermektedir. Bu bileşenler, LLM’lerin otomotiv platformlarında etkili bir şekilde dağıtılmasını sağlayacak şekilde dizayn edilmiştir:

  • Eklenti kütüphanesi: LLM’ler, gelişmiş yetenekler ve optimize edilmiş performans için özel eklentilere ihtiyaç duyar. DriveOS LLM SDK, bu özel eklentileri ve rotary konumsel gömme, çoklu başlık dikkati ve KV-cache yönetimi gibi bağlama duyarlı bileşenleri işlemek için bir dizi çekirdek sunar. AttentionPlugin, dinamik grup boyutları ile dinamik giriş dizisi uzunluklarını da destekler.
  • Tokenizasyon/Detokenizasyon: SDK, LLM çıkarımı için etkili bir tokenizasyon/detokenizasyon aracı sunar. Bu modül, multimodal kullanıcı girdilerini (örneğin metin veya görüntüler) token akışına dönüştürerek farklı veri türleri arasında sorunsuz bir entegrasyon sağlar.
  • Örnekleyici: Örnekleyici, metin üretimi, çeviri ve diyalog gibi görevlerde modelin metin oluşturma ve çıkarım sırasında token seçme süreçlerini kontrol eder. DriveOS LLM SDK, bu süreci optimize eden CUDA tabanlı bir örnekleyici uygulamaktadır. Çıkarım verimliliği ile çıktı çeşitliliğini dengelemek için tek ışın örnekleme yaklaşımını kullanmaktadır. Bu yöntem, birden fazla ışın keşfetmenin hesaplama masrafı olmadan hızlı fakat oldukça çeşitli bir çıktı olanağı sunmaktadır. Bu, otomotiv uygulamaları için gecikme ve verimliliğin dikkate alındığı önemli bir noktadır.
  • Ayrıştırıcı: LLM çıkarımı sırasında ayrıştırıcı modülü, modelin tahminlerine dayanarak token’leri teker teker üreterek metin ya da diziler oluşturur. DriveOS LLM SDK, statik grup boyutlarını, doldurulmuş giriş dizilerini ve grubun en uzun dizisine doğru üretim desteği sağlayan esnek bir ayrıştırma döngüsü sunar.

Bütün bu bileşenler, LLM’lerin çoklu NVIDIA DRIVE platformları üzerinde esnek, hafif ve yüksek performanslı bir şekilde dağıtımını ve kişiselleştirilmesini mümkün kılar.

Desteklenen Modeller, Hassasiyet Formatları ve Platformlar

DriveOS LLM SDK, NVIDIA DRIVE AGX Orin ve NVIDIA DRIVE AGX Thor gibi DRIVE platformlarında çeşitli son teknoloji LLM’leri desteklemektedir. Ayrıca, SDK geliştirme amaçlı olarak x86 sistemlerde de çalışabilme özelliğine sahiptir. Şu anda desteklenen modeller aşağıdaki gibidir ve gelecekte ek modeller beklenmektedir:

  • Llama 3 8B Instruct
  • Llama 3.1 8B
  • Llama 3.2 3B
  • Qwen2.5 7B Instruct
  • Qwen2 7B Instruct
  • Qwen2 VL

SDK, FP16, FP8, NVFP4 ve INT4 dahil olmak üzere çeşitli hassasiyet formatlarını destekleyerek büyük LLM’lerin farklı platformlarda çalışmasını sağlar. INT4 (W4A16) hassasiyeti için model ağırlıkları AWQ tarifi kullanılarak INT4’e kuantize edilmiştir; hesaplamalar ise FP16 formatında yapılır. Bu yaklaşım, bellek kullanımını önemli ölçüde azaltır. SDK, NVIDIA DRIVE AGX Thor platformlarında TensorRT sürüm 10.4’ten yüksek FP8 (W8A8) hassasiyetini ve 10.8’den yüksek NVFP4 hassasiyetini destekler.

Bu hassasiyetler, LLM çıkarımı sırasında bellek ayak izinin azaltılmasına yardımcı olurken, çekirdek performansını artırır. Bu konfigürasyonda ağırlıklar ve GEMM işlemleri FP8 veya NVFP4 formatında; LayerNorm, KV cache, LM head ve dikkat katmanları ise FP16 formatında kalır. Genel olarak, DriveOS LLM SDK, çoklu veri tabanlı girişler ile çeşitli hassasiyet formatlarında geniş bir LLM yelpazesini etkili bir şekilde desteklemek için tasarlanmıştır.

LLM Dağıtım İş Akışı

LLM dağıtımı genellikle oldukça karmaşık bir süreçtir ve özellikle uç cihazlarda önemli mühendislik çabası gerektirir. DriveOS LLM SDK, DRIVE platformunda LLM’lerin dağıtımını basit bir çözümle sunmaktadır. SDK, dağıtım iş akışını iki adımda sadeleştirir: ONNX modelini dışa aktarmak ve motoru inşa etmek. Bu süreç, TensorRT ile derin öğrenme modellerinin dağıtımındaki standart prosedürü yakından takip etmektedir.

Kuantizasyon, LLM dağıtımını optimize etmede kritik bir rol oynar, özellikle kaynak yönünden sıkıntılı platformlar için. DriveOS LLM SDK, ONNX model dışa aktarma aşamasında çoklu kuantizasyon seçenekleri sunarak bu ihtiyacı karşılar; gereken tek bir komutla kolayca kullanılabilir:

python3 llm_export.py --torch_dir $TORCH_DIR --dtype [fp16|fp8|int4] --output_dir $ONNX_DIR

Bu komut, bir LLM’yi Hugging Face formatından belirtilen kuantize hassasiyetle ONNX modeline dönüştürmektedir. Bu adımın, bellek aşımı (OOM) sorunlarını önlemek için x86 veri merkezi GPU’ları üzerinde gerçekleştirilmesi önerilmektedir.

Model ONNX formatına dışa aktarıldıktan sonra, llm_build ikili dosyası kullanılarak ilgili TensorRT motoru oluşturulabilir. İnşa işlemi, belirli bir model veya hassasiyetten bağımsızdır, çünkü IO arayüzü tüm ONNX modellerinde standart kalır. Motor, aşağıdaki komutla DRIVE platformunda inşa edilmelidir:

./build/examples/llm/llm_build --onnxPath=model.onnx --enginePath=model.engine --batchSize=B --maxInputLen=N --maxSeqLen=M

SDK ayrıca, AArch64 hedeflerini x86 makinelerinde derleme imkanı sağlayan bir çapraz derleme sistemi içerir. Bu işlev, dağıtımı hızlandırır ve kenar hesaplama platformlarında özellik doğrulamasını kolaylaştırır.

Kolay dağıtım sürecinin yanı sıra, DriveOS LLM SDK, uçtan uca LLM çıkarımı, performans kıyaslama ve canlı sohbet uygulamaları için bir dizi C++ kod örneği sunmaktadır. Bu örnekler, geliştiricilerin farklı modellerin doğrudan DRIVE platformlarında doğruluğunu ve performansını değerlendirmesini sağlar ve statik grup boyutları ve giriş/çıkış dizi uzunlukları kullanarak kendi uygulamalarını özelleştirmelerini mümkün kılar.

SDK’nın sağladığı C++ kodu ile LLM sohbet botunu etkinleştirmek için aşağıdaki örnek komutu kullanabilirsiniz:

./build/examples/llm/llm_chat --tokenizerPath=llama-v3-8b-instruct-hf/ --enginePath=llama3_fp16.engine --maxLength=64

Bu komut için genel çıkarım hattı Şekil 3’te gösterildiği gibi, DriveOS LLM SDK ile ilgili bileşenler mavi bloklar içerisinde yer almaktadır.

Multimodal LLM Dağıtımı

Geleneksel LLM’lerden farklı olarak, otomotiv uygulamalarında kullanılan dil modelleri genellikle kamera görüntüleri, metin gibi multimodal girdilere ihtiyaç duyarlar. DriveOS LLM SDK, bu ihtiyaçları karşılamak amacıyla özel çıkarımlar ve modern VLM‘ler için tasarlanmış modüller sunmaktadır.

SDK şu anda, resmi Qwen2 VL GitHub deposu temelinde oluşturulmuş bir C++ görüntü ön işleyici ile Qwen2 VL modelini desteklemektedir. Bu modül, görüntüleri verimli bir şekilde yükler, yeniden boyutlandırır, küçük yığınlara böler (birleştirerek), piksel değerlerini normalize eder ve yığınları dil modeliyle uyumlu bir formatta depolar.

Multimodal bir LLM dağıtımı için, görüntü kodlayıcı ve dil modelinin ayrı ayrı dışa aktarılması ve motorun inşa edilmesi gerekmektedir. Bu süreci kolaylaştırmak amacıyla DriveOS LLM SDK, standart adımlarla TensorRT model motorunu oluşturmayı basit hale getiren Python betikleri ve C++ yardımcı programlar sunmaktadır.

Özet

NVIDIA DriveOS LLM SDK, DRIVE platformunda LLM’lerin ve VLM’lerin dağıtımını hızlandırmaktadır. Güçlü NVIDIA TensorRT çıkarım motorunu ve LLM’ye özel optimizasyon tekniklerini (kuantizasyon gibi) kullanarak, son teknoloji LLM’ler ve VLM’lerin kolayca dağıtılmasına olanak sağlar. Bu SDK, güçlü LLM’leri üretim ortamlarında dağıtmak için bir temel oluştururken, AI destekli uygulamaların performansını da artırmayı hedeflemektedir.

Daha fazla bilgi için NVIDIA’nın otonom araçlar için sunulan DRIVE çözümlerini keşfedin.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri