当前位置: 首页 > article >正文

本地部署deepseek-r1:7b模型

本地部署Deepseek

环境:win11 16G内存 NVIDIA GeForce RTX 2060显卡

安装Ollama

Tips:Ollama是一个用方便用户在本地机器上部署和运行大语言模型的工具

ollama官网下载传送门

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

默认的安装路径为c盘,这边修改为指定路径

修改方式:新增OLLAMA_MODELS的环境变量

在这里插入图片描述

验证是否修改成功,黑窗口中输入ollama

在这里插入图片描述

出现以上信息就说明安装成功了

拉取模型

结合我自己电脑的显卡,我这边搞个7b的版本

网上找的各种模型需要的显存大小作为参考

模型版本显存大小
1.5b4
7b、8b8
14b12
32b24

拉取7b命令(后续重新进入和重新启动也可以用这个命令)

ollama run deepseek-r1:7b

7b文件大小有4.7G,可能要一会儿

在这里插入图片描述

ollama查看模型列表命令

ollama list

ollama查看正在运行的模型命令

ollama ps

停止正在运行的模型命令

ollama stop 模型名称

ollmam删除模型命令

ollama remove 模型名称

安装成功后就可以进行对话了

在这里插入图片描述

对话测试:

用Java写一个快速排序的算法

在这里插入图片描述

以下是回答的全部内容,感觉还是很快的,条理清晰

>>> 用Java写一个快速排序的算法
<think>
嗯,用户让我用Java写一个快速排序的算法。首先,我得确认用户的需求是什么。他们可能需要一个示例代码来理解如何实现快速排
序。

快速排序是分治算法,所以我要想到递归和选择基准元素的过程。首先,我得选择一个基准元素,通常可以选择数组的第一个元素、
最后一个或者中间那个作为基准。

接下来,我需要写一个partition函数,这个函数的作用是将数组分为两部分,左边小于等于基准,右边大于等于基准。这一步很重
要,因为它确定了左右区间的划分。

然后,递归地对左半部分和右半部分进行排序。这样,整个数组就会被快速排序完成。

在编写代码时,我得考虑参数类型、方法名以及处理边界情况,比如数组为空或者只有一个元素的情况。这些都是避免栈溢出和错误
的重要步骤。

最后,我要测试一下代码的正确性。可以写一个测试类,初始化一个整数数组,调用quickSort方法排序,然后打印结果看看是否正
确。

总之,我需要一步步构建快速排序算法,确保每个部分都清晰明了,并且能够处理各种情况。
</think>

以下是一个使用Java实现快速排序(Quick Sort)的示例代码:

```java
public class QuickSort {
    public static void main(String[] args) {
        int[] array = {12, 11, 13, 5, 6, 7};
        quickSort(array);
        System.out.println("Sorted array: ");
        for (int num : array) {
            System.out.print(num + " ");
        }
    }

    public static void quickSort(int[] array) {
        if (array.length <= 1) {
            return;
        }

        int pivotIndex = array.length / 2; // 选择中间元素作为基准
        int pivot = array[pivotIndex];

        // 分区操作
        int left = 0;
        int right = array.length - 1;

        while (left <= right) {
            // 找到大于基准的左边界
            while (left <= right && array[left] <= pivot) {
                left++;
            }

            // 找到小于基准的右边界
            while (left <= right && array[right] >= pivot) {
                right--;
            }

            if (left <= right) {
                // 交换元素
                int temp = array[left];
                array[left] = array[right];
                array[right] = temp;
            }
        }

        // 递归排序左半部分和右半部分
        quickSort(array, 0, left - 1);
        quickSort(array, right + 1, array.length - 1);

    }

    public static void quickSort(int[] array, int left, int right) {
        if (left >= right) {
            return;
        }

        // 随机选择基准(可选)
        int pivotIndex = left + (right - left) * Math.random() % (right - left + 1);
        int pivot = array[pivotIndex];

        int i = left;
        int j = right;

        while (i <= j) {
            // 找到第一个大于基准的元素
            while (i <= j && array[i] < pivot) {
                i++;
            }

            // 找到最后一个小于基准的元素
            while (i <= j && array[j] > pivot) {
                j--;
            }

            if (i <= j) {
                int temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
        }

        quickSort(array, left, i - 1);
        quickSort(array, j + 1, right);
    }
}
```

### 解释

1. **快速排序算法**:
   - 快速排序是一种分治算法,选择一个基准元素(pivot),将数组划分为两部分:左半部分的元素小于等于基准,右半部分的元素大于等于基准。
   - 使用递归对左右两个子数组进行排序。

2. **代码结构**:
   - `main` 方法初始化一个整数数组,并调用 `quickSort` 方法对其进行排序。
   - `quickSort` 方法有两个版本:一个接受整个数组,另一个接受子区间 `[left, right]`。默认情况下,第一个版本调用后会自动递归排序左右子数组。

3. **分区操作**:
   - 使用两个指针 `i` 和 `j` 分别从左到右和从右到左遍历数组。
   - 确保 `array[i] < pivot`(左指针移动)。
   - 确保 `array[j] > pivot`(右指针移动)。
   - 交换 `array[i]` 和 `array[j]`,直到 `i >= j`。

4. **基准选择**:
   - 基准选择为数组中间元素以减少极端情况的影响,同时也可以随机选择或固定选择最后一个元素作为优化策略。

### 注意事项

- 快速排序的时间复杂度为 \(O(n \log n)\),平均情况下表现优异。
- 在最坏情况下(如数组已经是有序的),时间复杂度退化为 \(O(n^2)\)。可以通过随机选择基准或使用更高级的分区技巧来优化。
- 对于大规模数据集,可以考虑使用归并排序或其他算法。

希望这个示例代码对您有所帮助!如果有任何问题,欢迎随时提出。

这是他回答一个年终报告是截取的电脑各部件信息

在这里插入图片描述


http://www.kler.cn/a/540751.html

相关文章:

  • Python Pandas(3):DataFrame
  • 常用的python库-安装与使用
  • kafka消费端之分区分配策略
  • Kotlin Android 环境搭建
  • 使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
  • 四种垄断组织形式的简洁解释-AI
  • 8、Python 面试题解析:实例方法、静态方法和类方法的区别
  • w~自动驾驶~合集17
  • C#程式状态机及其Godot实践
  • Docker的深入浅出
  • 如何利用DeepSeek结合深度学习与NLP技术,实现跨模态搜索的语义理解与个性化推荐
  • Firefox无法隐藏标题栏
  • 单片机成长之路(51基础篇) - 008 C51 的标示符和关键字
  • Tauri教程-实战篇-第六节 托盘、请求完善
  • VSCode中出现“#include错误,请更新includePath“问题,解决方法
  • Jsoniter Unmarshal类型错误的友好提示
  • Segformer模型的平台部署和项目应用
  • N-Beats:一种用于时间序列预测的纯前馈神经网络模型
  • 仿 RabbitMQ 实现的简易消息队列
  • 【Docker】从技术架构到容器实战{空间隔离/资源控制/LXC容器/mount}
  • Git冲突解决技巧
  • 日常吐槽。
  • PostgreSQL的学习心得和知识总结(一百六十七)|深入理解PostgreSQL数据库之静态语法检查工具PgSanity的使用和实现
  • 示波器使用指南
  • [7] 游戏机项目说明
  • SQL自学,mysql从入门到精通 --- 第 15天,数据导入、导出