Bu blog yazısında, MosaicML'in rakibi MPT-7B'yi kendi AWS SageMaker örneğinizde çalıştırma sürecinde size adım adım yol göstereceğim. ChatGPT ChatGPT'nin yetenekleri konusunda heyecanlı mısınız, ancak hassas verilerinizin OpenAI'ye ifşa edilmesi konusunda endişeleriniz mi var? Neyse ki kendi altyapınızda çalıştırabileceğiniz alternatifler var. Böyle bir alternatif, ChatGPT'nin rakibi olan MosaicML MPT-7b'dir ve bu blog yazısında bunu inceleyeceğiz. MosaicML ve MPT-7B'ye Giriş Yakın zamanda MosaicML, ChatGPT'nin sözde rakibi olan MPT-7B modeliyle makine öğrenimi topluluğunda ses getiriyor. Verdiği söze rağmen, bu modeli çalıştırmak, belgelerin az olması ve yoğun kaynak gereksinimleri nedeniyle göz korkutucu olabilir. Bununla birlikte, MPT-7B, yeni başlayanlar için uygun ve hızlı yineleme için son derece esnek bir ortam olan Jupyter dizüstü bilgisayardaki AWS SageMaker'da çalıştırılabilir. Bu kurulum, üretime geçmeye karar vermeden önce modelin fizibilitesini ve donanım gereksinimlerini test etmenize olanak tanır. Databricks tarafından 1,3 milyar dolara satın alınan MPT-7B'yi AWS SageMaker'da çalıştırma MPT-7B'yi AWS SageMaker'da bir Jupyter dizüstü bilgisayarda çalıştırmak çeşitli avantajlar sağlar. Yalnızca kullandığınız kadar ödeyip işiniz bittiğinde onu kapatmakla kalmaz, aynı zamanda modeli yeniden yüklemeye gerek kalmadan kodunuzun bazı bölümlerini kolayca yeniden çalıştırma yeteneği, yinelemeli geliştirme sırasında zaman tasarrufu sağlar. Ama dikkatli olun! Not defteri bulut sunucularınızı durdurmayı unutursanız ücretler hızla artabilir. Bu yöntem nispeten uygun olsa da dikkate almanız gereken bazı hususlar vardır. İlk olarak, modelin yüklenmesi yüksek performanslı bir GPU'da bile 20 dakikaya kadar sürebiliyor ve bu da bu işlemi biraz zaman alıcı hale getiriyor. Ayrıca işletme maliyeti saat başına en az 4$ olduğundan maliyet de dikkate alınması gereken bir faktördür. MPT-7B'yi en az bir örneğinde çalıştırmanız gerekir; daha küçük bir şey mümkün görünmüyor. SageMaker yerine EC2'yi tercih ederseniz bulut sunucusunu kullanmak için AWS'den izin istemeniz gerekir. p3.2xlarge p3.2xlarge Sonraki bölümlerde MPT-7B modelini kendi SageMaker jupyter dizüstü bilgisayarınızda nasıl çalıştıracağınızı adım adım anlatacağım: Adım 1 - SageMaker Konsolunu açın AWS Konsolunu çalıştırın ve SageMaker'ı arayın: 2. Adım - Bir not defteri örneği oluşturun Sol taraftaki menüden seçin: Notebook->Notebook örnekleri'ni düğmesini tıklayın: Not defteri örneği oluştur Bir örnek adı belirtin. bulut sunucusu tipini seçin. Ne yazık ki, kadar güçlü bir örneğin gerekli olduğu görülüyor, aksi takdirde örneğinizin belleği dolabilir veya en basit sorulara bile yanıt vermek çok fazla zaman alabilir. Ancak, bu örneğin saat başına yaklaşık 4 ABD Doları tutarında bir maliyete sahip olacağını lütfen unutmayın, bu nedenle kullanımınızı dikkatle izlemeniz önemlidir. m1.p3.2xlarge m1.p3.2xlarge Yeni bir IAM rolü oluşturun: Test ortamınızda özellikle hassas veriler yoksa erişim izni verebilirsiniz. Aksi halde daha açıklayıcı olmanız gerekir. Herhangi bir S3 klasörüne düğmesini tıklayın: Not defteri örneği oluştur Not defteri daha sonra durumunda olacaktır. Bu muhtemelen yaklaşık 10 dakika sürecektir: Beklemede Bu arada, AWS SageMaker örneğinin hazırlığı tamamlandıktan sonra yükleyebilmek için bir not defteri indireceğiz. 3. Adım - Not defterini indirin adresindeki dizüstü bilgisayara gidin ve indirin: AWS SageMaker.ipynb'de MPT-7B Bu not defterinde iki ana kod bloğunu göreceksiniz. İlk blok MPT-7B tokenizerını ve modelini yükler: from torch import cuda, bfloat16 from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig device = f'cuda:{cuda.current_device()}' if cuda.is_available() else 'cpu' tokenizer = AutoTokenizer.from_pretrained("mosaicml/mpt-7b-chat", trust_remote_code=True) config={"init_device": "meta"} model = AutoModelForCausalLM.from_pretrained("mosaicml/mpt-7b-chat", trust_remote_code=True, config=config, torch_dtype=bfloat16) print(f"device={device}") print('model loaded') Tokenizer, modele gönderilen soruyu kodlamak ve modelden gelen yanıtın kodunu çözmek için kullanılır. Ek olarak, modeli daha sonra kullanacak şekilde yapılandırabilmek için GPU'muzun cihaz özelliklerini de alıyoruz: import time from IPython.display import Markdown import torch from transformers import StoppingCriteria, StoppingCriteriaList # mtp-7b is trained to add "<|endoftext|>" at the end of generations stop_token_ids = [tokenizer.eos_token_id] # Define custom stopping criteria object. # Source: https://github.com/pinecone-io/examples/blob/master/generation/llm-field-guide/mpt-7b/mpt-7b-huggingface-langchain.ipynb class StopOnTokens(StoppingCriteria): def __call__(self, input_ids: torch.LongTensor,scores: torch.FloatTensor, **kwargs) -> bool: for stop_id in stop_token_ids: if input_ids[0][-1] == stop_id: return True return False stopping_criteria = StoppingCriteriaList([StopOnTokens()]) def ask_question(question, max_length=100): start_time = time.time() # Encode the question input_ids = tokenizer.encode(question, return_tensors='pt') # Use the GPU input_ids = input_ids.to(device) # Generate a response output = model.generate( input_ids, max_new_tokens=max_length, temperature=0.9, stopping_criteria=stopping_criteria ) # Decode the response response = tokenizer.decode(output[:, input_ids.shape[-1]:][0], skip_special_tokens=True) end_time = time.time() duration = end_time - start_time display(Markdown(response)) print("Function duration:", duration, "seconds") Gerekli olan kullanımına dikkat edin, aksi halde model sorumuzu yanıtladıktan sonra bile gevezelik etmeye başlayacaktır. stopping_critera Farklı seçenekleri keşfetmek istiyorsanız bakın. model oluşturma parametrelerine Şimdi bu not defterini SageMaker'a yükleyelim. 4. Adım - Not defterini yükleyin Bu zamana kadar SageMaker not defteri örneğinizin sağlanmasının tamamlandığını umuyoruz. Açıldığında bağlantısını tıklayın: Jupyter'ı Aç Ardından ekranınızın sağ üst köşesindeki düğmesini tıklayın ve az önce indirdiğiniz not defterini seçin: Yükle Çekirdeği olarak ayarlayın: conda_python3 5. Adım - Not defterini çalıştırın : Hücreyi Seç -> Tümünü Çalıştır Daha sonra tarayıcı sekmesinde bir kum saati logosu görünecektir: Daha sonra modelin indirilmesi için yaklaşık 10 dakika beklemeniz gerekecektir: Çalıştırıldıktan sonra sorusunun cevabını göreceksiniz: Bana nükleer fisyon ve füzyon arasındaki farkı açıklayın Model ve belirteç yukarıda zaten yüklendiğinden, kod bloğunu değiştirebilir ve başka sorular sormak için düğmesine tıklayabilirsiniz. Bu sizi her yeni soruyu test etmek istediğinizde 10 dakika harcamaktan kurtaracaktır. ask_question Çalıştır Adım 6 - Dizüstü bilgisayarı durdurun Modeli test etmeyi bitirir bitirmez dizüstü bilgisayar bulut sunucuları listenize geri dönüp onu durdurmak isteyeceksiniz. Bunu yapmazsanız saatte 4$ çok hızlı bir şekilde artacaktır 💸 Performans karşılaştırması Performans açısından ön testlerim MPT-7B'nin sonuçlarının ChatGPT'ler kadar iyi olmayabileceğini gösteriyor. Aşağıdaki gibi soruları yanıtlayarak iyi bir iş çıkarıyor: , Fransa'nın başkenti neresidir? Bana nükleer fisyon ve füzyon arasındaki farkı açıkla . Bir csv'yi pdf'ye dönüştüren python kodunu yazın Ancak "Belize'nin başkenti nedir?" oldukça korkunç bir şekilde başarısız oluyor: Şu anda daha fazla veri topluyorum ve bir sonraki blog yazısında kapsamlı bir karşılaştırmalı analiz yapacağım. Bu yazıda MPT-7B, MPT-30B, Falcon-40b ve ChatGPT'nin soru-cevap performansını gerçek konuşma geçmişini kullanarak karşılaştıracağım. Testten Üretime Test aşamasından üretim aşamasına geçmeye hazır olduğunuzda SageMaker ek bir avantaj sunar: modeliniz için bir uç nokta oluşturma yeteneği. SageMaker ile talebe göre uç noktaya kadar otomatik ölçeklendirme yaparak kaynaklarınızı optimize edebilirsiniz. Ek İpuçları Jupyter not defterinde çalışırken işleminizin çatallanmasının ve belleğinin tükenmesinin kolay olduğunu unutmayın. Böyle bir durumda çekirdeği kapatın ve tüm komutları yeniden çalıştırın. Bu modeli AWS dışında bir platformda çalıştırmayı merak ediyorsanız, Google Colab Pro ayda 9 ABD doları karşılığında başka bir uygun seçenektir. Ancak testlerimize dayanarak sağlanan kredileri yalnızca birkaç saat içinde tükettiğimizi gördük. 😳 Karşılaşabileceğiniz diğer bir zorluk da CUDA sürümü uyumsuzluğu nedeniyle SageMaker'da kullanılamamasıdır. Ne yazık ki AWS'nin mevcut P3 bulut sunucuları güncel bir CUDA sürümünü içermiyor. Bu nedenle Triton optimizasyonunu kullanmak istiyorsanız komut satırı erişimine sahip bir EC2 konteyneri oluşturmanız gerekecektir. Ancak 8 VCPU'lu bir bulut sunucusunu çalıştırmak için AWS Support'tan özel izne de ihtiyacınız olacağını unutmayın. Gelecekteki bir gönderide Triton'un nasıl entegre edileceğine ve gibi daha uygun maliyetli bir GPU bulut sağlayıcısının nasıl kullanılacağına dair ayrıntılı bir kılavuz sunacağım. Triton optimizasyonunun Lambda Labs Son düşünceler MosaicML'in MPT-7B'si, OpenAI'nin ChatGPT'sine uygun bir alternatif sunarken, kendi zorluklarını da beraberinde getiriyor. Modelin çalıştırılması zaman alıcı, pahalı olabilir ve mevcut belgeler eksik olabilir. Ancak modeli şirket içinde tutma ve verilerinizi OpenAI'ye maruz kalmaktan koruma yeteneği, belirli kullanım durumları için zorlayıcı olabilir. SageMaker, modeli hızlı bir şekilde test etmek için büyük kolaylık sağlar ve hazır olduğunuzda üretime geçme esnekliği sağlar. İster MPT-7B'ye yeni başlıyor olun ister bir süredir kullanıyor olun, bu kılavuzun değerli bilgiler sağladığını umuyoruz. MPT-7B, MPT-30B, Falcon-40b ve ChatGPT arasındaki performans karşılaştırmalarını daha derinlemesine inceleyeceğimiz bir sonraki blog gönderimiz için bizi takip etmeye devam edin. veya onun daha büyük çeşidi hakkında daha fazla bilgi edinmek istiyorsanız aşağıdaki bağlantılara bakın. MPT-7B MPT-30B Unutmayın, ister ChatGPT ister MPT-7B ile çalışıyor olun, önemli olan, kullanım senaryonuzun veri gizliliğinden ve maliyet etkinliğinden ödün vermeden sunulmasını sağlamaktır. Mutlu tamircilik! Verilerinizle MPT veya ChatGPT Kullanmak İçin Anahtar Teslim Bir Çözüm İster misiniz? işletmeler için ChatGPT'yi sunuyoruz. Şirketinizin verileriyle ChatGPT, MPT veya diğer modellerden yararlanmak istiyorsanız lütfen bizimle iletişime geçin. MindfulDataAI.com'da