paint-brush
Modern Veri Gölünü Oluşturmak İçin Gereken En İyi 10 Araca Yönelik Bir Mimarın Rehberiile@minio
631 okumalar
631 okumalar

Modern Veri Gölünü Oluşturmak İçin Gereken En İyi 10 Araca Yönelik Bir Mimarın Rehberi

ile MinIO8m2024/08/27
Read on Terminal Reader

Çok uzun; Okumak

Modern veri gölünü oluşturmak için gereken satıcıların ve araçların listesi aşağıdadır; her giriş, üretken yapay zekayı desteklemek için ihtiyaç duyulan bir yeteneğe sahiptir.
featured image - Modern Veri Gölünü Oluşturmak İçin Gereken En İyi 10 Araca Yönelik Bir Mimarın Rehberi
MinIO HackerNoon profile picture


Daha önce bu konuda yazmıştım modern veri gölü referans mimarisi Her kuruluştaki zorlukları ele alan bir makale yazdım; daha fazla veri, eskiyen Hadoop araçları (özellikle HDFS) ve RESTful API'lere (S3) ve performansa yönelik daha fazla talep gibi; ancak bazı boşlukları doldurmak istiyorum.


Bazen veri gölü evi olarak da adlandırılan modern veri gölü, yarı veri gölü ve yarı Açık Tablo Biçimi Belirtimi (OTF) tabanlı veri ambarıdır. Her ikisi de modern nesne depolaması üzerine kurulmuştur.


Aynı zamanda, kuruluşların tüm AI/ML ihtiyaçlarınızı destekleyebilecek AI veri altyapısını nasıl inşa edebilecekleri konusunda derinlemesine düşündük; yalnızca eğitim setlerinizin, doğrulama setlerinizin ve test setlerinizin ham depolamasını değil. Başka bir deyişle, büyük dil modellerini, MLOps araçlarını, dağıtılmış eğitimi ve daha fazlasını eğitmek için gereken hesaplamayı içermelidir. Bu düşünce dizisinin bir sonucu olarak, modern veri gölünün nasıl kullanılacağına dair başka bir makale bir araya getirdik AI/ML'nizi desteklemek için referans mimarisi Aşağıdaki grafik, ihtiyaçları göstermektedir. modern veri gölü referans mimarisi Üretken yapay zeka için ihtiyaç duyulan yeteneklerin vurgulandığı.


Kaynak: Modern bir veri gölü içinde AI/ML


Her iki makale de belirli satıcılardan veya araçlardan bahsetmiyor. Şimdi modern veri gölünü oluşturmak için gereken satıcıları ve araçları tartışmak istiyorum. Bu ilk 10 listesinde, her giriş, üretken yapay zekayı desteklemek için gereken bir yetenektir.

1.Veri Gölü

Kurumsal veri gölleri nesne depolaması üzerine kuruludur. Ucuz ve derin arşiv kullanım örnekleri sunan eski usul, cihaz tabanlı nesne depolaması değil, modern, performanslı, yazılım tanımlı ve Kubernetes yerel nesne depoları, modern GenAI yığınının temel taşlarıdır. Bir hizmet (AWS, GCP, Azure) veya şirket içi veya hibrit/her ikisi olarak, örneğin MinIO olarak kullanılabilirler. Bu veri gölleri akış iş yüklerini desteklemeli, son derece verimli şifreleme ve silme kodlamasına sahip olmalı, meta verileri nesneyle atomik olarak depolamalı ve Lambda hesaplaması gibi teknolojileri desteklemelidir. Bu modern alternatifler bulut yerel olduğundan, güvenlik duvarlarından gözlemlenebilirliğe, kullanıcı ve erişim yönetimine kadar diğer bulut yerel teknolojilerinin tüm yığınıyla hemen entegre olacaklardır.

2.OTF Tabanlı Veri Ambarı

Nesne depolaması aynı zamanda OTP Tabanlı bir veri ambarı için temel depolama çözümüdür. Bir veri ambarı için nesne depolaması kullanmak kulağa tuhaf gelebilir, ancak bu şekilde oluşturulmuş bir veri ambarı, yeni nesil veri ambarlarını temsil eder. Bu, bir veri ambarı içinde nesne depolamasını sorunsuz bir şekilde kullanmayı sağlayan Netflix, Uber ve Databricks tarafından yazılan OTF özellikleriyle mümkün hale getirilmiştir.


OTF'ler — Apache Iceberg, Apache Hudi ve Delta Lake — piyasada yaratıcıların veri ihtiyaçlarını karşılayabilecek ürün olmadığı için yazılmıştır. Esasen, hepsinin yaptığı şey (farklı şekillerde) nesne depolamanın üzerine inşa edilebilecek bir veri ambarı tanımlamaktır. Nesne depolama, diğer depolama çözümlerinin sağlayamadığı ölçeklenebilir kapasite ve yüksek performans kombinasyonunu sağlar. Bunlar modern özellikler olduğundan, bölüm evrimi, şema evrimi ve sıfır kopya dallanması gibi eski moda veri ambarlarının sahip olmadığı gelişmiş özelliklere sahiptirler.


MinIO'nun üzerinde OTF tabanlı veri ambarlarını çalıştırabilen iki MinIO ortağı Dremio ve Starburst'tür.


Dremio Sonar (veri ambarı işleme motoru)

Dremio Arctic (veri ambarı kataloğu)

Açık Veri Lakehouse | Starburst (katalog ve işleme motoru)

3.Makine Öğrenme İşlemleri (MLOps)

MLOps, makine öğrenimi için DevOps'un geleneksel yazılım geliştirme için olduğu şeydir. Her ikisi de mühendislik ekipleri (Dev veya ML) ve BT operasyonları (Ops) ekipleri arasındaki iş birliğini iyileştirmeyi amaçlayan bir dizi uygulama ve ilkedir. Amaç, planlama ve geliştirmeden dağıtım ve operasyonlara kadar otomasyon kullanarak geliştirme yaşam döngüsünü kolaylaştırmaktır. Bu yaklaşımların temel faydalarından biri sürekli iyileştirmedir.


MLOps teknikleri ve özellikleri sürekli olarak gelişmektedir. Büyük bir oyuncu tarafından desteklenen, aracın sürekli geliştirme ve iyileştirme altında olduğundan ve uzun vadeli destek sunacağından emin olan bir araç istersiniz. Bu araçların her biri, bir modelin yaşam döngüsü boyunca kullanılan eserleri depolamak için arka planda MinIO kullanır.


MLRun (Iguazio, McKinsey & Company tarafından satın alındı)

MLflow (Veri Tuğlaları)

Kubeflow (Google)

4.Makine Öğrenme Çerçevesi

Makine öğrenimi çerçeveniz, modellerinizi oluşturmak ve onları eğiten kodu yazmak için kullandığınız kütüphanedir (genellikle Python için). Bu kütüphaneler, farklı kayıp fonksiyonları, optimize ediciler, veri dönüştürme araçları ve sinir ağları için önceden oluşturulmuş katmanlar koleksiyonu sağladıkları için özellikler açısından zengindir. Bu iki kütüphanenin sağladığı en önemli özellik bir tensördür. Tensörler, GPU'ya taşınabilen çok boyutlu dizilerdir. Ayrıca, model eğitimi sırasında kullanılan otomatik farklılaşmaya sahiptirler.


Günümüzde en popüler iki makine öğrenmesi çerçevesi PyTorch (Facebook'tan) ve Tensorflow'dur (Google'dan).


PyTorch

Tensor Akışı

5. Dağıtılmış Eğitim

Dağıtılmış model eğitimi, birden fazla hesaplama aygıtı veya düğümü arasında makine öğrenimi modellerini aynı anda eğitme sürecidir. Bu yaklaşım, özellikle karmaşık modelleri eğitmek için büyük veri kümelerine ihtiyaç duyulduğunda eğitim sürecini hızlandırır.


Dağıtılmış model eğitiminde, veri kümesi daha küçük alt kümelere bölünür ve her alt küme farklı düğümler tarafından paralel olarak işlenir. Bu düğümler bir küme içindeki ayrı makineler, ayrı işlemler veya bir Kubernetes kümesi içindeki ayrı kapsüller olabilir. GPU'lara erişimleri olabilir. Her düğüm kendi veri alt kümesini bağımsız olarak işler ve model parametrelerini buna göre günceller. Aşağıdaki beş kitaplık, geliştiricileri dağıtılmış eğitimin karmaşıklığının çoğundan izole eder. Bir kümeniz yoksa bunları yerel olarak çalıştırabilirsiniz, ancak eğitim süresinde önemli bir azalma görmek için bir kümeye ihtiyacınız olacaktır.


DeepSpeed (Microsoft'tan)

Horovod (Uber'den)

Ray (Anyscale'den)

Spark PyTorch Dağıtıcısı (Databricks'ten)

Spark TensorFlow Dağıtıcısı (Databricks'ten)

6. Model Merkezi

Bir model merkezi, modern veri gölü referans mimarisinin gerçek bir parçası değildir, ancak yine de onu dahil ediyorum çünkü üretken yapay zekaya hızlı bir şekilde başlamak için önemlidir. Hugging Face, büyük dil modelleri için gidilecek yer haline geldi. Hugging Face, mühendislerin önceden eğitilmiş modelleri indirebilecekleri ve kendilerinin oluşturdukları modelleri paylaşabilecekleri bir model merkezine ev sahipliği yapıyor. Hugging Face ayrıca, büyük dil modelleri (LLM'ler) ve bunları eğitmek ve ince ayarlamak için kullanılan verilerle çalışan Transformers ve Datasets kitaplıklarının yazarıdır.


Başka model merkezleri de var. Tüm büyük bulut satıcılarının modelleri yüklemek ve paylaşmak için bir yolu var, ancak Hugging Face, model ve kütüphane koleksiyonuyla bu alanda lider oldu.


Sarılma Yüzü

7. Uygulama Çerçevesi

Bir uygulama çerçevesi, bir LLM'yi bir uygulamaya dahil etmeye yardımcı olur. Bir LLM kullanmak, standart bir API kullanmaktan farklıdır. Bir kullanıcı isteğini LLM'nin anlayabileceği ve işleyebileceği bir şeye dönüştürmek için çok çalışma yapılmalıdır. Örneğin, bir sohbet uygulaması oluşturursanız ve Retrieval Augmented Generation (RAG) kullanmak isterseniz, isteği belirteçleştirmeniz, belirteçleri bir vektöre dönüştürmeniz, bir vektör veritabanıyla entegre etmeniz (aşağıda açıklanmıştır), bir istem oluşturmanız ve ardından LLM'nizi çağırmanız gerekir. Üretken AI için bir uygulama çerçevesi, bu eylemleri birbirine zincirlemenize olanak tanır. Günümüzde en yaygın kullanılan uygulama çerçevesi LangChain'dir. Hugging Face Transformer kütüphanesi ve belge işleme için Unstructured'ın kütüphanesi gibi diğer teknolojilerle entegrasyonları vardır. Özellik açısından zengindir ve kullanımı biraz karmaşık olabilir, bu nedenle karmaşık gereksinimleri olmayan ve LangChain'den daha basit bir şey isteyenler için aşağıda bazı alternatifler listelenmiştir.


LangZincir

AjanGPT

Otomatik GPT

BebekAGI

Akışkan

GradyanJ

LamaIndeksi

Langdock

TensorFlow (Keras API'si)

8. Belge İşleme

Çoğu kuruluşun temiz ve doğru belgelere sahip tek bir deposu yoktur. Bunun yerine, belgeler kuruluş genelinde birçok biçimde çeşitli ekip portallarında dağıtılır. Üretken AI'ya hazırlanmanın ilk adımı, yalnızca üretken AI ile kullanım için onaylanmış belgeleri alan ve bunları vektör veritabanınıza yerleştiren bir boru hattı oluşturmaktır. Bu, büyük küresel kuruluşlar için üretken AI çözümünün potansiyel olarak en zor görevi olabilir.



Bir belge boru hattı belgeleri metne dönüştürmeli, belgeyi parçalara ayırmalı ve parçalanmış metni bir yerleştirme modelinden geçirmelidir, böylece vektör gösterimi bir vektör veritabanına kaydedilebilir. Neyse ki, birkaç açık kaynaklı kütüphane bunu birçok yaygın belge biçimi için yapabilir. Aşağıda birkaç kütüphane listelenmiştir. Bu kütüphaneler, tam bir belge işleme boru hattı oluşturmak için LangChain ile kullanılabilir.


Yapılandırılmamış

Açık-Ayrıştır

9. Vektör Veritabanları

Vektör veritabanları anlamsal aramayı kolaylaştırır. Bunun nasıl yapıldığını anlamak çok fazla matematiksel arka plan gerektirir ve karmaşıktır. Ancak anlamsal arama kavramsal olarak anlaşılması kolaydır. Diyelim ki "yapay zeka" ile ilgili her şeyi tartışan tüm belgeleri bulmak istiyorsunuz. Bunu geleneksel bir veritabanında yapmak için "yapay zeka"nın her olası kısaltmasını, eşanlamlısını ve ilgili terimini aramanız gerekir. Sorgunuz aşağıdaki gibi görünecektir:


 SELECT snippet FROM MyCorpusTable WHERE (text like '%artificial intelligence%' OR text like '%ai%' OR text like '%machine learning%' OR text like '%ml%' OR ... and on and on ...


Bu manuel benzerlik araması zahmetli ve hataya açık olmakla kalmayıp, aramanın kendisi de çok yavaştır. Bir vektör veritabanı aşağıdaki gibi bir isteği alabilir ve sorguyu daha hızlı ve daha büyük bir doğrulukla çalıştırabilir. Retrieval Augmented Generation'ı kullanmak istiyorsanız, anlamsal sorguları hızlı ve doğru bir şekilde çalıştırma yeteneği önemlidir.


 { Get { MyCorpusTable(nearText: {concepts: ["artificial intelligence"]}) {snippet} } }


Aşağıda dört popüler vektör veritabanı listelenmiştir.


Milvus

Pgvektör

Çam kozalağı

Dokuma

10. Veri Araştırması ve Görselleştirme

Verilerinizi düzenlemenize ve farklı şekillerde görselleştirmenize olanak tanıyan araçlara sahip olmak her zaman iyi bir fikirdir. Aşağıda listelenen Python kütüphaneleri veri işleme ve görselleştirme yetenekleri sağlar. Bunlar yalnızca geleneksel AI için ihtiyaç duyduğunuz araçlar gibi görünebilir, ancak üretken AI için de kullanışlıdırlar. Örneğin, duygu analizi veya duygu tespiti yapıyorsanız, tüm sınıflarınızda uygun bir dağıtım olduğundan emin olmak için eğitim, doğrulama ve test kümelerinizi kontrol etmelisiniz.


Pandalar

Matplotlib

Deniz doğumlu

Akış ışıklı

Çözüm

İşte karşınızda: Modern veri gölü referans mimarisinde bulunabilen 10 yetenek, her yetenek için somut satıcı ürünleri ve kütüphaneleri. Aşağıda bu araçları özetleyen bir tablo bulunmaktadır.


  1. Veri Gölü - Mini IO , AWS, GCP, Azure
  2. OTF tabanlı veri ambarı - Dremio , Dremio Sonar , Dremio Arctic , Yıldız patlaması , Açık Veri Göl Evi | Yıldız patlaması
  3. Makine öğrenimi çerçevesi - PyTorch ve TensorFlow
  4. Makine öğrenimi işlemleri - MLRun (McKinsey & Company ), MLflow (Databricks) , Kubeflow (Google)
  5. Dağıtılmış eğitim - DeepSpeed (Microsoft'tan) , Horovod (Uber'den) , Ray (Anyscale'den) , Spark PyTorch Distributor (Databricks'ten) , Spark Tensoflow Distributor (Databricks'ten)
  6. Model merkezi - Sarılma Yüzü
  7. Uygulama çerçevesi - LangChain , AgentGPT , Otomatik GPT , BabyAGI , Flowise , GradientJ , LlamaIndex , Langdock , TensorFlow (Keras API)
  8. Belge işleme - Yapılandırılmamış , Açık-Ayrıştır
  9. Vektör veritabanı - Milvus , Pgvector , Çam kozalağı , Weaviate
  10. Veri keşfi ve görselleştirme - Pandas , Matplotlib , Seaborn , Streamlit