在AI技术快速发展的本日,开源大模型的本地化摆设正在成为开辟者们的热门实践方向。最火的莫过于吊打OpenAI过亿成本的纯国产DeepSeek开源大模型,就在刚刚,凭一己之力让英伟达大跌18%,纳斯达克大跌3.7%,足足是给中国AI产业扬眉吐气了一回。
本文将手把手教大家如何利用DeepSeek-R1开源大模型,通过Ollama工具实现本地摆设,并结合MaxKB搭建一个简单的RAG(检索增强生成)应用。
一、情况准备
在开始之前,请确保你的开辟情况满足以下要求:
操纵体系:Windows/Mac/Linux
Python版本:3.8及以上
硬件要求:建议利用NVIDIA显卡,至少16GB内存
安装工具:Git、Python3.9、pip、pytorch,实现请准备好CUDA驱动、pytorch的GPU版本
运行nvidia-smi下令可以检察CUDA版本
然后到https://developer.nvidia.com/cuda-toolkit-archive下载对应版本的CUDA Toolkit
接下来安装cuDNN:https://developer.nvidia.com/rdp/cudnn-archive,找好对应CUDA版本的cuDNN
再接下来安装pytorch,到官网https://pytorch.org/get-started/locally/
当情况准备妥当之后,进入python,输入import torch,再输入torch.cuda.is_available()回车,看看是不是True,如果不是,则说明安装的版本不正确,比如驱动版本不对、CUDA版本不对、python版本不对、pytorch版本不对,特别要注意利用了国内镜像安装pytorch的朋友,有可能默认掷中的是cpu版本而不是gpu版本,须要时需要手动下载whl安装包进行安装。
如果还想要后续利用MaxKB作为界面的话,那么Windows还需要启动Hyper-V并安装Docker Desktop,Linux则安装一套docker就可以,这里不再赘述。
二、Ollama本地摆设DeepSeek-R1
Ollama是一个轻量级的AI模型运行框架,支持多种开源大模型的本地化摆设。以下是摆设deepseek-r1的详细步骤:
1. 安装Ollama
打开终端,Linux输入以下下令安装Ollama:
- curl -fsSL https://ollama.com/install.sh | sh
复制代码 而Windows就相对更容易安装一些,直接到官网下载即可
2. 下载并安装DeepSeek-R1模型
利用Ollama拉取DeepSeek-R1模型,这里因为我用的是4090显卡,显存只有24G,所以最大能运行32b模型:
- ollama run deepseek-r1:32b
复制代码 如果下载速率较慢,可以尝试利用镜像源或署理加速。下载完成之后即可在下令行里进行问答。
此中的think标签即它的深度思考过程
默认情况下,Ollama会在http://localhost:11434端口提供API服务,后面搭建MaxKB会用到。
三、利用MaxKB搭建RAG应用
MaxKB是一个专注于文档问答的开源工具,支持与本地AI模型结合利用。以下是详细步骤:
1. 安装MaxKB
如果你是利用Linux操纵体系,则在有docker的情况下运行
- docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb
复制代码 如果用的是Windows操纵体系,则运行
- docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb
复制代码 2. 配置DeepSeek-R1模型
用欣赏器打开localhost:8080,按指示操纵初始化管理员用户名和密码
然后到模型设置里手动填上deepseek-r1:32b模型

随后我们创建一个应用

然后我们设置这个应用,把刚才添加的AI模型选中,点击保存并发布

然后点击演示按钮,即可开始和deepseek-r1模型进行对话了

我们可以看到它在写代码方面非常精彩

以下是它写出来的代码,结果还不错:
- <template>
- <div class="container">
- <h1 class="title">商品列表</h1>
- <a-row :gutter="24">
- <a-col v-for="item in products" :key="item.id" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
- <a-card class="product-card" hoverable>
- <template #cover>
- <div class="image-wrapper">
- <a-image v-if="item.picture" :src="item.picture" alt="商品图片" />
- </div>
- </template>
- <div class="card-content">
- <h3 class="product-name">{{ item.name }}</h3>
- <p class="product-description">{{ item.description }}</p>
- <div class="price-section">
- <span class="price">¥{{ item.price }}</span>
- </div>
- <div class="action-buttons">
- <a-button type="primary" style="background-color: #ff6600; border-color: #ff6600;">
- 查看详情
- </a-button>
- <a-button style="margin-left: 8px; background-color: white; color: #ff6600; border-color: #ff6600;">
- 加入购物车
- </a-button>
- </div>
- </div>
- </a-card>
- </a-col>
- </a-row>
- </div>
- </template>
- <script>
- import { defineComponent } from 'vue';
- import { Row, Col, Card, Image, Button } from 'ant-design-vue';
- export default defineComponent({
- components: {
- ARow: Row,
- ACol: Col,
- ACard: Card,
- AImage: Image,
- AButton: Button
- },
- data() {
- return {
- products: [
- {
- id: 1,
- name: '商品名称1',
- price: 99.99,
- picture: 'https://via.placeholder.com/200x200',
- description: '这是一个商品的简要描述,展示商品的基本信息。'
- },
- // 其他商品数据...
- ]
- };
- }
- });
- </script>
- <style scoped>
- .container {
- padding: 24px;
- background-color: #f5f5f5;
- }
- .title {
- margin-bottom: 24px;
- color: #333;
- font-size: 28px;
- text-align: center;
- }
- .product-card {
- background-color: white;
- border-radius: 8px;
- transition: transform 0.2s;
- margin-bottom: 24px;
- }
- .product-card:hover {
- transform: translateY(-5px);
- }
- .image-wrapper {
- height: 200px;
- overflow: hidden;
- border-radius: 8px 8px 0 0;
- }
- a-image {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
- .card-content {
- padding: 16px;
- }
- .product-name {
- margin: 0 0 12px 0;
- color: #333;
- font-size: 18px;
- }
- .product-description {
- color: #666;
- font-size: 14px;
- line-height: 1.5;
- margin-bottom: 16px;
- }
- .price-section {
- margin-bottom: 16px;
- }
- .price {
- color: #ff6600;
- font-size: 20px;
- font-weight: bold;
- }
- .action-buttons {
- display: flex;
- gap: 8px;
- justify-content: space-between;
- align-items: center;
- }
- </style>
复制代码 那么它生成这么多token,耗时是多少呢?后台可以看到的

按这么算,生成速率是95tokens每秒,这么棒的结果只需要一块不到2万的4090D,简直不敢信赖,相当于2万给自己找了一个会深度思考的助手,而且不是月薪,是妥妥的买断。
四、实战:构建一个简单的RAG应用
将需要问答的文档上传到MaxKB的知识库中。支持的文件格式包罗PDF、Word、PPT等。
然后建议你上传markdown文档作为知识库,解析效率比较好,上传完成后可以批量进行向量化并生成问题。
在设置应用的时间勾选关联知识库即可在答复前搜刮知识库。
五、总结
通过本文的实践,我们乐成地将DeepSeek-R1模型摆设到本地,并结合MaxKB搭建了一个简单的RAG应用。这种方式不仅节流了云服务的成本,还可以或许更好地控制数据隐私和模型性能,随时都可以对模型的答复进行RAG知识库的微调。如果你对AI技术感兴趣,不妨可以尝试一下。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |