windows 下跑起大模型(llama)操作笔记

news/发布时间2024/5/14 19:11:30

原贴地址:https://testerhome.com/topics/39091

前言

国内访问 chatgpt 太麻烦了,还是本地自己搭一个比较快,也方便后续修改微调啥的。

之前 llama 刚出来的时候在 mac 上试了下,也在 windows 上用 conda 折腾过,环境配置步骤太多,都没跑起来。最近网上看到有预编译的,对环境要求降低了非常多,所以早上试了下,终于跑起来了。

使用平台

系统:windows 10

硬件:i5 12400F + 32GB 内存 + RTX 3090 显卡

具体步骤

主要参考 llama.cpp教程:Windows系统上无需编译,直接运行一个自己的LLaMA 2 - 怕刺 。基本上使用的都是已经预编译好的软件,不用特别折腾环境配置。

因为用了 nvidia 的显卡,而且 cpu 本身也不强,所以主要配置为 gpu 加速为主

下载 cuda

直接到 CUDA Toolkit 12.3 Update 2 Downloads | NVIDIA Developer 下载对应自己系统的安装文件即可。

下载预编译 llama.cpp 软件

到 Releases · ggerganov/llama.cpp · GitHub ,下载 cuda 12 版本。下载完毕后,解压到一个文件夹里。我这里用的文件夹名字为 llama-bin-win-cuba-x64 ,下面也都用这个路径。

创建 prompt 文件

把 https://raw.githubusercontent.com/ggerganov/llama.cpp/master/prompts/chat-with-bob.txt 下载到 llama-bin-win-cuba-x64 根目录

下载量化模型

结合硬件配置,我用的是 13b 的模型 llama-2-13b-chat.Q5_K_M 。大家可以参考 llama.cpp教程:Windows系统上无需编译,直接运行一个自己的LLaMA 2 - 怕刺 选择合适自己的。

这里要注意,目前是无法直接访问 huggingface.co 网站的,我用的是 hf-mirror.com - Huggingface 镜像站 镜像站点来解决。下载上面这个模型不需要 token 验证,所以可以直接打开 llama-2-13b-chat.Q5_K_M.gguf · TheBloke/Llama-2-13B-chat-GGUF at main ,点击 download 按钮直接下载

运行模型

在终端中打开 llama-bin-win-cuba-x64 目录,运行如下命令(模型 gguf 文件名,记得替换成自己用的)

.\main.exe -m .\llama-2-13b-chat.Q5_K_M.gguf -n -1 --repeat_penalty 1.0 --color -i -r "User:" -f .\chat-with-bob.txt  --n-gpu-layers 1

注意,最后的 --n-gpu-layers 1 表示第一层让 gpu 计算,剩下给 cpu。运行后,会出现类似下面内容:

其中 llm_load_tensors: offloaded 1/41 layers to GPU ,说明一共有 41 层,gpu 运行第 1 层。后续想全部给 gpu 运行,把命令里的 --n-gpu-layers 1 改为 --n-gpu-layers 41 即可。

推荐大家可以尽量用 gpu 加速,运行速度比 cpu 快不少。

运行效果:

总结

初步在本地跑了起来,完成了第一步。后面继续折腾,把它变成 web 服务,上层再做更多事情。

同时TesterHome社区学堂上架了 人工智能和测试的入门课程,助力大家学习人工智能,并实现工资提升。

人工智能测试入门与进阶

也可以访问edu.testerhome.com,查看更多课程。

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

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

相关文章

计算机网络——11EMail

EMail 电子邮件(EMail) 3个主要组成部分 用户代理邮件服务器简单邮件传输协议:SMTP 用户代理 又名“邮件阅读器”撰写、编辑和阅读邮件输入和输出邮件保存在服务器上 邮件服务器 邮箱中管理和维护发送给用户的邮件输出报文队列保持待发…

手写myscrapy(二)

我们看一下scrapy的系统架构设计方法和思路: 模块化设计: Scrapy采用模块化设计,将整个系统划分为多个独立的模块,包括引擎(Engine)、调度器(Scheduler)、下载器(Downl…

Linux常见基本指令

本文将详细的介绍Linux中各常见指令的用法,并且在每个指令都有使用样例。一共有以下指令: 1. man指令 2.目录基础指令:2.1 pwd指令、2.2 ls指令、2.3 cd指令 3.文件创建与删除:3.1 touch指令、3.2 mkdir指令、3.3 rmdir 指令 &…

使用IDEA配置GO的开发环境备忘录

1. 安装GO 1.1 下载&安装 进入GO的官网下载对应的GO,本人环境为mac选择最新的1.22.0版本,在本地安装即可 1.2 配置相关环境变量 修改~/.bash_profile,添加如下的配置 GOPATH/Users/kevin/go/src GOBIN/Users/kevin/go/go/bin GOROOT/…

rpm安装gitlab

1.1 下载gitlab安装包 使用rpm包安装命令安装gitlab的rpm包,下载地址为https://packages.gitlab.com/gitlab/gitlab-ce社区版本; 推荐使用清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab安装包详见&#xff1…

Python函数(一)

目录 一、定义函数 (一)向函数传递信息 (二)实参和形参 二、传递实参 (一)位置实参 (二)关键字实参 (三)默认值 (四)等效的函…

Redis集群

目录 前言 数据分片算法 哈希求余: 优点: 缺点: 一致性hash算法: 优点: 缺点: 哈希槽分区算法(Redis使用) 拓展问题: 前言 redis哨兵能够提高系统的可用性&am…

算法练习-01背包问题【含递推公式推导】(思路+流程图+代码)

难度参考 难度:困难 分类:动态规划 难度与分类由我所参与的培训课程提供,但需 要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记&#xff0…

HTML 超文本标记语言

超文本标记语言 HTML 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。 页面制作的标准语言:HTML。 超文本标记语言 HTML (HyperText Markup Language) 是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍&#xff0c…

Python 文本处理和语义分析2 使用m3e对文本向量化

说明 向量化将会是下一阶段演进的目标。 在过去的实践中,向量或者矩阵其实是最贴近工具端的。 以sklearn为例,虽然原始数据可能还是自然语言,但是在最终执行 fit或者predict之前,数据一般都转为了矩阵形态(numpy)。也就是说&…

Java学习心得感悟

在我踏入Java学习的道路之前,我对编程只是一知半解,对于代码的世界充满了好奇和向往。然而,当我真正开始学习Java时,我才意识到,学习Java不仅仅是学习一门编程语言,更是一种思维方式和解决问题的能力的培养…

线程安全问题的原因和解决方案

一.线程安全问题原因 1.根本原因:操作系统的线程是"抢占式执行,随机调度",随机调度是一个程序在多线程环境下,执行顺序存在很多的变数, 2.多个线程同时修改同一个变量 如count这个操作,如果两个线程同时执行,就有可能出现两个线程同时读取co…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序&a…

解决MAC连上wifi或热点却不能上网问题

解决MAC连上wifi或热点却不能上网问题 #新换的mac昨天还能连上wifi,今天就不好使了。 找到连接的wifi点击详细信息,选择TCP/IP 中的配置IPV4 选择关闭

STM32-开发工具

开发过程中可能用到的工具 1、烧录下载调试工具ST-LINK ST-LINK,是ST(意法半导体)推出的调试编程工具,适用于STM32系列芯片的USB接口的下载及在线仿真器。 2、串口调试工具/串口下载工具 串口调试工具是一种用于通过串口通信协议与目标设备进行数据交…

Maxwell安装部署

1 Maxwell输出格式 database:变更数据所属的数据库table:变更数据所属的表type:数据变更类型ts:数据变更发生的时间xid:事务idcommit:事务提交标志,可用于重新组装事务data:对于inse…

Kettle如何连接SQL Server和问题处理

简介 Kettle(也称为 Pentaho Data Integration)是一款开源的 ETL(Extract, Transform, Load)工具,由 Pentaho 开发。ETL 是指从一个数据源(通常是数据库)中提取数据,进行转换&#…

NS安装-CentOS服务器安装Nightscout CGM

NS CGM 安装必要条件 有自己的云服务器好像没有2,有云服务器就行了 安装顺序 先安装数据库,目前支持的是 MongoDB ,官方推荐4,其实目前最新版本就行。可以用宝塔安装,比较简单克隆代码,我是放到 /opt/ns…

面试redis篇-03缓存击穿

原理 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮 解决方案一:互斥锁 解决方案二:逻辑过期 提问与回答 面试官 :什么是缓存击穿 ? 怎么解决 ? 回答: 缓存击穿的意思…

OpenCV库及在ROS中使用

OpenCV库及在ROS中使用 依赖 cv_bridge image_transport roscpp rospy sensor_msgs std_msgsCMakeLists.txt添加 find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(pub_img_topic ${catkin_LIBRARIES} ${Opencv_LIBS}) C …
推荐文章