Verilerinizin Gücüyle Yerel Bir Yapay Zeka İnşa Edin
Günümüzde yapay zeka modelleri muazzam bir bilgi birikimine sahip olsa da, şirketlerin veya bireylerin kendi özel dokümanlarına doğrudan erişemezler. Hassas verilerinizi bulut tabanlı sistemlere göndermek ise her zaman güvenli bir seçenek değildir. İşte tam bu noktada, verilerinizi tamamen kendi bilgisayarınızda tutarak yapay zekayı özelleştirmenizi sağlayan Ollama ile RAG (Retrieval-Augmented Generation) sistemi devreye giriyor. Bu rehberde, tek bir satır veriyi dışarı sızdırmadan kendi PDF, Word veya metin belgelerinizle konuşabilen yerel bir yapay zeka asistanını nasıl kuracağınızı adım adım öğreneceksiniz.
RAG (Retrieval-Augmented Generation) Nedir?
Büyük dil modelleri (LLM), eğitim verilerinde yer almayan güncel veya özel bilgilere sahip değildir. RAG, bu sorunu çözmek için geliştirilmiş bir mimaridir. Bir kullanıcı soru sorduğunda, sistem önce eldeki özel doküman havuzunda arama yapar, ilgili bilgi parçalarını bulur ve bu bilgileri sorunun yanına ekleyerek dil modeline gönderir. Model, kendisine sunulan bu taze ve doğru bağlamı kullanarak yanıt üretir. Böylece hem uydurma (hallucination) riski minimuma iner hem de model tamamen sizin verilerinizle beslenmiş olur.
Neden Ollama ve Yerel Sistemler?
Ollama, büyük dil modellerini yerel bilgisayarınızda çalıştırmanızı sağlayan açık kaynaklı ve son derece güçlü bir araçtır. Llama 3, Mistral, Phi-3 gibi popüler modelleri bilgisayarınızın donanım gücünü kullanarak çalıştırabilirsiniz. Ollama ile RAG sistemi kurmanın en büyük avantajları şunlardır:
- Maksimum Veri Gizliliği: Dokümanlarınız internete veya üçüncü taraf sunuculara asla yüklenmez.
- Sıfır Maliyet: OpenAI veya Anthropic gibi servislerin API ücretlerinden kurtulursunuz.
- Çevrimdışı Çalışabilirlik: İnternet bağlantınız olmasa bile asistanınızı kullanmaya devam edebilirsiniz.
Adım Adım Ollama ile RAG Sistemi Kurulumu
Yerel RAG sistemimizi inşa etmek için popüler bir yapay zeka kütüphanesi olan LangChain ve vektör veri tabanı olarak ChromaDB kullanacağız.
1. Adım: Ollama Kurulumu ve Model Seçimi
İlk olarak Ollama'yı bilgisayarınıza indirip kurmanız gerekiyor. Resmi web sitesinden işletim sisteminize uygun sürümü indirdikten sonra terminal veya komut satırını açarak şu komutla istediğiniz bir modeli indirin:
ollama run llama3
Bu komut, Llama 3 modelini yerel bilgisayarınıza indirecek ve arka planda bir API sunucusu başlatacaktır.
2. Adım: Gerekli Python Kütüphanelerinin Yüklenmesi
Sistemimizi kodlamak için Python ortamına ihtiyacımız var. Terminalde yeni bir sanal ortam oluşturup şu kütüphaneleri yükleyin:
pip install langchain langchain-community chromadb sentence-transformers pypdf
Bu kütüphaneler; doküman yükleme, metinleri parçalama, vektörleştirme (embedding) ve Ollama ile iletişim kurma süreçlerini yönetmemizi sağlayacaktır.
3. Adım: RAG Kodunun Yazılması
Şimdi, yerel klasörünüzdeki PDF dosyalarını okup analiz edecek Python betiğini hazırlayalım. Aşağıdaki kod bloğu, belirtilen PDF dosyasını okur, anlamlı parçalara böler, vektör tabanına kaydeder ve Ollama üzerinden sorduğunuz soruları yanıtlar.
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
# 1. Dokümanı Yükleme
loader = PyPDFLoader("sirket_politikasi.pdf")
documents = loader.load()
# 2. Metni Küçük Parçalara Bölme
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
texts = text_splitter.split_documents(documents)
# 3. Embedding Modelini Tanımlama (Yerel)
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
# 4. Vektör Veri Tabanı Oluşturma (ChromaDB)
vector_store = Chroma.from_documents(texts, embeddings)
# 5. Ollama ile Bağlantı Kurma
llm = Ollama(model="llama3")
# 6. RAG Zincirini (Chain) Oluşturma
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
retriever=vector_store.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)
# 7. Soru Sorma
query = "Şirketimizin yıllık izin politikası nedir?"
result = qa_chain.invoke({"query": query})
print("Cevap:", result["result"])
Kodun Çalışma Mantığı ve Detaylar
Yukarıdaki kodda gerçekleştirdiğimiz işlemler yerel RAG mimarisinin temel taşlarını oluşturur:
all-MiniLM-L6-v2 modelini kullandık.Performansı Artırmak İçin İpuçları
Yerel sisteminizin daha hızlı ve doğru çalışması için şu optimizasyonları yapabilirsiniz:
chunk_size ve chunk_overlap değerlerini optimize edin. Tablolar ve listeler içeren belgeler için daha büyük parça boyutları gerekebilir.Sonuç ve Gelecek Potansiyeli
Kendi bilgisayarınızda çalışan bir yapay zeka asistanı kurmak, veri bağımsızlığı yolunda atılmış devasa bir adımdır. Ollama ile RAG entegrasyonu sayesinde, internete bağlı olmadan, tamamen gizli ve yüksek performanslı bir bilgi yönetim sistemi inşa edebilirsiniz. Bu sistemi bir web arayüzüne (örneğin Streamlit veya Gradio kullanarak) bağlayarak tüm ekibinizin kullanımına sunabilir, kurumsal verimliliğinizi yeni bir seviyeye taşıyabilirsiniz.
Yorumlar (0)
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Yorum Yazın