paint-brush
Yapay Zekanın ETL'yi Yeniden Keşfetmek İçin Zaman Kaybetmesine Gerek Yokile@jean-lafleur
3,700 okumalar
3,700 okumalar

Yapay Zekanın ETL'yi Yeniden Keşfetmek İçin Zaman Kaybetmesine Gerek Yok

ile John Lafleur6m2023/08/15
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Yapay zeka uygulamaları için veri taşımanın zorlukları, işlem hatlarının çıkarılması ve yüklenmesi ihtiyacı ve mevcut çözümleri kullanmanın faydaları hakkında bilgi edinin. Yapay zeka mühendislerinin, kullanıcılarına değer katmaya odaklanmak için savaşta test edilmiş platformlardan yararlanarak zamandan ve emekten nasıl tasarruf edebileceklerini öğrenin.
featured image - Yapay Zekanın ETL'yi Yeniden Keşfetmek İçin Zaman Kaybetmesine Gerek Yok
John Lafleur HackerNoon profile picture
0-item
1-item

Yapay zekadaki son gelişmeler oldukça heyecan verici. İnsanlar bunu, müşteri destek deneyimlerini iyileştirmekten kod yazıp çalıştırmaya , yeni müzik yapmaya ve hatta tıbbi görüntüleme teknolojisini hızlandırmaya kadar her türlü yeni yolla kullanıyor.


Ancak bu süreçte endişe verici bir eğilim ortaya çıktı: Yapay zeka topluluğu veri hareketini (ETL olarak da bilinir) yeniden icat ediyor gibi görünüyor. Bunlara bağlayıcılar, çıkarıcılar, entegrasyonlar, belge yükleyiciler veya başka bir şey deseler de, insanlar aynı API'lerden, belge formatlarından ve veritabanlarından veri çıkarmak için aynı kodu yazıyor ve bunları LLM'leri için vektör DB'lerine veya dizinlerine yüklüyorlar.


Sorun şu ki, boru hatlarının sağlam bir şekilde çıkarılması ve yüklenmesinin sıfırdan inşa edilmesi ve bakımı büyük bir taahhüttür. Ve bu alanda o kadar çok önceki teknik var ki, yapay zeka alanındaki neredeyse tüm mühendisler veya şirketler için onu yeniden inşa etmek büyük bir zaman kaybı. Yaklaşık her saat başı son dakika haberlerinin ortaya çıktığı bir ortamda, ana odak noktanız, yan sorgulamalara girmek değil, temel ürününüzü kullanıcılarınız için inanılmaz kılmak olmalıdır. Ve neredeyse herkes için temel ürün veri hareketi değil; hazırladığınız yapay zeka destekli sihirli sos.


Sağlam Çıkarma, Dönüştürme ve Yükleme (ETL) işlem hatları oluşturmanın zorlukları hakkında çok şey yazıldı ( 1 , 2 ), ancak bunu yapay zeka içinde bağlamsallaştıralım.

Yapay zeka neden veri hareketine ihtiyaç duyuyor?

Kamuya açık veriler üzerine eğitim almış Yüksek Lisanslar harikadır, ancak hangisi daha iyi biliyor musunuz? Bize, şirketlerimize ve kullanıcılarımıza özel soruları yanıtlayabilen yapay zekalar. ChatGPT'nin tüm şirket wiki'mizi öğrenmesi, tüm e-postalarımızı, Slack mesajlarımızı, toplantı notlarımızı ve transkriptlerimizi okuyabilmesi, şirketimizin analiz ortamına bağlanabilmesi ve sorularımızı yanıtlarken tüm bu kaynakları kullanabilmesi hepimizi sevindirir. Veya yapay zekayı kendi ürünümüze entegre ederken (örneğin Notion AI ile ) , uygulamamızın yapay zeka modelinin, bir kullanıcıya yardım ederken onun hakkında sahip olduğumuz tüm bilgileri bilmesini isteriz.


Veri hareketi tüm bunların ön şartıdır.


İster bir modele ince ayar yapıyor olun, ister Almayla Artırılmış Üretim (RAG) kullanıyor olun , verileri bulunduğu yerden çıkarmanız, modeliniz tarafından sindirilebilecek bir formata dönüştürmeniz ve ardından bunu AI uygulamanızın erişebileceği bir veri deposuna yüklemeniz gerekir. kullanım durumunuza hizmet etmek için.


Yukarıdaki diyagram RAG kullanırken bunun neye benzediğini göstermektedir, ancak RAG kullanmasanız bile temel adımların değişme ihtimalinin düşük olduğunu hayal edebilirsiniz: verileri ayıklamak, dönüştürmek ve ETL olarak adlandırmak için yüklemeniz gerekir. Size ve kullanım durumunuza özel, kamuya açık olmayan bilgileri bilen yapay zeka modelleri oluşturun.

Veri taşımak neden zordur?

Bir API veya veritabanından veri çıkarmak için temel işlevsel bir MVP oluşturmak, her zaman olmasa da genellikle hızlı bir şekilde (<1 hafta) yapılabilir. İşin asıl zor kısmı onu üretime hazır hale getirmek ve bu şekilde tutmaktır. Madencilik boru hatları inşa ederken akla gelen bazı standart zorluklara bakalım.

Artımlı Ekstraktlar ve durum yönetimi

Anlamlı bir veri hacminiz varsa, işlem hattınızın yalnızca daha önce görmediği verileri çıkaracağı şekilde artımlı çıkarma uygulamanız gerekir. Bunu yapmak için, her bağlantının hangi verileri çıkardığını takip edecek bir kalıcılık katmanına sahip olmanız gerekir.

Geçici hata yönetimi, geri çekilmeler, arıza durumunda devam etme, hava boşluğu

Yukarı akışlı veri kaynakları her zaman, bazen de açık bir sebep olmaksızın. İşlem hatlarınızın buna dayanıklı olması ve doğru geri çekilme politikalarını yeniden denemeniz gerekir. Arızalar o kadar geçici değilse (ama yine de sizin hatanız değilse), o zaman boru hattınızın nerede kaldığını hatırlayacak ve yukarı akış giderildikten sonra aynı yerden devam edecek kadar dayanıklı olması gerekir. Ve bazen, yukarı akıştan kaynaklanan sorun o kadar ciddidir ki (bir API'nin bazı önemli alanları kayıtlardan çıkarması gibi), siz neler olduğunu inceleyip manuel olarak ne yapacağınıza karar verene kadar tüm hattı tamamen duraklatmak isteyebilirsiniz.

Yapılandırma hatalarını belirleme ve proaktif olarak düzeltme

Müşterilerinizin verilerini çıkarmak için veri çıkarma ardışık düzenleri oluşturuyorsanız, müşterilerinizin, onlar adına veri ayıklamak için size verdikleri tüm yapılandırmanın doğru olduğundan emin olmak için bazı savunma kontrolleri uygulamanız gerekir; değilse, hızlı bir şekilde onlara eyleme dönüştürülebilir hata mesajları verin. API'lerin çoğu bunu kolaylaştırmaz çünkü kapsamlı hata tabloları yayınlamazlar ve yayınladıklarında bile size nadiren örneğin API belirteçlerine atanan izinleri kontrol etmek için kullanabileceğiniz uç noktalar verirler, dolayısıyla kapsamlı dengelemenin yollarını bulmanız gerekir. Kullanıcı için hızlı geri bildirim ile kontrol eder.

Kimlik doğrulama ve gizli yönetim

API'lerin basitliği, basit taşıyıcı jeton kimlik doğrulamasından, oturum jetonlarının "yaratıcı" uygulamalarına veya tek kullanımlık jeton OAuth'a kadar uzanır. Kimlik doğrulamayı gerçekleştirmek ve saatte bir yenilenebilecek gizli dizileri yönetmek için mantığı uygulamanız ve potansiyel olarak birden fazla eşzamanlı çalışan arasında gizli yenilemeleri koordine etmeniz gerekecektir.

Çıkarma ve yükleme hızlarını, eşzamanlılığı ve hız sınırlarını optimize etme

Eşzamanlı çalışanlardan bahsetmişken, çıkarmalarınız için yüksek verim elde etmek amacıyla büyük olasılıkla eşzamanlılık uygulamak isteyeceksiniz. Bu, küçük veri kümelerinde önemli olmasa da, daha büyük veri kümelerinde kesinlikle çok önemlidir. API'ler resmi hız sınırlarını yayınlasa da, IP'nin kara listeye alınmasına veya sonsuza kadar hız sınırına tabi tutulmasına neden olmadan API tarafından size sağlanan hız sınırını maksimuma çıkarmak için en iyi paralellik parametrelerini ampirik olarak bulmanız gerekir.

Yukarı akış API değişikliklerine uyum sağlama

API'ler her zaman değişir ve yeni belgelenmemiş davranışlar veya tuhaflıklar üstlenir. Birçok satıcı üç ayda bir yeni API sürümleri yayınlar. Tüm bu güncellemelerin çalışmanızı nasıl etkileyebileceğine dikkat etmeniz ve bunları güncel tutmak için mühendisliğe zaman ayırmanız gerekir. Her zaman yeni uç noktalar ortaya çıkıyor ve bazıları davranışlarını değiştiriyor (ve her zaman bir uyarı almıyorsunuz).

Planlama, izleme, günlüğe kaydetme ve gözlemlenebilirlik

Belirli API'lerden veri çıkaran kodun ötesinde, muhtemelen tüm veri çıkarıcılarınızın yararlandığı bazı yatay yetenekler de oluşturmanız gerekecektir. Planlamanın işe yaramadığı veya başka şeyler ters gittiğinde ve araştırma yapmanız gerektiğinde, bazı planlamanın yanı sıra günlüğe kaydetme ve izleme de isteyeceksiniz. Ayrıca muhtemelen dün, bugün, geçen hafta kaç kaydın çıkarıldığı ve bunların hangi API uç noktalarından veya veritabanı tablolarından geldiği gibi bazı gözlemlenebilirlik de istiyorsunuz.

Veri engelleme veya karma oluşturma

Verileri nereden çektiğinize bağlı olarak, sütunları aşağıya göndermeden önce engellemek veya karma oluşturmak için bazı gizlilik özelliklerine ihtiyacınız olabilir.


Açık olmak gerekirse, yalnızca birkaç dosyayı tek seferlik olarak taşımak istiyorsanız yukarıdakiler geçerli değildir.


Ancak veri taşımayı gerektiren ürünler oluşturduğunuzda bu geçerlidir. Er ya da geç bu endişelerin çoğuyla ilgilenmeniz gerekecek. Ve bunların hiçbiri aşılamaz roket bilimi olmasa da, bir araya getirildiğinde hızla bir veya daha fazla tam zamanlı iş oluşturabilirler; ne kadar çok veri kaynağından yararlanıyorsanız o kadar çok olur.


Veri çıkarma ve boru hatlarını korumanın zorluğu da tam olarak budur: Maliyetinin büyük kısmı, bu boru hatlarını işlevsel ve sağlam tutmak için gereken sürekli artan yatırımlardan gelir. Çoğu yapay zeka mühendisi için bu, kullanıcılarına en fazla değeri katan iş değildir. Zamanlarını başka yerde geçirmek en iyisidir.

Peki bir yapay zeka mühendisinin bazı verileri buraya taşımak için ne yapması gerekiyor?

Kendinizi veri çıkarma ve yükleme işlem hatlarına ihtiyaç duyarsanız, otomatik olarak kendi çözümünüzü oluşturmak yerine halihazırda mevcut olan çözümleri deneyin. Muhtemelen endişelerinizin hepsini olmasa da çoğunu çözebilirler. Değilse, son çare olarak kendinizinkini oluşturun.


Mevcut platformlar ihtiyacınız olan her şeyi desteklemese bile, taşınabilir ve genişletilebilir bir çerçeveyle yine de bu hedefe ulaşmanın büyük bir kısmını başarabilmelisiniz. Bu şekilde, her şeyi sıfırdan oluşturmak yerine, platformdaki kullanıma hazır özelliklerle yolun %90'ını elde edebilir ve yalnızca son %10'u oluşturup bakımını yapabilirsiniz. En yaygın örnek, uzun kuyruklu entegrasyonlardır: Platform, ihtiyacınız olan bir API entegrasyonuyla birlikte gönderilmezse, o zaman iyi bir platform, bu entegrasyonu oluşturmak için bazı kodlar veya hatta kodsuz bir çözüm yazmayı kolaylaştıracaktır. yine de platformun sunduğu tüm kullanışlı özelliklere sahip olursunuz. Bir bağlayıcıyı yalnızca python paketi olarak içe aktarma ve kodunuzdan istediğiniz şekilde tetikleme esnekliğini istiyorsanız bile Airbyte veya Singer bağlayıcıları gibi birçok açık kaynaklı EL aracından birini kullanabilirsiniz.


Açıkça söylemek gerekirse veri hareketi tam anlamıyla çözülmüş değil. Mevcut çözümlerin gerçekten yetersiz kaldığı ve yeni çözümler geliştirmeniz gereken durumlar vardır. Ancak bu yapay zeka mühendisliği popülasyonunun çoğunluğu değil. Çoğu kişinin Jira, Confluence, Slack, Notion, Gmail, Salesforce vb. ile aynı entegrasyonları tekrar tekrar kurmasına gerek yoktur. Kullanıcılarımızın gerçekten önemsediği değeri katmaya devam edebilmemiz için, halihazırda savaşta test edilmiş ve herkesin kullanımına açık olan çözümleri kullanalım.


Ayrıca burada görünür.