tr ▾
Deneme kredisi ile dene

Ollama API'leri: Filtresiz Çıkarım İçin Üretim Kontrol Listesi

Ollama API'leri, filtresiz yerel LLM'leri çalıştırmak için standart arayüzü sağlar ve geliştiricilere model ağırlıkları ve çıkarım parametreleri üzerinde doğrudan kontrol imkanı sunar. Bu rehber, bağlam yönetimini optimize etmek, akış gecikmesini yönetmek ve bu endpoint'leri üretim ortamlarına etkili bir şekilde entegre etmek için gerekli teknik adımları kapsar.

Son güncelleme

Özet

  1. Gerçek zamanlı belirteç görünürlüğü ve daha düşük algılanan gecikme ile yanıtları akış yapmak için /api/chat uç noktasını kullanın.

  2. VRAM kullanımını çıktı kalitesiyle dengelemek için Llama 3.1 Uncensored gibi kantile edilmiş kısıtlamasız ağırlıklarla Ollama'yı yapılandırın.

  3. Yüksek eşzamanlılık patlamaları sırasında asılı kalan bağlantıları önlemek için istemci SDK'nızda açık zaman aşımı eşiklerini belirleyin.

  4. Canlı dağıtımlarda kullanıcı deneyimini etkilemeden darboğazları belirlemek için saniye başına token verimliliğini izleyin.

Neden Ollama API'leri yerel çıkarım için standarttır

Ollama API'leri, karmaşık model yükleme mantığını OpenAI standartlarını yansıtan basit bir REST arayüzüne sararak yerel çıkarımı standartlaştırır. Geliştiriciler bu yaklaşımı tercih eder çünkü Python süreçlerini veya CUDA bağımlılıklarını manuel olarak yönetme ihtiyacını ortadan kaldırır. API, sohbet tamamlamaları ve gömme oluşturma için endpoint'ler sunar ve mevcut kod tabanları için entegrasyonu kolaylaştırır.

Yerel çıkarım tam veri egemenliği sağlar. Prompt'larınız donanımınızdan hiç ayrılmaz, bu da hassas uygulamalar veya sıkı gizlilik gereksinimleri için kritiktir. Bulut sağlayıcılarının aksine, tam olarak model sürümünü, quantization seviyesini ve örnekleme parametrelerini siz kontrol edersiniz. Bu şeffaflık, üçüncü taraf bir satıcıdan sürpriz güncellemeler olmadan tutarlı davranış sağlar.

Birçok ekip, Ollama'yı geniş bir mimari yelpazesini kutudan çıkar çıkmaz desteklediği için benimser. İstemci kodunuzu yeniden yazmadan farklı modeller arasında geçiş yapabilirsiniz. API, tensör tahsisi ve bağlam penceresi yönetiminin ağır işlerini üstlenir.

Ancak, yerel çıkarım yeterli donanım kaynakları gerektirir. Seçilen model boyutu için GPU'nuzun yeterli VRAM'e sahip olduğundan emin olmalısınız. Q4_K_M nicemleme ile 7B parametreli bir model yaklaşık 5-6 GB VRAM gerektirir. Daha büyük modeller daha fazla bellek gerektirir ancak önemli ölçüde daha iyi akıl yürütme yetenekleri sunar.

Doğru filtresiz model ağırlıklarını seçmek

Doğru filtresiz model ağırlıklarını seçmek, parametre sayısını, nicelleme düzeyini ve spesifik eğitim verilerini dengelemeyi içerir. Filtresiz modeller genellikle reddetme oranlarını azaltmak için yetişkin veya tartışmalı konularda eğitilmiş Llama 3 veya Mistral gibi temel modellerin ince ayarlanmış versiyonlarıdır.

Üretim kullanımı için, açık lisanslamaya ve aktif topluluk desteğine sahip modelleri önceliklendirin. Q4_K_M gibi kantile edilmiş sürümler en iyi fiyat-performans oranını sunar. Bellek kullanımını %70 oranında azaltırken modelin zekasının çoğunu korurlar. Bu, daha büyük modelleri tüketici sınıfı GPU'larda çalıştırmanıza olanak tanır.

  • 7B Parametreli Modeller: Tek GPU kurulumları için idealdir. Hızlı yanıt süreleri ve düşük gecikme süresi.
  • 13B-20B Parametreli Modeller: Daha iyi akıl yürütme ve talimat izleme. Önemli VRAM veya küme dağıtımı gerektirir.

Quantization yöntemini her zaman doğrulayın. GGUF formatı yerel çıkarım için standarttır. Q2_K'den Q8_0'a kadar çeşitli quantization seviyelerini destekler. Daha düşük quantization bellek tasarrufu sağlar ancak karmaşık akıl yürütme görevlerinde artefaktlara yol açabilir.

Uzun form üretim için bağlam pencerelerini optimize etme

Bağlam pencerelerini optimize etmek, istem ve tamamlama belirteci limitlerinin dikkatli yönetilmesini gerektirir. Ollama, güncel sürümlerde 128K belirtece kadar bağlam pencerelerini destekler. Ancak donanım kısıtlamaları ve gecikme ödemleri nedeniyle etkili bağlam genellikle daha küçüktür.

Bağlam uzunluğunu API isteklerinde açıkça ayarlayın. Bu, modelin önemli talimatları kısaltmasını veya önceki konuşma adımlarını takip etmeyi bırakmasını önler. Daha büyük bir bağlam penceresi, bellek kullanımını doğrusal olarak artırır. 32K belirteci üzeri genişletme sırasında GPU bellek kullanımını yakından izleyin.

Uzun formatlı üretim için parçalama stratejilerini düşünün. Büyük belgeleri modele geçirmeden önce daha küçük parçalara bölün. Bu, bağlam taşma riskini azaltır ve yanıt kalitesini artırır. Ardından çıktıları istemci tarafında birleştirebilirsiniz.

Şu num_ctx bağlam penceresi boyutunu kontrol eden parametre. Varsayılan değer genellikle 2048 tokendir. Bunu 8192 veya 32768'e çıkarmak daha derin konuşma geçmişine olanak tanır. Donanımınızın artan bellek yükünü yönetebildiğinden emin olun.

Üretim ortamlarında akış gecikmesini işleme

Akış gecikmesini işleme, istemcinizin tokenları oluşturulurken almaları için yapılandırılmasını gerektirir. Akış, ilerlemeyi hemen göstererek daha iyi bir kullanıcı deneyimi sağlar. Ayrıca ilk token süresi algısını hızlandırır.

API çağrılarınızda stream parametresini true olarak ayarlayarak akış özelliğini etkinleştirin. API, her biri kısmi yanıt içeren bir dizi JSON nesnesi döndürür. Yüksek işleme kapasitesini korumak için bu parçaları eşzamansız olarak işleyin.

Token üretim hızını izleyin. Tipik bir yerel GPU saniyede 50-100 token üretebilir. Bu, bulut API'lerinden daha yavaştır ancak daha düşük gecikme süresi ve gizlilik sunar. Arayüzünüzü bu hızı yansıtacak şekilde ayarlayın. Tam bir yanıt için bekleme ima eden döner animasyonlardan kaçının.

Zaman aşımı mekanizmaları uygulayın. Akış bağlantısı takılırsa, bağlantıyı kapatın ve yeniden deneyin. Bu, uygulamanızdaki kaynak sızıntılarını önler. Yüksek yük dönemlerinde sunucuyu aşırı yüklememek için geriye doğru artan gecikme (exponential backoff) kullanarak yeniden denemeler yapın.

Eşzamanlılığı ve hız sınırlarını etkili bir şekilde yönetme

Eşzamanlılık yönetimi, paralel istekleri mevcut GPU belleği ile dengelemeyi gerektirir. Ollama varsayılan olarak istekleri sıralı olarak işler. Eşzamanlı istekler, doğru yapılandırılmadığında artan gecikmeye veya bellek hatasına neden olabilir.

Birden fazla isteği verimli bir şekilde yönetmek için bir bağlantı havuzu kullanın. Eşzamanlı bağlantı sayısını GPU'nuzun kapasitesine göre sınırlayın. Tek bir GPU, tipik olarak 7B boyutundaki bir model için 2-4 eşzamanlı isteği işleyebilir. Daha büyük modeller daha az eşzamanlı istek gerektirebilir.

İstemci tarafında hız sınırlaması uygulayın. Bu, ani trafik artışlarının yerel sunucuyu aşırı yüklemesini önler. Donanım özelliklerinize göre saniyedeki maksimum istek (RPS) sınırını ayarlayın. GPU kullanımını izleyin ve mümkünse limiti dinamik olarak ayarlayın.

Yüksek eşzamanlılık senaryoları için bir kuyruk sistemi kullanmayı göz önünde bulundurun. İstekler sırayla işlenir, kaynaklara adil erişim sağlar. Bu, daha yavaş isteklerin açlık çekmesini önler ve tutarlı performansı korur.

Token kullanımının izlenmesi ve maliyet etkinliği

Token kullanımının izlenmesi, kaynak tahsisinin optimize edilmesine ve donanım maliyetlerinin tahmin edilmesine yardımcı olur. Girdi ve çıktı tokenlerini ayrı ayrı takip edin. Bu veriler hangi istemlerin pahalı olduğunu ve hangi modellerin en verimli olduğunu ortaya çıkarır.

İstek başına maliyeti, token sayılarını donanım aşınma oranınızla çarparak hesaplayın. Bu size operasyonel giderler için hassas bir rakam verir. Yerel dağıtımı haklı çıkarmak için bunu bulut API maliyetleriyle karşılaştırın.

  • Girdi Tokenleri: İstem ve sistem talimatlarınızdaki karakterleri sayın.
  • Çıktı Tokenları: Üretimi izleyin. Daha kısa yanıtlar daha ucuz ve hızlıdır.
  • Toplam Token: Girdi ve çıktının toplamı. Bütçe yapmak için bunu kullanın.

İstemleri iyileştirerek token kullanımını optimize edin. Gereksiz sözlülüğü kaldırın. Girdi tokenlarını azaltmak için kısa talimatlar kullanın. Maliyetleri kontrol etmek ve hızı artırmak için max_tokens parametrelerini kullanarak çıktı uzunluğunu sınırlayın.

OpenAI uyumlu istemciler ile Entegrasyon

OpenAI uyumlu istemcilerle entegrasyon, mevcut kütüphaneleri (örneğin openai-python ou langchain. Ollama'nın API'si, OpenAI sohbet tamamlama uç noktasını taklit edecek şekilde tasarlanmıştır. Bu uyumluluk geliştirme süresini önemli ölçüde azaltır.

Temel URL'yi yerel Ollama örneğinize ayarlayın. Tipik olarak bu http://localhost:11434/v1API anahtarını şu şekilde yapılandırın, ollama veya kurulumunuza bağlı olarak boş bırakın. İstemci kütüphanesi geri kalanını halledecektir.

Basit bir sohbet isteğiyle entegrasyonu test edin. Streaming'in doğru çalıştığını doğrulayın. Model adlarının Ollama örneğinizde mevcut olanlarla eşleştiğini kontrol edin. Mevcut modelleri listelemek için /api/tags endpoint.

Hataları zarifçe yönetin. Ollama standart HTTP hata kodları döndürür. Bu hataları ayrıştırarak kullanıcılara anlamlı geri bildirim sağlayın. Hata ayıklama amacıyla ayrıntılı hata mesajlarını günlüğe kaydedin.

Yaygın Ollama API hatalarında sorun giderme

Yaygın Ollama API hatalarında sorun giderme, ağ bağlantısını, model erişilebilirliğini ve parametre geçerliliğini kontrol etmeyi içerir. Yaygın hatalar arasında eksik modeller için 404 Not Found ve GPU sorunları için 500 Internal Server Error yer alır.

Model adının doğru olduğunu doğrulayın. Ollama büyük/küçük harfe duyarlıdır. Kullanın ollama list kullanılabilir modelleri görmek için. Modelin çıkarım için çekildiğinden ve hazır olduğundan emin olun.

GPU bellek kullanımını kontrol et. Bağlam pencereleri çok büyük olduğunda bellek yetersizliği hataları yaygındır. Azalt num_ctx veya daha küçük bir modele geçin. Bellek kullanımını nvtop ou nvidia-smi.

API istek yüklerini gözden geçirin. Geçersiz JSON veya eksik gerekli alanlar 400 Bad Request hatalarına neden olur. Göndermeden önce yük yapınızı doğrulayın. Sözdizimi hatalarını erken yakalamak için bir JSON linter kullanın.

SSS

Bir uncensored LLM'i en uygun şekilde yerel olarak nasıl çalıştırırım?

En ucuz yol, Q4_K_M gibi kantile edilmiş GGUF modellerini kullanmaktır. Bunlar, yüksek kaliteyi korurken bellek gereksinimlerini %70 oranında azaltır. Bunları yalnızca 6GB VRAM gibi düşük donanımlı tüketici GPU'larında çalıştırabilirsiniz. Bulut API'lerine kıyasla donanım maliyetlerini ve elektrik kullanımını minimize eder.

Ollama, akış yanıtlarını (streaming responses) destekliyor mu?

Evet, Ollama /api/chat uç noktası üzerinden akışı destekler. Belirteçler oluşturuldukça almak için stream parametresini true olarak ayarlayın. Bu, metni gerçek zamanlı göstererek kullanıcı deneyimini iyileştirir. Ayrıca ilk belirteç süresi algısını hızlandırır.

Yerel çıkarım ile hız sınırlarını nasıl yönetebilirim?

Yerel çıkarımda bulut API'lerindeki gibi katı hız sınırları yoktur. Ancak GPU'nuzun hesaplama kapasitesiyle sınırlı olursunuz. GPU kullanımını izleyin ve eşzamanlılığı buna göre ayarlayın. Donanımınızı aşırı yüklemeden birden fazla isteği verimli bir şekilde yönetmek için bir bağlantı havuzu kullanın.

OpenAI SDK'larını Ollama ile kullanabilir miyim?

Evet, Ollama OpenAI uyumludur. Base URL'yi yerel örneğinize ayarlayarak resmi OpenAI Python SDK'sını kullanabilirsiniz. API anahtarını 'ollama' olarak yapılandırın veya boş bırakın. Bu, LangChain veya LlamaIndex gibi mevcut kütüphaneleri önemli kod değişiklikleri olmadan kullanmanızı sağlar.

API anahtarınızı şimdi edinin

Kaydolun, anahtarınızı kopyalayın ve uç nokta adresini işaret edin. İşte gereken tek şey.

Deneme kredisi ile deneBelgelere göz atın