最全本地部署 DeepSeek R1 教程(適用于 Mac、Windows、Linux)
一、DeepSeek R1 簡介
DeepSeek R1 是一款開源 AI 模型,其性能可與 OpenAI 的 GPT-4 和 Claude 3.5 Sonnet 等頂級模型媲美,尤其在數(shù)學、編程和推理等任務上表現(xiàn)出色。最重要的是,它是免費、私密的,可以在本地硬件上離線運行。
DeepSeek R1 提供多個參數(shù)規(guī)模的版本,從輕量級的 1.5B 參數(shù)模型到高性能的 70B 版本。它基于 Qwen 7B 架構(gòu)的精簡優(yōu)化版本,既保持強大性能,又具備更高的計算效率。
其主要亮點包括:
- 完全開源,可自由使用。
- 支持本地運行,無需依賴云服務器。
- 數(shù)據(jù)完全可控,確保隱私安全。
二、為什么選擇本地部署?
本地運行 AI 模型有以下優(yōu)勢:
- 隱私保障:所有數(shù)據(jù)均存儲在本地,避免敏感信息泄露。
- 零額外成本:DeepSeek R1 免費運行,無需訂閱或額外費用。
- 完全控制:可以進行微調(diào)和本地優(yōu)化,無需外部依賴。
三、硬件要求
四、安裝步驟
步驟 1:安裝 Ollama
Ollama 是一款本地 AI 運行工具,可幫助用戶輕松運行 DeepSeek R1。
下載地址:https://ollama.com/download
安裝完成后,Ollama 提供了在終端直接運行 AI 模型的功能。
步驟 2:下載 DeepSeek R1 模型
在終端中運行以下命令,根據(jù)你的硬件選擇合適的模型:
# 下載 1.5B 版本(適用于 CPU 及低配 GPU)
ollama run deepseek-r1:1.5b
# 下載 8B 版本
ollama run deepseek-r1:8b
# 下載 14B 版本
ollama run deepseek-r1:14b
# 下載 32B 版本
ollama run deepseek-r1:32b
# 下載 70B 版本(最高性能)
ollama run deepseek-r1:70b
如果你不確定選擇哪個版本,可以運行默認指令:
ollama run deepseek-r1
默認情況下,該指令會下載 7B 版本。
模型下載速度取決于網(wǎng)絡狀況,可能需要幾分鐘到幾十分鐘不等。
步驟 3:安裝 Chatbox(可選)
為了獲得更好的交互體驗,可以安裝 Chatbox 作為 GUI 界面。
下載地址:https://chatboxai.app/en#
安裝完成后,進行以下配置:
- 在“配置 API 模型”選項中選擇 Ollama API。
- 設置 API 主機為:http://127.0.0.1:11434
- 選擇 DeepSeek R1 作為默認模型。
- 保存設置。
五、功能演示
成功安裝后,你可以測試 DeepSeek R1 的能力。例如,讓它生成一個用 Python 編寫的貪吃蛇游戲代碼。
輸入 Prompt:
幫我用python寫個貪吃蛇的游戲
示例代碼(優(yōu)化修正版本):
import turtle
import time
import random
# 窗口設置
window = turtle.Screen()
window.title("貪吃蛇 by Python")
window.bgcolor("black")
window.setup(width=600, height=600)
window.tracer(0) # 關閉自動刷新
# 蛇頭
snake_head = turtle.Turtle()
snake_head.speed(0)
snake_head.shape("square")
snake_head.color("white")
snake_head.penup()
snake_head.goto(0, 0)
snake_head.direction = "stop"
# 食物
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("red")
food.penup()
food.goto(0, 100)
segments = [] # 蛇身體段
score = 0 # 得分
# 得分顯示
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0, 260)
pen.write("得分: 0", align="center", font=("Arial", 24, "normal"))
# 移動函數(shù)
def move():
if snake_head.direction == "up":
y = snake_head.ycor()
snake_head.sety(y + 20)
if snake_head.direction == "down":
y = snake_head.ycor()
snake_head.sety(y - 20)
if snake_head.direction == "left":
x = snake_head.xcor()
snake_head.setx(x - 20)
if snake_head.direction == "right":
x = snake_head.xcor()
snake_head.setx(x + 20)
# 方向控制函數(shù)
def go_up():
if snake_head.direction != "down":
snake_head.direction = "up"
def go_down():
if snake_head.direction != "up":
snake_head.direction = "down"
def go_left():
if snake_head.direction != "right":
snake_head.direction = "left"
def go_right():
if snake_head.direction != "left":
snake_head.direction = "right"
# 鍵盤綁定
window.listen()
window.onkeypress(go_up, "w")
window.onkeypress(go_down, "s")
window.onkeypress(go_left, "a")
window.onkeypress(go_right, "d")
# 碰撞檢測
def check_collision():
# 邊界檢測
if snake_head.xcor() > 290 or snake_head.xcor() < -290:
return True
if snake_head.ycor() > 290 or snake_head.ycor() < -290:
return True
# 身體碰撞檢測
for segment in segments:
if snake_head.distance(segment) < 20:
return True
return False
# 主游戲循環(huán)
while True:
window.update()
# 檢查是否吃到食物
if snake_head.distance(food) < 20:
# 移動食物到隨機位置
x = random.randint(-290, 290)
y = random.randint(-290, 290)
food.goto(x, y)
# 增加身體段
new_segment = turtle.Turtle()
new_segment.speed(0)
new_segment.shape("square")
new_segment.color("grey")
new_segment.penup()
segments.append(new_segment)
# 增加得分
score += 10
pen.clear()
pen.write(f"得分: {score}", align="center", font=("Arial", 24, "normal"))
# 移動身體段(從后往前)
for index in range(len(segments)-1, 0, -1):
x = segments[index-1].xcor()
y = segments[index-1].ycor()
segments[index].goto(x, y)
# 移動第一個身體段到頭部位置
if len(segments) > 0:
x = snake_head.xcor()
y = snake_head.ycor()
segments[0].goto(x, y)
move()
# 碰撞檢測
if check_collision():
time.sleep(1)
snake_head.goto(0, 0)
snake_head.direction = "stop"
# 隱藏身體段
for segment in segments:
segment.goto(1000, 1000)
segments.clear()
score = 0
pen.clear()
pen.write(f"得分: {score}", align="center", font=("Arial", 24, "normal"))
time.sleep(0.1)
運行這個程序前需要確保:
- 已安裝 Python 環(huán)境
- 需要安裝 `turtle` 模塊(通常 Python 標準庫自帶)
操作說明:
- W鍵:向上移動
- S鍵:向下移動
- A鍵:向左移動
- D鍵:向右移動
- 吃到紅色食物會增長身體并加分
- 撞到墻壁或自己身體會游戲重置
游戲特點:
- 簡單的圖形界面
- 分數(shù)統(tǒng)計功能
- 碰撞檢測
- 蛇身自動增長機制
- 游戲失敗重置功能
你可以根據(jù)需求進一步添加以下功能:
- 添加開始/暫停按鈕
- 增加難度等級
- 記錄最高分
- 添加音效
- 設計更復雜的關卡
六、總結(jié)
通過本教程,你已經(jīng)成功在本地部署了 DeepSeek R1,無論你是 AI 愛好者、開發(fā)者,還是僅僅對本地 AI 感興趣,都可以嘗試運行并訓練自己的專屬 AI 資料庫。
借助 Ollama 和 Chatbox 等工具,本地運行 AI 變得更加簡單和高效?,F(xiàn)在就開始探索吧!