ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Ollama本地搭建Deepseek

Ollama本地搭建Deepseek Ollama本地搭建LLM: Deepseek一、AI领域分层介绍和主流的大模型1.第一层基础学科与总称最底层2.第二层当前的范式革命生成式浪潮3.第三层当下最火的具体模型形态LLM与多模态4.第四层关键技术方法与架构理解底层逻辑5.第五层终极理想目标6.主流大模型二、环境准备1.Ollama安装2.选择适配自己的模型三、调用本地大模型接口1.chat接口参数详解1.1 核心参数1.2 options行为控制参数 (可选)1.3 推理参数 (可选) deepseek说不支持但是通过Ollama运行deepseek时确实是生效的1.4出参2.Python实现调用本地大模型2.1 Python下载三方包一、AI领域分层介绍和主流的大模型1.第一层基础学科与总称最底层AI人工智能Artificial Intelligence整个领域的总称。目标是让机器模拟人类的智能行为。它是一个极其宽泛的学科包含了下面所有内容。ML机器学习Machine LearningAI的核心实现手段。不靠硬编码规则而是让计算机通过数据“学习”规律。AI ≠ ML但现代AI几乎都基于ML。DL深度学习Deep LearningML的一个子集。使用多层神经网络模拟人脑进行学习。图像识别、语音识别的大爆发都源于此。2.第二层当前的范式革命生成式浪潮GenAI生成式人工智能Generative AI一种AI的能力范式。指能够生成新内容文本、图像、音频、视频的AI而不是仅做分析或分类。ChatGPT、Midjourney都是GenAI的典型代表。AIGCAI Generated Content人工智能生成内容GenAI的直接产出物/应用场景名词。它强调“内容”本身。AIGC是GenAI带来的直接结果。在中国产业界AIGC这个词用得极多GenAI更偏学术技术。Foundation Model基础模型/大模型底座指在海量数据上预训练出的超大规模模型如GPT-4、文心一言可作为基座微调后适应各种下游任务。3.第三层当下最火的具体模型形态LLM与多模态LLM大语言模型Large Language Model这里的大是指模型参数量比较大都是10亿(b)为单位的。GenAI在文本领域的具体产品形态。特指基于海量文本训练、擅长处理自然语言的大型神经网络如GPT系列、LLaMA、Qwen。它是目前AIGC浪潮的绝对主力。SLM小语言模型Small Language Model相对于LLM参数更小、更轻量可在手机端运行如微软Phi系列、Google Gemma。特点是推理快、成本低适合垂直场景。多模态模型Multimodal Model不仅能处理文本还能同时理解图像、视频、音频的模型如GPT-4o、Claude 3系列。它是LLM的升级版目标是“像人一样综合看世界”。4.第四层关键技术方法与架构理解底层逻辑TransformerLLM和现代GenAI的绝对核心架构。2017年由Google提出基于“自注意力机制”Self-Attention取代了传统的RNN/CNN使得并行训练大规模数据成为可能。RLHF基于人类反馈的强化学习Reinforcement Learning from Human Feedback让LLM“对齐”人类价值观的关键技术。通过人类标注排序答案的好坏训练奖励模型再用强化学习微调模型让ChatGPT变得懂礼貌、拒绝有害问题。RAG检索增强生成Retrieval-Augmented Generation解决LLM“胡说八道”幻觉和知识过时的核心技术。在LLM回答前先去外部知识库向量数据库检索相关内容拼到提示词里让模型基于“查到的资料”回答而不是硬背。企业私有化部署几乎必备。Agent智能体/代理让LLM拥有“行动”和“规划”能力。不止聊天Agent能拆解复杂任务、调用外部工具如查天气、订机票、写代码执行像一个虚拟员工。5.第五层终极理想目标AGI通用人工智能Artificial General IntelligenceAI界的“圣杯”。指能够理解、学习并完成人类能做的任何智力任务的AI具备人类水平的通用推理能力。目前所有LLM都还只是ANI狭义人工智能弱AI远未达到AGI。路漫漫其修远兮6.主流大模型OpenAIGPT系列技术标杆与行业领跑者。其GPT系列模型在通用推理、复杂任务处理上长期领先。旗舰模型从GPT-4演进到GPT-5.5等版本并拥有更经济高效的GPT-5.4 mini/nano等变体。它支持超长上下文如922K tokens和多模态能力是处理高难度推理、规划和长文档分析的首选。GoogleGemini系列原生多模态与长上下文王者。Gemini系列最大的特点是原生多模态能无缝处理文本、图像、音频、视频和代码。Gemini 2.5 Pro曾连续多月在LMArena排行榜上位居榜首其最新版本Gemini 3.1 Pro在推理和编码能力上极具竞争力成本效益较高。上下文窗口最高可达100万tokens。AnthropicClaude系列编程与安全领域的佼佼者。Claude系列以强大的编码能力、复杂的指令遵循和高安全性著称。其旗舰版本Claude Opus 4.7在编程助手、代理循环Agentic loops等场景表现突出。Claude模型支持高达100万tokens的上下文窗口并提供快速响应与扩展思维两种推理模式。MetaLlama系列开源生态的领导者。Llama系列是开源大模型生态的标杆其Llama 3.1 405B版本是当时世界上最大的开源AI模型之一。Llama 4进一步扩大了规模其Behemoth版本总参数高达2万亿Scout版本更是支持高达1000万token的上下文窗口刷新了开源模型纪录。xAIGrok系列实时信息与长上下文黑马。由马斯克创立其Grok系列模型以长上下文窗口和性价比为特点。例如Grok-4.1 Fast Non-Reasoning支持200万tokens的上下文是处理超长文本的强力选择。Mistral欧洲开源劲旅。Mistral是欧洲AI领域的代表性力量其开源模型Mistral Large 3拥有675B总参数性能强劲。 中国主流大模型阿里巴巴通义千问/Qwen系列开源与闭源双线出击。Qwen系列是全球最活跃的开源大模型之一其闭源版本Qwen3.7 Max等也已进入全球顶尖闭源模型行列。它拥有强大的开源生态和社区驱动能力。深度求索DeepSeek系列开源模型性价比之王。DeepSeek系列凭借高性能和开源策略广受关注在多项评测中位列前茅。其V3.1等模型被认为是开源阵营的领先者。智谱AIGLM系列国产模型技术先驱。智谱AI的GLM系列是国内最早的国产大模型之一技术实力强劲。其GLM-4.6等模型在权威评测中紧随国际顶尖闭源模型之后。最新模型在推理能力上表现突出。字节跳动豆包/Doubao系列应用生态与商业规模领先。豆包大模型背靠字节跳动庞大生态在C端和B端市场均有广泛覆盖。其模型在综合能力评测中排名前列。百度文心/ERNIE系列知识增强与产业落地先行者。文心系列以知识增强为核心技术路线通过融合知识图谱提升在专业领域的理解能力。其ERNIE 4.5 Turbo在保持大规模参数的同时推理效率大幅提升。腾讯混元/Hunyuan系列多模态与实时交互。混元大模型以多模态实时交互为核心优势在智能客服等场景中响应迅速。华为盘古/Pangu系列行业大模型深度定制。盘古大模型主打行业定制通过分层解耦架构支持快速定制金融、制造、能源等行业模型在工业质检等场景表现优异。月之暗面Kimi系列长文本处理专家。Kimi系列以超长上下文处理能力闻名其Kimi-K3(max)等模型在多项评测中表现突出。其他重要玩家还包括科大讯飞星火/Spark、零一万物、MiniMax、阶跃星辰(StepFun)等它们都在特定领域或技术上具有不俗实力。二、环境准备1.Ollama安装Ollama官网https://ollama.com/Ollama是一个LLM的管理控制工具作用类似于Docker下面是他的一些常用命令下载模型ollama pull 模型名如ollama pull llama3.2下载并运行模型ollama run 模型名如ollama run llama3.2下载并运行并查询完成后退出ollama run 模型名 “提示词”如ollama run llama3.2 “你好”停止模型运行Ollama stop 目标模型如ollama stop llama3.2查看运行中模型Ollama ps列出本地所有模型ollama list 或 ollama ls删除模型ollama rm 模型名 删除模型如Ollama rm llama3.2查看模型详情ollama show 模型名如Ollama show llama3.2复制模型ollama cp 源模型 目标模型创建自定义模型ollama create 模型名 -f 如ollama create my-model -f ./Modelfile以下是Ollama自身命令ollama serve 启动服务ollama -v 查看版本ollama help 查看帮助根据自己的电脑系统下载对应版本即可下载完成后不要双击安装双击安装的话默认会安装到c盘下这里使用自定义安装在OllamaSetup.ext所在文件夹打开cmd然后执行命令.\OllamaSetup.exe /DIRD:/AI/Ollama.\OllamaSetup.exe /DIR安装目录会弹出如下安装即可安装好后弹出如下页面更改下模型的存储位置更改完立即生效无需手动保存。2.选择适配自己的模型登录Ollama官网https://ollama.com/找到如下位置然后就可以下载自己想要的模型了这里使用deepseek搜索后可以看到deepseek有很多的版本那要如何选择呢首先版本可以看出来主要分为R版本和V版本。V系列通用多面手它的目标是快速、准确地完成各种日常任务如聊天、写作、翻译、信息提取等。它像一个知识渊博、反应迅速的助手。R系列推理专家它的核心优势在于处理需要多步逻辑推导的复杂问题。面对数学证明、复杂代码调试等任务时它会先进行一段深入的“内心独白”即思维链再给出最终答案。当然还有一些其他的版本DeepSeek-Coder专门针对代码生成、补全和调试等任务进行优化的模型。如果你需要AI辅助编程这个模型是理想选择。DeepSeek-OCR这是一个视觉-语言模型专门用于执行光学字符识别OCR 任务。它能“看懂”图片中的文字并提取出来。在Ollama v0.13.0及以上版本中可用。DeepSeek-Math一个专注于数学推理和问题求解的优化版本。DeepSeek-Chat通用对话模型可看作V系列的一个分支。综合自己的需求选择这里选用deepseek-v2进入后可以看到还有三个可以选择的那么选用哪个呢是 是16b呢还是236b呢这里的latest就是16b他们是一个。至于选哪个还需要根据自己的电脑显存来决定显卡的存储能里和大模型的参数选择可以参照如下来看此外上下文等其他可能也会消耗部分缓存所以一般选用时不要定格选这里我就选择了 deepseek-v2:16b下面是使用Ollama进行下载该模型单机如下位置运行下图的命令然后找到Ollama下载目录下打开cmd执行如下命令ollama run deepseek-v2:16b完结之后就可以试试了如果想要退出的话输入/bye或者/exit都是可以的。如果想要使用别的大模型直接run即可到这里环境就ok了。三、调用本地大模型接口Ollama官方文档https://docs.ollama.com/api/chatDeepseek官方文档https://api-docs.deepseek.com/zh-cn/这里展示聊天接口的对接1.chat接口参数详解chat接口支持参数和释义如下,Ollama官方相关描述https://docs.ollama.com/api/chat#body-think-one-of-0Deepseek官方描述https://api-docs.deepseek.com/zh-cn/1.1 核心参数model这个参数一定是输入Ollama中大模型的名字如下圈出来的位置messages这个参数也是核心我们可以指定role和content。role表示角色这个可以控制模型扮演的角色等{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:写一首诗}],stream:false}这个参数里messages第一个对象是system表示大模型的角色注意deepseek不支持角色名称的定义你告诉他你叫啥不会起作用但是其他的设定是有用的。第二个对象则是用户信息以及用户的输入内容了。还有一个特别重要的点大模型正是通过message把以往的对话内容输入进去才实现的上下文信息这也导致了调用外部大模型后期的成本越来越高1.2 options行为控制参数 (可选)stream boolean是否启用流式输出。false 时等待完整响应。默认为 true。流式输出就是大模型响应时是一个字一个字输出出来的平时使用浏览器页面访问时默认就是这个模式如果不需要可以设置成falseformat string / object强制模型输出为 “json” 或符合提供的 JSON schema没啥大用。keep_alive string / number模型响后保持在内存中的时间默认是5m也就是5分钟。-1 表示永久0 表示立即退出GPU内存。这个参数也挺重要的正常使用模型时会现将模型加载到显存中然后开始思考问答问题然后回答完问题后模型并不会立刻退出显存而是会根据配置的keep_alive来决定在显存中待多久如果是企业使用重复加载会导致每次第一次请求访问会很慢所以企业可以设置按小时或者直接设置为-1。如果自己本地测试则就无所谓了。下面是设置为了1小时{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:写一首诗}],stream:false,keep_alive:1h}如下图可以看到即使我的调用结束了GPU的内存占用仍然是占着的下面把参数改成0再试下结果如下改成0后调用结束GPU内存瞬间就释放了1.3 推理参数 (可选) deepseek说不支持但是通过Ollama运行deepseek时确实是生效的temperature number 温度[ˈtemprətʃər]控制随机性值越高输出越多样。取值范围是0.0到2.0 。大部分模型的默认值是0.8或者1.0。值越小随机性越低deepseek参数输入后不起作用(官方文档明确说明){model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:你是谁}],stream:false,keep_alive:1h,options:{temperature:0.0}}top_p 取值范围0.0 - 1.0 核采样一个0到1的小数过滤掉累积概率超过 p 的小概率词默认0.9。 deepseek 不生效大模型在生成回答时会有很多可选择的词比如回答你喜欢什么水果时他可以说苹果香蕉橘子等。大模型在训练时就已经固化了很多神经元连接或者说是记忆。比如加入训练时我喜欢吃苹果频率比较高是50香蕉是30橘子是20值得注意的是一个提示词由大模型加载出来的备选词的概率之和一定是100%。如果我们设置了top_p等于0.8那么就代表着只会从高到底选取前80%的词汇作为备用其他全部丢弃。实际应用中如果词汇都是专业且统一的可变性较低的可以将他的值设置较小一些。{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:你是谁}],stream:false,keep_alive:1h,options:{temperature:0.0,top_p:0.9,}}top_k number 限制采样时只考虑概率最高的 k 个词。正整数默认40这个参数和上面有些类似它如果设置40则表示从最高概率往下数只取前40个词。{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:你是谁}],stream:false,keep_alive:1h,options:{temperature:0.0,top_p:0.9,top_k:40}}num_predict number 生成的最大 token 数-1 表示无限制。正整数默认128值还可以为-2一个特殊值用于让模型生成Token来“填满”整个上下文窗口。直白些就是回答当前问题允许消耗的最大token数只影响响应不影响思考一般是需要设置的不能一个问题把钱给干没了或者没完没了的思考。一般默认是128表示一次回答最多消耗128个token。假如我设置了最大消耗token为10{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:你是谁}],stream:false,keep_alive:1h,options:{temperature:0.0,top_p:0.9,top_k:40,num_predict:10}}然后结果如下。但是发现输出内容是空的思考就停止了其实这里的原因是因为把思考内容返回了deepseek官方汉字和token的消化对照笔者尝试了Ollama提供的api关闭方式不起作用但是Ollama官方文档却名表表示支持关闭思考模式文档误我啊试了下只有Ollama中直接一次性问答可以关闭思考并且关闭成功了而且验证generate接口是支持api关闭think的。seed number 随机种子设置后可使输出结果可复现。 整数默认-1 表示随机参数是控制大模型输出可复现性的关键。简单来说它让模型每次回答同一个问题时给出近乎相同的答案而不是每次都随机变化。大模型生成文本的过程本质上是随机采样每一步模型会从词汇表中按概率随机挑一个词作为下一个输出。这个“随机”是由伪随机数生成器PRNG驱动的。默认情况下每次运行时的随机数序列都是不同的所以每次回答都不一样。temperature 和 top_p 决定候选词的分布哪些词被选中概率如何变化seed 只负责从最终分布中抽取具体哪一个词如果你希望每次回答都完全一样可以将 temperature 设为 0此时模型总是选概率最高的词不涉及随机采样那就不需要 seed 了。但在需要随机性的情况下比如创意写作用 seed 可以保持一致性。假如设置seed为2表示每次从随机采样中取2对应的样本但不保证100%一致设置3表示取样本为3的样本也不保证100%一致一般应用在测试关键词的场景或者对结果要求一致性较高的场景。{model:deepseek-r1:14b,messages:[{role:system,content:简洁回答},{role:user,content:天空是什么颜色}],stream:false,keep_alive:1h,think:false,options:{temperature:0.8,top_p:0.9,top_k:40,num_predict:1000},seed:1}比如我做如上设置后(seed1)每次运行结果并不如预期应该是deepseek并不支持该参数只是Ollama支持我去deepseek官方文档也没找到这个参数。num_ctx number 上下文窗口大小token 数。正整数默认2048一句话解释模型在生成新内容时最多能“回头看”多少个 Token包括你输入的提示词和它已经生成的内容。工作机制大模型不是逐字逐句阅读整本书而是像看一个“滑动窗口”。num_ctx 就是窗口的大小。当窗口满了例如达到 2048 Token模型就会把最开头的内容“挤出”窗口只关注窗口内的最新内容来预测下一个词。默认值2048约等于 1500 个中文字符。影响设得太小如 512模型会“健忘”。如果你上传一篇长论文或进行多轮长对话它会忘记前面的关键内容导致回答逻辑断裂、答非所问。设得太大如 8192 或 32768模型能处理超长文本但显存VRAM消耗会急剧上升大致与 Token 数成正比推理速度也会变慢。如果你的显卡是 6GB 显存强行设太大可能会导致内存溢出OOM报错。如何设置如果你的提示词有 1500 个 Token你想让它生成 500 个 Token 的回答那么 num_ctx 至少设为 20001500500。通常建议设为 4096 作为日常使用的平衡点。logprobs boolean 是否返回输出 token 的对数概率。 true/false默认false这主要是给高级开发者或研究者用的判断模型是否在“胡编”如果连续几个词的 logprob 都非常低负值很大说明模型在不确定地猜测生成的答案可能不可靠。做“可信度校准”你可以根据概率值对模型回答进行加权决定是否采纳答案。一句话解释这是一个开关决定是否告诉你模型在生成每一个 Token词时对该选择的“确信程度”是多少。理论基础模型每次选词时都会给词汇表里的词打一个对数概率Log Probability。这是一个负数例如 -0.02 表示确信度极高-10 表示确信度极低。为什么要用“对数”因为多个词的概率相乘会变得极小而使用对数可以把乘法变成加法log(A*B) log(A) log(B)便于计算机处理且不会下溢。{model:deepseek-r1:14b,messages:[{role:system,content:请用温柔的语气回答问题},{role:user,content:说个笑话}],stream:false,keep_alive:1h,think:false,options:{temperature:0.0,top_p:0.9,top_k:40,num_predict:1000},seed:1,logprobs:true}如上设置后输出如下可以看到每个token词时选取的可信度可以看到都是很高的表示可信度很高答案不是胡诌的。top_logprobs number 返回 top-k 个最可能 token 的概率需 logprobs: true。 0-20默认0一句话解释当 logprobs 开启后这个参数决定在每个位置除了最终选中的那个词外还额外列出 Top-K 个“差一点点就被选中”的备选词并附上它们的对数概率。依赖关系必须先设置 logprobs: true这个参数才会生效。如果 logprobs: false即使设了 top_logprobs 也无效。取值范围0 到 20。默认是 0表示不返回任何备选词只返回最终选中的那个词。输出示例假设你设置 top_logprobs: 3当模型生成“苹果”这个词时你会看到最终选中苹果 (logprob: -0.2)备选第1梨 (logprob: -2.5)备选第2香蕉 (logprob: -4.0)备选第3橘子 (logprob: -6.0)有什么用主要用于调试和精细控制。理解模型的“思考逻辑”如果模型在“苹果”和“梨”之间极度纠结概率非常接近说明上下文存在歧义你可能需要修改提示词。构建“分支生成”在进行多路生成Beam Search或检查模型是否存在“种族偏见”看备选词里是否有不当词汇时很有帮助。1.4出参调用 /api/chat 接口后你会收到一个包含以下字段的 JSON 响应下面是实际调用时的示例以上则表示total_duration总消耗纳秒数207832190001秒等于10亿纳秒则消耗了20秒prompt_eval_count提示词消耗8tokeneval_count总共消耗341个token2.Python实现调用本地大模型Deepseek官方文档位置https://api-docs.deepseek.com/zh-cn/api/create-chat-completionDeepSeek也遵循了 OpenAI定义的统一接口规范因此也可以使用OpenAI提供的python三方库来调用DeepSeek。2.1 Python下载三方包说下两个概念PyPI: Python Package Index , python的三方包仓库类似于java的jar包仓库pip: 官方提供的管理PyPI仓库的工具python3对应pip3类似于java的Maven3pip常见命令pip install openai 安装软件包pip install openai2.13.0 指定版本安装软件包pip uninstall openai 卸载软件包pip list 列出 下载的软件包pip show openai 展示软件包详情打开cmd输入以下命令pip3installopenai下载完成后创建一个python文件以下是官方文档上的代码需要自己设置下自己的官方token调用官方大模型时必须fromopenaiimportOpenAI clientOpenAI(api_keyyour API key,base_urlhttps://api.deepseek.com)responseclient.chat.completions.create(modeldeepseek-v4-pro,messages[{role:system,content:You are a helpful assistant},{role:user,content:Hello},],max_tokens1024,temperature0.7,streamFalse)print(response.choices[0].message.content)
返回列表