Last chance! 50% off DataCamp Premium
Sale ends in
Büyük dil modellerinin ortaya çıkışı, OpenAI'nin GPT-3.5 ve GPT-4 gibi teknolojilerin gücünü çeşitli uygulamalara taşıyarak sektörleri dönüştürdü. Ancak yüksek maliyet ve veri gizliliği endişeleri, potansiyel benimseyicileri sıklıkla caydırıyor. Tam da burada Vicuna-13B gibi açık kaynaklı modeller devreye giriyor; benzer performansı, hassas bilgiler için ciddi maliyet ve risk olmadan sunuyorlar.
GPT-3.5 ve GPT-4 hakkında daha fazla bilgi edinmek için, OpenAI Python paketiyle ChatGPT ile programatik olarak nasıl sohbet edileceğini anlamanıza yardımcı olacak Python'da OpenAI API'si üzerinden GPT-3.5 ve GPT-4 Kullanımı eğitimimiz iyi bir başlangıç noktasıdır.
Vicuna-13B, ShareGPT'den toplanan, kullanıcıların paylaştığı sohbetlerle LLaMa 13B modelinin ince ayarından eğitilmiş, açık kaynaklı bir sohbet modelidir.
Yargıç olarak GPT-4'ün kullanıldığı ön değerlendirme, Vicuna-13B'nin ChatGPT ve Google Bard kalitesinin %90'ından fazlasına ulaştığını ve ardından LLaMa ve Alpaca gibi diğer modelleri vakaların %90'ından fazlasında geride bıraktığını gösterdi. Genel ince ayar ve değerlendirme iş akışı aşağıda gösterilmiştir:

Vicuna-13B ince ayar ve değerlendirme iş akışı (kaynak)
Bu, Vicuna-13B'nin gücünü ortaya koysa da modelin kendi sınırlamaları vardır ve matematik ile akıl yürütme gibi görevlere sınırlı değildir.

LMSYSORG görseli, yazar tarafından düzenlenmiştir
Akıllı bir sohbet botu olarak Vicuna-13B'nin uygulamaları sayısızdır ve bunlardan bazıları müşteri hizmetleri, sağlık, eğitim, finans ve seyahat/konaklama gibi farklı sektörlerde aşağıda gösterilmiştir.

Gerçek hayatta Vicuna-13'ün beş farklı uygulaması
Yukarıdaki liste kapsamlı değildir; NLP veri biliminin geleceğini nasıl değiştiriyor başlıklı makalemiz, NLP'nin veri bilimi ve makine öğreniminin geleceğini nasıl yönlendirdiğini, gelecekteki uygulamalarını, risklerini ve bunları nasıl azaltabileceğinizi ele alır.
Bu gerçek dünya uygulamalarına dayanarak, Vicuna-13B gibi yapay zekâ destekli sohbet ajanlarına büyük sektörlerde muazzam bir talep olduğundan şüphe yoktur.
Bu nedenle, giderek daha fazla şirket müşteri etkileşimlerini güçlendirmek, daha fazla potansiyel müşteri üretmek ve genel olarak yatırım getirisini artırmak için bu teknolojileri kullandıkça, bu tür bir teknolojiyi bir sektör iş akışına nasıl uygulayıp entegre edeceğini öğrenmek giderek daha önemli bir beceri haline geliyor.
İyi haber şu ki, bu eğitimin tüm amacı, Vicuna-13B modelini çalıştırmak ve bunu herhangi bir kurumsal bilgi sistemi iş akışına entegre edebilmek için gereken becerileri geliştirmenize yardımcı olmaktır.
Vicuna-13B modelinin çalıştırma sürecine dalmadan önce, aşağıdakileri içeren önkoşulları doğru şekilde kurmak önemlidir:
Bu gereksinimler karşılandıktan sonra, girdi ve çıktı biçimlerini daha iyi anlayacak ve modeli başarıyla çalıştırabileceğiz.
Vicuna-13B'nin girdi ve çıktı biçimini daha iyi anlamak, geliştiriciye modelin karar verme sürecini etkileyebilecek faktörler hakkında asgari bir bilgi sağlayabilir.
Bu bölümde, girdide gerekli temel parametreler ile Vicuna-13B modelinin beklenen çıktı biçimi açıklanmaktadır.

Uçtan uca iş akışının minimalist iş akışı
Yukarıdaki iş akışını anlayalım. Önce kullanıcı, yanıt almak istediği ana metinsel istek olan istemi içeren istediği girdiyi gönderir.
İstem, aşağıdaki ek parametrelerle birlikte sağlanır:
Yukarıdaki parametrelerle istem gönderildikten sonra, Vicuna-13B modeli gerekli çıktıyı üretmek için perde arkasında ilgili işlemleri gerçekleştirir ve bu, aşağıdaki şemaya karşılık gelir:
Girdi ve çıktıyı daha iyi anladığımıza göre, vicuna modelini başarıyla çalıştırmak için gereken ana kütüphanelerin belirlenmesine geçebiliriz.
Bu bölümdeki tüm komutlar bir terminalden çalıştırılır. conda create ifadesini kullanarak vicuna-env adlı bir sanal ortam oluşturuyoruz.
conda create --name vicuna-env
Sanal ortam başarıyla oluşturulduktan sonra, aşağıdaki gibi conda activate ifadesini kullanarak yukarıdaki sanal ortamı etkinleştiriyoruz:
conda activate vicuna-env
Yukarıdaki ifade, terminalin başında parantez içinde ortam değişkeninin adını aşağıdaki gibi göstermelidir:

Etkinleştirmeden sonra sanal ortamın adı
Yukarıdaki kütüphaneler iki şekilde kurulabilir. İlki, her kütüphane için tek tek pip install çalıştırmaktır; çok sayıda kütüphane ile uğraşırken bu zaman alıcıdır ve endüstri düzeyinde çalışırken optimal değildir.
İkincisi en iyi seçenektir ve gerekli her bir kütüphaneyi içeren bir requirements.txt dosyası kullanır. Aşağıda requirements.txt dosyasının içeriği ve tek bir pip install komutuyla kurulum yer almaktadır.
# Content of the requirements.txt file
llama-cpp-python==0.1.48
fastapi
uvicorn[standard]
Üç kütüphanenin tamamı aşağıdaki şekilde kurulabilir:
pip install -r requirements.txt
Hugging Face platformundan, aşağıda gösterildiği gibi Vicuna model ağırlıklarını indirebiliriz:

Hugging Face'ten Vicuna-13B ağırlığını indirmek için iki ana adım
Kodun daha iyi organize edilmesi için, indirilen modelin ağırlığını yeni bir model klasörüne taşıyabiliriz.
Modeli komut satırı üzerinden çalıştırmak için tüm önkoşullar karşılanmış olsa da, modele arayüz sağlayan bir API dağıtmak daha pratik bir yaklaşımdır. Bu, modeli daha geniş bir kullanıcı kitlesi için kolayca erişilebilir kılacaktır.
Bu seviyeye ulaşmak için aşağıdaki adımlara ihtiyacımız var:
Kaynak kodun genel yapısı aşağıda verilmiştir; tam kod GitHub'da mevcuttur.
------ model
|------- ggml-vicuna-13b-4bit.bin
------ requirements.txt
------ vicuna_app.py
ggml-vicuna-13b-4bit.bin, model klasöründeki indirilen model ağırlığıdırrequirements.txt, modeli çalıştırmak için gerekli bağımlılıkları içerirvicuna_app.py, bu bölümün ana odağı olan API'yi oluşturmak için Python kodunu içerir.Bizim durumumuzda aşağıdaki iki ana rota gereklidir. Bundan önce, ilgili kütüphaneleri içe aktarmamız, modeli yüklememiz ve FastAPI modülünün bir örneğini oluşturmamız gerekir.
# Import the libraries
from fastapi import FastAPI, HTTPException
from llama_cpp import Llama
# Load the model
vicuna_model_path = "./model/ggml-vicuna-13b-4bit.bin"
vicuna_model = Llama(model_path=vicuna_model_path)
app = FastAPI()
"/” rotası, parametre almayan home() işlevi aracılığıyla “Message”: “Welcome to the Vicuna Demo FastAPI” biçimindeki JSON'u döndürür.# Define the default route
@app.get("/")
def home():
return {"Message": "Welcome to the Vicuna Demo FastAPI"}
/vicuna_says” kullanıcının istemini parametre olarak alan ve Vicuna modelinin sonucunu ve bazı ek metaverileri içeren bir JSON yanıtı döndüren answer_prompt() işlevini tetiklemekten sorumludur.@app.post("/vicuna_says")
def answer_prompt(user_prompt):
if (not (user_prompt)):
raise HTTPException(status_code=400,
detail="Please Provide a valid text message")
response = vicuna_model(user_prompt)
return {"Answer": response}
Son olarak, vicuna_app.py dosyasının konumundan komut satırında aşağıdaki komutla API'yi çalıştırabiliriz.
uvicorn vicuna_app:app --reload
uvicorn, unicorn sunucusunu başlatır.vicuna_app: python vicuna_app.py'ye karşılık gelir. ":" işaretinin solundaki kısımdır.app: vicuna_app.py dosyası içinde app = FastAPI() ifadesiyle oluşturulan nesneye karşılık gelir. Dosyanın adı main.py olsaydı komut uvicorn main:app --reload olurdu.--reload: herhangi bir kod değişikliğinden sonra sunucuyu yeniden başlatmak için kullanılan bir seçenektir. Bunun yalnızca geliştirme aşamasında, dağıtım aşamasında değil, kullanılacağını unutmayın.Önceki komutu çalıştırmaktan elde ettiğimiz sonuç aşağıdadır; sunucunun yerel bilgisayarda 8000 portunda çalıştığını görebiliriz (http://127.0.0.1:8000)

Yerel makinede çalışan API'nin URL'si
Varsayılan rotaya erişmek basittir. Herhangi bir tarayıcıya aşağıdaki URL'yi yazmanız yeterlidir.

Varsayılan rotadan gelen yanıt
Şimdi ilginç bir kısım. http://127.0.0.1:8000/docs URL'si, API ile etkileşim kurmak için eksiksiz bir pano sağlar ve sonuç aşağıdadır.

İki rotanın görsel gösterimi
Önceki görselden, yeşil kutudaki /vicuna_says öğesini seçtiğimizde, aşağıda gösterildiği gibi API'mizle etkileşime geçmek için eksiksiz bir kılavuz elde ederiz.

Kullanıcının istemini yürütmenin üç ana adımı
Sadece Try it out sekmesini seçin ve tahmin almak istediğiniz mesajı text_message alanına girin.
Execute düğmesini seçtikten sonra sonunda aşağıdaki sonucu elde ederiz.

Vicuna modelinin kullanıcının sorgusuna sunucu yanıtı
Vicuna modelinin yanıtı "text" alanında sağlanır ve sonuç oldukça etkileyici görünüyor.
Modelin kullanıldığı sürüm, yanıtın oluşturulma tarihi, istemdeki belirteç sayısı ve yanıttaki belirteç sayısı gibi ek metaveriler de sağlanır.
Böylesine güçlü bir modelin dağıtımı, kullanıcı deneyimini ve operasyonel verimliliği aşağıdakilerle sınırlı olmamak üzere çeşitli dikkat çekici şekillerde artırır:
Genel olarak, dağıtım vicuna-13B modelinin daha erişilebilir, güvenilir ve çok yönlü kullanımını kolaylaştırır ve onu çeşitli kullanıcılar ve uygulamalar için daha geniş ölçekte uygulanabilir kılar.
Vicuna-13B modeliyle çalışırken, bazı en iyi uygulamalar ve ipuçları geliştiricilerin deneyimlerini ve sonuçlarını optimize etmelerine ve yaygın sorunları gidermelerine yardımcı olabilir.
Bu en iyi uygulamaları ve ipuçlarını izleyerek, Vicuna-13B modeliyle çalışırken daha sorunsuz bir deneyim ve daha iyi sonuçlar elde edilebilir.

Vicuna-13B modelinin performansını optimize etmek için 4 ipucu
Performans optimizasyonundan geçiş yaparken, Vicuna-13B kullanımında ortaya çıkabilecek yaygın sorunları gidermede yetkin olmak da önemlidir; aşağıda dört örnek verilmiştir:

Bazı yaygın sorun giderme konuları
Özetle, bu makale Vicuna-13B modelinin kurulumu ve kullanımı hakkında kapsamlı bir genel bakış sundu. Modeli başarıyla çalıştırmak için gerekli LLaMa ağırlıklarının edinilmesi de dahil olmak üzere gerekli donanım ve yazılım önkoşullarını ele aldık.
Çalışma ortamının kurulumu, gerekli yazılımın yüklenmesi ve Vicuna-13B'nin ağırlıklarının ayarlanmasına ilişkin ayrıntılı talimatlar verildi; dil modellerinde ağırlıkların önemine vurgu yapıldı.
Ayrıca, Vicuna-13B'nin paketlenmesi ve dağıtımına değinerek, dağıtımın bir web arayüzü ve API olarak kullanımını nasıl kolaylaştırdığını vurguladık.
Son olarak, Vicuna-13B ile etkileşim kurmaya yönelik pratik içgörüler, yeteneklerine ilişkin örnekler ve performansını optimize etmeye ve yaygın sorunları gidermeye yönelik en iyi uygulamalar da paylaşıldı.
Yapay zekâ ve makine öğrenmesinin dünyasına daha derinlemesine dalmaya hazır mısınız? Yapay zekâ profesyonellerinin kullandığı güçlü derin öğrenme çerçevesiyle becerilerinizi geliştirin. Deep Learning with PyTorch kursuna bugün katılın.
Bilgisini paylaşmaktan ve başkalarına katkı sunmaktan keyif alan, çok yönlü bir veri bilimci olan Zoumana, YouTube’da içerik üretiyor ve Medium’da önde gelen teknoloji yazarları arasında yer alıyor. Konuşmaktan, kod yazmaktan ve öğretmekten büyük zevk alıyor. Zoumana’nın iki yüksek lisans derecesi bulunuyor: İlki Fransa, Paris’te Makine Öğrenmesi odaklı Bilgisayar Bilimleri; ikincisi ise ABD’de Texas Tech University’den Veri Bilimi. Kariyerine Fransa’da Groupe OPEN’da Yazılım Geliştirici olarak başladı; ardından IBM’de Makine Öğrenmesi Danışmanı olarak çalıştı ve sigorta şirketleri için uçtan uca yapay zeka çözümleri geliştirdi. Paris ve Montreal merkezli ilk Sürdürülebilir YZ girişimi olan Axionable’a katıldı. Burada Veri Bilimci olarak görev yaptı ve çoğunlukla NLP kullanım örnekleri olmak üzere, Fransa, Montreal, Singapur ve İsviçre’den müşteriler için YZ ürünleri hayata geçirdi. Ayrıca zamanının %5’ini Araştırma ve Geliştirme’ye ayırdı. Hâlihazırda IFC – Dünya Bankası Grubu’nda Kıdemli Veri Bilimci olarak çalışmaktadır.
Yapay Zekâ Yolculuğunuza Bugün Başlayın!
Kurs
Program
Kurs

blog
Abid Ali Awan
14 dk.
blog
Dario Radečić
15 dk.
Eğitim
Adel Nehme
Eğitim
Kurtis Pykes
8 dk.