Создание системы увеличенной генерации с DeepSeek R1: пошаговое руководство

 Building a Retrieval-Augmented Generation (RAG) System with DeepSeek R1: A Step-by-Step Guide

“`html

Введение в DeepSeek R1

С выходом DeepSeek R1 в сообществе ИИ появилось много обсуждений. Эта открытая модель показывает отличные результаты и сопоставима с лучшими коммерческими моделями. В этой статье мы рассмотрим, как реализовать систему Retrieval-Augmented Generation (RAG) с помощью DeepSeek R1.

Что такое RAG?

RAG объединяет преимущества методов поиска и генерации. Он извлекает соответствующую информацию из базы знаний и использует её для формирования точных ответов на запросы пользователей.

Что нужно для работы с DeepSeek R1?

  • Python: желательно версия 3.7 или выше.
  • Ollama: фреймворк для локального запуска моделей, таких как DeepSeek R1.

Шаги по настройке системы

Шаг 1: Установите Ollama

Следуйте инструкциям на сайте Ollama для установки. После установки проверьте версию командой:

ollama --version

Шаг 2: Запустите модель DeepSeek R1

Откройте терминал и выполните команду:

ollama run deepseek-r1:1.5b

Шаг 3: Подготовьте базу знаний

Система поиска требует базы знаний. Это могут быть документы или данные, относящиеся к вашей сфере.

Шаг 3.1: Загрузите документы

Вы можете загружать документы из различных источников. Например:

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: Создайте векторное хранилище

Для эффективного поиска документов используйте векторное хранилище, такое как FAISS. Это требует генерации эмбеддингов для ваших документов.

Шаг 4.1: Установите необходимые библиотеки

Вам могут понадобиться дополнительные библиотеки:

pip install faiss-cpu huggingface-hub

Шаг 4.2: Сгенерируйте эмбеддинги и настройте FAISS

Пример настройки:

from huggingface_hub import HuggingFaceEmbeddings
import faiss
import numpy as np

embeddings_model = HuggingFaceEmbeddings()
document_embeddings = [embeddings_model.embed(doc) for doc in documents]
document_embeddings = np.array(document_embeddings).astype('float32')
index = faiss.IndexFlatL2(document_embeddings.shape[1])
index.add(document_embeddings)

Шаг 5: Настройте извлекатель

Создайте извлекатель для поиска релевантных документов:

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: Настройте DeepSeek R1 для RAG

Создайте шаблон запроса:

from ollama import Ollama
from string import Template

llm = Ollama(model="deepseek-r1:1.5b")
prompt_template = Template("""
Используйте ТОЛЬКО указанный контекст.
Если не знаете, скажите "Не знаю".
Ответ не должен превышать 4 предложения.

Контекст: $context
Вопрос: $question
Ответ:
""")

Шаг 7: Реализуйте функцию обработки запросов

Создайте функцию, которая объединяет извлечение и генерацию для ответов на запросы:

def answer_query(question):
    context = retriever.retrieve(question)
    combined_context = "\n".join(context)
    response = llm.generate(prompt_template.substitute(context=combined_context, question=question))
    return response.strip()

Шаг 8: Тестируйте вашу систему RAG

Вы можете протестировать систему, вызвав функцию answer_query с любым вопросом:

if __name__ == "__main__":
    user_question = "Каковы ключевые особенности DeepSeek R1?"
    answer = answer_query(user_question)
    print("Ответ:", answer)

Заключение

Следуя этим шагам, вы сможете успешно реализовать систему Retrieval-Augmented Generation (RAG) с DeepSeek R1. Этот подход позволяет эффективно извлекать информацию и генерировать точные ответы.

Как ИИ может улучшить ваш бизнес?

Если вы хотите, чтобы ваша компания развивалась с помощью ИИ, начните с анализа, как ИИ может изменить вашу работу. Определите ключевые показатели эффективности, которые вы хотите улучшить с помощью ИИ. Подберите подходящее решение и внедряйте его постепенно, начиная с малого проекта.

Если вам нужны советы по внедрению ИИ, пишите нам в Telegram или следите за новостями о ИИ в нашем канале.

Попробуйте AI Sales Bot — ИИ-ассистент для продаж, помогающий отвечать на вопросы клиентов и генерировать контент для отдела продаж.

“`

Полезные ссылки: