PdfGptIndexer - OpenAI embeddings ve FAISS ile PDF belgelerini indeksleme ve sorgulama
(github.com/raghavan)- PDF belgelerini indekslemek ve sorgulamak için kullanılan bir araç; OpenAI embeddings ve FAISS kullanarak PDF belgeleriyle konuşabilen bir RAG sistemi uygular
- PDF klasöründeki metni çıkarır, bunu 1000 karakterlik parçalara ve 200 karakterlik örtüşmeye göre böler, ardından OpenAI
text-embedding-ada-002modeliyle embedding üretip yerel FAISS index içine kaydeder - Sorgulama aşamasında kayıtlı FAISS vektör indeksini yükler, soruyu embedding'e dönüştürür, en benzer ilk 3 belge parçasını bulur ve benzerlik puanlarıyla birlikte metin parçacıklarını gösterir
- Yanıt üretimi, alınan bağlam temelinde GPT-4'ün tutarlı bir yanıt sentezlemesi şeklinde çalışır
- Embedding'leri yerelde sakladığı için her sorguda yeniden embedding üretmek gerekmez; ilk oluşturmanın ardından veriler OpenAI internet erişimi olmadan sorgulanabilir ve yalnızca yanıt üretimi için API çağrısı gerekir
- Temel çalışma akışı,
python indexer.pyile PDF'leri işleyip vektör veritabanı oluşturmak vepython chatbot.pyile etkileşimli sorgu arayüzünü başlatmaktır- PDF klasörü ve indeksin kaydedileceği konum komut satırı argümanlarıyla belirtilebilir
- Koleksiyona yeni PDF eklendiğinde yalnızca indeksleyiciyi yeniden çalıştırmak yeterlidir
- Çalıştırma gereksinimleri Python 3.8 ve üzeri ile OpenAI API anahtarıdır; bu anahtar
.envdosyasındakiOPENAI_API_KEYdeğeriyle ayarlanır
1 yorum
Hacker News yorumları
Bu tür fikirleri kopyalayan uygulamaların neredeyse hepsinin OpenAI zorunlu olması en sinir bozucu kısım
Artık bunun bitmesini istiyorum
OpenAI veya bulut gerektiren seçenekler, “teknik olarak mümkün ama epey uğraştıran gelişmiş ayar” düzeyinde olmalı; varsayılan bunun tersi olursa kullanıcı sayısı çok daha fazla olur
Bu tür uygulamaların varsayılanı tamamen yerelde çalışmak olmalı ve
.tomldosyasındaki tek bir string değişikliğiyle istenen Hugging Face modeliyle değiştirilebilmesi bence daha iyi olurGerçekten OpenAI gerekirse Docker secret ya da
passzinciri gibi anahtar yönetimi yöntemleri ve ayar değişiklikleriyle mümkün hale getirilebilirVarsayılan yerel öncelikli olmalı; mümkün olan en fazla işlem yerelde yapılmalı ve ancak kullanıcı gerçekten isterse derlenmiş promptun çok az sayıdaki token’ı OpenAI’ye gönderilmeli
Daha büyük şirketlerin ölçeklenebilirliğe ihtiyacı var ve yine de OpenAI fiyatlarıyla rekabet etmek zor
Girişim odaklı biri, istek başına ücretlendirme, ince ayar ve vektör depolama sunan bir OpenLLaMA girişimi kurabilir
Şaşkınlık aşamasını çoktan geçtik; artık işleri verimli biçimde bitirmek istiyorum
Şimdiye kadar test ettiklerim içinde işi belli bir istikrarla halletmeyi sağlayan tek model GPT-4 oldu
Sorun benim acemiliğim mi, yoksa HN tarzı bir temennicilikle diğer LLM’lerin gerçek işlerde gereken kalite, tutarlılık ve güvenilirlik açısından çok daha iyi olduğu mu söyleniyor, bilmiyorum
OpenAI’nin kendi sertifikasyon programı olmamasının sonucu bu diye tahmin ediyorum
Şu anda OpenAI, kişisel projeler için en iyi ve en ucuz embedding seçeneklerinden birini sunuyor
Vektörler oluşturulduktan sonra istenirse buluttan tamamen çıkılabilir
LangChain bu sıkıntı noktasını soyutladığı için embedding üreticisi de istenildiği zaman değiştirilebilir
Geri kalan kısımlar zaten Hugging Face kullanıyor ve prompt destekleyen GPT-2 dışındaki başka modellerle değiştirilebilir
Veriyi gizli tutmak ve üçüncü taraflara sızdırmamak gerekir. privateGPT gibi bir şey kullanılabilir. GitHub’da 32 bin yıldızı var
Anahtar bana ait değilse veri de bana ait değildir
“Belgelerinizle GPT gücüyle özel olarak etkileşin, %100 gizlilik, veri sızıntısı yok”[0]
[0] https://github.com/imartinez/privateGPT
Henüz öyle değil
Yakın tarihli günlüklerle ilgili soruları anlamak için bağlam çıkarabilir mi?
Henüz M serisine geçemedim; GPU’lu bir bulut bilişim ortamında çalıştırmak daha mı mantıklı diye düşünüyorum
Belgeleri yazıp sonra sadece içerikleri hakkında soru sormak yeterli olurdu
Güç sahiplerinin yerel LLM’lere karşı sergilediği paranoya düzeyini görünce, Windows telemetrisinin insanların yerel LLM’lerle ne yaptığını raporluyor olması bana hiç şaşırtıcı gelmez
Aksini düşünenlerin fazla saf olduğunu düşünüyorum
Kişisel verilerimi OpenAI’ye mi gönderiyor? Bu ciddi bir sorun değil mi?
Verideki tüm hassas kişisel bilgileri temizlemeden bu bana pek akıllıca görünmüyor. Ben mi bir şeyi kaçırıyorum?
Veri kullanım politikası: https://openai.com/policies/api-data-usage-policies
Modele göre veri kullanım politikası: https://platform.openai.com/docs/models/how-we-use-your-data
OpenAI anahtarı gerekip gerekmediğini görmekten öte, kişisel verilerin nasıl kullanıldığını daha ayrıntılı öğrenmenin bir yolu var mı?
README çok kafa karıştırıcı
GPT-2 tokenizer kullandığı ve GPT-2’yi embedding modeli olarak kullandığı yazıyor ama koda bakınca varsayılan LangChain
OpenAIEmbeddingsile OpenAI LLM kullanılıyor gibi görünüyorBunlar sırasıyla text-embedding-ada-002 ve text-davinci-003 değil mi?
GPT-2’nin burada nasıl devreye girdiğini hiç anlamadım
GPT-2 sadece tokenizasyon aşamasında token uzunluğunu verimli biçimde hesaplamak için kullanılıyor
Bunu barındırılan bir sürüm olarak sunan bir şirket var mı?
Tüm verilerimi verip soru sorabileceğim küçük bir yapay zekayı epey istiyorum
Google Drive, YouTube videoları vb. ile entegrasyon gibi kullanışlı özellikleri de var
Günlük aktif kullanıcı sayısı 50 binden fazla
Anlamıyorum. GPT-2, OpenAI'nin herkese açık az sayıdaki modellerinden biri, yani yerelde doğrudan çalıştırılabiliyor; peki neden bu amaç için API kullanılıyor?
https://github.com/openai/gpt-2
from langchain.embeddings import OpenAIEmbeddingskullanılıyor ve bu, OpenAI embedding API'si olan text-embedding-ada-002GPT-2'nin kullanıldığı tek yer
GPT2TokenizerFast.from_pretrained("gpt2"); burada da LangChain'inRecursiveCharacterTextSplitter()yardımcı aracında token sayısını hesaplayan uzunluk fonksiyonu olarak kullanılıyorBu da pek mantıklı değil. Burada neden GPT-2 tokenizer'ı kullanıldığını anlamıyorum
Sadece karakter saymak ya da
.split()tabanlı olarak kelime saymak da yeterli olur. Burada nasıl saydığınız o kadar önemli değilGPT-2 ise yalnızca tokenizasyon aşamasında token uzunluğunu verimli biçimde hesaplamak için kullanılıyor
README'yi bu bilgiyi doğru yansıtacak şekilde güncelledim
Tüm verilerimde arama yapma ihtiyacı duymayan tek kişi ben miyim? Bunun kullanım senaryosu ne?
İş yerinde çeşitli yatırım konularını tartışan bir grubumuz var ve organizatörün çevresi geniş olduğu için her hafta dışarıdan bir konuşmacı getirmeye çalışıyor. Oldukça öğretici oluyor
Her sunumun ham notları elimizde var; amaç bu notları gözden geçirip bilgiyi düzgünce düzenleyerek wiki benzeri bir yapıya dönüştürmekti
Başlayalı 3 yıl oldu ama hâlâ zaman ayıramadım; gerçekçi bakınca muhtemelen bundan sonra da ayıramayacağım
Bu notlarda bilgi bulmak için metin araması kullanabiliyorum ama arama dizgesine fazla duyarlı olduğu için çoğu zaman istediğimi bulamıyorum
Bilgi birden fazla dosyaya dağılmışsa tüm arama sonuçlarını açıp tek tek gözden geçirmek gerekiyor
Böyle bir teknolojiyle tüm notları bir vektör veritabanına koyup, ihtiyacınız olan şeyi doğal dille sorabilirsiniz
Yerel sistem soruyu yorumlar, veritabanında en ilgili belgeleri bulur ve ardından soruyu ve arama sonuçlarını OpenAI'ye göndererek soruyu yorumlayıp yanıtı notların içinden bulmasını sağlar
Daha önce LangChain ile bir kavram kanıtı yaptım ve çalıştı. Bir keresinde iki farklı sunuma dağılmış bilgileri birleştirip yanıt verdiğinde gerçekten bir “ampul yandı” anı yaşamıştım
Sorun şu ki ayarlanabilecek çok fazla parametre var ve sistem performansını değerlendirmek için hangi yöntem ya da metrikleri kullanacağımı henüz düşünemedim. Tavsiyeniz olursa sevinirim
Bu notlarda kişisel veri yok, dolayısıyla gizlilik sorunu da yok
20 yılı aşkın e-postalarım için de benzer bir şey kurmak istedim ama gizlilik nedeniyle yapmadım. Ayrıca
notmuchadlı bir e-posta indeksleyicisi kullandığım için yapay zekaya duyulan ihtiyaç da o kadar büyük değilAma kişisel olmayan başka notlar için, bu sistemin oldukça iyi çalışmasını sağlayabilirseniz gerçekten hayat kurtarıcı olabilir
Yıllar boyunca çok fazla farklı konuda not aldım ve bunları iyi organize etmek zorunda olmamak gerçek para cinsinden değer taşıyor
Bırakın sadece notlarımı yazayım, ihtiyacım olanı yapay zeka benim için bulsun
Bazen verinin nerede olduğunu bilirsiniz ama miktarı çok fazladır ve ihtiyacınız olan şey sadece bir şey hakkında hızlı bir açıklamadır
Bazen de birden fazla kaynaktan çok fazla veri vardır ve sonunda istediğiniz şey, çoğunun ya da tamamının üzerinde uzlaştığı noktaların özeti veya birbirlerinden nasıl ayrıldıklarının özeti olur
Kullanım senaryosu çok ve bence bu tür işleri ele alıştaki mevcut yöntemlerimize alışık olduğumuz için, insan kendisi derine inip olasılıkları görene kadar faydası çoğu zaman bir “ampul yandı” anı olarak gelmiyor
Kapsam oldukça geniş. Benim kişisel olarak üzerinde çalıştığım proje de bunun bir varyasyonu: yıllara yayılan kişisel notlarımı ve günlüklerimi ekleyip öz değerlendirme ve kişisel gelişim için sorgulamak
Bu alanın genelinde çok fazla potansiyel olduğunu düşünüyorum
Milvus, Quickwit ve Pinecone'un nasıl karşılaştırıldığını bilen var mı?
Yerel işletmelere yönelik LLM, ince ayar/vektör arama ve chatbot danışmanlığı fırsatları olup olmadığını düşünüyordum
Dosyayı sürükleyip bırakarak kolayca kişiselleştirilmiş çıkarım alabileceğiniz bir araç da yapmak istiyorum
Yakın zamanda LinkedIn akışımda https://gpt-trainer.com/ çıktı, ayrıca belgeler için birkaç tane daha gördüm
https://www.explainpaper.com/
https://www.konjer.xyz/
Fiyat rekabetine girmek istemiyorum
3090 üzerinde yerel açık kaynaklı bir LLM sunmak da havalı olurdu ama ölçeklenebilir olmaz
Başka ince ayar veya vektör arama bağlamı girişimleri gördünüz mü?
Gömme farkının, depolama/arama alternatifleri arasındaki farktan çok gömme üretiminde ne kullandığınıza bağlı olarak daha büyük hissedileceğini düşünüyorum
Örneğin buradakileri https://news.ycombinator.com/item?id=36649579 OpenAI embeddings API yerine kullanmak gibi
Gömme depolama/arama alternatifleri arasındaki farklar olarak, büyük ölçekte performans, maliyet, kişisel tercih ya da geliştirici deneyimi dışında pek bir şey aklıma gelmiyor
Quickwit'i ilk kez duyuyorum; siteye hızlıca baktım, bir vektör deposu gibi görünmüyor ve muhtemelen daha az ilgili
Özel ChatGPT oluşturma araçları için benim listeme bakabilirsiniz: https://llm-utils.org/List+of+tools+for+making+a+%22ChatGPT+...
Hizmet olarak ince ayar tarafında, işletmelere yönelik Lamini AI var
Diğer bir embedding girişimi olarak da Weaviate var
Bence Milvus, Quickwit ve Pinecone daha çok kurumsal kullanıma uygun ve kullanmaları zor
Daha hızlı ve daha doğru yerel embedding modelleri varken neden OpenAI bağımlılığı kullanıldığını anlamıyorum
Hassas kurumsal veriler ile LLM arasında güvenlik katmanı görevi gören bir şirkette çalışıyorum
Modelin HF, ChatGPT ya da Bard olması; ortamın konuşma verisi, PDF veya Notion gibi bir bilgi tabanı olması fark etmiyor
Hassas verileri gizleyerek riskli kullanımı engelliyor, aynı zamanda doğruluk kontrolü de yapıyoruz
Aradığınız şey buysa tanıştırabilirim. tothepoint.tech