1 puan yazan GN⁺ 2024-03-12 | 1 yorum | WhatsApp'ta paylaş

Açık kaynak dağıtık e-kitap arama motoru kurmak

  • Bir arkadaşımın önerisiyle ENS alan adını kullanan Liber3 adlı bir e-kitap arama web sitesini öğrendim.
  • Liber3, ENS ve IPFS kullanarak bir e-kitap arama web sitesi oluşturmuş, ancak kaynak kodunu paylaşmamış.
  • Glitter'ın belgelerini ve veri kümelerini inceledikten sonra, açık kaynaklı topluluk sürümünü bizzat uygulamaya karar verdim.

Projeyi başlatma

  • Yeni bir proje oluşturup Glitter SDK'yı kurarak Glitter ağına kolayca bağlanabilir ve e-kitapların metadata'sını alabilirsiniz.

Ağa bağlanma

  • Glitter ağıyla etkileşime geçebilen bir istemci oluşturuldu.
  • Glitter SDK üzerinden LCDClient örneği başlatıldı ve ilgili parametreler ayarlandı.

Arama işlevini oluşturma

  • Kullanıcının sorgu anahtar kelimelerini alıp sorgu ifadesini oluşturan ve bunu Glitter ağına gönderen arama işlevi tanımlandı.

Arama sonuçlarını gösterme

  • Arama işlevi oluşturulduktan sonra, e-kitapların temel bilgilerini gösteren bir arayüz tasarlandı ve kullanıcıların kitapları kolayca gezip seçebilmesi için etkileşimli öğeler sunuldu.
  • Bu dört adımla bir e-kitap arama motoru kurulabilir ve kullanıcılara e-kitap kaynaklarını aramak için verimli ve kullanışlı bir platform sağlanabilir.
  • Derlenmiş web sitesi sürümü IPFS ağına yayımlandığında, IPFS gateway üzerinden erişilebilen dağıtık bir e-kitap arama motoruna sahip olunabilir.
  • Tüm kaynak kodu bu depoda görülebilir.

GN⁺ görüşü

  • Bu yazı, açık kaynak ve dağıtık teknolojiler kullanarak bir e-kitap arama motorunun nasıl kurulacağını anlatarak teknolojiye ilgi duyan kişiler için ilgi çekici olabilir.
  • Dağıtık veritabanı ve IPFS kullanımı, merkezi sunuculara bağımlı olmadan veriyi depolama ve aramanın yeni bir yolunu sunarak verinin kalıcılığını ve erişilebilirliğini artırma potansiyeline sahiptir.
  • Bu teknolojiyi benimserken ağın kararlılığı, arama hızı ve kullanıcı deneyimi gibi unsurlar dikkate alınmalı; mevcut merkezi arama motorlarıyla karşılaştırıldığında avantaj ve dezavantajları anlaşılmalıdır.
  • Benzer işlevler sunan diğer projeler arasında Project Gutenberg ve Google Books API bulunur, ancak bunlar dağıtık teknolojiler kullanmaz.
  • Dağıtık teknolojiler kullanmak, veri sahipliği ve kontrolünü kullanıcıya geri verirken aynı zamanda içeriğin sansüre karşı direncini güçlendirebilir.

1 yorum

 
GN⁺ 2024-03-12
Hacker News yorumları
  • Uzun zaman önce IPFS üzerinde yapay zeka veri kümeleri ve modelleri benzer şekilde ele almayı denemek istemiştim
    IPFS’in geleceğini bilmiyorum ama büyük ölçekli veri kümeleriyle uğraşırken, az donanımı olan bireylerin de sorun çözebilmesini sağlayan P2P veri paylaşım altyapısının özünün daha erişilebilir hâle gelmesini isterdim
    https://github.com/JakeKalstad/IPFSPytorchDataset
    https://github.com/JakeKalstad/load_ipfs_pytorch_model

  • Başlığı görünce tam metin arama yaptığını sanıp gerçekten heyecanlanmıştım
    Zlib ve Google Books bunu zaten yapıyor ama herkesin katkıda bulunabileceği ve tam metin erişimi de sunan açık kaynak bir sürüm olsa harika bir proje olurdu

  • Sadece kitap adı ya da yazar arıyorsanız arama motoru zaten bolca var
    Eksik olan şey e-kitap gövde içerikleri için arama indeksi ve üretken yapay zeka çağında bu yakında inanılmaz önemli hâle gelecek
    HN’de biri tek bir dizüstüyle milyonlarca kitabın gövde metnini indeksleyebileceğini söylemişti, başkalarıysa kapsamın neredeyse imkânsız olduğunu söylüyor. Bunu yapan bir proje var mı merak ediyorum

    • E-kitap vurguları koleksiyonunu cihaz içi anlamsal arama ile düzenleyen bir yan proje yapıyorum
      Şu anda yalnızca kendi içeriğini indeksliyor ama ileride koleksiyonları paylaşarak başkalarının kitaplarda bulduğu ilgili fikirlerin anlamsal aramayla keşfedilebildiği bir mod eklemek istiyorum. Mevcut çalışma biçimi açık kaynakta görülebilir
      [1] https://emdash.ai/
      [2] https://github.com/dmotz/emdash
    • İndeksin boyutu, aranacak öğe sayısından çok arama metnine bağlıdır
      Google’ın ilk dönemlerinde bunu belgelendirdiğini hatırlıyorum; arama indeksi, belirli bir sorguyla eşleşen ilgili metaveriyi döndürür. Sorgu uzayı çoğunlukla ham anahtar kelimelere ve tuple’lara, doğru hatırlıyorsam 2–3 kelimelik n-gram’lara dayanır; ikinciler de asgari sıklık koşulunu karşılamalıdır. Uzun arama ifadeleri daha kısa n-gram’lardan oluşturulabilir
      İngilizcede ileri düzey ana dili konuşuru söz varlığı genellikle yaklaşık 40 bin kelimedir; eski kelimeleri de içeren büyük bir sözlük bile 250 bin kelimenin altında olabilir
      Söz varlığını, o kelimeye atıf yapan eserlere eşlemek nispeten basittir. n-gram’larda kombinatoryal patlama var ama yine de oldukça sınırlı bir uzay ve web ölçeğinde belge indekslemeyi 25 yılı aşkın süredir yapıyoruz
      Bir dizüstü de milyonlarca kitap için bir ölçüde işe yarar bir indeks oluşturabilir gibi geliyor; fakat daha kapsamlı bir indeks, özellikle de arama uzayının sıralama indeksini yapmak için muhtemelen biraz daha büyük bir sistem gerekir. Asıl daha büyük zorluk da muhtemelen orası
    • O dizüstünün ne kadar güçlü olduğuna bağlı
      Yakın zamanda işte yerel LLM’lerle uğraştım; bugünlerde kuantalama ciddi ilerlemiş olsa da bu işi ThinkPad’de yapmak mümkün olsa bile, birkaç saatliğine birkaç 4090/H100 takılı bir VPS kiralamaya kıyasla hâlâ çok geride
      Özetlemede en büyük sorun, yerel LLM modellerinin çoğunda bağlam penceresinin çok büyük olmaması; bu yüzden kısa bir Vonnegut romanı gibi büyük metinler bile zorlayabiliyor. GitHub issue özetleriyle test ettim; 16k token bağlam penceresinde bile yorum çoksa bazen zorlanıyor
      Elbette benden daha zeki biri bunu Raspberry Pi’de bile çalışır hâle getirebilir
    • Popüler ve ücretsiz e-kitap yönetim aracı Calibre’nin artık sahip olduğunuz tüm kitapların tam metin indeksini desteklediğini biliyorum
    • İndeksin ilk oluşturulması ortalama bir dizüstüyle mümkün olabilir ama indeksi sık sık güncellemek ve istekleri işlemek epey hesaplama gerektirecek gibi
      Dayanağım yok, sadece tahmin; daha fazlasını öğrenmek isterim
  • Arama indeksini nasıl doldurduğunuzu ve beklediğiniz bellek sınırının kabaca ne olduğunu ayrıntılı anlatabilir misiniz?

  • Harika. Torrent araması için de kullanılabilir mi?
    Video streaming yapılabilen web torrentleriyle merkeziyetsiz bir arama motorunu birlikte çalıştırmak gibi

  • Bunun gerçekten bir arama motoru mu, yoksa sadece select from sorguları oluşturan bir frontend mi olduğunu merak ediyorum

  • Bunun ne anlattığını hiç anlamıyorum
    “Liber3 önerildi, ENS alan adı kullanıyor, ENS ve IPFS üzerinde çalışıyor, Glitter kullanıyor gibi, Tendermint ile yapılmış bir servis” gibi cümleler var; başka bir galaksinin dilinde gelen uzaylı sinyali gibi geliyor
    Liber3 denen şeyi de denedim ama ne yaparsam yapayım yalnızca “Oops! Something went wrong. Please refresh or try again later” çıkıyor. Bütün bunlar ne demek?

    • ENS, Ethereum Name Service; blokzincir için DNS gibi düşünebilirsiniz
      IPFS, InterPlanetary File System; değiştirilemez, P2P S3 benzeri dağıtık nesne depolamaya daha yakın
      Glitter kulağa tanıdık geliyor ama hemen aklıma gelmedi
      Tendermint blokzincirler için bir mutabakat motoru; Inter-Blockchain Communication (IBC) Protocol ve Cosmos SDK ile birlikte, blokzincirler arası birlikte çalışabilirliği mümkün kılmaya çalışan araç zincirinin bir parçası
      Blokzincir ekosistemi gerçekten başlı başına küçük bir dünya. Dışlayıcı demek istemiyorum ama oldukça kendi içinde; aktif olarak araştırmadıkça karşınıza pek çıkmıyor
      Ayrıca, veritabanları ya da merkeziyetsiz güven gerektirmeyen sistemler ilginizi çekiyorsa, blokzincir şüphecisi olsanız bile IPFS’e bakmaya değer. İçeride epey ilginç işler yapılıyor ve ekip de neredeyse tüm blokzincir projeleri gibi altına hücum havasına kapılmamış
    • Başlık, jargondan arındırılmış hâli
      Açık kaynak bir e-kitap arama motoru yapmak için uygulama yönergeleri gibi düşünebilirsiniz. Tabii o açıklamada da biraz jargon kalıyor ama belirli kütüphane adlarını peş peşe sıralama seviyesinde değil
      Yazının çoğu uygulama ayrıntıları ve nazikçe bağlantılar eklenmiş
  • Sonra bunun neredeyse 15 yıldır var olduğunu ve adının libgen.rs olduğunu fark ediyorsunuz

    • Anna's Archive daha iyi