Išleidus „Deepseek R1“AI bendruomenėje yra šurmulys. Atviro kodo modelis siūlo geriausius savo klasės našumą daugelyje metrikų, netgi daugeliu atvejų, kai yra panašūs į moderniausius patentuotus modelius. Tokia didžiulė sėkmė skatina dėmesį ir smalsumą sužinoti daugiau apie tai. Šiame straipsnyje mes nagrinėsime, kaip įgyvendinti atkūrimo graudimo (RAG) sistemą, naudodami „Deepseeek R1“. Apimsime viską, pradedant jūsų aplinkos nustatymu, baigiant užklausų vykdymu su papildomais paaiškinimais ir kodų fragmentais.
Kaip jau plačiai paplitusi, Ragas sujungia gavimo ir kartos pagrįstų metodų stipriąsias puses. Ji gauna svarbią informaciją iš žinių bazės ir naudoja ją tiksliems ir kontekstiniams atsakymams į vartotojo užklausas generuoti.
Kai kurios būtinos sąlygos, kaip paleisti kodus šiame vadove, yra šios:
- „Python“ įdiegta (geriausia 3.7 ar naujesnė versija).
- „Ollama“ įdiegta: Ši sistema leidžia naudoti tokius modelius kaip „Deepseek R1“ vietoje.
Dabar pažvelkime į žingsnis po žingsnio įgyvendinimą:
1 žingsnis: įdiekite „Ollama“
Pirmiausia įdiekite „Ollama“ vykdydami instrukcijas jų svetainėje. Įdiegę patikrinkite diegimą paleidę:
2 žingsnis: paleiskite „Deepseek R1“ modelį
Norėdami pradėti „Deepseek R1“ modelį, atidarykite savo terminalą ir vykdykite:
# bash
ollama run deepseek-r1:1.5b
Ši komanda inicijuoja 1,5 milijardo parametrų „Deepseek R1“ versiją, tinkančią įvairioms programoms.
3 žingsnis: paruoškite savo žinių bazę
Gauti sistemą reikalinga žinių bazė, iš kurios ji galėtų pritraukti informaciją. Tai gali būti dokumentų, straipsnių ar bet kokių teksto duomenų, susijusių su jūsų domenu, kolekcija.
3.1 Įkelkite savo dokumentus
Galite įkelti dokumentus iš įvairių šaltinių, tokių kaip tekstiniai failai, duomenų bazės ar žiniatinklio grandymas. Štai tekstinių failų įkėlimo pavyzdys:
# python
import os
def load_documents(directory):
documents = ()
for filename in os.listdir(directory):
if filename.endswith('.txt'):
with open(os.path.join(directory, filename), 'r') as file:
documents.append(file.read())
return documents
documents = load_documents('path/to/your/documents')
4 žingsnis: sukurkite vektorinę parduotuvę, kad gautumėte
Norėdami įjungti veiksmingą atitinkamų dokumentų gavimą, galite naudoti vektorinę parduotuvę, tokią kaip „Faiss“ („Facebook AI“ panašumo paieška). Tai apima jūsų dokumentų įterpimų generavimą.
4.1 Įdiekite reikalingas bibliotekas
Jums gali tekti įdiegti papildomas bibliotekas įterptoms ir faissui:
# bash
pip install faiss-cpu huggingface-hub
4.2 Sukurkite įterptuves ir nustatykite faissą
Štai kaip sugeneruoti įterpimus ir nustatyti „Faiss Vector Store“:
# python
from huggingface_hub import HuggingFaceEmbeddings
import faiss
import numpy as np
# Initialize the embeddings model
embeddings_model = HuggingFaceEmbeddings()
# Generate embeddings for all documents
document_embeddings = (embeddings_model.embed(doc) for doc in documents)
document_embeddings = np.array(document_embeddings).astype('float32')
# Create FAISS index
index = faiss.IndexFlatL2(document_embeddings.shape(1)) # L2 distance metric
index.add(document_embeddings) # Add document embeddings to the index
5 žingsnis: nustatykite retriverį
Norėdami gauti tinkamiausius dokumentus, turite sukurti retriverį pagal vartotojo užklausas.
# python
class SimpleRetriever:
def __init__(self, index, embeddings_model):
self.index = index
self.embeddings_model = embeddings_model
def retrieve(self, query, k=3):
query_embedding = self.embeddings_model.embed(query)
distances, indices = self.index.search(np.array((query_embedding)).astype('float32'), k)
return (documents(i) for i in indices(0))
retriever = SimpleRetriever(index, embeddings_model)
6 žingsnis: sukonfigūruokite „Deepseek R1“ RAG
Toliau bus nustatytas greitas šablonas, kad būtų nurodyta „Deepseek R1“ atsakyti pagal gautą kontekstą.
# python
from ollama import Ollama
from string import Template
# Instantiate the model
llm = Ollama(model="deepseek-r1:1.5b")
# Craft the prompt template using string. Template for better readability
prompt_template = Template("""
Use ONLY the context below.
If unsure, say "I don't know".
Keep answers under 4 sentences.
Context: $context
Question: $question
Answer:
""")
7 veiksmas: įgyvendinkite užklausų tvarkymo funkcijas
Dabar galite sukurti funkciją, kuri sujungia gavimo ir generavimo priemones, kad atsakytumėte į vartotojo užklausas:
# python
def answer_query(question):
# Retrieve relevant context from the knowledge base
context = retriever.retrieve(question)
# Combine retrieved contexts into a single string (if multiple)
combined_context = "n".join(context)
# Generate an answer using DeepSeek R1 with the combined context
response = llm.generate(prompt_template.substitute(context=combined_context, question=question))
return response.strip()
8 žingsnis: skuduro sistemos paleidimas
Dabar galite išbandyti savo skudurų sistemą paskambindami „Atsakyti_query“ funkcijai su bet kokiais klausimais apie savo žinių bazę.
# python
if __name__ == "__main__":
user_question = "What are the key features of DeepSeek R1?"
answer = answer_query(user_question)
print("Answer:", answer)
Prieigą prie „Colab“ nešiojamojo kompiuterio su visu kodu
Apibendrinant, atlikus šiuos veiksmus, galite sėkmingai įdiegti gavimo rinkliavos (RAG) sistemą, naudodami „Deepseeek R1“. Ši sąranka leidžia efektyviai gauti informaciją iš savo dokumentų ir generuoti tikslius atsakymus, remiantis ta informacija. Taip pat ištirkite „Deepseeek R1“ modelio potencialą jūsų konkrečiam naudojimo atvejui.
Šaltiniai

Asif Razzaq yra „MarkTechPost Media Inc“ generalinis direktorius. Kaip vizionierius verslininkas ir inžinierius, ASIF yra įsipareigojęs išnaudoti dirbtinio intelekto potencialą socialiniam gėrybei. Naujausias jo siekis yra dirbtinio intelekto žiniasklaidos platformos „MarkTechPost“, kuri išsiskiria išsamia mašininio mokymosi ir giluminio mokymosi naujienų, kuri yra techniškai pagrįsta, ir lengvai suprantama plačiai auditorijai. Platforma gali pasigirti daugiau nei 2 milijonai mėnesinių peržiūrų, parodydama jos populiarumą tarp auditorijos.
📄