【llm/ollama/qwen】在本地部署qwen2.5-coder并在vscode中集成使用代码提示功能

说在前面

  • 操作系统:windows11
  • ollama版本:0.5.4
  • vscode版本:1.96.2
  • continue插件版本:0.8.66

ollama安装

  • 访问官网,点击下载安装即可
    在这里插入图片描述
  • 默认装在了C盘,比较蛋疼;但是可以指定路径安装:
    OllamaSetup.exe /DIR="d:\some\location"
    
    在这里插入图片描述
    在这里插入图片描述
  • 安装后确定安装完成
    D:\ollama>ollama -v
    ollama version is 0.5.4
    

安装qwen2.5-coder

  • 在官网搜索qwen2.5-coder
    在这里插入图片描述
  • 复制安装命令
    D:\ollama>ollama run qwen2.5-coder
    pulling manifest
    pulling 60e05f210007...   2% ▕                                                        ▏  79 MB/4.7 GB  9.9 MB/s   7m43s 
    
  • 安装完之后就可以进行对话了
    >>> 帮我用golang写一个斐波那契数列当然可以!以下是一个用Go语言编写的生成斐波那契数列的示例代码:```go
    package mainimport ("fmt"
    )// Fibonacci 计算斐波那契数列的第n个数
    func Fibonacci(n int) int {if n <= 1 {return n}a, b := 0, 1for i := 2; i <= n; i++ {a, b = b, a+b}return b
    }// PrintFibonacci 打印斐波那契数列的前n个数
    func PrintFibonacci(n int) {for i := 0; i < n; i++ {fmt.Println(Fibonacci(i))}
    }func main() {n := 10 // 你可以更改这个值来打印不同长度的斐波那契数列PrintFibonacci(n)
    }
    ```这个程序定义了两个函数:
    1. `Fibonacci` 函数用于计算斐波那契数列的第n个数。
    2. `PrintFibonacci` 函数用于打印斐波那契数列的前n个数。在 `main` 函数中,我们调用 `PrintFibonacci(n)` 来打印前10个斐波那契数列的数。你可以根据需要更改 `n` 的值来打印不同长
    度的斐波那契数列。>>> Send a message (/? for help)
    
  • 运行后窗口不要关闭

安装continue插件

  • 在vscode的插件管理窗口搜索continue
    在这里插入图片描述
  • 点击安装即可
  • 选择左侧插件按钮,并选择Add Chat Model
    在这里插入图片描述
  • 选择Ollama,点击Connect后看到Autodetect - qwen2.5-coder
    在这里插入图片描述
  • 然后就可以进行对话了
    在这里插入图片描述

配置continue自动补全

  • 点击vscode右下角的continue按钮
    在这里插入图片描述
  • 选择Configure autocomplete options
    在这里插入图片描述
  • 将配置文件修改为以下内容:
    {"models": [{"model": "AUTODETECT","title": "Autodetect","provider": "ollama"}],"tabAutocompleteModel": {"title": "qwen","provider": "ollama","model": "qwen2.5-coder:latest","apiKey": ""},"contextProviders": [{"name": "code","params": {}},{"name": "docs","params": {}},{"name": "diff","params": {}},{"name": "terminal","params": {}},{"name": "problems","params": {}},{"name": "folder","params": {}},{"name": "codebase","params": {}}],"slashCommands": [{"name": "share","description": "Export the current chat session to markdown"},{"name": "cmd","description": "Generate a shell command"},{"name": "commit","description": "Generate a git commit message"}]
    }
    
  • 然后就可以愉快的自动补全了
    在这里插入图片描述

离线环境下部署大模型

  • 以上为在有网络的环境下进行安装的过程,在内网环境下也是类似的,ollamacontinue插件的安装都比较简单,不再赘述

  • 主要说下模型的部署

  • ollama目前支持两种类型的模型导入:

    • Build from a Safetensors model
      FROM <model directory>
      
      The model directory should contain the Safetensors weights for a supported architecture.
      Currently supported model architectures:
      • Llama (including Llama 2, Llama 3, Llama 3.1, and Llama 3.2)
      • Mistral (including Mistral 1, Mistral 2, and Mixtral)
      • Gemma (including Gemma 1 and Gemma 2)
      • Phi3
    • Build from a GGUF file
      FROM ./ollama-model.gguf
      
      The GGUF file location should be specified as an absolute path or relative to the Modelfile location.
  • 根据文档说明,qwen2.5-coder只能使用GGUF文件来导入

  • 从huggingface或者魔塔下载

  • 这里我选择7B大小的模型,Qwen2.5-Coder-7B-Instruct-GGUF
    在这里插入图片描述

  • 点击模型文件,选择下图红框中的下载即可
    在这里插入图片描述

  • 然后在我们的ollama窗口执行/show modelfile命令,
    在这里插入图片描述

  • 将输出内容保存为文件Modelfile,并修改FROM后面的内容,例如:

    # Modelfile generated by "ollama show"
    # To build a new Modelfile based on this, replace FROM with:
    # FROM qwen2.5-coder:latestFROM ./qwen2.5-coder-7b-instruct-q6_k.gguf
    TEMPLATE """{{- if .Suffix }}<|fim_prefix|>{{ .Prompt }}<|fim_suffix|>{{ .Suffix }}<|fim_middle|>
    {{- else if .Messages }}
    {{- if or .System .Tools }}<|im_start|>system
    {{- if .System }}
    {{ .System }}
    {{- end }}
    {{- if .Tools }}# ToolsYou may call one or more functions to assist with the user query.You are provided with function signatures within <tools></tools> XML tags:
    <tools>
    {{- range .Tools }}
    {"type": "function", "function": {{ .Function }}}
    {{- end }}
    </tools>For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
    <tool_call>
    {"name": <function-name>, "arguments": <args-json-object>}
    </tool_call>
    {{- end }}<|im_end|>
    {{ end }}
    {{- range $i, $_ := .Messages }}
    {{- $last := eq (len (slice $.Messages $i)) 1 -}}
    {{- if eq .Role "user" }}<|im_start|>user
    {{ .Content }}<|im_end|>
    {{ else if eq .Role "assistant" }}<|im_start|>assistant
    {{ if .Content }}{{ .Content }}
    {{- else if .ToolCalls }}<tool_call>
    {{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
    {{ end }}</tool_call>
    {{- end }}{{ if not $last }}<|im_end|>
    {{ end }}
    {{- else if eq .Role "tool" }}<|im_start|>user
    <tool_response>
    {{ .Content }}
    </tool_response><|im_end|>
    {{ end }}
    {{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
    {{ end }}
    {{- end }}
    {{- else }}
    {{- if .System }}<|im_start|>system
    {{ .System }}<|im_end|>
    {{ end }}{{ if .Prompt }}<|im_start|>user
    {{ .Prompt }}<|im_end|>
    {{ end }}<|im_start|>assistant
    {{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}"""
    SYSTEM You are Qwen, created by Alibaba Cloud. You are a helpful assistant.
    
  • 将该文件与下载好的GGUF文件放到同一个文件夹
    在这里插入图片描述

  • 然后运行ollama命令

    ollama create qwen2.5-coder -f ./Modelfile
    
  • 然后就安装完成了

问题

  • 在离线安装好模型之后,使用continue时会出现以下错误:
    Error calling Ollama /api/generate endpoint: Error: Error: HTTP 404 Not Found
    
    找了半天资料后,将配置文件中"model": "AUTODETECT",改成对应的模型名后就正常了
    {"models": [{"model": "AUTODETECT","title": "Autodetect","provider": "ollama"}],"tabAutocompleteModel": {"title": "qwen","provider": "ollama","model": "qwen2.5-coder:latest","apiKey": ""},
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66363.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP零基础入门笔记

表达式&#xff1a;任何有值的东西就是表达式 php可以解析双引号&#xff0c;不可以解析单引号&#xff0c;双引号中引用变量可以输出引用变量的值&#xff0c;但是单引号不可以 1.变量和变量的销毁 unset(变量名) //销毁变量 变量是严格区分大小写的&#xff0c;在php中…

《CPython Internals》阅读笔记:p1-p19

《CPython Internals》学习第 1 天&#xff0c;p1-p19 总结&#xff0c;总计 19 页。 一、技术总结 无。 二、英语总结(生词&#xff1a;2) 1.humble vs humbled (1)humble: humus(“earth”) adj. 字面意思是“on the ground”, 后面引申为“lowly in kind, state, cond…

macos安装java8

下载 dmg方式安装 安装 双击pkg运行 输入java -version验证 配置环境变量 cd ~ ls -a输入 ls -a后查看是否已经存在.bash_profile文件&#xff0c;如果已经存在就不需要创建&#xff0c;如果不存在&#xff0c;继续执行下方命令创建文件 touch .bash_profile /usr/l…

自定义校验注解

已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验(自定义校验注解) 1.自定义注解,并在注解上指定校验逻辑 Constraint(validatedBy StateValidation.class) // 指定校验逻辑 package com.example.demo.validation;import jakarta.validation.Constraint; import j…

指代消解:自然语言处理中的核心任务与技术进展

目录 前言1. 指代消解的基本概念与分类1.1 回指与共指 2. 指代消解的技术方法2.1 端到端指代消解2.2 高阶推理模型2.3 基于BERT的模型 3. 事件共指消解&#xff1a;跨文档的挑战与进展3.1 联合模型3.2 语义嵌入模型&#xff08;EPASE&#xff09; 4. 应用场景与前景展望4.1 关键…

Chapter4.1 Coding an LLM architecture

文章目录 4 Implementing a GPT model from Scratch To Generate Text4.1 Coding an LLM architecture 4 Implementing a GPT model from Scratch To Generate Text 本章节包含 编写一个类似于GPT的大型语言模型&#xff08;LLM&#xff09;&#xff0c;这个模型可以被训练来生…

nginx正向代理从安装到使用一网打尽系列(二)使用

一、背景 使用场景大总结&#xff0c;可作为参考手册用 nginx正向代理从安装到使用一网打尽系列&#xff08;一&#xff09;安装 nginx正向代理从安装到使用一网打尽系列&#xff08;二&#xff09;使用 二、使用场景 1、所有内网应用都不能直接访问外网&#xff0c;但需要…

字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化

字玩FontPlayer开发笔记4 性能优化 首屏加载时间优化 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontplayer …

MySQL Binlog 监听方案

如果 EmbeddedEngine 类在 debezium-connector-mysql 中不可用&#xff0c;原因是 Debezium 的新版本移除了 EmbeddedEngine。这是因为 Debezium 的架构变更&#xff0c;它现在鼓励使用 Kafka Connect 或 Debezium Server 来处理数据变更事件。 下面是几种替代方法来实现 MySQ…

JSP内置对象、Servlet与MVC

目录 1、JSP内置对象1. 1、**out 对象**1.2、 **request 对象**1.3、 **response 对象**1.4、 **session 对象**1.5、 **application 对象**1.6、 **cookie 对象** 2、Servlet2.1、Servlet 概念2.2、Servlet 体系结构2.3、Servlet 接口2.4、ServletConfig 接口2.5、Servlet 案例…

论文解读 | NeurIPS'24 IRCAN:通过识别和重新加权上下文感知神经元来减轻大语言模型生成中的知识冲突...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 作者简介 史丹&#xff0c;天津大学博士生 内容简介 大语言模型&#xff08;LLM&#xff09;经过海量数据训练后编码了丰富的世界知识。最近的研究表明&#xff0c…

Linux系统操作笔记

防火墙服务&#xff1a; 开启防火墙服务&#xff1a;systemctl start firewalld / service firewalld start 关闭防火墙服务&#xff1a;systemctl stop firewalld / service firewalld stop 禁用防火墙服务&#xff1a;systemctl disable firewalld / service disable stop 开…

大语言模型训练所需的最低显存,联邦大语言模型训练的传输优化技术

联邦大语言模型训练的传输优化技术 目录 联邦大语言模型训练的传输优化技术大语言模型训练所需的最低显存大语言模型训练所需的最低显存 基于模型微调、压缩和分布式并行处理的方法,介绍了相关开源模型及技术应用 核心创新点 多维度优化策略:综合运用基于模型微调、模型压缩和…

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑&#xff1a;**在发布的过程中不影响用户的使用&#xff0c;系统不会因发布而暂停对外服务&#xff0c;不会造成用户短暂性无法访问&#xff1b; **什么叫灰度&#xff1a;**发布后让部分用户使用新版本&#xff0c;其它用户使用旧版本&am…

Python 科学计算

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

【pytorch】注意力机制-1

1 注意力提示 1.1 自主性的与非自主性的注意力提示 非自主性提示&#xff1a; 可以简单地使用参数化的全连接层&#xff0c;甚至是非参数化的最大汇聚层或平均汇聚层。 自主性提示 注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下&#xff0c;自主性提示被称为查…

『SQLite』详解运算符

内容摘要&#xff1a;本节讲解运算符&#xff0c;包括&#xff1a;算术运算符、比较运算符、逻辑运算符和位运算符。 什么是运算符&#xff1f; 运算符是一个保留字或字符&#xff0c;主要用于 SQLite 语句的 WHERE 子句中执行操作。它用于指定 SQLite 语句中的条件&#xff0…

Qt窗口获取Tftpd32_svc服务下载信息

前言 一个由Qt开发的Windows小工具需要布置Tftp协议服务端来支持设备下载数据&#xff0c;并显示下载列表&#xff08;进度、下载源等&#xff09;。 考虑开发方便&#xff0c;优先使用了Qtftp方案&#xff0c;经测试发现&#xff0c;不够稳定&#xff0c;会有下载超时的情况&a…

<OS 有关> DOS 批处理命令文件,用于创建 python 虚拟机,并进入虚拟机状态执行后继命令 判断虚拟机是否存在,在批处理文件中自定义 虚拟机名字

前言&#xff1a; 经常要敲重复的命令&#xff1a; python -m venv venv.\venv\Scripts\activate.bat (虽然能按 Tab 省几下&#xff0c;多了也烦恼&#xff0c;后来写了四行脚本 start.bat) DOS批处理 create_venv_start.bat 功能&#xff1a; 批处理显示支持中文在 creat…

[python3]Excel解析库-openpyxl

https://openpyxl.readthedocs.io/en/stable/ openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它允许开发者创建、修改和保存电子表格&#xff0c;而无需依赖 Microsoft Excel 软件本身。openpyxl 支持读取和写入 Excel 的工作簿&#xff08;Work…