5个本地流畅运行大模型的免费工具

news2024/10/7 20:33:35

大家好,随着大型语言模型(LLM)驱动的聊天机器人逐渐普及,给人们的工作和生活带来了前所未有的便利。然而,这种便捷性背后潜藏着个人隐私信息被泄露的风险,例如AI公司会收集聊天记录和元数据来优化模型,从而提升服务,这不禁让用户担忧。

对于注重隐私的用户而言,本地部署这些模型,可以有效保护个人隐私,同时也能更自主地管理自己的数据。本文将介绍5个在本地使用大型语言模型(LLM)的工具,这些工具不仅兼容主流操作系统,而且安装过程快捷简便。

1 GPT4All

安装链接:https://gpt4all.io/index.html

GPT4All是开源软件,可从网站下载GPT4ALL并将其安装在你的系统上。

安装后从面板中选择适合需求的模型开始使用,如果电脑装有CUDA(Nvidia的GPU驱动),GPT4ALL软件会自动利用GPU加速,快速生成回复,速度可达每秒30个令牌。

图片

只需授权GPT4ALL访问存放重要文件和代码的文件夹,GPT4ALL就能利用检索增强生成技术,迅速生成精准的回复。

这款软件用户界面友好,响应迅速,在人工智能领域备受推崇。

图片

2 LM Studio

安装链接:https://lmstudio.ai/

图片

LM Studio 是一款用户友好的桌面应用,专为本地和开源的大型语言模型(LLM)的实验设计,操作简单直观。

使用LM Studio,可以:

  • 在笔记本电脑上完全离线运行LLM

  • 通过应用程序内的聊天界面或兼容OpenAI的本地服务器来使用模型

  • 从HuggingFace资源库下载兼容的模型文件

  • 在应用程序的主页面发现新的和值得注意的LLM

与 GPT4ALL 相比,LM Studio 具有多项优势。

首先,用户界面非常出色,仅需几次点击,就可完成安装 Hugging Face Hub 上的任意模型。

此外,LM Studio 还支持 GPU 加速功能,并提供 GPT4ALL 所不具备的一些额外选项。

需要注意的是,LM Studio 是一个闭源软件,它不提供通过读取项目文件来生成上下文感知响应的功能。

3 Ollama

安装链接:https://ollama.com/

Ollama提供了一种轻量级和用户友好的方式来搭建和运行各种开源LLM,消除了复杂配置或依赖外部服务器的需要,适用于多种应用场景:

  • 开发:允许开发人员对 LLM 项目进行实验和快速迭代,而无需将其部署到云端。

  • 研究:研究人员可以使用Ollama在受控环境中研究LLM的行为,从而促进深入分析。

  • 隐私:在本地运行 LLM 可确保数据不会离开你的机器,这对敏感信息很重要。

Ollama 预置了训练有素的语言模型库,例如:

  • Llama 2:能够执行文本生成、翻译和问答等多种任务的大型语言模型。

  • Mistral:在大量文本和代码数据集上训练的事实性语言模型。

  • Gemma:专为对话应用设计的语言模型,旨在增强对话的互动性和吸引力。

  • LLaVA:针对聊天和教学用例训练的强大模型。

该库简化了预训练模型的集成流程,开发人员可以直接在应用程序中使用这些模型,无需从零开始训练,大大节省了时间和资源。Ollama充分利用了NVIDIA GPU以及现代CPU的高级指令集(如AVX和AVX2)来加速模型的运行,整个过程无需复杂的配置或虚拟化操作。

在下面的示例中,我们可以下载Mistral LLM:

图片

下载模型后,可以开始询问与它聊天:

图片

4 LLaMA.cpp

安装链接:https://github.com/ggerganov/llama.cpp

LLaMA.cpp由Georgi Gerganov开发。它以 C/C++ 语言高效实现了 Meta 的 LLaMa 模型架构,并且是围绕LLM推理的最活跃的开源社区之一,拥有超过390名贡献者,在官方GitHub仓库上有43,000+个星标和 930 多次的发布。

Llama.cpp的核心是原始的Llama模型,该模型采用变换器架构构建。开发者们不仅采用了该领域后续的各种改进,还参考了如 PaLM 等其他模型的特点,来进一步提升模型的性能和应用范围。

图片

可以使用以下命令安装:

pip install llama-cpp-python

安装后,使用以下命令导入:

from llama_cpp import Llama

上面导入的 Llama 类包含的主要构造函数在使用 Llama.cpp 时会被调用,它接受多个参数,并不仅限于以下列出的这些。完整的参数列表可以在官方文档中找到(https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.Llama):

  • model_path:正在使用的Llama模型文件的路径.

  • prompt:模型的输入提示。该文本将被标记化并传递给模型。

  • device:用于运行Llama模型的设备;此类设备可以是CPU或GPU。

  • max_tokens:模型响应中要生成的最大令牌数。

  • stop:会导致模型生成过程停止的字符串列表。

  • temperature:这个值在0到1之间。值越低,结果越确定性。反之,数值越高,随机性越大,输出也就越多样、越有创意。

  • top_p:用于控制预测的多样性,即选择累积概率超过给定阈值的最有可能的令牌。从零开始,数值越大,找到更好输出结果的几率越大,但需要额外的计算。

  • echo:一个布尔值,用于确定模型是否在开头包含原始提示(True)或不包含(False)

例如,假设要使用一个名为“MY_AWESOME_MODEL”的大型语言模型,该模型存储在当前工作目录中,实例化过程如下所示:

# 实例化模型
my_aweseome_llama_model = Llama(model_path="./MY_AWESOME_MODEL")


prompt = "This is a prompt"
max_tokens = 100
temperature = 0.3
top_p = 0.1
echo = True
stop = ["Q", "\n"]


# 定义参数
model_output = my_aweseome_llama_model(
       prompt,
       max_tokens=max_tokens,
       temperature=temperature,
       top_p=top_p,
       echo=echo,
       stop=stop,
   )
final_result = model_output["choices"][0]["text"].strip()

5 NVIDIA RTX聊天

安装链接:https://www.nvidia.com/en-us/ai-on-rtx/chatrtx/

ChatRTX 是一款演示应用程序,用户可以通过 GPT 大型语言模型(LLM)个性化地接入自己的内容,包括文档、笔记或其他数据。利用检索增强生成(RAG)、TensorRT-LLM 和 RTX 加速,可以查询自定义聊天机器人,快速获得与上下文相关的答案。由于所有操作都在 Windows RTX PC 或工作站上本地运行,因此用户可以获得快速、安全的结果。

图片

使用RTX上的Chat,可以直接在笔记本电脑上本地运行LLaMA和Mistral模型。这款快速高效的应用程序,可以从用户提供的文档或视频中学习。需要注意的是,Chat with RTX依赖于TensorRTX-LLM,它只支持30系列或更新的GPU。

 

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

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

相关文章

【Vulhub靶场】Nginx 漏洞复现

Nginx 漏洞复现 一、Nginx 文件名逻辑漏洞(CVE-2013-4547)1、影响版本2、漏洞原理3、漏洞复现 二、Nginx 解析漏洞1、版本信息:2、漏洞详情3、漏洞复现 一、Nginx 文件名逻辑漏洞(CVE-2013-4547) 1、影响版本 Nginx …

mysql 数据转excel文件

mysql 数据转excel文件 缘由 为售后拉取数据,用navicat太墨迹了,用python写一个main方法跑一下; 1.抽取共同方法,封装成传入mysql,直接下载成excel; 2.写入所有sql语句,传入参数; 代…

2024-05-02 商业分析-杭州小万科技-商业模式分析

摘要: 对杭州小万科技的商业模式进行分析,以对其做出客观的评估。 杭州小万科技的资料: 杭州小万科技有限公司 - 企知道 (qizhidao.com) 杭州小万科技有限公司网站备案查询 - 天眼查 (tianyancha.com) 杭州小万科技有限公司 - 爱企查 (baidu.com) ​ 2023年年报:

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术,针对不同的业务/基础功能对模块进行划分,从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块,壳工程依赖业务模块。同级的横向模块(比如多个业务…

BeanFactory 源码浅析

BeanFactory 功能介绍 BeanFactory 是核心容器,负责管理 Bean 对象 BeanFactory 接口的功能只有一个 getBean() 方法BeanFactory 的实现类(DefaultListableBeanFactory)包含:控制反转、基本的依赖注入、Bean 生命周期的各种功能…

【Python】函数设计

1.联系函数的设计 2.找质数 3.找因子 4.判断水仙花数 5.斐波拉契数列递归调用,并用数组存储已计算过的数,减少重复计算 1、计算利息和本息 编写两个函数分别按单利和复利计算利息,根据本金、年利率、存款年限得到本息和和利息。调用这两个函数计算1…

【算法刷题日志】吸氧羊的StarryCoding之旅 - 贡献法计算

题目链接:https://www.starrycoding.com/problem/3 题目描述 吸氧羊终于注册了一个StarryCoding账号!(她很开心) 但是吸氧羊忘记了它的密码,她想起你是计算机大师,于是就来请教你。 她虽然不记得密码了…

java版数据结构:深入理解栈和队列:数据结构与应用(vector,stack,queue)

目录 前言 动态数组类(vector) 特点: 应用: 栈(Stack) 栈的基础概念: 栈的常用方法: 模拟栈操作: 队列(Queue) 队列的基础概念 队列的常…

golang学习笔记(协程的基础知识)

golang的协程 协程是一种轻量级的线程,它可以实现并发执行的并行操作。协程是Go语言中的一个核心特性,它使得程序能够以并发的方式运行,并且非常高效。与传统的线程相比,协程的创建和销毁成本非常低,可以方便地启动大…

三维坐标点按剖面分类

一、写在前面 ①配套文件:根据剖面对三维坐标点(X,Y,Z)分类资源-CSDN文库 ②脱敏处理:蚀变数据已采用随机数生成覆盖 ③剖面坐标按顺序排列在“剖面坐标点.xlsx”文件中 二、3点确定空间中平面方程 原理: 设3点A&…

C++深度解析教程笔记2

C深度解析教程笔记2 第3课 - 进化后的 const 分析实验-C与C的const区别实验-C与C的const区别&const作用域 第4课 - 布尔类型和引用小结 本文学习自狄泰软件学院 唐佐林老师的 C深度解析教程,图片全部来源于课程PPT,仅用于个人学习记录 第3课 - 进化后…

列转行(spark 与presto语法)

一、Presto 语法 原始数据: 期望数据: 代码: SELECT info, value FROM ( select 张三 as name,18 as age,男 as gender,清华 as schoolunion allselect 李四 as name,18 as age,男 as gender,清华 as school ) as a CROSS JOIN UNNEST(…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint,基类选择 Asset Action Utility 在类默认值内,可以添加筛选器,筛选指定的类型 然后新建一个函数,加上4个输入:ReplaceFrom,ReplaceTo,Add…

使用Android Studio 搭建AOSP FrameWork 源码阅读开发环境

文章目录 概述安装Android Studio编译源码使用Android Studio打开源码制作ipr文件直接编译成功后自动打开Android Studio 修改SystemUI验证开发环境 概述 我们都知道Android的系统源码量非常之大,大致有frameworka层源码,硬件层(HAL)源码,内…

机器学习笔记-18

异常检测问题 异常检测虽然主要用于无监督学习问题上,但是和监督学习问题很相似。 异常检测(Anomaly Detection):给定正确样本集{ x ( 1 ) , x ( 2 ) . . . x ( n ) x^{(1)},x^{(2)}...x^{(n)} x(1),x(2)...x(n)},记新样本即要检测的样本为…

堆排序以及TOP-K问题

片头 嗨!小伙伴们,大家好!今天我们来深入理解堆这种数据结构,分析一下堆排序以及TOP-K问题,准备好了吗?我要开始咯! 一、堆排序 这里我们先假设要排成升序,也就是从左到右&#xf…

JSP简介——[JSP]1

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

基于php+mysql+html图书管理系统(含实训报告)

博主介绍: 大家好,本人精通Java、Python、Php、C#、C、C编程语言,同时也熟练掌握微信小程序、Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

【C++】命名冲突了怎么办?命名空间来解决你的烦恼!!!C++不同于C的命名方式——带你认识C++的命名空间

命名空间 导读一、什么是C?二、C的发展三、命名空间3.1 C语言中的重名冲突3.2 什么是命名空间?3.3 命名空间的定义3.4 命名空间的使用环境3.5 ::——作用域限定符3.6 命名空间的使用方法3.6.1 通过作用域限定符来指定作用域3.6.2 通过关键字using和关键字namespace…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…