wsl下Linux使用chatglm.cpp记录

前言

Linux之前用的少,多数还是在Windows下操作,导致对Linux很陌生,而且思维定势的,一有什么操作,还是习惯性在Windows下操作。

在chatglm.cpp操作上也是如此,但是代码可不管你这些,该报错就报错。so可能还是尝试下Linux。而wsl下Linux就是一个比较方便使用Linux环境的方法,wsl很轻量化,避免了你还得再安装虚拟机软件,而且VMWare可能还和docker存在冲突。

wsl下Linux基本操作间如下链接,本文主要讲后续如何在wsl下的Linux环境使用chatglm.cpp

wsl初步使用记录-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/to_love_/article/details/137559827

一些说明

wsl下的Linux环境还是比较干净,相比云服务器提供了毕竟完善的软件安装,wsl下的Linux系统一些软件都需要自己安装的。

对于这些不一样的地方,我进行颜色标识,方便快速查阅。

过程

git chatglm.cpp代码

git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp
git submodule update --init --recursive

正常是没问题的,不过我这里一直连不上github.com,提示连接被拒绝,而且是秒拒

试着ping结果ip是127.0.0.1,怪不得,应该和我Windows本机使用了Github加速代理有关,本质上是给hosts加了github.com的映射记录。

而且吧,wsl还有个机制,他会自动同步Windows宿主机的hosts记录到Linux下的hosts文件。当然可以关闭自动更新

sudo vim /etc/wsl.conf

增加

[network]
generateHosts = false

小提示:这里使用了vim编辑器,需要保存的话,先按ESC键,然后输入:wq即可保存并退出。

cat /etc/wsl.conf即可查看文件是否已更新

cat /etc/hosts查看Linux下hosts文件,是否还有错误的github.com映射信息

有的话,通过sudo vim /etc/hosts删掉,并增加20.205.243.166 github.com,这样访问githun.com就会去找这个新增的IP记录(注意:ip地址可能会变,则需要更新)

这个时候再次ping github.com,IP信息已经变过来了。

接下来重启Linux环境

wsl --shutdown ubuntu(这里看你具体的wsl系统名)

重新进入Linux环境

wsl -d ubuntu

这个时候就可以正常执行git操作了

安装相关包

python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece

这个时候会提示pip不存在(python倒是有了),那么再安装下pip

sudo apt install python3-pip
接下来即可正常pip install了,不过这几个包都很大,下载包很慢。那么可以先Ctrl+C停掉安装过程,在如上命令后加 -i https://pypi.tuna.tsinghua.edu.cn/simple,这样通过清华pip镜像源下载就飞快了

convert量化ggml

python3 chatglm_cpp/convert.py -i THUDM/chatglm3-6b -t q4_0 -o chatglm3-ggml.bin

如果使用该命令,如果当前模型文件不存在,会自动从huggingface下载模型。

这个时候问题又来了,由于网络原因,会提示你连不上huggingface,那么就需要通过镜像来下载,即需要设置huggingface模型下载地址的环境变量

export HF_ENDPOINT="https://hf-mirror.com"

查看是否已更新echo $HF_ENDPOINT

继续执行如上命令,这速度嗖嗖的~

很快q4_0量化模型也好了

cmake构建项目

cmake -B build
cmake --build build -j --config Release

其实,这里也需要先安装cmake

sudo apt update
sudo apt install cmake

命令行模型推理

./build/bin/main -m chatglm3-ggml.bin -p 你好

webdemo模型推理

python3 ./examples/web_demo.py -m chatglm3-ggml.bin

这里会提示chatglm_cpp不存在,pip install .即可解决

再次运行提示gradio不存在,pip install gradio即可,这个包可以更新到最前面的pip install命令中

性能表现

我这本身的Windows环境,然后是通过wsl新建了一个Linux环境。

硬件方面,没有GPU,在q4_0量化后,速度也还凑合用。

不过个人觉得,要准生产可用,还是需要GPU的,推理速度还是会差很多的。

gpu推理设置

如果电脑有GPU,那么cmake和pip install .的时候,都需要增加参数

cmake -B build -DGGML_CUBLAS=ON

CMAKE_ARGS="-DGGML_CUBLAS=ON" pip install .

相关参数其实在chatglm.cpp代码下的readme文档都有说明。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【面试题】微博、百度等大厂的排行榜如何实现?

背景 现如今每个互联网平台都会提供一个排行版的功能,供人们预览最新最有热度的一些消息,比如百度: 再比如微博: 我们要知道,这些互联网平台每天产生的数据是非常大,如果我们使用MySQL的话,db实…

Git 解决分支冲突

一、前言 一直习惯于 add commit push 的三步走,偶然间看到了一个评论说在 push 之前还有一个 pull,小小的疑问就埋在了我的心里。于是我就先了解了 pull 的工作原理,就是先拉取代码(fetch)再合并分支(mer…

【Qt 学习笔记】QWidget的enable属性 | API的介绍

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ QWidget的enable属性 文章编号:Qt 学习笔记 / 15 文章目录…

【IC前端虚拟项目】验证环境方案思路和文档组织

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 对于mvu的验证环境,从功能角度就可以分析出需要搭建哪些部分,再看一下mvu的周围环境哈: 很明显验证环境必然要包括几个部分: 1.模拟idu发送指令; 2.模拟ram/ddr读写数据; 3.rm模拟mvu的行为; …

小白学Java成长日记特别篇

晚上好,各位小伙伴。今天给大家带来的是Java的输出补充篇,前两篇说了输出和输入的大概,但我没有详细讲它俩,因此这篇文章来详细的聊一聊它俩。那么废话不多说,我们赶紧进入正题。 首先讲一讲这个Java的输出吧。 输出格…

IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的…

【C++第二阶段】文件操作

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 文件操作文件写入流程简单的demo写操作 文件读流程二进制写文件二进制读文件 文件操作 文件写入流程 写文件包括以下几个步骤 1.包含头文件 2.创建流对象 3.打开文件&#xff0…

重装系统前备份笔记

一、点查看自定义快捷键可以定义一些快速启动方式 然后用不习惯的快捷键也能在这里改 二、android studio 快捷键导出备份 导入方法: android studio ->file->import setting ->选择jar包即可 导出studio的设置方法: android …

【行业资讯】AI算力的需求推动光模块行业快速迭代

近期,由OpenAI发布的人工智能文生视频大模型Sora再次引起了不小的轰动,继ChatGPT之后,Sora的推出让AIGC(生成式人工智能)再度成为行业焦点,AI大模型的快速迭代升级对网络架构提出了更高要求,推动…

SpringBoot学习笔记三-原理分析

SpringBoot学习笔记三-原理分析 SpringBoot自动装配1.1 案例1.2 通过注解方式管理Bean1.3 小结1.4 Enable注解1.5 Import注解1.5.1 ImportSelector实现类1.5.2 导入ImportBeanDefinitionRegistrar 1.5 EnableAutoConfiguration1.6 案例 SpringBoot自动装配 当再pom.xml中导入对…

ceph集群搭建

一、前言 本次搭建ceph集群,使用centos7版本的系统,最高支持ceph版本为15.2.13,如需更高的版本需要使用centos8版本以上的系统,使用cephadm进行搭建,Cephadm 是一个用于部署、管理和监控 Ceph 集群的工具,它…

Towards IP Geolocation Using Delay and TopologyMeasurements(TBG)(2006年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:492 Katz-Bassett E, John J P, Krishnamurthy A, et al. Towards IP geolocation using delay and topology …

【鸿蒙开发】系统组件Column

Column组件 Column沿垂直方向布局的容器。 接口: Column(value?: {space?: string | number}) 参数: 参数名 参数类型 必填 参数描述 space string | number 否 纵向布局元素垂直方向间距。 从API version 9开始,space为负数或者…

洪水预警:如何通过数据可视化提前应对灾害

数据可视化在应对洪涝灾害问题中发挥着重要作用。洪涝灾害是一种常见而严重的自然灾害,给人们的生命、财产和生活带来了巨大的威胁和损失。而数据可视化技术通过将海量的数据转化为直观、易懂的图表、图像或地图等形式,帮助人们更好地理解洪涝灾害的发生…

PostgreSQL入门到实战-第十三弹

PostgreSQL入门到实战 PostgreSQL数据过滤(六)官网地址PostgreSQL概述PostgreSQL中IN命令理论PostgreSQL中IN命令实战更新计划 PostgreSQL数据过滤(六) 使用PostgreSQL IN运算符来检查值是否与列表中的任何值匹配 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容…

宁波宠物展|2024中国(宁波)国际宠物用品博览会

中国(宁波)国际宠物用品博览会 地点:宁波国际会展中心 时间:2024年11月14-16日 主办单位:凤麟展览(宁波)有限公司 协办单位:浙江省宠物产业协会 宁波市跨境电子商务协会 宁波欧德国际商务咨询服务有限公司 宁波扬扬会议展览有限公司 20000方展览…

大模型的实践应用20-一种内存高效微调技术LISA,效果比LoRA有显著提升

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用20-一种内存高效微调技术LISA,效果比LoRA有显著提升。LISA是一种新型的微调技术,全称为Layerwise Importance Sampled AdamW,由UIUC联合LMFlow团队提出。这项技术…

PUBG绝地求生29.1版本加速器推荐 免费低延迟不丢包加速器

绝地求生是一款多人大逃杀游戏,游戏有多张地图可供玩家选择,玩家空投跳伞至地图的各个角落,赤手空拳寻找武器,车辆以及物资,并在多种多样的地形中展开战斗,枪械角色身上可携带4种武器,分别是近战…

绝地求生29.1版本更新后进不去 绝地求生更新后进不去游戏怎么办

绝地求生游戏共有两种主要模式:第一人称模式和第三人称模式。在这两种模式下玩家可以分别进行单排,双排,四人组队或单人匹配四人团队模式。在进入游戏的时候,玩家可以在面板选择第一人称以及第三人称。在双排或四排等组队多人游戏…

为什么说无人机的发展是必然趋势???

随着科技的飞速发展,无人机已经逐渐从军事领域走进了普通人的生活,成为了我们探索天空、捕捉美好瞬间的新工具。今天,就让我带大家一起走进无人机的世界,感受它带来的无限魅力与可能性。 无人机,顾名思义,就…