专栏名称: 程序员鱼皮
鹅厂全栈开发,持续分享编程技法和实用项目
目录
相关文章推荐
ZaomeDesign  ·  每日灵感丨二月十日 ·  昨天  
字体设计  ·  为鱿鱼游戏绘制的插画海报被Behance官推了 ·  4 天前  
优秀网页设计  ·  AI工具丨设计师刚需,可商用的AI生成背景图片库! ·  5 天前  
优秀网页设计  ·  AI工具丨年后工作必备!256个AI工具百宝 ... ·  4 天前  
ZaomeDesign  ·  每日灵感丨二月八日 ·  3 天前  
51好读  ›  专栏  ›  程序员鱼皮

DeepSeek 又无法访问了。。不慌!

程序员鱼皮  · 公众号  ·  · 2025-02-03 23:23

正文

最近 DeepSeek 可太火了,公众号几乎全是关于它的文章。由于鱼皮最近这两天在忙店铺的事情,没空写文章,昨天转了一篇朋友对 DeepSeek 的看法,结果被骂惨了,今天就给大家分享一篇 DeepSeek 的部署教程吧~

为什么 DeepSeek-R1 这么强

DeepSeek-R1 是由深度求索(DeepSeek)公司开发的高性能 AI 推理模型,专注于数学、代码和自然语言推理任务。它的核心优势包括:

  • 强化学习驱动 :利用强化学习技术大幅提升推理能力,只需少量标注数据就能实现高效训练。
  • 长链推理(CoT) :支持多步骤逻辑推理,能够将复杂问题分解并逐步解决。
  • 模型蒸馏 :能够将推理能力迁移到更小的模型中,特别适合资源受限的场景。
  • 开源生态 :采用 MIT 开源协议,用户可以自由使用、修改和商用。

DeepSeek-R1 在多个基准测试中都表现出色,性能可与 OpenAI 的 o1 正式版相媲美,而且性价比更高。

由于DeepSeek太强,遭受了不明力量的大量DDOS攻击,导致网站经常崩溃,甚至API直接访问不了了。(用惯了R1,没有他我还怎么干活呀!~)

由于R1是全面开源的,我们只需要我们用自己的卡部署一个,就可以 数据安全的无限使用 了。

安装Ollama

首先安装ollama,地址如下: https://ollama.com/

下载对应操作系统的安装包,按照引导进行安装就ok了

终端中运行以下命令验证安装是否成功

(base) ➜  ~ ollama --version
ollama version is 0.5.7

部署DeepSeekR1模型

https://ollama.com/search?q=deepseek-r1

搜索 deepseek-r1, 运行以下命令下载8b参数版本






    
(base) ➜  Downloads (base) ➜  Downloads ollama run deepseek-r1:8b
pulling manifest 
pulling manifest 
pulling manifest 
pulling manifest 
pulling manifest 
pulling 6340dc3229b0... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 4.9 GB                         
pulling 369ca498f347... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  387 B                         
pulling 6e4c38e1172f... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.1 KB                         
pulling f4d24e9138dd... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  148 B                         
pulling 0cb05c6e4e02... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 
pulling manifest 
pulling manifest 
pulling manifest 
pulling manifest 
pulling manifest 
pulling 6340dc3229b0... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 4.9 GB                         
pulling 369ca498f347... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  387 B                         
pulling 6e4c38e1172f... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.1 KB                         
pulling f4d24e9138dd... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  148 B                         
pulling 0cb05c6e4e02... 100% ▕█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 

作者使用的是 16g 内存的 mac m1,部署 14b 以下的蒸馏版本还很快的。输出的内容跟官网一样会先显示思考过程,再进行高质量的回答

>>> 用java写一个快速排序,要求注意边界情况以及性能

嗯,我现在需要用Java来实现一个快速排序,而且要注意边界情况和性能。首先,快速排序是一种高效的排序算法,平均时间复杂度是O(n log n),空间复杂度也是O(log n)。那我得先想一下快速排
序的基本步骤。

首先,选择一个数组的中间元素作为枢轴,然后将所有小于枢轴的元素放在左边,大于的放在右边,然后递归地对这两个子数组进行排序。那么,我应该如何实现这个过程呢?

我知道,在Java中可以通过递归或者迭代来实现快速排序。但是,递归可能在处理较大的数据时会遇到栈溢出的问题,所以如果需要处理非常大的数据,迭代方法可能更好。不过,对于一般情况,递
归的实现比较简单,也容易理解。所以我先考虑用递归的方式。

那接下来,我得想一下如何选择枢轴。对于一个数组,比如arr,从0到length-1,那么中间位置是left + (right - left)/2。这一步需要注意,当数组长度为奇数时,中间元素可能被多次选中,以
避免递归引起的问题。

然后,将小于、等于、大于枢轴的元素分开。或者,有时候为了优化性能,可以选择仅将小于和大于的元素分开,然后再处理相等的部分,这样可以减少比较次数,提高效率。但是,在代码实现中,
要如何处理这三个区域呢?可能需要一个辅助函数来进行。

另外,我得考虑边界情况,比如当数组只有一个或者零个元素的时候,不需要排序。这样在递归的终止条件里要特别注意。

那我先写一下大概的结构:

public class QuickSort {

    public void sort(int[] arr, int left, int right) {
        // base case: when left >= right, no sorting needed
        if (left >= right) return;

        // choose pivot
        int mid = getMid(left, right);
        // partition around pivot
        int value = arr[mid];
        int i = left;
        while (i < mid) {
            if (arr[i] <= value) i++;
            else swap(arr, i, mid-1);
        }
        int j = mid+1;
        while (j > mid) {
            if (arr[j] >= value) j++;
            else swap(arr, j, mid+1);
        }

        // recurse on subarrays
        sort(arr, left, mid);
        sort(arr, mid+1, right);

        // merge? 不,快速排序是分治,不需要合并步骤,只递归处理左右子数组。
    }

    private int getMid(int left, int right) {
        return (left + right)/2;
    }

    private void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

等等,但是这里好像有点问题。因为在快速排序中,通常是把数组划分为左右两个部分,然后递归排序各自的子数组。而上面的代码是否正确呢?

...

以下是实现代码:

public class QuickSort {

    public void sort(int[] arr) {
        sort(arr, 0, arr.length - 1);
    }

    private void sort(int[] arr, int left, int right) {
        if (left > right) return;

        int mid = (left + right) / 2;
        int pivot = arr[mid];

        int i = left;
        int j = right;

        while (i < j) {
            if (arr[i] <= pivot && arr[j] >= pivot) {
                // 交换左右两边的元素
                swap(arr, i, j);
                i++;
                j--;
            } elseif (arr[i] > pivot) {
                // 将右侧小于等于枢轴的移到左边
                j--;
            } else {
                // 将左侧大于枢轴的移到右边
                i++;
            }
        }

        // 递归排序左右子数组
        sort(arr, left, mid - 1);
        sort(arr, mid + 1, right);
    }

    private void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}

会经过大量的思考以及进行大量的单元测试,最终给出了几千字的结论,还是有几把刷子的。

部署Chatbox网页版客户端

命令行访问对于大部分人还是不太友好,可以用图形化界面链接 ollama 来使用。

这里推荐 代码 开源的 chatbox

1.下载软件:







请到「今天看啥」查看全文


推荐文章
ZaomeDesign  ·  每日灵感丨二月十日
昨天
ZaomeDesign  ·  每日灵感丨二月八日
3 天前
中国历史解密  ·  清朝小学的语文课本,简直美极了!
8 年前
晚安少年  ·  男/女朋友很忙是种怎样的体验?
8 年前
茗创茶社  ·  想靠工资实现财务自由?醒醒吧!
7 年前
慈怀读书会  ·  平淡是真,平常是本,平安是福
7 年前