Нейросеть DeepSeek R1

Дата публикации 3 месяца назад
Время на прочтение 3 мин
DeepSeek-R1 наделал много шума в сообществе ИИ. Разработанная китайской компанией ИИ DeepSeek , эта модель сравнивается с топовыми моделями OpenAI. Ажиотаж вокруг DeepSeek-R1 вызван не только ее возможностями, но и тем, что она имеет открытый исходный код, что позволяет любому человеку загрузить и запустить ее локально. В этом блоге мы узнаем, как настроить DeepSeek-R1 на вашем компьютере с помощью Ollama.

Почему DeepSeek-R1?

DeepSeek R1

DeepSeek-R1 выделяется по нескольким причинам. Он не только дешевле многих других моделей, но и превосходит их в решении проблем, рассуждениях и кодировании. Его встроенная цепочка рассуждений повышает его эффективность, делая его сильным соперником других моделей. Давайте углубимся в то, как вы можете запустить эту модель на своей локальной системе.

Начало работы с Ollama

логотип оллама

Прежде чем начать, давайте обсудим Ollama. Ollama — это бесплатный инструмент с открытым исходным кодом, который позволяет пользователям запускать модели обработки естественного языка локально. С помощью Ollama вы можете легко загрузить и запустить модель DeepSeek-R1.

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

Сначала вам нужно скачать и установить Ollama . Посетите сайт Ollama и загрузите версию, соответствующую вашей операционной системе.

Следуйте инструкциям по установке, представленным на сайте.

установить олламу

Шаг 2: Загрузите DeepSeek-R1

шаг 2 скачать deepseek-R1

Как вы видите, когда вы заходите на сайт Ollama, вы можете запустить различные параметры DeepSeek-R1. Вы можете найти подробную информацию о требованиях здесь (как показано выше на скриншоте)

Вы можете запустить 1.5b, 7b, 8b, 14b, 32b, 70b, 671b и, очевидно, требования к оборудованию увеличиваются по мере выбора большего параметра. Я использовал 7b в своем руководстве.

После установки Ollama откройте терминал и введите следующую команду для загрузки модели DeepSeek-R1:

DeepSeek-7b

ollama run deepseek-r1

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

Шаг 3: Проверка установки

После загрузки проверьте установку, запустив:

ollama list

Вы должны увидеть deepseek-r1 в списке доступных моделей. Если вы это сделали, то это отличная работа! Вы готовы запустить модель.

Шаг 4: Запустите DeepSeek-R1

Теперь запустим модель с помощью команды:

ollama run deepseek-r1

И вот так вы взаимодействуете с DeepSeek-R1 локально. Это так просто!

Шаг 5: Задайте вопрос

задать вопрос

Цепочка рассуждений по модели.

цепочка мыслей

Модель также хорошо выглядит с задачами кодирования. Давайте проверим и этот подход.

генерация кода deepseek

Подробный ответ на приведенный выше запрос, связанный с кодом.

код gen R1

Мое первое впечатление от DeepSeek-R1 просто ошеломляющее:)

Следуя этому руководству, вы успешно настроили DeepSeek-R1 на локальной машине с помощью Ollama. Эта настройка предлагает мощное решение для интеграции ИИ, обеспечивая конфиденциальность, скорость и контроль над вашими приложениями. Наслаждайтесь экспериментами с DeepSeek-R1 и изучением потенциала локальных моделей ИИ. Кстати, наличие надежной базы данных для ваших приложений ИИ/МО является обязательным. Я рекомендую использовать комплексную платформу данных, такую ​​как SingleStore .

Создадим приложение RAG с использованием DeepSeek и SingleStore

Если вы хотите расширить свои знания и создать простое приложение RAG, вы можете следовать этому руководству.

Мы установим ключ API DeepSeek из микросервиса NVIDIA NIM (да, я покажу вам, как). NVIDIA NIM (Inference Microservices) — это набор микросервисов, которые помогают развертывать модели ИИ в облаках, центрах обработки данных и на рабочих станциях. Мы будем использовать LangChain в качестве нашего фреймворка LLM для связывания всего. Мы будем использовать SingleStore в качестве нашей векторной базы данных.

Предварительные условия [Все БЕСПЛАТНО]

  1. Бесплатная учетная запись SingleStore (доступна бесплатная пробная версия)
  2. Бесплатный ключ API DeepSeek от NVIDIA NIM

Первое, что нужно сделать, это создать бесплатную учетную запись SingleStore. Войдите в свою учетную запись и создайте для себя рабочее пространство и базу данных.

рабочее пространство singlestore

После создания рабочей области создайте базу данных, прикрепленную к этой рабочей области. Нажмите «Создать базу данных», как показано на снимке экрана панели управления, чтобы создать базу данных.

база данных singlestore

Круто. Теперь мы создали нашу базу данных для хранения наших пользовательских документов для нашего приложения RAG.

Следующий шаг — создать Notebook. Да, бесплатную среду для блокнотов. В SingleStore есть эта крутая интегрированная функция, с помощью которой вы можете использовать их Notebooks [Точно так же, как ваш Google Collab]

Перейдите в Data Studio и создайте новый блокнот.

Блокноты SingleStore

Дайте имя вашему блокноту

имя блокнота

Здесь вы приземлитесь.

панель приборов ss

Обязательно выберите созданные вами рабочую область и базу данных из раскрывающегося списка, как показано ниже. Мое имя рабочей области — «pavappy-workspace-1», а созданная мной база данных — «DeepSeek». Поэтому я выбрал обе.

рабочее пространство сс

Теперь мы готовы закодировать наше приложение RAG. Начните добавлять весь код ниже шаг за шагом в недавно созданный блокнот (не забудьте также запустить каждый фрагмент кода)

Начните с установки всех необходимых библиотек и зависимостей.

!pip install langchain --quiet
!pip install pdf2image --quiet
!pip install pdfminer.six --quiet
!pip install singlestoredb --quiet
!pip install tiktoken --quiet
!pip install --upgrade unstructured==0.10.14 --quiet
!pip install -qU pypdf langchain_community
!pip install langchain-nvidia-ai-endpoints --quiet
!pip install langchain-deepseek-official --quiet

Импорт библиотек

from langchain.document_loaders import PyPDFLoader
from langchain_nvidia_ai_endpoints import ChatNVIDIA
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
from langchain.vectorstores import SingleStoreDB
import os

Загрузите свой собственный документ [я использовал общедоступный PDF-файл, вы можете заменить его и использовать свой собственный]

file_path = "https://unctad.org/system/files/official-document/wesp2023_en.pdf"
loader = PyPDFLoader(file_path)
data = loader.load()

Разделить документ на части

text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=0)
texts = text_splitter.split_documents(data)

Настройка встраивания OpenAI (для векторизации)

os.environ["OPENAI_API_KEY"] = "Add your OpenAI API key"
embedding = OpenAIEmbeddings()

Хранить вложения в SingleStore

docsearch = SingleStoreDB.from_documents(
texts,
embedding,
table_name="deepseek_rag", # Replace table name with any name
host="admin:password@host_url:3306/database_name", # Replace with your SingleStore connection
port=3306
)

В приведенном выше коде admin является константой и не меняйте ее. Вы можете получить свой пароль на вкладке доступа, а URL-адрес хоста можно получить, как показано ниже. Перейдите на вкладку развертывания, вы должны увидеть свое рабочее пространство, нажмите «Подключиться», а затем увидите раскрывающийся список, как показано ниже. Выберите «SQL IDE» оттуда, и вы увидите все необходимые данные.

singlestore подключить

Далее инициализируйте DeepSeek через NVIDIA NIM

Получите ваш API-ключ DeepSeek-R1 бесплатно от микросервиса NVIDIA NIM. Получите его ЗДЕСЬ .

client = ChatNVIDIA(
model="deepseek-ai/deepseek-r1",
api_key="Add your DeepSeek-R1 API key you received from NVIDIA NIM microservice", # Replace with your NVIDIA API key
temperature=0.7,
top_p=0.8,
max_tokens=4096
)

Создать цепочку RAG

qa_chain = RetrievalQA.from_chain_type(
llm=client,
chain_type="stuff",
retriever=docsearch.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)

Запросить систему RAG

query = "What India's GDP growth is projected to be?"
result = qa_chain.invoke({"query": query})

Показать результаты

print("Answer:", result["result"])
print("\nSources:")
for doc in result["source_documents"]:
print(f"- Page {doc.metadata['page']}: {doc.page_content[:100]}...")

Вы должны увидеть прекрасный ответ от модели:)

ответ модели deepseek

Вы можете проверить свою базу данных, чтобы увидеть, как данные были разбиты на фрагменты и сохранены в формате векторных вложений.

данные во вложениях

Вот полный репозиторий кода, который вы можете попробовать:)

Логотип GitHub https://github.com/pavanbelagatti/DeepSeek-R1-LangChain-SingleStore-Tutorial