LocalAI - 兼容OpenAI API的本地大模型技术栈【LLM】

news2024/11/22 16:20:39

LocalAI 是一个用于本地推理的 与OpenAI API 规范兼容的REST API, 它允许使用消费级硬件在本地或本地运行模型,支持llama.cpp、alpaca.cpp、gpt4all.cpp、rwkv.cpp、whisper.cpp、vicuna、koala、gpt4all-j、cerebras 等大模型。

在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

LocalAI的主要特性包括:

  • OpenAI 替代性REST API
  • 支持多种模型
  • 第一次加载后,它会将模型加载到内存中以进行更快的推理
  • 支持提示模板
  • 使用 C++ 绑定来实现更快的推理和更好的性能。

LocalAI 是一个社区驱动的项目,专注于让任何人都能访问 AI。 它最初是由 SpectroCloud OSS 办公室的 mudler 创建的。

LocalAI 使用 C++ 绑定来优化速度。 它基于用于音频转录的 llama.cpp、gpt4all、rwkv.cpp、ggml、whisper.cpp 和用于嵌入的 bert.cpp。

1、LocalAI工作原理

在这里插入图片描述

2、LocalAI模型兼容性

LocalAI与 llama.cpp 支持的模型兼容,还支持 GPT4ALL-J 和带有 ggml 的 cerebras-GPT。LocalAI还应该与 StableLM 和 GPTNeoX ggml 模型兼容,但我们尚未测试过。

模型兼容性列表如下:

在这里插入图片描述

3、LocalAI使用方法

LocalAI 默认作为容器镜像出现。 可以在此处查看带有相应标签的所有可用镜像。

运行 LocalAI 的最简单方法是使用 docker-compose:

git clone https://github.com/go-skynet/LocalAI

cd LocalAI

# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>

# copy your models to models/
cp your-model.bin models/

# (optional) Edit the .env file to set things like context size and threads
# vim .env

# start with docker-compose
docker-compose up -d --build

# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"your-model.bin","object":"model"}]}

curl http://localhost:8080/v1/completions -H "Content-Type: application/json" -d '{
     "model": "your-model.bin",            
     "prompt": "A long time ago in a galaxy far, far away",
     "temperature": 0.7
   }'

下面是使用 GPT4ALL-J 模型的示例:

# Clone LocalAI
git clone https://github.com/go-skynet/LocalAI

cd LocalAI

# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>

# Download gpt4all-j to models/
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j

# Use a template from the examples
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/

# (optional) Edit the .env file to set things like context size and threads
# vim .env

# start with docker-compose
docker-compose up -d --build

# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}

curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
     "model": "ggml-gpt4all-j",
     "messages": [{"role": "user", "content": "How are you?"}],
     "temperature": 0.9 
   }'

# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}

原文链接:LocalAI 本地大模型 — BimAnt

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

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

相关文章

linux入门---模拟实现命令行解释器

目录标题 前提准备工作 前提 平时使用指令操作linux系统的时候可能会输入一些不好的指令&#xff0c;这些指令可能会对操作系统内核造成影响&#xff0c;所以就有了命令行解释器这个东西&#xff0c;它会过滤掉那些不好的指令从而让linux系统更加的安全&#xff0c;比如说我们…

初识linux之线程池与一些常见的锁

目录 一、线程池的概念 1. 线程池的概念 2. 线程池的应用场景 二、模拟实现一个线程池 1. 线程的简单封装 2. 锁的简单封装 3. 线程池的模拟实现 3.1 整体结构及头文件 3.2 构造函数 3.3 析构函数 3.4 线程启动 3.5 传入任务 3.6 整体结构 三、线程安全的单例模式…

向基于语义模型的操作集成的演变

在过去的许多年里&#xff0c;已经定义了许多架构方法&#xff0c;用于系统集成以及其信息和流程的表示。这些方法包括面向数据、面向消息、面向服务和面向信息的方法。需要探讨的问题是&#xff1a; 这些不同的方法有何不同和联系&#xff1f;从实时运营整合架构的角度来看&a…

MQTT协议理解

提示&#xff1a;记录mqtt服务搭建及访问教程 文章目录 前言一、MQTT是什么&#xff1f;二、使用步骤1.MQTT服务器搭建2.MQTT集成 总结 前言 一直想了解下mqtt&#xff0c;本人又懒&#xff0c;被动型学习&#xff0c;刚好项目需要&#xff0c;此篇记录下MQTT搭建过程及心得体…

小模型媲美2000倍体量大模型,谷歌提出新思路:蒸馏也能Step-by-Step

深度学习自然语言处理 原创作者&#xff1a;林哲乐 论文&#xff1a;Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes地址&#xff1a;https://arxiv.org/pdf/2305.02301.pdf录取&#xff1a;ACL2023 进NLP群…

在JavaScript中4种创建枚举方式

本文译者为 360 奇舞团前端开发工程师 原文标题&#xff1a;4 Ways to Create an Enum in JavaScript原文作者&#xff1a;Dmitri Pavlutin原文地址&#xff1a;https://dmitripavlutin.com/javascript-enum/ 使用枚举&#xff08;enum&#xff09;可以方便地表示一个变量&…

一个通用的多相机视觉SLAM框架的设计和评估

文章&#xff1a;Design and Evaluation of a Generic Visual SLAM Framework for Multi-Camera Systems 作者&#xff1a;Pushyami Kaveti, Arvind Thamil Chelvan Hanumant Singh 编辑&#xff1a;点云PCL 来源&#xff1a;https://arxiv.org/pdf/2210.07315.pdf 代码&#x…

针对基于智能卡进行认证的活动目录的攻击

最近&#xff0c;我参与了一项攻击基于智能卡的活动目录的工作。实际上&#xff0c;你根本不需要使用物理智能卡来验证登录这个活动目录。证书的属性决定了它是否可以用于基于智能卡进行登录。因此&#xff0c;如果你能获得相应的私钥&#xff0c;那么就可以绕过智能卡的验证实…

借助ChatGPT自动生成PPT

借助ChatGPT自动生成PPT 首先让GPT生成一段markdown格式的PPT内容&#xff0c;尽量描述全面&#xff0c;以什么语言&#xff0c;什么格式&#xff0c;排版等等。 打开mindshow网址&#xff0c;点击import and create&#xff0c;选择以markdown方式创建&#xff0c;再次点击弹…

LayerNorm 在 Transformers 中对注意力的作用研究

LayerNorm 一直是 Transformer 架构的重要组成部分。如果问大多人为什么要 LayerNorm&#xff0c;一般的回答是&#xff1a;使用 LayerNorm 来归一化前向传播的激活和反向传播的梯度。 其实这只是部分正确&#xff1a;Brody、Alon 和 Yahav 的一篇题为“On the Expressivity Ro…

LabVIEWCompactRIO 开发指南20 应用程序接口

应用程序接口 STMAPI如图4.24所示。对于基本操作&#xff0c;它由一个读VI和一个写VI组成。它还具有两个补充VI&#xff0c;以帮助传输元数据&#xff0c;但它们的使用不是强制性的。每个主要的VI都是多态&#xff0c;这意味着可以将它们与不同的传输层一起使用。本文档讨论基…

WMS 窗口添加流程

WMS 系统窗口添加流程 文章目录 WMS 系统窗口添加流程一. addView二. addView代码分析2.1 应用端调用WindowManager的addView2.2 WindowManager的实现类是WindowManagerImpl2.3 WindowManagerGlobal2.4 setView2.4 addToDisplayAsUser&#xff08;Session.java&#xff09;2.5 …

韦东山Linux驱动入门实验班(2)hello驱动---驱动层与应用层通讯,以及自动产生设备节点

前言 &#xff08;1&#xff09;学习韦东山老师的Linux&#xff0c;因为他讲的很精简&#xff0c;以至于很多人听不懂。接下来我讲介绍韦东山老师的驱动实验班的第二个Hello程序。 &#xff08;2&#xff09;注意&#xff0c;请先学习完视频再来看这个教程&#xff01;本文仅供…

Oracle数据库实现limit功能

Oracle数据库不支持mysql中limit功能&#xff0c;但可以通过rownum来限制返回的结果集的行数&#xff0c;rownum并不是用户添加的字段&#xff0c;而是oracle系统自动添加的。 #1、使查询结果最多返回前100行&#xff1a; SELECT * FROM TESTSDK WHERE rownum<10; #2、查询结…

跟庄买股票得新技巧(2023.05.16)(绝密资料,只发一次)

昨天学了一个跟庄买卖股票的得新技能 统计昨天庄家异动的情况&#xff0c;按照行业分类&#xff08;板块&#xff09;板块对涨幅进行排序&#xff0c;涨幅排名分前三的是&#xff0c;龙头一&#xff0c;龙头二&#xff0c;龙头三买卖规则&#xff1a;看龙一&#xff0c;玩龙二…

如何使用Sentinel做流量控制?此文将附代码详细介绍Sentinel几种限流模式

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章将详细介绍Sentinel的两种限流模式&#xff0c;由于篇幅原因&#xff0c;后续文章将详细介绍Sentinel的其他三种。 如果文章有什么需要改进的地方还请大佬不吝赐教…

SCS【25】单细胞细胞间通信第一部分细胞通讯可视化(CellChat)

桓峰基因公众号推出单细胞生信分析教程并配有视频在线教程&#xff0c;目前整理出来的相关教程目录如下&#xff1a; Topic 6. 克隆进化之 Canopy Topic 7. 克隆进化之 Cardelino Topic 8. 克隆进化之 RobustClone SCS【1】今天开启单细胞之旅&#xff0c;述说单细胞测序的前世…

Servlet进阶API、监听器与过滤器

过滤器和监听器是Servlet规范里的两个高级特性&#xff0c; 过滤器的作用是通过对request、response 的修改实现特定的功能&#xff0c;例如请求数据字符编码、IP地址过滤、异常过滤、用户身份认证等。监听器的作用是用于监听Web程序中正在执行的程序&#xff0c; 根据发生的事…

罗德与施瓦茨Rohde Schwarz FSW8 2HZ-8GHZ信号分析仪FSW13收购

罗德与施瓦茨Rohde & Schwarz FSW8 2HZ-8GHZ信号分析仪 附加功能&#xff1a; 10 kHz 偏移&#xff08;1 GHz 载波&#xff09;时的低相位噪声为 –137 dBc (1 Hz) 用于 WCDMA ACLR 测量的 –88 dBc 动态范围&#xff08;带噪声消除&#xff09; 高达 2 GHz 的分析带宽 &…

Camtasia2023.0.1CS电脑录制屏幕动作工具新功能介绍

Camtasia Studio是一款专门录制屏幕动作的工具&#xff0c;它能在任何颜色模式下轻松地记录 屏幕动作&#xff0c;包括影像、音效、鼠标移动轨迹、解说声音等等&#xff0c;另外&#xff0c;它还具有即时播放和编 辑压缩的功能&#xff0c;可对视频片段进行剪接、添加转场效果。…