
在 Python 中释放 Deepseek 的威力:与 Ollama 的 3 个杀手级集成
在最近几个月,DeepSeek 在 AI 社区中因其卓越的效率和强大的能力而备受关注。作为 OpenAI 模型的前沿替代品,DeepSeek 提供了性能、可扩展性和易于集成的引人注目的组合,使其成为希望通过先进 AI 功能增强 Python 应用程序的开发者的理想选择。无论您是在构建智能聊天机器人、推理引擎还是数据驱动的解决方案,DeepSeek 的模型都为提供最先进的结果提供了坚实的基础。
在本文中,我们将探讨如何使用 Ollama、Hugging Face 和 DeepSeek API 等流行工具将 DeepSeek 无缝集成到您的 Python 项目中,充分发挥这一创新 AI 平台的潜力。
安装 DeepSeek 模型
您可以使用 Ollama 安装多个 DeepSeek 模型。首先,您可以安装以下聊天模型:
- DeepSeek V2
- DeepSeek V2 Chat
除了这些聊天模型,DeepSeek 还提供了一些其他模型,例如:
- DeepSeek-R1
- DeepSeek-R1 Distilled
由于 DeepSeek 模型的体积较大,建议将它们移动到外部存储,以避免占用主驱动器的空间。在 Ollama 中,您可以通过将 OLLAMA_MODELS
环境变量设置为新的目录路径来更改模型的存储位置:
export OLLAMA_MODELS=/path/to/external/storage
设置后,请确保重启 Ollama。
使用 DeepSeek 聊天模型
让我们从 DeepSeek 聊天模型开始。除非您拥有非常强大的硬件,大多数用户应坚持下载和运行 DeepSeek V2 聊天模型,因为它将正常工作。
安装完成后(假设您安装了 deepseek-v2:16b
),您现在可以在 Python 中这样调用 DeepSeek V2 模型:
import deepseek
model = deepseek.load("deepseek-v2:16b")
response = model.generate("Hello, how can I help you?")
print(response)
安装 DeepSeek 推理模型
接下来,让我们安装 DeepSeek 的最新推理模型——R1。您可以下载几个 distilled 版本的 R1。请查看 Ollama 网站 https://ollama.com/library/deepseek-r1:
这些蒸馏模型是通过针对多个在研究社区广泛使用的密集模型进行微调而创建的,使用了由 DeepSeek-R1 生成的推理数据。以下是蒸馏模型及其在终端中使用 Ollama 安装的方法。请注意模型名称旁边显示的大小:
- DeepSeek-R1-Distill-Qwen-1.5B (2.5 GB)
- DeepSeek-R1-Distill-OtherModel (1.2 GB)
在我的示例中,我安装了 DeepSeek-R1-Distill-Qwen-1.5B 模型。您可以在 Python 中这样调用该模型:
import deepseek
model = deepseek.load("deepseek-r1-distill-qwen-1.5b")
response = model.generate("What is the capital of France?")
print(response)
要解决“9 + 5 = 2”这个问题,我需要确定这个方程在任何现实世界的场景或数学上下文中是否成立。
首先,我会考虑基本的算术。在标准数学中,9加5的结果是14,这不等于2。因此,在正常的算术运算下,这个方程不成立。
接下来,我将探索这种方程可能适用的替代上下文。例如,在时间计算中,如果我们处理的是12小时制时钟,增加9小时和5分钟将导致2:05 AM,这并不完全是2,而是一个完全不同的时间。
然而,我还会考虑使用非常规单位或非标准测量系统的可能性。例如,在某些系统中,较大的数量由较小的数字表示,在特定的单位定义下,可能可以解释9 + 5 = 2。
此外,我会思考是否存在任何数学结构或抽象概念可以重新定义算术运算,使得9和5的和等于2。这将涉及在特定系统或框架内定义新的加法规则。
最后,我会得出结论,承认在没有特定上下文的情况下,“9 + 5 = 2”在标准数学系统或常规时间计算中并不成立。它可能在非标准定义或专业上下文中适用,但需要进一步的信息来提供精确的解释。
当然!让我们探索“9 + 5 = 2”可能成立的不同场景。
## 场景 1:模运算
在模运算中,数字在达到某个值后会循环。
- 如果我们考虑**mod 10**(即和的最后一位):
$$
9 + 5 = 14 \quad \text{和} \quad 14 \mod 10 = 4
$$
这并不等于2。
- 如果我们考虑**mod 7**:
$$
9 + 5 = 14 \quad \text{和} \quad 14 \mod 7 = 0
$$
这也不等于2。
## 场景 2:12小时制时钟上的时间
在时钟算术中,增加小时数每12小时循环一次。
- 增加**9**小时和**5**小时:
$$
9 + 5 = 14 \quad \text{和} \quad 14 \mod 12 = 2
$$
因此,在时钟面上,从0起向前移动14小时相当于在**2**处。
## 场景 3:非标准测量单位
在一些非标准系统或单位中:
- 如果“9”表示一个单位,而“5”表示另一个显著贡献的单位:
$$
9 + 5 = 14 \quad \text{但仅考虑在不同基数下的最后一位,例如基数10:}
$$
等等,这与结果**2**不对齐。
## 场景 4:抽象数学结构
在抽象代数中,考虑特定的运算:
- 定义加法使得:
$$
9 + 5 = 2
$$
这需要一个特别定义的运算或具有独特规则的集合。然而,在没有额外上下文的情况下,这只是推测。
## 结论
方程“9 + 5 = 2”在特定上下文中成立:
1. **时钟算术(12小时制):**
- 当考虑12小时循环的时间时,\(9 + 5\)循环到\(2\)。
2. **模运算:**
- 在模\(7\)下,\(14 \mod 7 = 0\),这不匹配。
3. **抽象结构:**
- 在某些非标准或特别定义的系统中,添加特定元素可能会导致不同的结果。
因此,方程“9 + 5 = 2”在以下情况下有效:
- **时钟算术(12小时格式)。**
这个解决方案依赖于提供的上下文。
探索“9 + 5 = 2”可能成立的场景
此外,我会考虑是否存在任何数学结构或抽象概念,可以重新定义算术运算,使得将9与5相加的结果为2。这将涉及在特定系统或框架内定义新的加法规则。
最后,我将总结,承认在没有具体上下文的情况下,方程“9 + 5 = 2”在标准数学系统或常规时间计算中并不成立。它可能在非标准定义或专业上下文中适用,但需要进一步的信息以提供准确的解释。
不同场景
让我们探索不同的场景,其中“9 + 5 = 2”可能成立。
模运算
在模运算中,数字在达到某个值后会循环。
- 如果我们考虑 mod 10(即和的最后一位):
9 + 5 = 14
和
14 mod 10 = 4
这不等于2。
- 如果我们考虑 mod 7:
9 + 5 = 14
和
14 mod 7 = 0
这也不等于2。
时钟算术
在时钟算术中,加小时数每12小时循环一次。
- 加 9 小时和 5 小时:
9 + 5 = 14
和
14 mod 12 = 2
因此,在时钟上,从0开始向前移动14小时相当于到达 2。
非标准系统或单位
- 如果“9”代表一个单位,而“5”代表另一个有显著贡献的单位:
9 + 5 = 14
但考虑在不同进制下只看最后一位,假设是10进制:
等等,这与结果 2 不一致。
抽象代数
在抽象代数中,考虑特定的运算:
- 定义加法,使得:
9 + 5 = 2
这需要一个特殊定义的运算或具有独特规则的集合。然而,在没有额外上下文的情况下,这只是推测。
“9 + 5 = 2”的有效上下文
方程“9 + 5 = 2”在特定上下文中成立:
-
时钟算术(12小时制):
- 在考虑12小时周期的时间时,(9 + 5) 回绕到 (2)。
-
模运算:
- 在模 (7) 下,(14 \mod 7 = 0),这不匹配。
-
抽象结构:
- 在某些非标准或特殊定义的系统中,添加特定元素可以导致不同的结果。
因此,方程“9 + 5 = 2”在以下情况下有效:
- 时钟算术(12小时格式)。
此解决方案依赖于提供的上下文。
在Hugging Face中使用DeepSeek
现在您可以在Ollama中使用DeepSeek,让我们关注Hugging Face。我们先从R1推理模型开始。
在Hugging Face中,您可以使用 AutoModelForCausalLM
类下载模型,并使用 AutoTokenizer
类下载分词器:
模型现在将被下载。您现在可以向模型提问:
安装了DeepSeek R1推理模型后,我想下载聊天模型。同样,Hugging Face上有很多DeepSeek V2模型。在这个例子中,我想尝试 deepseek-ai/DeepSeek-V2-Lite
模型。
前两种运行DeepSeek的方法需要大量硬件资源。如果您的资源有限,第三种使用DeepSeek的方法是推荐的选择。
DeepSeek运行的API服务类似于OpenAI的服务。要使用DeepSeek API,您需要注册一个账户,然后在 https://platform.deepseek.com/api_keys 申请API密钥。
此外,您需要在账户中有余额才能访问API。您可以在 https://platform.deepseek.com/top_up 为您的余额充值。
DeepSeek API使用与OpenAI兼容的API格式。如果您已经熟悉OpenAI API,这非常有用。以下是一些快速信息:
有了这些,让我们看一个例子。首先,在环境变量中设置API密钥:
如果您想使用推理模型(DeepSeek R1),请将 model
参数设置为 "deepseek-reasoner"
。