Serge让你在本地运行LLaMa模型

news2025/1/24 14:34:17

在这里插入图片描述

什么是 Serge ?

Serge 是基于 llama.cpp 运行 Alpaca 模型的聊天界面。完全自托管,不需要 API 密钥。适合 4GB RAM 并且能在 CPU 上运行。

什么是 LLaMA ?

LLaMA 是一种机器学习算法,全称为 Laplacian Regularized Least Squares for Multiple Kernel Learning。它是一种多核学习方法,可以用于处理多个核函数的数据集,以提高分类或回归的准确性。LLaMA 算法利用拉普拉斯正则化技术来平衡不同核函数的贡献,从而提高分类或回归的性能。LLaMA 算法已经在许多领域得到了广泛的应用,包括生物信息学、图像识别、自然语言处理等。

什么是 llama.cpp

llama.cpp 是在 C/C++ 中移植的 FacebookLLaMA 模型。

什么是 Alpaca 模型 ?

Alpaca 模型是一种基于深度学习的自然语言处理模型,它可以用于文本分类、情感分析、问答系统等任务。Alpaca 模型采用了一种特殊的网络结构,称为“路径卷积神经网络”( Path Convolutional Neural Network,PCNN),该网络结构可以同时处理词序列和句法树,从而提高了模型的性能。此外,Alpaca 模型还使用了一种叫做“自适应注意力”( Adaptive Attention)的机制,可以自动地调整不同单词的权重,从而更好地捕捉句子的意义。Alpaca 模型已经在多个自然语言处理任务上取得了优秀的表现,成为了该领域中的一个重要研究方向之一。

Serge

老苏试了下,4GB 内存有点够呛,尤其是你的群晖还跑了其他的服务,如果有 8GB可以试试,不需要 GPU 还是不错的,虽然运算速度慢点

在这里插入图片描述

注意事项

CPU

目前 Serge 需要与 AVX2 指令兼容的 CPU ,老苏猜测应该是因为 MongoDB 的缘故。官方给的检测命令是:

# 检测 cpu 是否支持 AVX2
lscpu | grep avx2

但是在群晖上,并没有 lscpu,所以老苏咨询了 ChatGPT ,他给老苏提供了下面的命令, 请用SSH 客户端登录到群晖后,在命令行中运行

# 检测 cpu 是否支持 AVX2
cat /proc/cpuinfo | grep avx2

如果输出包含 avx2,则表示您的 CPU 支持 AVX2。如果未找到 avx2,则表示您的 CPU 不支持 AVX2

内存

如果您的模型没有足够的可用内存,llama 就会崩溃,下面是官方提供的数据:

  • 7B 需要大约 4.5GB 的空闲 RAM
  • 13B 需要大约 12GB 的空闲RAM
  • 30B 需要大约 20GB 的空闲RAM

安装

ghcr.io 镜像下载

官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。

SSH 客户端中依次执行下面的命令

# 下载镜像
docker pull ghcr.io/nsarrazin/serge:latest

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/nsarrazin/serge:latest

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/nsarrazin/serge:latest ghcr.io/nsarrazin/serge:latest

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/nsarrazin/serge:latest

当然代理网站也不是什么时候都好使,有时候也会报错,例如下面👇这样的

Error response from daemon: received unexpected HTTP status: 500 Internal Server Error

所以有一个稳定的科学上网环境还是很重要的

docker cli 安装

现在可以开始运行了

# 新建文件夹 serge 和 子目录
mkdir -p /volume2/docker/serge/{data,weights}

# 进入 serge 目录
cd /volume2/docker/serge

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name serge \
   -p 8018:8008 \
   -v $(pwd)/data:/data/db \
   -v $(pwd)/weights:/usr/src/app/weights \
   ghcr.io/nsarrazin/serge:latest

docker compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  serge:
    image: ghcr.io/nsarrazin/serge:latest
    container_name: serge
    restart: unless-stopped
    ports:
      - 8018:8008
    volumes:
      - ./data:/data/db
      - ./weights:/usr/src/app/weights
      - /etc/localtime:/etc/localtime:ro

然后执行下面的命令

# 新建文件夹 serge 和 子目录
mkdir -p /volume2/docker/serge/{data,weights}

# 进入 serge 目录
cd /volume2/docker/serge

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8018 就能看到主界面

首先要点 Download model下载模型

老苏下了 gpt4all ,文件大小和 7B7B-native 是一样的,估摸着内存占用应该是一样的,但具体有什么区别老苏不清楚 🤦‍♂️

在这里插入图片描述

下载速度挺快的,日志中看不到具体的下载地址

点左侧的 Home 回到首页

在这里插入图片描述

聊天之前,可以设置模型的参数,但是说实话,老苏也不明白这些该如何设置,所以就保持了默认的

点紫色的 Start a new chat 开始聊天

老苏问了第一个问题 你支持中文吗?

在这里插入图片描述

感觉一下就把天给聊死了,这接下来怎么聊呢?老苏的英文水平也就能说个 What's you name?How are you?How old are you?

老苏的机器是 4G 内存的, CPU 也比较古老,所以每个问题都需要很长时间才会有应答,差不多每个问题也就一顿饭的功夫吧 😁

昨晚装好之后,第一个问题是中文的,其实难道也不大,但还是直接把机器给整的没响应了,早上起来一看重启了,估计是资源耗尽了吧,有兴趣的话,你也可以试试

参考文档

nsarrazin/serge: A web interface for chatting with Alpaca through llama.cpp. Fully dockerized, with an easy to use API.
地址:https://github.com/nsarrazin/serge

https://serge.chat
地址:https://serge.chat/

[P] Serge, a self-hosted app for running LLaMa models (Alpaca) entirely locally, no remote API needed. : MachineLearning
地址:https://www.reddit.com/r/MachineLearning/comments/11yvbzc/p_serge_a_selfhosted_app_for_running_llama_models/

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

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

相关文章

windows安装mysql详解

目录 1. mysql下载2. 添加环境变量3. 添加配置文件4. 初始化 data 目录5. 安装启动服务6. 修改密码 1. mysql下载 mysql官网:https://www.mysql.com/downloads/ MySQL Community Server:MySQL数据库的服务端,MySQL的核心,只下载它…

FISCO BCOS(三十四)———商品溯源(智能合约+后端)

FISCO BCOS(三十四)———商品溯源(智能合约+后端) 一、智能合约函数调用流程 注:智能合约来源(官网的合约仓库中) 但是TraceabilityFactory合约有问题,我已经做了修改,可以看原版与我的,只有一个函数不同。 官网上这套合约在TraceabilityFactory这个合约上缺少getGo…

Springboot信息泄露以及heapdump的利用

本文转载于https://blog.csdn.net/weixin_44309905/article/details/127279561 heapdump的利用 0x01 Springboot信息泄露 路由列表 0x02 下载heapdump0x03 利用heapdump的姿势 工具一:heapdump_tool工具二:Eclipse MemoryAnalyzer 0x01 Springboot信息…

【C++11】关于C++11新特性简介

目录 一、关于C11的简介 二、统一的列表初始化 2.1 {}初始化 2.2 std::initializer_list 三、声明 3.1 auto 3.2 decltype 3.3 nullptr 四、范围for循环 五、C11中STL的一些变化 一、关于C11的简介 在2003年 C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff…

“分割一切”大模型SAM、超轻量PP-MobileSeg、工业质检工具、全景分割方案,PaddleSeg全新版本等你来体验!

图像分割是计算机视觉的一项基础技术,其目标是将图像中的像素按内容分成不同的类别。它在许多领域有重要应用,比如自动驾驶、工业质检、医疗图像分析、遥感图像解译等。 导读 PaddleSeg 是飞桨高性能图像分割开发套件,在图像分割领域做了大…

分类预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络多输入分类预测

分类预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络多输入分类预测 目录 分类预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络多输入分类预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-CNN-BiLSTM贝叶斯优…

上海车展:深蓝汽车首次亮相,全场景电动出行实力圈粉

4月18日,2023上海国际车展如约而至。 作为疫情结束后的首个国际车展,本届上海车展自然吸睛无数,光是首个媒体日进场时的阵仗,就让无数媒体人高呼“人潮汹涌”。 而在本次参展的众多汽车品牌中,刚刚成立一周年的深蓝汽车…

【IEEE期刊专区】这本IEEE旗下期刊中科院升级为1区(TOP),什么来头?(附IEEE在检SCI目录)

近期国自然也提交等待审核了,放榜等到7、8月份了,祝愿各位科研人有好运!现在的节点正是发表评职代表作的好时机,本期小编带来IEEE旗下高分区、高影响因子SCI期刊推荐,是不可多得的好刊代表,有意向作者切不可…

组件封装v-model .sync在父子组件中实现双向数据绑定 如何处理单向数据流 封装表单组件

使用watch监听 父组件使用.sync进行数据的绑定 传值子组件时 把值赋值到data的变量中 然后监听该数据的变化 $emit抛出 父组件demo <template><div><Son :model-value.sync"modelValue" :select-value.sync"selectValue" /></div>…

stata简单回归与检验

stata简单回归与检验 – 潘登同学的stata笔记 文章目录 stata简单回归与检验 -- 潘登同学的stata笔记 OLS回归系数的t检验异方差稳健型标准误计算拟合值和残差残差分析 相关系数矩阵相关矩阵散点图Pearson 相关系数Spearman 相关系数 t检验单变量t检验多变量t检验变量在多组之间…

史上最详细的八大排序详解!(建议收藏)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

Babel的深度解析

在开发中我们很少直接去接触babel&#xff0c;但是babel对于前端开发来说&#xff0c;目前是不可缺少的一部分&#xff1a; 开发中&#xff0c;我们想要使用ES6的语法&#xff0c;想要使用TypeScript&#xff0c;开发React项目&#xff0c;它们都是离不开Babel的&#xff1b; B…

性能测试分析-Java内存溢出定位案例(1)

Java内存溢出分析案例 Java常见内存溢出类型&#xff1a;堆内存溢出现象内存溢出分析下载安装分析软件下载 hprof 文件MAT 分析定位问题Shortest Paths To the Accumulation Point 内存溢出分析参考文档&#xff1a; Java常见内存溢出类型&#xff1a; 常见的内存溢出主要有以…

90、Neural Residual Radiance Fields for Streamably Free-Viewpoint Videos

简介 主页&#xff1a;https://aoliao12138.github.io/ReRF/ 前提知识&#xff1a;DeVRF&#xff1a;https://jia-wei-liu.github.io/DeVRF/ 先利用多台固定相机拍摄动态场景&#xff0c;在第一帧利用DVGO重建好半显示场景&#xff0c;后续则是通过预测体素x,y,z三个方向的运…

crontab -e 系统定时任务

crontab -e解释 crontab 是由 “cron” 和 “table” 两个单词组成的缩写。其中&#xff0c;“cron” 是一个在 Linux 和类 Unix 操作系统中用于定时执行任务的守护进程&#xff0c;而 “table” 则是指一个表格或者列表&#xff0c;因此 crontab 就是一个用于配置和管理定时任…

PHP 单笔转账到支付宝账户,支付宝公钥证书实现版本

支付宝某些业务只能使用公钥证书方式来验签 如&#xff1a;即使转账 红包等 笔者就要实现这样一个功能&#xff0c;【单笔转账到支付宝账户】&#xff0c;采用支付宝公钥证书签名来实现。 话不多说&#xff0c;流程先走起 第一步&#xff1a;下载支付宝秘钥生成器 由于我们使…

手把手教你 DVOL

分享本文在朋友圈的读者可获得本文数据和 Python 代码。留个言说已分享&#xff08;不用截屏&#xff09;我相信你&#xff0c;我会发给你百度盘下载链接。 本文长度为 6393 字&#xff0c;建议阅读 32 分钟 题图&#xff1a;SignalPlus Dashboard 0 引言 Deribit volatility (…

基于 VITA57.1 的 2 路 2GSPS/2.6GSPS/3GSPS 14bit AD 采集 FMC 子卡模块

板卡概述 FMC152 是一款基于 VITA57.1 标准的&#xff0c;实现 2 路 14-bit、2GSPS/2.6GSPS/3GSPS AD 采集 FMC 子卡模块。该模块可直接与 FPGA 载卡配合使用&#xff0c;板卡 ADC 器件采用 ADI 公司的 AD9208 芯片&#xff0c; 与 ADI 公司的 AD9689 可以实现 PIN 脚兼容。该…

URI URL URN定义

1 定义 URI&#xff1a;全称Uniform Resource Identitfier&#xff0c;也就是统一资源标识符&#xff0c;可以标识互联网上某一资源&#xff0c;用来标识抽象或物理资源的一个紧凑字符串。 URL&#xff1a;全称Uniform Resource Locator&#xff0c;统一资源定位符&#xff0c…

【hello Linux】进程程序替换

目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充&#xff1a; Linux&#x1f337; 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码&#xff0c;那么我们若想让该进程执行另一个“全新的程序”这 便要用…