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

大模型学习起步的经验分享

我来聊聊这一年来的学习实践经验:

一、前期准备

首先就是显卡的问题,如果有条件,最好买一块,显卡的显存24GB起步,不要低于这个标准,这是目前不断演进的LLM流行版本的最低标准了。

显卡就是NVIDIA显卡,说白了就是为了cuda,有钱4090,没钱二手3090,不要对AMD显卡心存侥幸。

不要考虑耗电问题,绝大多数时间的耗电是空调引起的。

当然了,如果兜里没有那么多银两,也不必过于担心,就先从商用模型开始,首推智谱清言的开放平台,其次deepseek,通义千问,价格低,完全是补贴价,也非常不错。完全没必要为文心一言交智商税。

如果有能耐,claude、gpt4的智力输出肯定效果是最好的,但老美这点很恶心,怕我们进步。使用成本也较高,20刀一个月(聊天和API分开算)。

但是,对于学习实验,这两个头牌模型也不是啥必须品。

二、模型与API

以上是前置条件,下来具体怎么做,我接着说:

如果有显卡,其实主要可以学到是本地大模型的部署体验和微调。

对于模型的API调用,对于学习者并不用担心是商用模型还是本地模型,其实大家都有自己的专有接口,同时也都支持OpenAI API接口为标准。用OpenAI API接口,对于以后的程序来说更通用,学习成本也更低。例如:

添加图片注释,不超过 140 字(可选)

上述这段代码就是一个很简单的调用OpenAI API接口的例子,但已经跟OpenAI的GPT4没有什么关系了。

如果我们使用xinfernece_这组参数,那么我们就是通过Xinference服务(一会儿讲)提供的OpenAI接口来调用本地部署的LLM——glm4-chat(90亿参数)开源模型。

默认我们使用了zhipu_这组参数,那么我们就是通过互联网访问智谱开放平台提供的glm-4-0520(千亿参数)商用模型。

看起来是不是很简单。

三、大模型技术栈

接着我们说说大模型学习的体系:

LLM(本地 & 商用)->(推理 & 微调 & 提示词 ) -> (RAG & Tools) -> (workflow & Agent)。

我们可以根据上述的技术栈一步步向上开始学习。也就是说从最底层的大模型本体,到推理服务、微调训练和提示词能力,再到RAG检索增强或工具集增强,最后是AI工作流和智能体。当然了知识图谱、AI搜索也在凑大模型的热闹。

说说LLM本地化部署,目前看,比较适合单卡(24GB)推理的本地大模型有GLM4-9B、Qwen2-7B、deepseek,首推还是GLM4-9B,可能未来会推出的Qwen2.5也不可小觑,LLama3 8B不是太建议使用,主要还是中文能力真的不咋地,如果用到生产,真不知道对齐的怎么样,会不会胡说。

LLM本地部署最好的方案是使用推理框架,基本上就是两个中选择一个,Ollama或者Xinference,Ollama部署简单,但让给我推荐,我只会是Xinference,一方面是国内团队,更新速度快,另一方面就是支持的模型特别丰富。

推理框架的好处就是统一化了API接口,就是上面例子中看到的OpenAI API接口,那么你部署什么模型都一样去调用。

提示词

我们在讨论一下微调还是提示词的问题。什么意思呢?本质上就是部署的模型,通用智力不咋地,但你又希望你的模型能在你希望的方面牛逼起来。

添加图片注释,不超过 140 字(可选)

上面这段提示词是我在dify上构建了一个英语翻译,但我翻译的是技术文档为主,因此我不仅希望LLM能正常翻译,还希望它看到内容中有代码例子的时候就不要翻译了,给做个Markdown代码标记,方便阅读。那么提示词里你就得给LLM一点例子,因为AI模仿起来一点就会。

当然了,还有个前提,你得告诉AI,你是什么角色,上面的例子就说你是个翻译专家和程序技术专家,AI看到这个,马上就知道自己的身份应该输出什么内容了。

那么我们仔细去想想,如果把这些让他去模仿的提示例子多给一些,形成一个数据集,其实就可以让LLM做微调了。微调的本质就是让AI更多的去理解你想让他变成什么模样,更想让AI说什么话。

但是对于大多数人使用,其实选择通用智能更好的模型,自己学习如何给出更好的提示词,是更好的选择,可以更快得到想要的效果。

微调更多是因为必须使用的模型在自己希望的生产领域还是不给力,所以才要重塑AI最基本的底色,朝着领域的、专业的方面提升智力。然后在这基础上做提示词、RAG等等事情,会更有效率。

工具调用

最后我在说下RAG和Tools,本质上RAG就是建立自己的知识库,这样的好处是防止LLM乱说,这样就能把问题重心都放在知识库上面,这个比较适合的领域非常广泛。

但是RAG是文本分块,检索内容的输出很有限,因此长文本加载阅读也是一个好办法,另外就是基于知识图谱提出GraphRAG方案,抽象和全局理解提供的内容更好,但就是慢,用于生产,还需时日。

Tools是非常关键的一个环节,流程上,你提出问题,LLM判断得给出执行命令,然后你去执行命令。

添加图片注释,不超过 140 字(可选)

上面这个例子是GLM4-9B提供的工具调用的演示例子,我们可以看到,我问了一句:用nvidia-smi命令查询一下,LLM根据预置的提示词就能明白需要返回get_shell方法名以及 {query: nvidia-smi}这句话了。

演示例子的程序根据LLM这句话就进行了本地shell命令调用,再返回调用的结果,让LLM再次组织语言。这个工具调用的过程其实就是智能体的基本形态了。

其实我们可以通过类似很多AI工作流中获得这方面的启发,我比较推荐Dify。

好了,有机会再给大家聊聊AI工作流和智能体。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue的插槽
  • Lucene详解介绍以及底层原理说明
  • 数学建模常用模型全面总结(含适用条件、优点、局限性和应用场景)
  • Windows11 WSL2的ubuntu 22.04中拉取镜像报错
  • 电脑怎么设置开机密码?3个方法迅速搞定!
  • [数据集][目标检测]无人机飞鸟检测数据集VOC+YOLO格式6647张2类别
  • 面向切面:单元测试、事务、资源操作
  • Python编程 - 协程
  • pybind11 学习笔记
  • 【项目设计】Facial-Hunter
  • 杂牌鼠标侧键设置
  • Prompt提示词技巧
  • virtualbox中的网络模式,网络设置,固定IP
  • 技术型企业运营术语
  • 【最佳实践】优雅地处理 Java 中的空指针
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • bearychat的java client
  • Brief introduction of how to 'Call, Apply and Bind'
  • javascript 总结(常用工具类的封装)
  • java取消线程实例
  • RxJS: 简单入门
  • 测试开发系类之接口自动化测试
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 关于extract.autodesk.io的一些说明
  • 解决iview多表头动态更改列元素发生的错误
  • 离散点最小(凸)包围边界查找
  • 漂亮刷新控件-iOS
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 山寨一个 Promise
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 硬币翻转问题,区间操作
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • puppet连载22:define用法
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ### RabbitMQ五种工作模式:
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4)STL算法之比较
  • (day18) leetcode 204.计数质数
  • (第一天)包装对象、作用域、创建对象
  • (三)mysql_MYSQL(三)
  • (十六)串口UART
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (算法)前K大的和
  • (一) storm的集群安装与配置
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m