LLama 3.2 1B 和 3B:体型虽小,但威力强大!

MetaAI 刚刚推出了 Llama-3.2,这是一套新的模型,其中包括两个令人印象深刻的轻量级大型语言模型 (LLM),分别具有 10 亿 (1B) 和 30 亿 (3B) 个参数,以及更大的视觉语言模型 (VLM),分别具有 11B 和 90B 个参数。

取决于你问的是谁,这可能被视为人工智能领域向前迈出的突破性一步——而其他人,也许对层出不穷的模型发布感到厌倦,甚至可能不会停下来看一眼。

但这个版本真正有趣的地方在于:这些轻量级的 LLM 专门针对边缘设备进行了优化。它们提供总结、指令跟踪和重写等功能,同时尽管尺寸较小,但仍保持了稳定的性能——尤其是当你考虑像 Llama-3.1 这样的模型时,其参数高达 405B。这引出了一个问题:这些较小的模型是否值得你关注,特别是如果你没有丰富的 GPU 资源?

如果您想知道更小、更高效的模型是否可以处理您关心的任务(无需服务器场),那么本文适合您。我们将逐步介绍如何使用 LlamaCPP 在本地设置 Llama-3.2,并探索这些模型在各种任务中的表现。从推理到总结、处理长上下文输入和多语言功能,我们将对这些模型进行测试。我们还将深入探讨安全注意事项,检查它们是否容易受到对抗性或恶意提示的攻击。

准备好了解这些模型的真正能力了吗?让我们开始吧。

Llama-3.2 1B 和 3B 型号

它们虽然体型小巧,但功能强大,能够为各种任务提供出色的性能。以下是它们脱颖而出的原因:

高上下文窗口:两种模型都支持最多128,000 个标记的上下文长度,使它们能够管理更复杂的任务,如总结大型文档、参与扩展对话或重写内容 - 同时跟踪冗长的上下文。

高效性能:尽管规模相对较小,但 1B 和 3B 模型在计算效率方面却表现出色。3B 版本在 MMLU 5 次测试基准测试中的得分为 63.4。

修剪和知识提炼:MetaAI 使用修剪来修剪不必要的部分以减小模型的尺寸,并使用知识提炼使它们从更大的兄弟模型(LLama-3.1-8B 和 70B)中“学习”,从而增强其能力。

多功能任务处理:这些模型不仅仅注重效率——它们是为总结、重写或长篇对话等高需求任务而设计的。

实时交互:通过超快的处理,这些模型的响应是即时的 - 非常适合需要实时参与的应用程序。

在这里插入图片描述

现在让我们深入部署这些模型并评估其性能。

使用 LLamaCPP 运行 LLama-3.2

为了进行实际评估,我们将使用LlamaCPP运行Llama-3.2 模型的量化版本。

为什么选择 LlamaCPP?

它很简单:它降低了硬件要求,允许您在甚至适度的设置上运行这些模型,同时保持大部分性能并提高速度。

安装 LlamaCPP

要安装支持 GPU 的 LlamaCPP,首先从支持的后端中选择适合您硬件的选项。例如,如果您使用 CUDA,以下命令将使用 GPU 加速进行安装:

CMAKE\_ARGS =”-DGGML\_CUDA= on ” pip install — no -cache-dir llama-cpp-python

从 HuggingFace 下载模型

接下来,您需要从 Hugging Face 获取 Llama-3.2 模型文件。只需前往 Hugging Face 并在搜索栏中输入“Llama-3.2”即可。您将看到弹出几个GGUF 版本。

在本实验中,我们将使用Bartowski 的Hugging Face 页面中的Q4_K_M 量化版本。这种特殊的量化格式在大小和性能之间实现了良好的平衡。

提示模型

现在一切都已安装完毕,是时候让 Llama-3.2 开始工作了!通过 LlamaCPP 运行提示非常简单,但由于我们还想构建一个用于交互的聊天机器人,因此我们将更进一步。

为了让事情变得更加顺利,安装llama-cpp-agent以便轻松地使用您的 Llama-3.2 模型设置聊天机器人界面:

pip install llama-cpp-agent

安装后,您将能够与模特聊天并管理对话历史记录。



  

  

  

  

  

  

  

from llama\_cpp import Llama  
from llama\_cpp\_agent import LlamaCppAgent, MessagesFormatterType  
from llama\_cpp\_agent.providers import LlamaCppPythonProvider  
from llama\_cpp\_agent.chat\_history import BasicChatHistory  
from llama\_cpp\_agent.chat\_history.messages import Roles  
  
SYSTEM\_PROMPT = "You are a useful chatbot" #Customize system prompt to fit your need  
CHAT\_TEMPLATE = MessagesFormatterType.LLAMA\_3  #Prompt format to use  
MODEL\_PATH = "Llama-3.2-1B-Instruct-Q4\_K\_M.gguf"   
TEMPERATURE=0.3  #For small models, low temperature is often better  
MAX\_NEW\_TOKENS = 1024  #Max tokens to output  
CONTEXT\_WINDOW=8000 #Max context window. Up to 128k. The higher the value, the more GPU memory you will need  
N\_GPU\_LAYERS=-1  #Number of layers to put on GPU. -1 = all  
N\_BATCH=1024  #Increase if long prompts and you need faster inference.  
  
llm = Llama(  
    model\_path=MODEL\_PATH,  
    n\_gpu\_layers=N\_GPU\_LAYERS,  
    n\_batch=N\_BATCH,  
    n\_ctx=CONTEXT\_WINDOW  
  
)  
  
provider = LlamaCppPythonProvider(llm)  
settings = provider.get\_provider\_default\_settings()  
settings.temperature = TEMPERATURE  
settings.max\_tokens = MAX\_NEW\_TOKENS  
settings.stream = True  
  
agent = LlamaCppAgent(  
    provider,  
    system\_prompt=SYSTEM\_PROMPT,  
    predefined\_messages\_formatter\_type=CHAT\_TEMPLATE,  
    debug\_output=False  
)  
  
prompt = "Hello. What is the capital of France?"  
  
response = agent.get\_chat\_response(  
    prompt,  
    llm\_sampling\_settings=settings,  
    #chat\_history=chat\_history, Not useful here but to be used if you want to keep track of previous prompts  
    returns\_streaming\_generator=True,  
    print\_output=False  
)  
  
  
for chunk in response:  
    print(chunk)pyt  

有了这个,我们现在就可以测试他们的能力了.

对 LLama-3.2 进行基准测试

现在 Llama-3.2 已经启动并运行,让我们使用量化版本来评估其性能并将其与其兄弟 3.1-8B 型号进行比较。

GPU 内存使用情况

Llama-3.2 的模型在内存消耗方面非常高效,尤其是在 8k 上下文窗口的情况下:

  • Llama-3.2 (1B):需要1.8 GB的 GPU 内存。

  • Llama-3.2 (3B):需要3.4 GB的 GPU 内存。

  • Llama-3.1 (8B):消耗的GPU 内存明显更多,为7.6 GB 。

这种差异使得 1B 和 3B 型号非常适合 GPU 容量有限的设备,同时仍提供高性能。

速度比较

我们在 Llama-3.2 1B、3B 和 Llama-3.1 8B 型号上运行了一组基准提示,以了解它们处理提示评估和令牌生成的速度有多快。结果如下:

在这里插入图片描述

平均而言,人类每分钟读取 200 到 300 个 token。Llama -3.2–1B 只需一秒钟就能读取这么多 token,而 3B 只需两秒钟就能读取这么多 token。速度简直是闪电!

推理能力

在广受认可的MMLU(大规模多任务语言理解)基准上,该基准测试了从基础数学到法律和物理等高级主题的 57 个任务中的模型,Llama-3.2 模型和 LLama-3.1–8B 的表现如下(使用 5 次提示):

  • 骆驼-3.2–1B:49.3

  • 骆驼-3.2–3B:63.4

  • 骆驼-3.1–8B:66.7

虽然 Llama-3.2–3B 模型的推理能力比 1B 版本有了显著提升,但仍略逊于更大的 Llama-3.1–8B。不过,考虑到其尺寸小得多,对于优先考虑速度和效率的人来说,这是一个值得称赞的权衡。

为了进行更严格的测试,我们采用了MMLU-Pro基准。这是原始 MMLU 的扩展,旨在更具挑战性,专注于不同领域的复杂、细微的推理。以下是模型在 MMLU-Pro 上的表现:

  • 骆驼-3.2–1B:7.58

  • 骆驼-3.2–3B:24.39

  • 骆驼-3.1–8B:30.68

正如预期的那样,1B 型号在执行这些复杂任务时遇到了困难,尽管它保持了其标志性的速度。另一方面,3B 型号则有了显著的改进,尽管尺寸明显较小且执行速度更快,但缩小了与体型更大的 Llama-3.1–8B 之间的差距。

长上下文:使用 BABILong 数据集测试 Llama-3.2

Llama-3.2 模型号称能够处理多达128k 个上下文标记。但在实际场景中,容量问题并不只在于它,而在于它们能够多好地筛选大量信息并提取相关细节。为了测试这一点,我们使用了BABILong数据集。

BABILong 数据集

BABILong 旨在用从0k 到 128k 个 token的提示来挑战模型。随着上下文大小的增加,复杂性也会增加,支持事实也会增多,周围的“噪音”也会增多。目的是什么?看看模型能否找到所谓的“大海捞针”。

  • 目的:测试模型在提示长度增加时如何保持准确性。

  • 挑战:提示中的事实数量随着上下文长度而增加,模拟长文档包含关键和不相关信息的任务。

欲了解更多详细信息,可以探索BABILong的github页面。

Llama-3.2 的表现如何?

我们测试了 1B 和 3B 模型,以了解它们如何处理长上下文场景。由于资源限制,我们专注于0k 到 8k 个标记的提示,使用qa1(2 到 10 个事实和 1 个支持事实)和qa2(10 到 68 个事实和 2 个支持事实)集。

在这里插入图片描述
在这里插入图片描述

结果:

  • Llama-3.2 1B:随着提示长度的增加开始变得困难,特别是在更复杂的qa2集上,在4k-token提示上仅实现11% 的准确率。

  • Llama-3.2 3B:在 qa1 和 qa2 组中表现出更好的一致性,随着提示变得越来越长和越来越复杂,性能逐渐下降。

关键要点:

  • 虽然该模型的理论上下文限制为 128k 个标记,但1B 版本在处理长而复杂的提示时很快就会失败,尤其是那些充满大量不相关事实的提示。

  • 3B 版本表现出了更强的弹性,但我们可以预计,这两种模型在执行具有密集或扩展提示的检索增强生成 (RAG) 等任务时都会面临限制。

  • 虽然这些模型重量轻、速度极快,但在处理大量信息时却面临挑战。它们的体积小是一个缺点——非常适合中等复杂度的快速任务,但在处理要求高精度的密集、长上下文场景时可能会遇到困难。

多语言能力

为了评估 Llama-3.2 模型的多语言能力,我们使用来自维基百科的各种语言的文本摘录测试了 1B 和 3B 版本。任务是生成简明的英文摘要,以便我们评估这些小型模型处理非英文内容的能力。

测试语言:法语、西班牙语、意大利语、俄语、中文、罗马尼亚语和日语。

两种模型在这些语言中都表现良好,表现出对内容的良好理解并有效地总结信息。

虽然我们承认更全面的评估将产生更深入的见解——理想情况下是利用像 GPT-4 这样的更大的模型作为判断输出质量的依据——但我们可以自信地说,即使是这些轻量级模型在处理多语言内容时也表现出了值得称赞的能力。

安全评估

为了评估 Llama-3.2 模型的安全性,我们采用了ALERT 框架(有关方法和代码的更多详细信息,请查看此链接)。为了优化资源使用,我们将测试限制为100 个恶意提示,分为四类:对抗前缀、对抗后缀、令牌操纵和越狱,每种攻击类型有25 个提示。

结果:96% 的提示对于 LLama-3.2–1B 来说是安全的,98% 的提示对于其 3B 版本来说是安全的。

结论

综上所述,Llama-3.2 型号在尺寸和效率之间实现了令人印象深刻的平衡,证明其能够出色地完成各种任务。尽管占用空间很小,但它们的速度和性能却非常出色,因此对于需要考虑资源限制的特定应用而言,它们无疑是极佳的选择。不过,需要注意的是,我们的部分测试受到可用资源和时间的限制,这可能会影响我们评估的深度。

它们为渴望利用高效、轻量级 AI 解决方案(根据特定需求定制)的开发人员提供了有趣的可能性。总而言之,它们是现代 AI 领域中高效的竞争者,证明了小也可以很强大。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

IT监控平台可视化:多维度展示助力运维效率提升

在信息化时代,IT设备的稳定性与业务的连续性紧密相连,任何细微的故障都可能给企业带来巨大的损失。因此,IT运维团队面临着前所未有的挑战,他们需要迅速、准确地识别和解决问题,以确保业务的平稳运行。而IT监控平台的可…

Django学习- ORM基础操作_创建数据

ORM操作: 管理器对象: 创建数据: Django shell 想要操作模型对象,首先我们需要把它引进Django shell中 >>> from bookstore.models import Book >>> b1 Book.objects.create(titleAI, pub清华大学出版社, pr…

Java | Leetcode Java题解之第478题在圆内随机生成点

题目: 题解: class Solution {Random random;double xc, yc, r;public Solution(double radius, double x_center, double y_center) {random new Random();xc x_center;yc y_center;r radius;}public double[] randPoint() {double u random.next…

基于机器学习与深度学习的贷款批准预测

1.项目背景 该数据集源自Kaggle的“Playground Series - Season 4, Episode 10”竞赛,是通过在贷款批准预测数据集上训练的深度学习模型生成的数据,旨在使用借款人信息预测贷款批准结果,它通过模拟真实贷款审批场景,帮助金融机构…

【Linux系统编程】环境基础开发工具使用

目录 1、Linux软件包管理器yum 1.1 什么是软件包 1.2 安装软件 1.3 查看软件包 1.4 卸载软件 2、Linux编辑器-vim 2.1 vim的概念 2.2 vim的基本操作 2.3 vim的配置 3、Linux编译器-gcc/g 3.1 gcc编译的过程​编辑​编辑​编辑 3.2 详解链接 动态链接 静态链接 4…

深度解析LMS(Least Mean Squares)算法

目录 一、引言二、LMS算法简介三、LMS算法的工作原理四、LMS算法的特点五、LMS算法的应用场景六、LMS算法的局限性七、总结八、进一步探讨 一、引言 自适应滤波器是一种动态调整其参数以适应变化环境的信号处理工具,广泛应用于噪声消除、信道均衡和系统识别等领域。…

Axure RP电商系统商城PC+app+后台买家卖端高保真原型模板及元件库

AxureRP电商商城PCapp后台买家卖端高保真原型模板本套包含三份原型图素材 APP买家端原型简介: 包含了用户中心、会员成长、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等完整的电商体系功能架构和业务流程。 本模板由…

Rancher—多集群Kubernetes管理平台

目录 一、Rancher 简介1.1 Rancher 和 k8s 的区别 二、Rancher 安装及配置2.1 安装 rancher2.2 登录 Rancher 平台2.3 Rancher 管理已存在的 k8s 集群2.4 创建名称空间 namespace2.5 创建 Deployment 资源2.6 创建 service2.7 Rancher 部署监控系统 一、Rancher 简介 Rancher …

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo:推进交互式与知识丰富的驾驶世界模型

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo:推进交互式与知识丰富的驾驶世界模型 Abstract 驾驶世界模型因其对复杂物理动态的建模能力而受到越来越多的关注。然而,由于现有驾驶数据集中的视频多样性有限,其卓越的建…

uniapp学习(004-2 组件 Part.2生命周期)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第31p-第p35的内容 文章目录 组件生命周期我们主要使用的三种生命周期setup(创建组件时执行)不可以操作dom节点…

我对软件工程的理解

1 引言 从事软件行业这么年,写了10年代码,又从事了多年的项目产品方面的工作,一些每天用到的软件工程的方法,虽然天天都在用但一些概念总感觉似是而非,正好借假期的时间,好好整理下,以供自己或…

【你也能从零基础学会网站开发】浅谈一下SQL Server 2000中的NULL值到底有什么用处

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 NULL 是什么 …

2d实时数字人聊天语音对话使用案例,对接大模型

参看: https://github.com/wan-h/awesome-digital-human-live2d 电脑环境: ubuntu 1060ti 下载: git clone https://github.com/wan-h/awesome-digital-human-live2d.gitdocker部署; cd awesome-digital-human-live2d docker-compose -f docker-compose-quickStart.ya…

Spring AI Java程序员的AI之Spring AI(一)

SpringAI 基础使用 前言Spring AIChatClientImageClientOpenAiAudioTranscriptionClientEmbeddingClient 总结 前言 Spring AI,听着名字就感觉很好使用,快速上手,虽然功能没有太完善,但是社区活跃度很高,可以看看源码…

大数据治理:构建数据驱动的智能决策体系

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Edge论文的创新点

创新点及其来源 1. 从灰度边缘重建RGB图像的方法(EdgRec) 基于的方法:传统的重建方法,如使用自动编码器或生成模型来重建正常样本的图像,并通过对原始图像和重建图像的比较来检测异常。 重建过程: 训练阶…

Spring Boot: 构建高效中小型医院网站

1 绪论 1.1研究背景 随着计算机技术的成熟、普及,现代信息技术革命的迅猛发展,正冲击并进而改变着经济和社会结构。信息化的程度已经成为一个国家,一个企业,一个组织仍至一个人发展的基础和竞争成败的关键。 在实际的生活中,用户都…

Oracle Expdp按条件导出-指定表数据

1.场景描述 业务需求:导出A机构、2024的数据,以dmp格式,保留导出日志。首先,需要分析库中需要导出的表清单、表的机构字段约束、表的时间约束;然后再导出。 2.方案分析 本次采用Oracle的expdp数据泵方式导出&#xf…

集合框架12:Set集合概述、Set接口使用

视频链接:13.24 Set接口使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p24 1、Set集合概述 特点:无序、无下标,元素不可…

现今 CSS3 最强二维布局系统 Grid 网格布局

深入学习 CSS3 目前最强大的布局系统 Grid 网格布局 Grid 网格布局的基本认识 Grid 网格布局: Grid 布局是一个基于网格的二位布局系统,是目前 CSS 最强的布局系统,它可以同时对列和行进行处理(它将网页划分成一个个网格,可以任…