零基础入门AI:四步快速搭建本地的编程助手

news2024/12/22 19:21:55

由于种种原因,小伙伴们在写代码时,不一定能用上Github Copilot;或者由于代码安全的原因,不能使用外网的编程助手。今天我就介绍一种利用开源大语言模型在本地搭建编程助手的方案:

  • IDE插件:Continue
  • 本地开源大语言模型框架:Ollama
  • 本地开源大语言模型(推荐 Code Llama)

该方案适用于 VS Code 和 PyCharm,搭建的步骤类似,如下步骤中以VS Code为例说明。

Step 1: 安装 Continue 插件

在VS Code 和 PyCharm的插件市场中搜索并安装 Continue 插件,以VS Code为例,安装步骤截图如下: 1.png 安装完成后,默认会有一些在线的大语言模型供试用(需要联网)。 2.png

更多关于Continue插件的细节,可以参考Continue插件的官网:Continue官网

Continue插件支持GPT-4 / Claude-2 等收费大语言模型,只需要将自己的 api key 更新到配置文件中的 apiKey 即可,以下步骤将介绍如何使用 Continue 插件调用本地开源大语言模型。

Step 2: 安装本地开源大语言模型框架 Ollama

Ollama 是一个可以在本地部署和管理开源大语言模型的框架,由于它极大的简化了开源大语言模型的安装和配置细节,一经推出就广受好评,目前已在github上获得了46k star。

Step 3: 下载代码大语言模型 Code Llama

安装Ollama后,即可一键安装开源大语言模型。Ollama支持大部分主流的开源大语言模型,但是在编程助手的使用场景下,我更推荐Meta发布的 CodeLlama,包含 7b / 13b / 34b / 70b 四种参数规模,小伙伴们可以根据本地GPU的性能,下载合适的Code Llama版本

参数版本链接命令
7 billionViewollama run codellama:7b
13 billionViewollama run codellama:13b
34 billionViewollama run codellama:34b
70 billionViewollama run codellama:70b

PS: Code Llama除了有不同的参数版本,根据微调语料的不同类型,还有基础、Python、instruct三种类型的微调版本,其中instruct是经过自然语言指令微调的,更适合本文的使用场景,所以推荐使用 instruct 版本,以上表格中的命令默认下载的就是instruct版本。

Step 4: 配置 Continue + Ollama

Ollama服务运行后,默认的API接口地址是localhost:11434,能够为本机提供服务。

也可以在Ollama中配置环境变量 OLLAMA_HOST=0.0.0.0:11434 来对局域网提供服务,API接口地址就是:11434。(

将大语言模型的信息和API接口地址添加到 Continue 的配置文件中,举例如下:

json复制代码"models": [
    {
      "title": "codellama:7b",
      "provider": "ollama",
      "model": "codellama:7b",
      "api_base": "localhost:11434"
    }

修改完配置文件后,在 IDE 的 Continue 插件界面选择本地大模型,就可以愉快的使用本地大模型玩耍了:

3.png

至此,Continue插件就可以和本地大语言模型联动,调用本地的大语言模型来辅助编程,实现本地的编程助手。

Bingo! 运行 Continue + Ollama

如下图中的例子,我让大模型帮忙写一下python的函数,用于判断输入的数字是不是质数: 4.png

添加常用的快捷指令 (可选)

阅读 Continue 插件的配置文件,会发现其中已经内置了一些快捷指令,其实就是将一段提示词简化为一个命令,比如:

  • comment: 为选中的代码添加注释,对应的提示词是 Write comments for the highlighted code
  • edit: 编辑选中的代码,对应的提示词是 Edit highlighted code

参照这些示例,我们也可以添加自己常用的快捷指令,比如我添加了一个代码评审的快捷指令 review,具体配置如下:

json复制代码"custom_commands": [
    {
      "name": "review",
      "prompt": "Act as a comprehensive code review assistant to help me analyze and improve the selected code",
      "description": "Code review for highlighted code"
    }
  ]

PS:

  • 实际使用时,可以用大语言模型来辅助生成代码、改BUG、添加注释、解释代码等等。
  • 以上例子中,我仅以最小规模的7B版本为例,本地GPU性能更强的话,可以尝试更大参数规模的版本,使用效果会更好一些。
  • 本文推荐的代码大语言模型 Code Llama 的训练语料中,中文语料所占的比例较少,所以使用英文提问的效果会更好一些。
  • Ollama同样也支持一些中文的开源模型,比如qwen 、Yi等等,这些大模型对中文的支持就会更好一些,可以参照文中的方法安装使用。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

DB9母头接口定义485

在通信技术中,DB9接口广泛应用于串行通信,尤其是在RS232和RS485标准中。虽然DB9接口最常见于RS232通信,但通过适当的引脚映射,它也可以用于RS485通信。本文将详细介绍如何定义和使用DB9母头接口进行RS485连接。 DB9母头接口简介 …

探索FlowUs息流:个人和团队知识管理解决方案|FlowUs稳定保障你的笔记安全无忧

FlowUs息流:稳定运营保障你的笔记安全无忧 在知识管理工具的选择上,稳定性是用户最关心的问题之一。FlowUs息流以其稳定的运营记录,为用户提供了一个可靠的工作环境。我们深知,一个知识管理平台的稳定性直接影响到团队的生产力和…

echarts引入百度地图vue3(大屏项目中缩放点偏移到左上角,解决代码在最后)

实际开发中的问题,遇到了大屏做了自适应,为非标准文档流之后,在缩放时不是以鼠标当前位置缩放的,而是偏移到左上角。 向百度地图提了工单也没解决,同一套适应方案用cesium地图时缩放没问题: 先看看效果&am…

动态规划——达拉崩吧

1、题目链接 174. 地下城游戏 2、题目分析 假如说我们正向推状态转移方程,很难推出来,因为这道题有“加血”的说法,只能依靠后面的值判断前面所需要的血量,也就是说,如果正向的dp表示从起点出发,到达&…

CSS新手入门笔记【导入方法、选择器介绍、选择器优先级、属性详细介绍、盒子模型】

目录 一、目的与优势二、CSS导入方式三、语法结构四、选择器类型基本选择器组合选择器伪类与伪元素属性选择器 六、选择器优先级总结 六、CSS属性1. 字体与文本属性2. 背景属性3. 尺寸与盒模型属性4. 布局与定位5. 列表样式6. 边框与轮廓7. 文本装饰与效果8. 动画与过渡9. 伪类…

多模块存储器

随着计算机技术的发展,处理的信息量越来越多,对存储器的速度和容量要求也越来越高;而且随着CPU性能的不断提高、IO设备数量不断增加,导致主存的存取速度已经称为了整个计算机系统的性能瓶颈。这就要求我们必须提高主存的访问速度。…

Linux基础命令大全(详解版)

Linux基础命令(详解版) 文章目录 Linux基础命令(详解版)1.Linux的目录结构**2.Linux路径的描述方式**3.Linux命令基础格式4.ls命令 隐藏文件、文件夹5.pwd命令6.cd命令 特殊路径符7.mkdir命令 文件操作命令8.touch命令9.cat命令10…

package.json简介

1、package.json简介 通过 npm init 初始化一个项目,会生成3个目录/文件, node_modules, package.json和 package.lock.json。其中package-lock.json文件是为了锁版本。 2、package.json常用属性 1)name name是项目的名称,命名…

远程桌面无法连接,远程桌面连接登录没有成功

在信息技术领域,远程桌面连接作为一种便捷的管理和操作工具,对于企业和个人用户而言都具有极其重要的价值。然而,在实际使用过程中,远程桌面无法连接的问题时常出现,这不仅影响了工作效率,还可能对数据安全…

javascript--类型检测 type of 和 instanceof

类型判断 1、typeof2、instanceof**instanceof 的原理** 3、constructor 1、typeof typeof在检测null、object、array、data的结果中都是object&#xff0c;所以无法用来区分这几个类型的区别。 <script>let a ["123",123,false,true,Symbol(1),new Date(),n…

小兔鲜02

elementplus自动按需引入 elementplus主题色定制 安装sass npm install sass -D要替换的主题色内容&#xff1a; /* 只需要重写你需要的即可 */ forward element-plus/theme-chalk/src/common/var.scss with ($colors: (primary: (// 主色base: #27ba9b,),success: (// 成功…

lock-锁的概念

锁的简介 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff08;避免发生资源争抢&#xff09; 在并发环境下&#xff0c;多个线程会对同一个资源进行争抢&#xff0c;可能会导致数据不一致的问题。为了解决这一问题&#xff0c;需要通过一种抽象的锁来对资源进行…

第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I 计数&#xff1a;遍历 h o u r s hours hours &#xff0c;记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数 class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);…

【内含优惠码】重磅发售!《2023年度中国量化投资白皮书》(纸质版)

这是可以公开了解量化行业图景的&#xff0c;为数不多资料。 简介 《2023年度中国量化投资白皮书》由宽邦科技、华泰证券、金融阶、华锐技术、AMD、阿里云、英迈中国等多家机构联合发起编写&#xff0c;并于2024年6月15日正式发布&#xff0c;全书公17万字6大章节勾勒最新量化…

【Unity | Editor强化工具】项目备忘录工具

经常会被美术和策划同事反复询问某几个问题&#xff0c;每次都要翻Wiki链接给他们&#xff0c;非常折磨人&#xff0c;所以做了个可以在Unity内部显示备忘录的小工具&#xff0c;能够减少一些查找成本&#xff08;另外我觉得&#xff0c;让他们养成查看Unity内触手可及的信息的…

thread model线程模型

Concurrency并发 vs. Parallelism执行 Many-to-One GNU Portable Threads 多对一即多个用户线程映射到单个内核线程 该模式用的少 一个线程阻塞会导致所有线程阻塞 多线程可能无法在多核系统上并行运行&#xff0c;因为同一时间内核中可能只有一个线程 Concurrent executio…

关于圆的方程

关于圆的方程 flyfish 几何定义 圆是平面上所有到一个固定点&#xff08;圆心&#xff09;距离相等的点的集合。 解析几何描述 设圆心位于点 ( h , k ) (h, k) (h,k)&#xff0c;半径为 r r r&#xff0c;那么对于圆上的任意一点 ( x , y ) (x, y) (x,y)&#xff0c;它…

如何把模糊的图片修复变清晰,怎么做?有那些方法?

模糊照片怎么修复清晰&#xff1f;有些照片可能会因为保存不当或其他原因而变得模糊&#xff0c;这些照片删掉又觉得可惜&#xff0c;那么如何让这些照片焕然一新呢&#xff1f;今天就给大家分享几种可以将这些珍贵的模糊照片修复为高清照片的方法。接下来&#xff0c;给大家演…

【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#xff0c;通常在面试中&#xff0…

【Linux】I/O多路复用模型 select、poll、epoll

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;Linux系列专栏&#xff1a;Linux基础 &#x1f525; 给大家…