Yayınlanma tarihi: 13 Ocak 2024
Bu makale, LLM'ler ve chatbot'lar hakkındaki üç bölümlük serinin ilk bölümüdür. WebLLM ile chatbot oluşturma konulu 2. bölüm ve Prompt API'yi kullanma konulu 3. bölüm kullanıma sunuldu.
Büyük dil modelleri (LLM'ler), yazılım geliştirmede önemli bir yapı taşı haline geliyor: LLM'ler, doğal dil metni oluşturmak ve işlemek, veri ayıklama, özetleme veya kullanıcı verileriyle iletişimi kolaylaştırma gibi kullanım alanlarının kilidini açmak için idealdir.
Bu seride, cihaz üzerinde LLM'lerin avantajlarını ve dezavantajlarını ele alıp web tabanlı LLM çalışma zamanı WebLLM ve Chrome'un deneysel Prompt API'si gibi yerel ve çevrimdışı olarak kullanılabilen iki yaklaşımı kullanarak mevcut bir uygulamaya chatbot özellikleri ekleme konusunda size yol göstereceğim.
Olası kullanım alanları
Klasik bir yapılacaklar listesi uygulamasının üzerine bir chatbot oluşturacağız. Her bir adımın kaynak kodunu GitHub'da bulabilirsiniz. Kullanıcılar yeni yapılacaklar listesi öğeleri ekleyebilir, bunları "tamamlandı" olarak işaretleyebilir ve silebilir.
Kullanıcıların yapılacaklar listesi verileri hakkında daha fazla bilgi edinmesi veya ek işlevler gerçekleştirmesi için bir özellik ekleyebilirsiniz. Chatbot özelliği sayesinde kullanıcılar şunları yapabilir:
- Açık görev sayısı hakkında bilgi edinin.
- Yinelenen veya birbirine çok benzeyen yapılacaklar listelerini tanımlayın.
- Yapılacaklar listesini gruplara ayırın.
- Tamamlanan görevlere göre yeni görev önerileri alın.
- Görevleri farklı dillere çevirin.
- Yapılacaklar listesini XML biçiminde dışa aktarın.
Bunlar, LLM'lerin üstesinden gelebileceği görevlerden yalnızca birkaçı.
Büyük dil modelleri nedir?
LLM'ler, doğal dil metinlerini işleyen ve üreten yapay sinir ağlarıdır. Mevcut LLM'lerin çoğu, Google'da geliştirilen dönüştürücü mimarisini temel alır. Google'ın Gemini ve Gemma modelleri, OpenAI'ın GPT model serisi ve Meta AI'ın LLaMa ve Mistral AI'ın Mistral gibi açık kaynak modelleri buna örnek gösterilebilir.
Büyük miktarda veri üzerinde eğitildikleri için LLM'ler etkileyici bir dizi özelliğe sahiptir. Çok sayıda dili anlayabilir, bilgi yarışması sorularına yanıt verebilir, diller arasında çeviri yapabilir veya programlama kodu oluşturabilir. Bu özelliklerin kapsamı, LLM Boyutlarını Anlama bölümünde açıklandığı gibi modelin boyutuna göre önemli ölçüde değişiklik gösterebilir.
Doğal dil artık yazılım mühendisliğinde temel bir özellik haline geldiğinden, LLM'ler yazılım mimarisinde bir paradigma değişikliğine yol açıyor. API'leri iyi tanımlanmış arayüzler kullanarak çağırmak yerine, istemin sözde bir istemde doğal dilde ifade edilmesi yeterlidir.
LLM'lerin sınırlamaları
LLM'ler belirli sınırlamalara da sahiptir:
- Tanımlanamayan davranış: Çıkışları sabit kurallar yerine olasılık modellerine bağlı olduğundan LLM'ler aynı istem için farklı ve bazen çelişkili yanıtlar verebilir.
- Halüsinasyonlar: Bu modeller bazen gerçek doğruluk yerine öğrenilen kalıplara dayanarak yanlış veya anlamsız bilgiler üretebilir.
- İstem ekleme: LLM'ler, kullanıcıların modeli istenen işlevinden saptıran veya istenmeyen sonuçlar üreten giriş istemleri oluşturduğu istem ekleme saldırılarına karşı hassas olabilir.
Bu nedenle, kullanıcıların herhangi bir işlem yapmadan önce LLM'ler tarafından oluşturulan sonuçları doğrulaması gerekir.
Cihaz üzerinde LLM'lerle çalışırken boyutları dikkate alınmalıdır. Bu dosyalar birkaç gigabayt boyutundadır ve ilk kullanımdan önce kullanıcının cihazına indirilmelidir. Küçük modeller, özellikle bulut destekli modellere kıyasla daha düşük kaliteli yanıtlar elde etme eğilimindedir.
Yerel çözümler seçin
Web uygulamanıza LLM entegre etmek için ilk olarak bir bulut sağlayıcıyı kullanmak isteyebilirsiniz. Birçok sağlayıcı, bazıları belirli sağlayıcılara özel olan yüksek kaliteli LLM'ler sunar. Bulut tabanlı LLM'ler, genellikle işlenen jeton başına hesaplanan makul bir maliyetle hızlı çıkarım hızı sağlar.
Buna karşılık yerel çözümler cazip avantajlar sunar. Yerel olarak barındırılan LLM'ler doğrudan kullanıcının cihazında çalışarak daha güvenilir yanıt süreleri sağlar, kullanıcı çevrimdışıyken bile erişilebilir kalır ve geliştiricilerin abonelik ücretleri veya diğer sürekli maliyetler ödemesini gerektirmez. Özellikle, kullanıcı güvenliğini önemli ölçüde artırabilirler. Tüm etkinlikleri cihaz üzerinde tutarak kimliği tanımlayabilecek bilgileri (PII) harici sağlayıcılara veya bölgelere aktarmaktan kaçınabilirsiniz.
Demolar
Kendinizi nasıl oluşturacağınızı öğrenmeden önce, chatbot özelliklerine sahip hazır demolara göz atabilirsiniz.
- Orijinal yapılacaklar listesi uygulaması
- WebLLM ile yapılacaklar listesi uygulaması
- Prompt API ile yapılacaklar listesi uygulaması
- GitHub'daki kaynak
Ardından, WebLLM'yi kullanarak yapılacaklar listesi uygulamasına bir chatbot ekleyin.