[LLM+AIGC] 02.零基础DeepSeek入门初探及云端搭建详解(ChatGPT对比)

近年来,人工智能技术火热发展,尤其随着ChatGPT和DeepSeek被提出,其能够基于在预训练阶段所见的模式、统计规律和知识来生成回答,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流以及完成复杂的NLP任务。基于此,为更好地学习前沿AI知识,了解LLM和AIGC应用实战,本人开启了《LLM+AIGC》专栏,一方面作为在线笔记记录和分享自己的学习过程,另一方面期望帮助更多初学者以及对LLM感兴趣的同学。知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。

该系列主要涵盖三方面:

  • 原理篇——以原理介绍和论文阅读为主
  • 实战篇——以编程实现和构建自制LLM和RAG为主
  • 应用篇——以应用实践和API、Prompt探索为主

前一篇文章普及了ChatGPT应用场景,简单介绍什么是大语言模型(LLM)和人工智能生成内容(AIGC)。这篇文章将带领大家探索DeepSeek,并尝试在云端搭建,与ChatGPT 4o进行简单对比。基础性文章,希望对初学者有所帮助!且看且珍惜,加油 O(∩_∩)O

在这里插入图片描述

前文赏析:


一.什么是DeepSeek

Deepseek(中文名:深度求索) 是一种基于深度学习技术的智能搜索和信息检索系统,是一款由杭州深度求索人工智能基础技术研究有限公司开发的大规模预训练语言模型。它通过模拟人类认知过程,利用神经网络模型对大量数据进行处理和分析,从而实现对复杂查询的高效响应。Deepseek的核心在于其能够理解自然语言查询的语义,并从海量数据中提取出最相关的信息。它的英文名“DeepSeek”可以读作“深思”(Deep)和“探索”(Seek),寓意着通过深度学习技术探索未知的领域。

  • 目标:通过海量数据训练和深度神经网络架构,实现高质量文本理解、生成、推理及知识推理等任务
  • DeepSeek采用Transformer 结构,结合自注意力机制(Self-Attention)、多头注意力(Multi-Head Attention)以及高效的优化算法,实现更精确的语言建模和语义理解

接下来,作者将结合DeepSeek和ChatGPT,分别对它们进行描述,读者可以比较两种常用大模型生成的结果。譬如:

  • 提示词:请以学术语言描述什么是Deepseek,并阐述其基本原理及实现过程。最后请给出初学者如何使用的建议。

官网地址如下:

在这里插入图片描述


1.DeepSeek基本原理

首先,给出DeepSeek官网对其的描述,Deepseek的基本原理建立在深度学习的基础之上,主要包括以下几个关键步骤:

  • 数据预处理:首先,系统会对原始数据进行清洗和标准化处理,以确保输入数据的质量。这包括去除噪声、处理缺失值、文本分词等。
  • 特征提取:利用深度学习模型(如卷积神经网络CNN、循环神经网络RNN或Transformer)从预处理后的数据中提取特征。这些特征能够捕捉数据的深层次语义信息。
  • 语义理解:通过自然语言处理(NLP)技术,Deepseek能够理解用户查询的语义。这通常涉及到词嵌入(Word Embedding)、语义角色标注(Semantic Role Labeling)等技术。
  • 信息检索:在理解查询语义的基础上,Deepseek会从数据库中检索出最相关的信息。这一过程通常利用向量空间模型(Vector Space Model)或更高级的语义匹配算法。
  • 结果排序与反馈:最后,系统会根据相关性对检索结果进行排序,并将最相关的结果返回给用户。同时,系统还可以通过用户反馈不断优化模型。

在这里插入图片描述

接下来,给出ChatGPT的描述。DeepSeek的核心原理基于大规模自回归或自编码预训练,其主要思想包括:

  • 自监督学习(Self-Supervised Learning):通过海量无标注数据进行训练,使模型能够从上下文中学习语法、语义及世界知识。
  • 自注意力机制(Self-Attention):利用 Transformer 结构中的多头注意力机制,捕捉序列中的长距离依赖关系,提高文本理解能力。
  • 深度 Transformer 堆叠(Deep Transformer Layers):通过堆叠数十层 Transformer 层,使模型能够学习复杂的语义和层级信息。
  • 大规模数据训练(Massive Pretraining Data):使用高质量、多领域的大规模语料(如网页文本、论文、书籍等),提升模型泛化能力。
  • 知识蒸馏与对齐(Knowledge Distillation & Alignment):结合人类反馈(RLHF)、指令微调(Instruction Tuning)等技术,使模型输出更符合用户需求。

DeepSeek 采用自回归(Autoregressive)方式进行文本生成,即通过给定前缀预测下一个 token,从而生成符合语法及语义逻辑的完整文本。

在这里插入图片描述


2.实现过程

DeepSeek官网给出的实现过程:

  • 模型选择与训练:选择合适的深度学习模型,并在大规模数据集上进行训练。训练过程中需要调整超参数,以确保模型的最佳性能。
  • 系统集成:将训练好的模型集成到搜索系统中,确保其能够实时处理用户查询。
  • 性能优化:通过分布式计算、模型压缩等技术,优化系统的响应速度和资源消耗。
  • 用户界面设计:设计友好的用户界面,使用户能够方便地输入查询并查看结果。

在这里插入图片描述

ChatGPT官网给出的实现过程。DeepSeek 的实现流程主要包括数据准备、模型训练、优化与微调,具体步骤如下:

  • 数据预处理(Data Preprocessing)
    – 收集多领域数据(如新闻、百科、代码、对话数据等),确保数据的多样性和质量。
    – 进行文本清理(去除低质量内容、去重、处理乱码等)。
    – 使用子词分词(Byte Pair Encoding, BPE)或 SentencePiece 进行文本分块,提高训练效率。
  • 模型架构设计(Model Architecture)
    – 采用Transformer 结构,配置合适的层数(L)、隐藏单元数(d_model)、注意力头数(H)等超参数。
    – 结合位置编码(Positional Encoding) 以捕捉文本顺序信息。
    – 采用前馈神经网络(Feed-Forward Networks, FFN) 增强特征表达能力。
  • 预训练(Pretraining)
    – 目标:学习语言模型的基础能力。
    – 方法:采用 自回归目标(Causal Language Modeling, CLM) 或 遮蔽语言模型(Masked Language Modeling, MLM) 进行训练。
    – 训练数据规模可达万亿 token,采用分布式计算(如 DeepSpeed、FSDP)提升计算效率。
  • 微调与对齐(Fine-tuning & Alignment)
    – 针对不同任务(如问答、代码生成、信息检索)进行指令微调(Instruction Tuning)。
    – 结合人类反馈强化学习(RLHF),使模型生成更符合用户需求。
    部署与推理(Deployment & Inference)
    – 训练好的 DeepSeek 模型可部署至 云端 API、本地服务器,支持 GPU 加速推理。
    – 采用 低精度推理(如 INT8、FP16) 提升推理速度,降低计算成本。

最后,推荐大家阅读DeepSeek相关论文,后续作者也尝试分享。

在这里插入图片描述

在这里插入图片描述

同时推荐木尧老师的分享,其总结了三个核心模型,大家可以去学习。原文地址如下:

在这里插入图片描述

  • 一是纯强化学习(后文简称 RL)方案训的 DeepSeek-R1-Zero 验证技术方案可行,Reasoning 能力提升;
  • 二是 80w 有监督微调(后文简称 SFT)+ 类似刚才 RL 方案训练的 DeepSeek-R1,能力对标 OpenAI o1;
  • 三是直接拿刚才 80w 对 Qwen/Llama 系列模型 SFT 蒸馏出来的小模型,能力对标 OpenAI o1-mini。

3.初学者使用建议

DeepSeek官网给出的初学者使用建议:

  • 学习基础知识:初学者应首先掌握深度学习、自然语言处理和信息检索的基础知识。推荐学习资源包括Coursera、edX等在线课程。
  • 实践项目:通过参与开源项目或自己动手实现简单的搜索系统,积累实践经验。GitHub上有许多相关项目可以参考。
  • 使用现有工具:利用现有的深度学习框架(如TensorFlow、PyTorch)和NLP工具包(如NLTK、spaCy),快速搭建原型系统。
  • 持续学习与优化:深度学习领域发展迅速,初学者应保持持续学习的态度,关注最新的研究成果和技术动态,并不断优化自己的系统。

通过以上步骤,初学者可以逐步掌握Deepseek的原理和实现方法,并能够应用于实际的信息检索任务中。

下面事ChatGPT给出的初学者如何使用 DeepSeek。对于初学者而言,可以按照以下步骤使用 DeepSeek 进行文本处理任务:

(1)安装 DeepSeek 相关依赖
DeepSeek 通常基于 PyTorch 或 TensorFlow 进行训练和推理,可以通过以下方式安装:

pip install transformers torch deepseek

(2)加载预训练模型
DeepSeek 的模型通常托管在 Hugging Face Transformers,可以使用 AutoModel 进行加载:

from transformers import AutoModelForCausalLM, AutoTokenizer

# 加载 DeepSeek 预训练模型
model_name = "deepseek-ai/deepseek-llm"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 设定设备
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)

(3)进行文本生成
使用 generate() 方法进行文本生成:

input_text = "人工智能的未来发展方向包括"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(device)

# 生成文本
output = model.generate(input_ids, max_length=100)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)

print("DeepSeek 生成的文本:", generated_text)

(4)在特定任务上进行微调
如果希望在特定领域(如法律、医学、金融)优化 DeepSeek,可进行微调:

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./deepseek_finetuned",
    per_device_train_batch_size=4,
    num_train_epochs=3,
    save_steps=500,
    logging_dir="./logs",
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=custom_dataset
)

trainer.train()

在这里插入图片描述


二.DeepSeek注册及尝试

1.DeepSeek初试

DeepSeek注册非常简单,通过手机或微信、邮箱即可登录。

在这里插入图片描述

登录之后,DeepSeek聊天界面提供了三种模式:

  • 基础模型:DeepSeek-V3,性能比肩全球顶尖的开闭源模型(如4o、Claude-3.5-Sonnet、Qwen2.5、Llama-3.1等)。
  • 深度思考(R1):2025年1月发布DeepSeek-R1正式版,效果完全不输OpenAI o1,且开源免费,并瞬间火爆全球。
  • 联网搜索:根据网络搜索结果回答问题,即RAG(检索增强生成),可以把它理解为DeepSeek的AI搜索功能。

在这里插入图片描述

(1)基础模式
比如我们简单利用DeepSeek进行搜索,其默认使用基础模型,但该问题未给出具体答案。该模式依赖预训练知识库,回答速度更快,但无法获取最新信息,更适合解决通用知识类问题,且适合初学者解决一些常见问题。

在这里插入图片描述

(2)深度思考模式
为让其回答更准确、全面,并具有更好的逻辑性,我们尝试开启深度思考。看看DeepSeek是否能找出“谁是Eastmount”。可以发现深度思考成功识别。

  • R1是一个爱思考的深度推理模型,主要擅长处理数理逻辑、代码和需要深度推理的复杂问题。

在这里插入图片描述

(3)联网搜索模式
接着,我们又尝试联网搜索,该模式通常用于实时联网搜索,结合最新的网络及搜索信息,给出更全面准确的答案,适合需要获取最新信息的场景。给出的内容更为准确,因为其从互联网中找到了28个主要的网页描述。

DeepSeek 联网搜索模式总结:
Eastmount是一位技术实力深厚、乐于分享的博主,他的博客内容涵盖广泛,适合不同层次的学习者。如果你是初学者,可以从他的Python和网络安全专栏入手;如果你对AI安全或深度学习感兴趣,他的PyTorch和AI安全系列也是不错的选择。

在这里插入图片描述

此外,最近比较火的是DeepSeek可以模拟不同名人的风格撰写诗歌。

在这里插入图片描述

并且点击按钮可以上传文件进行问答,相关功能后续博客详细探索。

在这里插入图片描述


2.DeepSeek vs ChatGPT 4o

下面我们分别比较DeepSeek vs ChatGPT 4o,结合一个初学者经常问的问题来探索,并对比它们的效果。同时,该问题对初学者也非常有帮助。

提示词
我是一名编程初学者,主要想利用ChatGPT辅助学习Python机器学习,请告知我如何利用ChatGPT来进行学习,并给出相关的案例。

(1)DeepSeek 基础模型

生成内容如下:

在这里插入图片描述

作为一名编程初学者,利用Deepseek辅助学习Python机器学习是一个非常有前景的方向。Deepseek可以帮助你快速找到相关的学习资源、代码示例、教程和解决方案。以下是如何利用Deepseek进行学习的步骤和相关案例:

① 利用Deepseek查找学习资源
步骤:

  • 明确学习目标:首先明确你想要学习的机器学习主题,例如线性回归、决策树、神经网络等。
  • 使用Deepseek搜索:在Deepseek中输入相关关键词,如“Python 机器学习 线性回归 教程”。
  • 筛选结果:根据搜索结果,选择适合初学者的教程、博客文章或视频。

案例:

  • 搜索“Python 机器学习 入门 教程”,找到一篇详细的入门教程,涵盖Python基础、NumPy、Pandas、Scikit-learn等内容。
  • 搜索“Python 线性回归 示例代码”,找到一个包含完整代码和解释的Jupyter Notebook。

② 利用Deepseek查找代码示例
步骤:

  • 明确需求:确定你需要实现的机器学习算法或功能。
  • 使用Deepseek搜索:输入相关关键词,如“Python 决策树 示例代码”。
  • 分析代码:阅读并理解找到的代码示例,尝试在自己的环境中运行并修改。

案例:

  • 搜索“Python 决策树 分类 示例代码”,找到一个使用Scikit-learn库实现决策树分类的代码示例。
  • 搜索“Python 神经网络 Keras 示例代码”,找到一个使用Keras构建简单神经网络的代码示例。

③ 利用Deepseek解决问题
步骤:

  • 遇到问题:在学习过程中遇到问题时,明确问题的具体描述。
  • 使用Deepseek搜索:输入问题的关键词,如“Python 机器学习 数据预处理 缺失值处理”。
  • 参考解决方案:阅读找到的解决方案,理解并应用到自己的代码中。

案例:

  • 搜索“Python 数据预处理 缺失值处理”,找到一篇详细介绍如何处理缺失值的博客文章,包含代码示例。
  • 搜索“Python 机器学习 模型评估 交叉验证”,找到一个解释交叉验证原理和实现方法的教程。

④ 利用Deepseek进行项目实践
步骤:

  • 选择项目:选择一个感兴趣的机器学习项目,如图像分类、文本分类等。
  • 使用Deepseek搜索:输入项目相关的关键词,如“Python 图像分类 项目示例”。
  • 参考项目:找到相关的项目示例,理解其实现过程,并尝试自己实现。

案例:

  • 搜索“Python 图像分类 CNN 项目示例”,找到一个使用卷积神经网络进行图像分类的项目示例。
  • 搜索“Python 文本分类 NLP 项目示例”,找到一个使用自然语言处理技术进行文本分类的项目示例。

⑤ 持续学习与优化
步骤:

  • 关注最新动态:利用Deepseek关注机器学习领域的最新研究成果和技术动态。
  • 参与社区:加入相关的在线社区和论坛,如Stack Overflow、GitHub、Reddit等,与其他学习者交流。
  • 不断实践:通过不断实践和优化自己的项目,提升编程和机器学习技能。

案例:

  • 搜索“最新 机器学习 研究论文”,找到一篇关于最新机器学习算法的研究论文,阅读并理解其内容。
  • 搜索“Python 机器学习 社区”,找到一个活跃的机器学习社区,参与讨论和项目合作。

通过以上步骤,你可以有效地利用Deepseek辅助学习Python机器学习,逐步提升自己的编程和机器学习技能。希望这些建议对你有所帮助,祝你在学习过程中取得丰硕的成果!


(2)ChatGPT 4o

生成内容如下:

在这里插入图片描述

作为一名 编程初学者,利用 ChatGPT 来学习 Python 机器学习 是一个非常高效的方法。ChatGPT 可以帮助你:

  • 提供基础知识(如 Python 语法、NumPy、Pandas、Matplotlib、Scikit-Learn)
  • 解答编程问题(调试错误、优化代码、解释概念)
  • 生成示例代码(快速获取机器学习案例)
  • 推荐学习资源(书籍、网站、在线教程)
  • 提供项目实践建议(如何应用机器学习)

① ChatGPT 辅助 Python 机器学习学习路径
📌 阶段 1:学习 Python 基础
在开始机器学习之前,建议先掌握 Python 基础,包括:

  • 变量与数据类型(int、float、str、list、dict)
  • 循环与条件语句(for、while、if-else)
  • 函数(def 关键字、参数、返回值)
  • 模块与库(import numpy as np)

💡 如何利用 ChatGPT?
查询基础语法:

如何在 Python 中定义一个函数?

请求示例代码:

请给我一个 Python 代码示例,展示如何遍历列表并计算元素总和。

📌 阶段 2:掌握数据处理
机器学习的第一步是数据处理,建议学习:

  • NumPy:用于数组和矩阵计算
  • Pandas:用于数据处理和分析
  • Matplotlib / Seaborn:用于数据可视化

💡 如何利用 ChatGPT?
查询库的用法:

NumPy 中如何创建一个 3x3 的随机矩阵?

让 ChatGPT 解释 Pandas 相关操作:

Pandas 如何读取 CSV 文件并删除缺失值?

请求数据可视化示例:

用 Matplotlib 画一张折线图,展示一组数据的趋势变化。

📌 示例代码:Pandas 读取 CSV 并绘制柱状图

import pandas as pd
import matplotlib.pyplot as plt

# 读取 CSV 文件
df = pd.read_csv("data.csv")

# 统计某个类别的数量
counts = df["category"].value_counts()

# 绘制柱状图
plt.bar(counts.index, counts.values)
plt.xlabel("Category")
plt.ylabel("Count")
plt.title("Category Distribution")
plt.show()

📌 阶段 3:学习机器学习基础
推荐从 Scikit-Learn 入门,学习:

  • 数据预处理(归一化、标准化、缺失值处理)
  • 监督学习(分类、回归)
  • 无监督学习(聚类、降维)
  • 模型评估(交叉验证、精度、召回率、F1 值)

💡 如何利用 ChatGPT?
请求机器学习概念解释:

逻辑回归和线性回归的区别是什么?

让 ChatGPT 生成代码:

请给我一个使用 Scikit-Learn 训练决策树分类器的示例代码。

📌 示例代码:用 Scikit-Learn 训练逻辑回归模型

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 生成示例数据
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=10, random_state=42)

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测并计算准确率
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")

📌 阶段 4:实战项目
学习理论后,可以尝试 机器学习项目:

  • 房价预测(回归问题)
  • 垃圾邮件分类(文本分类)
  • 客户流失预测(分类问题)
  • 电影评论情感分析(NLP)
  • 图像识别(计算机视觉)

💡 如何利用 ChatGPT?
获取项目思路:

我想做一个房价预测项目,需要哪些步骤?

获取数据集建议:

哪里可以找到适合机器学习训练的开源数据集?

优化代码:

如何提高我的机器学习模型的预测准确率?

📌 示例项目:房价预测

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

# 读取房价数据
df = pd.read_csv("house_prices.csv")
X = df.drop(columns=["price"])  # 特征
y = df["price"]  # 目标变量

# 数据划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 训练回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估
mae = mean_absolute_error(y_test, y_pred)
print(f"房价预测的 MAE: {mae:.2f}")

② ChatGPT 在 Python 机器学习学习中的优势
✅ 随时提问:不懂的概念可立即查询,无需查阅大量资料。
✅ 代码优化:提供代码改进建议,如提高模型精度、减少计算量。
✅ 调试代码:复制错误信息,让 ChatGPT 帮助查找 bug 并修复。
✅ 项目指导:获取项目思路、数据集推荐和建模指导。

③ 初学者的 ChatGPT 学习建议

  • 每天设定学习目标:
    例如:今天学习 NumPy,明天学习 Pandas。
  • 边学边实践:
    复制 ChatGPT 生成的代码,自己运行、修改,理解其作用。
  • 多尝试不同的项目:
    从基础(分类、回归)到高级(深度学习、NLP)。
  • 记录学习笔记:
    整理 ChatGPT 提供的重要知识点,形成自己的学习手册。
  • 参与 Kaggle 或 GitHub:
    在 Kaggle 上寻找有趣的机器学习比赛,尝试分析数据并提交结果。

总结
🔹 ChatGPT 是学习 Python 机器学习的强大助手,可用于 代码生成、概念解释、调试、项目指导。
🔹 建议按照 Python 基础 → 数据处理 → 机器学习 → 实战项目 的路径学习,并多实践。
🔹 每天利用 ChatGPT 提问 + 运行代码,可快速提高编程和建模能力!🚀

🎯 开始你的 Python 机器学习之旅吧! 🚀


(3)DeepSeek 深度思考+联网搜索模式

生成内容如下:

在这里插入图片描述

作为编程初学者,利用ChatGPT辅助学习Python机器学习是一种高效的方式。以下是如何利用ChatGPT进行学习的详细步骤和实际案例,帮助你在学习过程中快速理解概念、解决问题并实践项目。

(一) 利用ChatGPT学习基础概念
1.理解机器学习术语
提问示例:

  • “什么是监督学习?能举例说明吗?”
  • “监督学习和无监督学习的主要区别是什么?”
  • “梯度下降的原理是什么?用简单例子解释。”

ChatGPT的回答示例:

监督学习是通过带标签的数据训练模型,例如根据房屋面积预测房价(标签是价格)。无监督学习则处理无标签数据,比如对客户进行聚类分组。梯度下降是通过迭代调整模型参数,最小化预测误差的优化算法,类似下山时一步步找最低点。

2.学习Python语法和库
提问示例:

  • “Python中如何用Pandas读取CSV文件?”
  • “Scikit-learn的fit()和predict()方法有什么区别?”
  • “用NumPy生成一个3x3的随机矩阵。”

ChatGPT的回答示例:

import pandas as pd
data = pd.read_csv('data.csv')  # 读取CSV文件
print(data.head())              # 显示前5行数据

(二) 分步实现机器学习代码
案例1:线性回归预测房价

  • 步骤1:数据准备
    提问:“如何用Python加载波士顿房价数据集并进行数据预处理?”

ChatGPT回答:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 加载数据
data = load_boston()
X, y = data.data, data.target

# 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2)
  • 步骤2:模型训练与评估
    提问:“如何用Scikit-learn实现线性回归,并计算均方误差?”

ChatGPT回答:

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测与评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差(MSE): {mse:.2f}")

(三) 调试代码与解决错误
案例2:解决“ValueError: Input contains NaN”错误

  • 问题场景:数据中存在缺失值导致模型报错。
  • 提问示例:
    “运行代码时出现‘Input contains NaN’错误,如何修复?”

ChatGPT回答:

# 检查缺失值
import pandas as pd
data = pd.DataFrame(X)
print(data.isnull().sum())  # 统计每列的缺失值数量

# 填充缺失值(用均值填充)
data.fillna(data.mean(), inplace=True)

(四) 生成实践项目
案例3:手写数字识别(MNIST数据集)

  • 提问:“如何用Keras构建一个简单的卷积神经网络(CNN)识别手写数字?”

ChatGPT回答:

import tensorflow as tf
from tensorflow.keras import layers, models

# 加载数据
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
X_train = X_train.reshape(-1, 28, 28, 1).astype('float32') / 255.0

# 构建CNN模型
model = models.Sequential([
    layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
    layers.MaxPooling2D((2,2)),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(10, activation='softmax')
])

# 编译与训练
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=5)

# 评估模型
test_loss, test_acc = model.evaluate(X_test.reshape(-1,28,28,1), y_test)
print(f"测试集准确率: {test_acc:.4f}")

(五) 高阶学习:优化模型与调参
案例4:使用网格搜索优化随机森林参数

  • 提问:“如何用GridSearchCV调整随机森林的超参数?”

ChatGPT回答:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

# 定义参数网格
param_grid = {
    'n_estimators': [50, 100, 200],
    'max_depth': [None, 5, 10],
    'min_samples_split': [2, 5]
}

# 网格搜索
model = RandomForestClassifier()
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

# 输出最优参数
print("最优参数:", grid_search.best_params_)

(六) 学习建议
分阶段学习:

  • 基础阶段:先掌握Python语法和常用库(NumPy、Pandas、Matplotlib)。
  • 进阶阶段:学习Scikit-learn和TensorFlow/Keras框架。
  • 实战阶段:通过Kaggle竞赛或开源项目实践(如泰坦尼克生存预测、房价预测)。

高效提问技巧:

  • 具体化问题:避免模糊提问(如“机器学习怎么学?”),改为具体问题(如“如何用PCA降维?”)。
  • 提供上下文:遇到代码错误时,附上错误信息和代码片段。
  • 追问细节:若回答不清晰,可要求进一步解释(如“能详细说明反向传播的过程吗?”)。

结合其他资源:

  • 在线课程:Coursera的《机器学习》(吴恩达)、Fast.ai的《Practical Deep Learning》。
  • 文档:Scikit-learn官方文档、TensorFlow官方教程。
  • 社区:Stack Overflow、Kaggle论坛、GitHub开源项目。

通过以上方法,你可以将ChatGPT作为“24小时在线的导师”,快速解决学习中的疑惑,并通过实践案例逐步掌握Python机器学习的核心技能。


(4)简要评价及学习建议

下面给出作者的简要评价,首先DeepSeek和ChatGPT生成内容的风格完全不一样,各有特色。

  • DeepSeek 基础模型:给出的专业回答及生成的内容较为简单,并未给出详细的案例代码,个人感觉未深刻理解作者的提问。此外,推荐的学习路线及资源较为片面,专业性稍显不足。当然这仅是最基础的模型。

  • ChatGPT 4o:生成内容非常丰富,并且包含图标、采用总分总的形式,内容描述包含详细的案例代码,详略得当。比如,基础学习阶段存在哪些Python关键词、常用扩展包均给出,更容易被初学者直观了解。更为重要的是这确实是一条不错的初学者学习路线,并且代码可以运行和维护。

疑惑:这可能与作者之前编程问题经常使用ChatGPT有关,已形成了一定的风格。同样,大模型也带来了隐私泄露、习惯及风格泄露等安全问题。

在这里插入图片描述

  • DeepSeek 深度思考+联网搜索模式:给出的内容丰富,并且适合初学者入门,包含对应的案例代码,以案例为驱动进行内容生成(建议DeepSeek后的代码模块能运行和编辑,方便初学者学习)。此外,该模式给出的学习资源建议更好,譬如Sklearn官网、吴恩达老师课程等,这是ChatGPT没提到的,而ChatGPT给出的具体路线及案例更佳。此外,DeepSeek解决中文智能问答效果更加,尤其古诗、散文、中国传统文学、社科等理解。比如下面是ChatGPT生成的李白风格诗歌,描述过程和文学性相对不足。当然,服务器繁忙的问题亟需解决。

在这里插入图片描述

当然,两者比较是仁者见仁智者见智的问题,下面简单给出一些建议:

  • 智能问答方面:大家如果要生成生活等常识问题,使用DeepSeek基础模式即可,其速度更快。如果要回答专业知识问题,采用深度思考+联网搜索模式,生成内容与ChatGPT相差不大,并且免费+开源+极低价API。此外,如果咨询中国传统文学、人文社科问题,推荐使用DeepSeek。
  • 网络安全方面:考虑到数据安全及隐私保护问题,以及需要定制化科学研究,读者可以尝试本地构建大模型并进行深入探索。总之,可信 AI 与安全性亟需增强,包括低偏见、可解释性与安全防御(对抗攻击防御)。随着 LLM 在医疗、金融等领域的应用,数据隐私保护 变得尤为重要。
  • 环境配置方面:如果初学者仅是解决常见问题,不推荐大家本地部署,不论如何,电脑还是需要一定的配置,大家使用官方提供的大模型或API即可,并且手机端支持各种小模型学习。
  • 未来发展方面:未来向轻量化与低能耗模型发展,当前 LLMs 训练和推理计算成本极高,未来将关注参数高效化、模型蒸馏、量化训练等内容,以小模型或大小结合模型的方式发展。此外,未来大模型将强化自监督学习与知识注入,优化推理能力(记忆增强机制和自适应训练),开展多模态大模型和通用人工智能研究。

三.云端搭建网页版DeepSeek(siliconflow+Chatbox AI)

第一步,打开硅基流动的官网,并注册。

在这里插入图片描述

第二步,注册登录后找到“API 密钥”。

在这里插入图片描述

新建API密钥,并定义一个名字。

在这里插入图片描述

复制刚建立的API密钥。

  • sk-ho**********tyaaokf

在这里插入图片描述

第三步,打开Chatbox AI官方网站,点击“启用网页版”。

在这里插入图片描述

读者可以选择右上角语言为中文。

第四步,在弹出的窗口中选择“使用自己的API Key或本地模型”。

在这里插入图片描述

第五步,选择硅基流动我们刚创建的API。

在这里插入图片描述

第六步,粘贴API密钥并选择DeepSeek-R1模型,并点击保存。

在这里插入图片描述

在这里插入图片描述

第七步,创建一个新的对话开始聊天和智能问答。

在这里插入图片描述

至此,我们创建了自己的云端DeepSeek模型,可以进行交互。譬如前面的3个问题,其结果如下图所示:

在这里插入图片描述

整体效果还不错,可以看到其思考过程,并给出简单的学习流程图。

在这里插入图片描述
在这里插入图片描述

最后给出利用ChatGPT辅助学习Python机器学习的学习建议,包括简单的示例代码。

在这里插入图片描述
在这里插入图片描述


四.总结

DeepSeek 作为大规模预训练语言模型,通过Transformer 结构、海量数据训练及优化技术,在文本理解、生成及知识推理等任务中展现出卓越性能。其核心原理包括:

  • 自监督学习(Self-Supervised Learning)
  • 自注意力机制(Self-Attention)
  • 指令微调(Instruction Tuning)
  • 大规模分布式训练

对于初学者,建议:

  • 使用 Hugging Face 预训练模型,避免从零开始训练。
  • 通过 API 调用进行文本生成,了解 DeepSeek 在 NLP 任务中的应用。
  • 学习微调技术,使模型适应特定领域任务,提高精度。

DeepSeek 的发展标志着大模型时代的深入应用,为自然语言处理、智能对话、知识推理等方向提供了强大的技术支持。大模型正逐步向更智能、更安全、更易用的方向迈进,为人工智能迈向通用智能(AGI)奠定基础。

作为原创博客创作者和程序员,大模型对我们的影响极大,拥抱变化,紧紧跟随。写到这里,文章就结束了。本文主要带领大家了解什么是LLM、AIGC、DeepSeek和ChatGPT。基础性文章,希望对您有所帮助。后续作者会继续深入,分享更多LLM和AIGC内容,加油,共勉!

最后用大模型的诗歌介绍本文,后面我们将进一步深入开展相关分享,包括大模型赋能的安全研究以及大模型带来的安全问题。

《娜璋珞娴·江畔寄情》
娜柳轻摇碧水边,
璋玉温润映家筵。
珞珈山色秋如画,
娴静亲情共月眠。

2024年4月28日是Eastmount的安全星球——『网络攻防和AI安全之家』正式创建和运营的日子,该星球目前主营业务为 安全零基础答疑、安全技术分享、AI安全技术分享、AI安全论文交流、威胁情报每日推送、网络攻防技术总结、系统安全技术实战、面试求职、安全考研考博、简历修改及润色、学术交流及答疑、人脉触达、认知提升等。下面是星球的新人券,欢迎新老博友和朋友加入,一起分享更多安全知识,比较良心的星球,非常适合初学者和换安全专业的读者学习。

目前收到了很多博友、朋友和老师的支持和点赞,尤其是一些看了我文章多年的老粉,购买来感谢,真的很感动,类目。未来,我将分享更多高质量文章,更多安全干货,真心帮助到大家。虽然起步晚,但贵在坚持,像十多年如一日的博客分享那样,脚踏实地,只争朝夕。继续加油,再次感谢!

(By:Eastmount 2025-02-08 夜于贵州 http://blog.csdn.net/eastmount/ )

<think>好的,我现在需要帮用户介绍如何在本地使用Local AI、llama.cpp和DeepSeek部署RAG的详细流程。首先,我需要确认自己对各个组件的理解是否正确。RAG是检索增强生成,结合了检索外部知识和生成模型的能力,对吧?Local AI可能是指本地运行的AI框架,llama.cpp是C++实现的LLM推理引擎,DeepSeek可能是一个特定的模型或者数据集?可能需要进一步确认。 用户的需求是详细的部署流程,所以需要分步骤说明。首先,可能需要环境准备,比如安装依赖、下载模型等。然后,RAG通常包括文档处理、向量数据库、检索和生成几个部分。我需要考虑如何整合这些组件。 首先,安装llama.cpp,需要从GitHub克隆仓库,编译,可能需要安装依赖如CMake、Python等。然后下载DeepSeek的模型,可能是Hugging Face格式,需要转换成gguf格式以便llama.cpp使用。转换步骤可能需要使用llama.cpp的python脚本。 接下来,处理用户文档,使用嵌入模型生成向量,建立向量数据库。这里可能需要用到Local AI提供的嵌入模型,或者Hugging Face的某个模型。然后,将查询时检索相关文档,输入到DeepSeek模型中生成答案。 需要详细说明每个步骤的具体操作,比如转换模型的命令、处理文档的代码示例、如何启动llama.cpp的API服务,以及如何集成检索和生成部分。可能还需要提到使用FAISS或Chroma作为向量数据库,以及如何将检索到的上下文传递给生成模型。 需要注意的是,用户可能对某些步骤不熟悉,比如模型转换、向量数据库的构建,所以需要给出具体的命令和代码示例。同时,要确保所有步骤在本地运行,不需要外部API,符合Local AI的要求。另外,DeepSeek模型的具体名称和下载位置可能需要确认,是否有现成的gguf版本,或者是否需要自己转换。 可能遇到的坑:模型转换时的参数设置,向量数据库的匹配问题,以及如何有效将检索结果整合到生成模型的输入中。需要提示用户可能需要的调整,比如上下文长度限制,或者检索top_k的设置。 总结下来,步骤大概是:环境准备→模型下载与转换→文档处理与向量数据库构建→RAG流程集成→测试与优化。每个步骤需要详细命令和代码,确保用户能一步步操作。</think>以下是在本地使用 **Local AI + llama.cpp + DeepSeek** 部署 RAG(Retrieval-Augmented Generation)的详细流程: --- ### **1. 环境准备** #### **1.1 安装依赖** ```bash # 基础依赖 sudo apt-get update && sudo apt-get install -y build-essential cmake python3-pip # Python 依赖 pip install numpy pandas sentence-transformers faiss-cpu langchain flask ``` #### **1.2 克隆 llama.cpp 仓库** ```bash git clone https://github.com/ggerganov/llama.cpp cd llama.cpp && make ``` --- ### **2. 模型准备** #### **2.1 下载 DeepSeek 模型** - 从 Hugging Face 下载模型(如 `deepseek-ai/deepseek-llm-7b-chat`): ```bash git lfs install git clone https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat ``` #### **2.2 转换模型为 GGUF 格式** ```bash # 安装转换依赖 pip install -r llama.cpp/requirements.txt # 转换 HF 模型到 GGUF python3 llama.cpp/convert-hf-to-gguf.py deepseek-llm-7b-chat --outfile deepseek-7b-chat.gguf # 量化(可选,减少内存占用) ./llama.cpp/quantize deepseek-7b-chat.gguf deepseek-7b-chat-Q4_K_M.gguf Q4_K_M ``` --- ### **3. 构建向量数据库** #### **3.1 准备本地文档** 将文本文件(如 PDF、TXT)存放在 `documents/` 目录下。 #### **3.2 生成文档向量** ```python from sentence_transformers import SentenceTransformer from langchain.vectorstores import FAISS # 加载嵌入模型(本地运行) embed_model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") # 读取文档并分块 documents = [...] # 从本地文件读取文本并分块 # 生成向量 doc_embeddings = embed_model.encode([doc.text for doc in documents]) # 构建向量数据库 vector_db = FAISS.from_embeddings(doc_embeddings, documents) vector_db.save_local("faiss_index") ``` --- ### **4. 部署 RAG 流程** #### **4.1 启动 llama.cpp 服务** ```bash ./llama.cpp/server -m deepseek-7b-chat-Q4_K_M.gguf --ctx-size 2048 --port 8000 ``` #### **4.2 实现 RAG 逻辑** ```python from flask import Flask, request, jsonify from sentence_transformers import SentenceTransformer from langchain.vectorstores import FAISS app = Flask(__name__) embed_model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") vector_db = FAISS.load_local("faiss_index", embed_model) @app.route("/ask", methods=["POST"]) def ask(): # 检索 query = request.json["query"] query_embed = embed_model.encode([query]) docs = vector_db.similarity_search_by_vector(query_embed[0], k=3) # 构造提示词 context = "\n".join([doc.text for doc in docs]) prompt = f"基于以下上下文回答问题:\n{context}\n\n问题:{query}\n回答:" # 调用本地模型生成 response = requests.post( "http://localhost:8000/completion", json={"prompt": prompt, "temperature": 0.7, "max_tokens": 512} ) return jsonify({"answer": response.json()["content"]}) if __name__ == "__main__": app.run(port=5000) ``` --- ### **5. 测试与优化** #### **5.1 发送查询请求** ```bash curl -X POST http://localhost:5000/ask -H "Content-Type: application/json" -d '{"query": "如何解释量子计算?"}' ``` #### **5.2 优化方向** - **性能优化**:调整 `k`(检索文档数量)和 `max_tokens`(生成长度)。 - **模型优化**:尝试不同量化版本的 DeepSeek 模型(如 Q5_K_M)。 - **检索优化**:使用更精确的嵌入模型(如 `bge-large-zh-v1.5`)。 --- ### **关键点说明** 1. **本地化运行**:所有组件(模型、向量数据库、服务)均在本地运行,无需网络。 2. **硬件要求**: - 7B 模型需至少 8GB 内存(量化后)。 - GPU 加速需编译 llama.cpp 时启用 CUDA。 3. **扩展性**:可替换为其他开源模型(如 Qwen、ChatGLM3)。 通过以上步骤,你可以在本地低成本实现一个基于私有数据的智能问答系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值