Budowanie lokalnego potoku RAG z wykorzystaniem DeepSeek-R1 1.5B przez Ollama, LangChain, FAISS i ChromaDB do Q&A to fascynujący projekt, który łączy w sobie możliwości nowoczesnych technologii AI. W tym artykule przyjrzymy się, jak zaimplementować taki system, wykorzystując Google Colab.
Rozpoczniemy od przygotowania środowiska i instalacji niezbędnych bibliotek. Implementacja Ollama w Google Colab wymaga kilku kroków, w tym instalacji colab-xterm, który umożliwia dostęp do terminala bezpośrednio w środowisku Colab.
Konfiguracja środowiska i instalacja Ollama
Aby rozpocząć pracę z Ollama w Google Colab, musimy najpierw zainstalować colab-xterm. To rozszerzenie pozwala na uruchomienie terminala w Colab, co jest niezbędne do obsługi Ollama. Następnie instalujemy Ollama za pomocą skryptu instalacyjnego dostępnego na stronie ollama.ai.
!pip install colab-xterm
%load_ext colabxterm
%xterm
W terminalu instalujemy Ollama przy użyciu polecenia curl https://ollama.ai/install.sh | sh
. Po instalacji uruchamiamy Ollama za pomocą ollama serve
i pobieramy model DeepSeek-R1:1.5B.
Budowanie potoku RAG z LangChain i ChromaDB
Następnym krokiem jest instalacja niezbędnych bibliotek dla potoku RAG, w tym langchain, langchain-community, sentence-transformers, chromadb i faiss-cpu. Te biblioteki umożliwiają przetwarzanie dokumentów, generowanie osadzeń, przechowywanie wektorów i wyszukiwanie.
!pip install langchain langchain-community sentence-transformers chromadb faiss-cpu
Wczytujemy dokumenty PDF za pomocą PyPDFLoader
z LangChain, dzielimy je na mniejsze części przy użyciu RecursiveCharacterTextSplitter
, a następnie generujemy osadzenia za pomocą HuggingFaceEmbeddings
.
Implementacja wyszukiwania i odpowiedzi na pytania
Po przygotowaniu danych tworzymy wektorową bazę danych przy użyciu ChromaDB, która umożliwia efektywne wyszukiwanie podobieństw. Następnie konfigurujemy łańcuch odpowiedzi na pytania (RetrievalQA) z LangChain, wykorzystując lokalnie hostowany model DeepSeek-R1 1.5B przez Ollama.
llm = OllamaLLM(model="deepseek-r1:1.5b")
retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 3})
qa_chain = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True)
Na końcu definiujemy funkcję query_rag
, która przyjmuje pytanie, wyszukuje odpowiednie konteksty i generuje odpowiedź.
Podsumowanie
Budowanie lokalnego potoku RAG z DeepSeek-R1 1.5B przy użyciu Ollama, LangChain, FAISS i ChromaDB to potężne narzędzie do zadawania pytań i uzyskiwania odpowiedzi na podstawie dokumentów. Ten system jest nie tylko prywatny i efektywny kosztowo, ale także skalowalny. Dla osób zainteresowanych nowościami AI, takich jak nowości ze świata AI, ten projekt stanowi ciekawą alternatywę dla komercyjnych rozwiązań.
Dodaj komentarz