Yüksek Lisans Yürütmesini Basitleştirmek için Llamafiles'ı Kullanmak

Yüksek Lisans Yürütmesini Basitleştirmek için Llamafiles'ı Kullanmak

Kaynak Düğüm: 3068075

Giriş

Büyük Dil Modellerini çalıştırmak her zaman sıkıcı bir süreç olmuştur. Bu LLM'leri yüklemek veya Python'u indirmek ve çok sayıda Pytorch ve HuggingFace Kütüphanesi indirerek bir ortam oluşturmak için bir dizi 3. parti yazılım indirilmesi gerekir. Pythonic Yaklaşımından geçiyorsanız, modeli indirip çalıştırmak için kod yazma sürecinden geçmek gerekir. Bu kılavuz, bu Yüksek Lisans Programlarını yürütmek için daha kolay bir yaklaşıma bakacaktır.

Öğrenme hedefleri

  • Geleneksel Yüksek Lisans uygulamasının zorluklarını anlayın
  • Llamafiles'ın yenilikçi konseptini kavrayın
  • Kendi Llamafile yürütülebilir dosyalarınızı kolaylıkla indirip çalıştırmayı öğrenin
  • Nicelenmiş LLM'lerden Llam dosyaları oluşturmayı öğrenme
  • Bu yaklaşımın sınırlamalarını tanımlayın

Bu makale, Veri Bilimi Blogatonu.

İçindekiler

Büyük Dil Modelleriyle İlgili Sorunlar

Büyük Dil Modelleri (LLM'ler), bilgisayarlarla etkileşimde bulunma, metin oluşturma, dilleri çevirme, farklı türde yaratıcı içerik yazma ve hatta sorularınızı bilgilendirici bir şekilde yanıtlama şeklimizde devrim yarattı. Ancak bu güçlü modelleri bilgisayarınızda çalıştırmak çoğu zaman zorlayıcı olmuştur.

Yüksek Lisans'ları çalıştırmak için Python'u ve birçok AI bağımlılığını indirmemiz gerekiyor ve bunun da ötesinde, bunları indirip çalıştırmak için kod yazmamız gerekiyor. Büyük Dil Modelleri için kullanıma hazır kullanıcı arayüzlerini kurarken bile, kolayca yanlış gidebilecek birçok kurulum içerir. Bunları yürütülebilir bir dosya gibi kurmak ve çalıştırmak basit bir süreç olmadı.

Lama dosyaları nedir?

Llama dosyaları, popüler açık kaynaklı büyük dil modelleriyle kolayca çalışacak şekilde oluşturulmuştur. Bunlar tek dosyalı yürütülebilir dosyalardır. Tıpkı bir LLM'yi indirip yürütülebilir bir dosya gibi çalıştırmaya benzer. Kütüphanelerin ilk kurulumuna gerek yoktur. Tüm bunlar Llama.cpp ve LLM'lerin farklı işletim sistemlerinde çalışmasını sağlayan kozmopolit libc sayesinde mümkün oldu.

Llama.cpp, Georgi Gerganov tarafından Büyük Dil Modellerini nicelenmiş formatta çalıştırmak ve böylece bir CPU üzerinde çalışabilmek için geliştirildi. Llama.cpp, tüketici donanımında nicelenmiş LLM'leri çalıştırmamızı sağlayan bir C kütüphanesidir. Öte yandan kozmopolit libc, bir tercümana ihtiyaç duymadan herhangi bir işletim sistemi (Windows, Mac, Ubuntu) üzerinde çalışabilen bir ikili dosya oluşturan başka bir C kütüphanesidir. Dolayısıyla Llamafile bu kitaplıkların üzerine inşa edilmiştir ve bu da tek dosyalı yürütülebilir LLM'ler oluşturmasına olanak tanır

Mevcut modeller GGUF nicemlenmiş formattadır. GGUF, llama.cpp'nin yaratıcısı Georgi Gerganov tarafından geliştirilen Büyük Dil Modelleri için bir dosya formatıdır. GGUF, Büyük Dil Modellerini CPU ve GPU'larda etkili ve verimli bir şekilde depolamak, paylaşmak ve yüklemek için kullanılan bir formattır. GGUF, modelleri orijinal 16 bit kayan noktalarından 4 bit veya 8 bit tam sayı formatına sıkıştırmak için bir niceleme tekniği kullanır. Bu nicelenmiş modelin ağırlıkları bu GGUF formatında saklanabilir

Bu, 7 Milyar Parametreli modellerin 16 GB VRAM'e sahip bir bilgisayarda çalışmasını kolaylaştırır. Büyük Dil Modellerini GPU gerektirmeden çalıştırabiliriz (ancak Llamafile, LLM'leri GPU üzerinde çalıştırmamıza bile izin verir). Şu anda LlaVa, Mistral ve WizardCoder gibi popüler Açık Kaynak Büyük Dil Modellerinin lama dosyaları indirilmeye ve çalıştırılmaya hazır.

Tek Atışlı Çalıştırılabilirler

Bu bölümde multimodal bir LlaVa Llamafile indirip çalıştırmayı deneyeceğiz. Burada GPU ile çalışmayacağız ve modeli CPU üzerinde çalıştırmayacağız. Tıklayarak resmi Llamafile GitHub Deposuna gidin. okuyun ve LlaVa 1.5 Modelini indiriyorum.

Tek seferlik yürütülebilir dosyalar | Lama dosyaları

Modeli İndir

Yukarıdaki resimde mevcut tüm modeller adları, boyutları ve indirilebilir bağlantılarıyla birlikte gösterilmektedir. LlaVa 1.5 sadece 4GB civarındadır ve görüntüleri anlayabilen güçlü bir çoklu modeldir. İndirilen model, 7 bit olarak nicelenmiş 4 Milyar Parametreli bir modeldir. Modeli indirdikten sonra indirildiği klasöre gidin.

"

Daha sonra CMD'yi açın, bu modelin indirildiği klasöre gidin, indirdiğimiz dosyanın adını yazın ve enter tuşuna basın.

llava-v1.5-7b-q4.llamafile
"

Mac ve Linux Kullanıcıları için

Mac ve Linux'ta varsayılan olarak bu dosyanın yürütme izni kapalıdır. Bu nedenle, aşağıdaki komutu çalıştırarak yapabileceğimiz lamafile için yürütme iznini sağlamamız gerekiyor.

chmod +x llava-v1.5-7b-q4.llamafile

Bu, llava-v1.5-7b-q4.llamafile dosyasının yürütme iznini etkinleştirmek içindir. Ayrıca dosyayı Mac ve Linux'ta çalıştırmak için dosya adının önüne “./” ekleyin. Enter anahtar kelimesine bastıktan sonra model sistem RAM’ına itilecek ve aşağıdaki çıktıyı gösterecektir.

Mac ve Linux Kullanıcıları İçin | Lama dosyaları

Daha sonra tarayıcı açılacak ve model http://127.0.0.1:8080/ URL'sinde çalışacaktır.

"
"

Yukarıdaki resimde varsayılan Bilgi İstemi, Kullanıcı Adı, LLM Adı, Bilgi İstemi Şablonu ve Sohbet Geçmişi Şablonu gösterilmektedir. Bunlar yapılandırılabilir, ancak şimdilik varsayılan değerlerle gideceğiz.

Aşağıda Top P, Top K, Temperature ve diğerleri gibi yapılandırılabilir LLM hiperparametrelerini bile kontrol edebiliriz. Bunlar bile şimdilik varsayılan olmalarına izin vereceğiz. Şimdi bir şeyler yazalım ve gönder'e tıklayalım.

"

Yukarıdaki resimde bir mesaj yazdığımızı ve hatta bir yanıt aldığımızı görebiliyoruz. Bunun altında, saniyede yaklaşık 6 jeton aldığımızı kontrol edebiliriz; bu, tamamen CPU üzerinde çalıştırdığımızı düşünürsek, iyi bir jeton/saniyedir. Bu sefer bir Image ile deneyelim.

CPU | MinikLlama

Her ne kadar %100 doğru olmasa da, model neredeyse çoğu şeyi doğrudan Görüntüden alabiliyordu. Şimdi LlaVa'nın sohbet geçmişini hatırlayıp hatırlamadığını test etmek için çok turlu bir görüşme yapalım.

Yukarıdaki resimde LlaVa LLM'nin konvoyu iyi bir şekilde sürdürebildiğini görebiliyoruz. Tarih konuşmasını alıp ardından yanıtları üretebilir. Oluşturulan son yanıt tam olarak doğru olmasa da, onu oluşturmak için önceki görüşmeyi topladı. Böylece, bir lama dosyası indirebilir ve bunları yazılım gibi çalıştırabilir ve indirilen modellerle çalışabiliriz.

Llamafiles oluşturma

Resmi GitHub'da zaten mevcut olan bir Llamafile demosunu gördük. Çoğu zaman bu modellerle çalışmak istemeyiz. Bunun yerine Büyük Dil Modellerimizin tek dosyalı yürütülebilir dosyalarını oluşturmak istiyoruz. Bu bölümde, tek dosyalı yürütülebilir dosyalar, yani nicelenmiş LLM'lerden lama dosyaları oluşturma sürecini inceleyeceğiz.

Bir Yüksek Lisans Seçin

İlk önce Büyük Dil Modeli seçerek başlayacağız. Bu demo için TinyLlama'nın nicelenmiş bir versiyonunu seçeceğiz. Burada TinyLlama'nın 8-bit nicelenmiş GGUF modelini indireceğiz (Tıklayabilirsiniz) okuyun HuggingFace'e gidip Modeli indirmek için)

MinikLlama

En Son Llamafile'ı İndirin

Resmi GitHub bağlantısından en son lamafile zip dosyası indirilebilir. Ayrıca zip dosyasını indirin ve zip dosyasını çıkartın. Bu makalenin güncel sürümü lama file-0.6'dır. Lama çıkarma işlemi sonrasında file klasörünün bulunduğu bin klasörü aşağıdaki resimdeki gibi dosyaları içerecektir.

"

Şimdi indirilen TinyLlama 8-bit nicelenmiş modeli bu bin klasörüne taşıyın. Tek dosyalı yürütülebilir dosyalar oluşturmak için llamafile'ın bin klasöründe bir .args dosyası oluşturmamız gerekir. Bu dosyaya aşağıdaki içeriği eklememiz gerekiyor:

-m
tinyllama-1.1b-chat-v0.3.Q8_0.gguf
--host
0.0.0.0
...
  • İlk satır -m bayrağını gösterir. Bu, lama dosyasına bir modelin ağırlıklarını yüklediğimizi söyler.
  • İkinci satırda ise indirdiğimiz .args dosyasının bulunduğu dizinde yani lama dosyasının bin klasöründe bulunan model ismini belirtiyoruz.
  • Üçüncü satırda çalıştırılabilir dosyayı çalıştırdığımızı ve onu bir web sunucusunda barındırmak istediğimizi belirten host flag'ını ekliyoruz.
  • Son olarak son satırda hosting almak istediğimiz localhost’a eşlenen adresten bahsediyoruz. Bunu takip eden üç nokta, oluşturulduktan sonra lama dosyamıza argümanları iletebileceğimizi belirtir.
  • Bu satırları .args dosyasına ekleyin ve kaydedin.

Windows Kullanıcıları için

Şimdi bir sonraki adım Windows kullanıcıları içindir. Windows üzerinde çalışıyorsak, Linux'u WSL aracılığıyla kurmamız gerekiyordu. Değilse tıklayın okuyun Linux'u WSL aracılığıyla kurma adımlarını gözden geçirmek için. Mac ve Linux'ta herhangi bir ek adıma gerek yoktur. Şimdi terminaldeki llamafile klasörünün bin klasörünü açın (Windows üzerinde çalışıyorsanız bu dizini WSL'de açın) ve aşağıdaki komutları yazın.

cp llamafile tinyllama-1.1b-chat-v0.3.Q8_0.llamafile

Burada Tinyllama-1.1b-chat-v0.3.Q3_0.llamafile adında yeni bir dosya oluşturuyoruz; yani .llamafile uzantılı bir dosya oluşturup llamafile dosyasını bu yeni dosyaya taşıyoruz. Şimdi bunu takiben bir sonraki komutu yazacağız.

./zipalign -j0 tinyllama-1.1b-chat-v0.3.Q8_0.llamafile tinyllama-1.1b-chat-v0.3.Q8_0.gguf .args

Burada GitHub'dan llamafile zip'i indirdiğimizde gelen zipalign dosyasıyla çalışıyoruz. Nicelenmiş TinyLlama'mızın lama dosyasını oluşturmak için bu komutla çalışıyoruz. Bu zipalign komutuna bir önceki adımda oluşturduğumuz Tinyllama-1.1b-chat-v0.3.Q8_0.llamafile dosyasını geçiyoruz, daha sonra Tinyllama-1.1b-chat-v0.3.Q8_0.llamafile dosyasını geçiyoruz. bin klasöründe bulunan modeli ve son olarak daha önce oluşturduğumuz .args dosyasını aktarıyoruz.

Bu sonunda tek dosya çalıştırılabilir Tinyllama-1.1b-chat-v0.3.Q8_0.llamafile dosyasını üretecek. Aynı sayfada olduğumuzdan emin olmak için bin klasörü artık aşağıdaki dosyaları içeriyor.

Yürütülebilir dosyalar | Lama dosyaları

Artık Tinyllama-1.1b-chat-v0.3.Q8_0.llama dosyasını daha önce yaptığımız gibi çalıştırabiliriz. Windows'ta .llama dosyasını .exe olarak yeniden adlandırabilir ve çift tıklatarak çalıştırabilirsiniz.

OpenAI Uyumlu Sunucu

Bu bölümde Llam dosyası aracılığıyla LLM'lerin nasıl sunucuya sunulacağı ele alınacaktır. Lama dosyasını çalıştırdığımızda tarayıcının açıldığını ve WebUI aracılığıyla LLM ile etkileşim kurabildiğimizi fark ettik. Temel olarak buna Büyük Dil Modelini barındırma adını veriyoruz.

Llamafile'ı çalıştırdığımızda, model PORT 8080'deki yerel ana bilgisayarda sunulduğu için ilgili LLM ile bir uç nokta olarak etkileşime girebiliriz. Sunucu, OpenAI API Protokolünü takip eder, yani OpenAI GPT Uç Noktasına benzer, böylece OpenAI GPT modeli ile Llamafile ile çalışan LLM arasında geçiş yapmak kolaydır.

Burada daha önce oluşturduğumuz TinyLlama llamafile dosyasını çalıştıracağız. Şimdi bunun localhost 8080 üzerinde çalışıyor olması gerekiyor. Şimdi bunu Python'daki OpenAI API'nin kendisi aracılığıyla test edeceğiz.

from openai import OpenAI
client = OpenAI(
    base_url="http://localhost:8080/v1", 
    api_key = "sk-no-key-required"
)
completion = client.chat.completions.create(
    model="TinyLlama",
    messages=[
        {"role": "system", "content": "You are a usefull AI 
        Assistant who helps answering user questions"},
        {"role": "user", "content": "Distance between earth to moon?"}
    ]
)
print(completion.choices[0].message.content)
  • Burada OpenAI kütüphanesi ile çalışıyoruz. Ancak OpenAI uç noktasını belirtmek yerine TinyLlama'mızın barındırıldığı URL'yi belirtiyoruz ve “sk-no-jeton gerekli” api_key için
  • Daha sonra müşteri TinyLlama uç noktamıza bağlanacaktır.
  • Artık OpenAI ile çalışma şeklimize benzer şekilde, kodu TinyLlama'mızla sohbet etmek için kullanabiliriz.
  • Bunun için birlikte çalışıyoruz. tamamlamaları OpenAI sınıfı. Yeni yaratıyoruz tamamlamaları ile .yaratmak() model adı ve mesajlar gibi ayrıntıları itiraz edin ve iletin.
  • Mesajlar, sistem, kullanıcı veya asistan olabilen rolümüze sahip olduğumuz ve içeriğe sahip olduğumuz bir sözlük listesi biçimindedir.
  • Son olarak yukarıdaki print ifadesi aracılığıyla oluşturulan bilgilere ulaşabiliriz.

Yukarıdakilerin çıktısını aşağıda görebilirsiniz.

Lama dosyaları | Çıktı

Bu şekilde lama dosyalarından yararlanabilir ve OpenAI API'sini çalıştırmayı seçtiğimiz lama dosyasıyla kolayca değiştirebiliriz.

Llamafile Sınırlamaları

Devrim niteliğinde olmasına rağmen, lama dosyaları hala geliştirilme aşamasındadır. Bazı sınırlamalar şunları içerir:

  • Sınırlı model seçimi: Şu anda tüm LLM'ler lama dosyaları biçiminde mevcut değildir. Mevcut önceden oluşturulmuş Llamafiles seçimi hala artıyor. Şu anda Llama dosyaları Llama 2, LlaVa, Mistral ve Wizard Coder için mevcuttur.
  • Donanım gereksinimleri: Yüksek Lisans'ları Llama dosyaları aracılığıyla bile çalıştırmak hala çok fazla hesaplama kaynağı gerektirir. Çalıştırılması geleneksel yöntemlere göre daha kolay olsa da, eski veya daha az güçlü bilgisayarların bunları sorunsuz bir şekilde çalıştırmak için yardıma ihtiyacı olabilir.
  • Güvenlik endişeleri: Güvenilmeyen kaynaklardan yürütülebilir dosyaların indirilmesi ve çalıştırılması, doğası gereği riskler taşır. Yani bu lama dosyalarını indirebileceğimiz güvenilir bir platform olmalı.

Llamafiles ve Geri Kalanlar

Llamafiles'tan önce Büyük Dil Modellerini çalıştırmanın farklı yolları vardı. Biri içinden geçti llama_cpp_python. Bu, Dizüstü Bilgisayarlar ve Masaüstü Bilgisayarlar gibi tüketici donanımlarında nicelenmiş Büyük Dil Modellerini çalıştırmamıza olanak tanıyan llama.cpp'nin Python sürümüdür. Ancak bunu çalıştırmak için Python'u ve hatta torch, huggingface, transformatörler ve daha pek çok derin öğrenme kütüphanesini indirip yüklememiz gerekiyor. Bundan sonra, modeli çalıştırmak için birçok satır kod yazmayı gerektirdi.

O zaman bile bazen bağımlılık sorunlarından (yani bazı kütüphanelerin gerekenden daha düşük veya daha yüksek sürümlere sahip olmasından) dolayı sorunlarla karşılaşabiliriz. Ve ayrıca şu da var: CTransformatörler nicelenmiş LLM'leri çalıştırmamızı sağlayan kütüphane. Bu bile llama_cpp_python için tartıştığımız sürecin aynısını gerektiriyor

Ve sonra, Ollama. Ollama, Büyük Dil Modellerini, özellikle nicelenmiş olanları kolayca yükleme ve çalıştırma konusundaki kullanım kolaylığı nedeniyle yapay zeka topluluğunda oldukça başarılı olmuştur. Ollama, LLM'ler için bir tür TUI'dir (Terminal Kullanıcı Arayüzü). Ollama ve Llamafile arasındaki tek fark paylaşılabilirliktir. Yani eğer istersem model.llamafile'imi herkesle paylaşabilirim ve onlar da herhangi bir ek yazılım indirmeden çalıştırabilirler. Ancak Ollama durumunda, diğer kişinin yalnızca Ollama yazılımını yüklediğinde veya yukarıdaki Python kütüphaneleri aracılığıyla çalıştırabileceği model.gguf dosyasını paylaşmam gerekiyor.

Kaynaklarla ilgili olarak, hepsi aynı miktarda kaynak gerektirir çünkü tüm bu yöntemler, nicelenmiş modelleri çalıştırmak için alttaki llama.cpp dosyasını kullanır. Bunlar arasında farkların olması sadece kullanım kolaylığı ile ilgilidir.

Sonuç

Llamafiles, LLM'lerin kolayca çalıştırılabilir hale getirilmesinde ileriye doğru atılan çok önemli bir adımı işaret ediyor. Kullanım kolaylığı ve taşınabilirliği, geliştiriciler, araştırmacılar ve sıradan kullanıcılar için bir olasılıklar dünyasının kapılarını açar. Sınırlamalar olsa da, lama dosyalarının LLM erişimini demokratikleştirme potansiyeli açıktır. İster uzman bir geliştirici ister meraklı bir acemi olun, Llamafiles yüksek lisans dünyasını keşfetmeniz için heyecan verici olanaklar sunar. Bu kılavuzda, Llamafiles'ı nasıl indireceğimize ve hatta nicelenmiş modellerimizle kendi Llamafile'larımızı nasıl oluşturacağımıza bir göz attık. . Hatta Llamafiles çalıştırılırken oluşturulan OpenAI uyumlu sunucuya da göz attık.

Önemli Noktalar

  • Llama dosyaları, büyük dil modellerinin (LLM'ler) çalıştırılmasını daha kolay ve daha kolay kullanılabilir hale getiren tek dosyalı yürütülebilir dosyalardır.
  • Karmaşık kurulum ve yapılandırma ihtiyacını ortadan kaldırarak kullanıcıların Python veya GPU gereksinimleri olmadan LLM'leri doğrudan indirip çalıştırmasına olanak tanır.
  • Llamafiles şu anda LlaVa, Mistral ve WizardCoder dahil olmak üzere sınırlı sayıda açık kaynaklı LLM için mevcuttur.
  • Uygun olmasına rağmen, Llamafile'ların, güvenilmeyen kaynaklardan yürütülebilir dosyaların indirilmesiyle ilgili donanım gereksinimleri ve güvenlik endişeleri gibi sınırlamaları vardır.
  • Bu sınırlamalara rağmen Llamafiles, geliştiriciler, araştırmacılar ve hatta sıradan kullanıcılar için LLM erişimini demokratikleştirmeye yönelik önemli bir adımı temsil ediyor.

Sıkça Sorulan Sorular

S1. Llamafiles kullanmanın faydaları nelerdir?

A. Llamafiles, geleneksel LLM yapılandırma yöntemlerine göre çeşitli avantajlar sağlar. Python yüklemenize veya GPU'nuza gerek olmadığından LLM'lerin kurulumunu ve yürütülmesini daha kolay ve hızlı hale getirirler. Bu, LLM'lerin daha geniş bir kitleye daha kolay ulaşmasını sağlar. Ek olarak, Llamafiles farklı işletim sistemlerinde çalışabilir.

Q2. Llamafiles'ın sınırlamaları nelerdir?

C. Llamafiles birçok fayda sağlarken bazı sınırlamalara da sahiptir. Llamafiles'ta bulunan Yüksek Lisans'ların seçimi geleneksel yöntemlere kıyasla sınırlıdır. Ek olarak, LLM'leri Llamafiles aracılığıyla çalıştırmak hala önemli miktarda donanım kaynağı gerektirir ve daha eski veya daha az güçlü bilgisayarlar bunu desteklemeyebilir. Son olarak, güvenilmeyen kaynaklardan yürütülebilir dosyaların indirilmesi ve çalıştırılmasıyla ilgili güvenlik endişeleri vardır.

S3. Llamafiles'ı kullanmaya nasıl başlayabilirim?

C. Llamafiles'ı kullanmaya başlamak için resmi Llamafile GitHub Deposunu ziyaret edebilirsiniz. Kullanmak istediğiniz LLM modelinin Llama dosyasını buradan indirebilirsiniz. Dosyayı indirdikten sonra doğrudan yürütülebilir bir dosya gibi çalıştırabilirsiniz.

S4. Kendi LLM modelimi Llamafiles ile kullanabilir miyim?

C. Hayır. Şu anda Llamafiles yalnızca belirli önceden oluşturulmuş modelleri desteklemektedir. Gelecek sürümler için kendi Llama dosyalarımızı oluşturmamız planlanıyor.

S5. Llamafiles'ın beklentileri nelerdir?

C. Llamafiles geliştiricileri, mevcut LLM modellerinin seçimini genişletmek, bunları daha verimli çalıştırmak ve güvenlik önlemlerini uygulamak için çalışıyor. Bu gelişmeler, Llamafiles'ı çok az teknik bilgisi olan daha fazla kişi için daha kullanılabilir ve güvenli hale getirmeyi amaçlıyor.

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

Zaman Damgası:

Den fazla Analitik Vidhya