Llama 的演变:挑战现状
当 Llama 首次出现时,它挑战了来自科技巨头的封闭源代码大型语言模型 (LLMs) 的主导地位。Meta AI 采用了一种专注于更小、更通用的模型的策略。其核心思想是,这些在大量 token 上训练的较小模型,更容易且更经济地进行再训练和微调,以适应专门的任务。这种方法与构建越来越大、资源密集型模型的趋势形成鲜明对比。
然而,Llama 的’开源’性质是一个有争议的话题。Meta Llama 许可证包括对商业和可接受用途的具体限制。虽然这些限制可以说是合理的,但它们与 Open Source Initiative 对开源的严格定义相冲突。这导致了关于 Llama 是否真正符合开源标准的持续讨论。
应对法律挑战:版权问题
Llama 的发展并非没有法律障碍。2023 年,Meta 面临两起作者提起的集体诉讼,他们声称他们的版权书籍未经许可被用于训练 Llama。这些诉讼突出了围绕大型语言模型训练数据的复杂版权问题。到目前为止,法院对作者的主张并不太同情。
扩展能力:Llama 不断增长的模型家族
自 2023 年底以来,Meta AI 显著扩展了 Llama 家族。这些模型不再局限于基于文本的交互。当前的 Llama 生态系统包括能够处理文本和视觉输入的多模态模型,以及为代码解释和工具集成设计的模型。此外,Meta 引入了名为 Llama Guard 的安全组件,以识别和减轻潜在的风险和攻击,这些组件被设计为名为’Llama Stack’的整体框架的一部分。
以下是 Llama 家族中一些关键模型的深入介绍(摘自 Meta AI 的模型卡):
Llama Guard 1:保障交互
Llama Guard 1 是一个基于 Llama 2 的 70 亿参数模型。它充当输入输出安全卫士,对用户提示(提示分类)和 LLM 响应(响应分类)中的内容进行分类。此模型有助于确保与基于 Llama 的系统进行更安全、更负责任的交互。
Llama Guard 采用六级分类法对潜在危害进行分类:
- 暴力与仇恨: 宣传针对个人或群体的暴力或仇恨的内容。
- 色情内容: 露骨的色情内容或剥削、虐待或危害儿童的内容。
- 枪支和非法武器: 与非法销售、使用或改装枪支和其他武器有关的内容。
- 受管制或受控物质: 宣传非法使用或销售毒品、酒精或烟草的内容。
- 自杀和自残: 鼓励或提供自杀或自残说明的内容。
- 犯罪计划: 促进或计划非法活动的内容。
Code Llama 70B:编码能力的三位一体
Code Llama 70B 标志着 Llama 编码能力的显著扩展。此模型有三种不同的变体:
- Code Llama: 为通用代码合成和理解而设计的基础模型。它可以生成代码、解释代码功能并协助调试。
- Code Llama – Python: 专为 Python 编程量身定制的专用版本。此模型针对生成和理解 Python 代码进行了优化,使其成为 Python 开发人员的宝贵工具。
- Code Llama – Instruct: 一种专注于遵循指令并确保更安全部署的变体。此模型对于生成符合特定准则和安全协议的代码特别有用。
所有三种变体都有不同的尺寸:70 亿、130 亿、340 亿和 700 亿参数。Code Llama 及其变体专为商业和研究用途而设计,主要用于英语和相关编程语言。有充分的证据表明 Code Llama 具有强大的编码能力。
Llama Guard 2:增强的安全分类
Llama Guard 2 建立在其前身的基础上,提供增强的安全分类功能。这个基于 Llama 3 的 80 亿参数模型经过训练,可以预测 11 个类别的安全标签,与 MLCommons 的危害分类法保持一致。
Llama Guard 2 涵盖的危害类别包括:
- S1:暴力犯罪: 与暴力犯罪行为相关的内容。
- S2:非暴力犯罪: 与非暴力犯罪行为相关的内容。
- S3:性犯罪: 涉及性犯罪的内容。
- S4:儿童性剥削: 对儿童进行性剥削、虐待或危害的内容。
- S5:专业建议: 专业领域(例如,医疗、法律、金融)的不合格或误导性建议。
- S6:隐私: 未经同意侵犯隐私或披露个人信息的内容。
- S7:知识产权: 侵犯知识产权的内容。
- S8:滥杀滥伤武器: 与造成广泛和滥杀滥伤的武器有关的内容。
- S9:仇恨: 对个人或群体表达仇恨或偏见的内容。
- S10:自杀和自残: 宣传或提供自杀或自残说明的内容。
- S11:色情内容: 露骨的色情内容。
Meta Llama 3:对话的多功能性
Meta Llama 3 提供两种尺寸,80 亿和 700 亿参数,具有预训练和指令微调变体。指令微调模型专门针对基于对话的应用程序进行了优化,使其适用于聊天机器人和对话式 AI 系统。
Prompt Guard:防御恶意输入
Prompt Guard 是一个分类器模型,旨在检测恶意提示,包括越狱(试图绕过安全限制)和提示注入(试图通过精心设计的输入操纵模型输出)。Meta AI 建议使用特定于应用程序的数据对 Prompt Guard 进行微调,以实现最佳性能。
与 Llama Guard 不同,Prompt Guard 不需要特定的提示结构。它对字符串输入进行操作,将其分类为安全或不安全(在两个不同的严重性级别)。它是一个 BERT 模型,仅输出标签。
Llama Guard 3:多模态和多语言安全
Llama Guard 3 有三个版本:Llama Guard 3 1B、Llama Guard 3 8B 和 Llama Guard 3 11B-Vision。前两个是纯文本模型,而第三个版本结合了 Llama 3.2 11B-Vision 模型的视觉理解能力。所有版本都是多语言的(对于纯文本提示),并遵守 MLCommons 联盟定义的危害类别。
Llama Guard 3 8B 也可用于 S14 类别,即代码解释器滥用。需要注意的是,Llama Guard 3 1B 模型并未针对此特定类别进行优化。
危害类别在 Llama Guard 2 的基础上进行了扩展:
- S1:暴力犯罪
- S2:非暴力犯罪
- S3:性犯罪
- S4:儿童性剥削
- S5:诽谤
- S6:专业建议
- S7:隐私
- S8:知识产权
- S9:滥杀滥伤武器
- S10:仇恨
- S11:自杀和自残
- S12:色情内容
- S13:选举
- S14:代码解释器滥用
Meta Llama 3.1:多语言生成模型
Meta Llama 3.1 系列包括多语言大型语言模型,包括 80 亿、700 亿和 4050 亿参数大小的预训练和指令微调生成模型(文本输入,文本输出)。
支持的语言包括:英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
Meta Llama 3.2:增强的对话能力
Llama 3.2 系列具有多语言大型语言模型,包括 10 亿和 30 亿参数大小的预训练和指令微调生成模型(文本输入,文本输出)。这些模型的量化版本也可用。Llama 3.2 指令微调的纯文本模型针对多语言对话进行了优化,在代理检索和摘要等任务中表现出色。1B 和 3B 模型是 Llama 3.1 的更小、功能较弱的衍生产品。
官方支持的语言有:英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。然而,Llama 3.2 已经在这八种语言之外的更广泛的语言上进行了训练。
Llama 3.2-Vision:图像推理和理解
Llama 3.2-Vision 系列引入了多模态大型语言模型。这些模型经过预训练和指令微调,用于图像推理,提供 110 亿和 900 亿参数大小(文本和图像输入,文本输出)。指令微调模型针对视觉识别、图像推理、字幕和回答有关图像的一般问题进行了优化。
对于纯文本任务,官方支持的语言是英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。Llama 3.2 已经在更广泛的语言集上进行了训练,但对于图像+文本应用程序,英语是唯一支持的语言。
Meta Llama 3.3:强大的 70B 模型
Meta Llama 3.3 多语言大型语言模型是一个具有 700 亿参数的预训练和指令微调生成模型(文本输入,文本输出)。
支持的语言:英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。
重要的是要理解,包括 Llama 3.2 在内的大型语言模型不适用于孤立部署。它们应该集成到具有适当安全护栏的综合 AI 系统中。开发人员应实施系统安全措施,尤其是在构建代理系统时。
Llama 3.3、Llama 3.2 纯文本模型和 Llama 3.1 包含对以下工具的内置支持:
- Brave Search: 用于执行网络搜索的工具调用。
- Wolfram Alpha: 用于执行复杂数学计算的工具调用。
- Code Interpreter: 使模型能够输出 Python 代码的工具调用。
注意:Llama 3.2 视觉模型不支持使用文本+图像输入进行工具调用。
Llama Stack:统一框架
Llama 模型的数量之多可能令人不知所措。为了简化选择和集成过程,Meta 提供了 Llama Stack。此框架强调 Llama 模型,但也为相关功能提供适配器,例如用于检索增强生成 (RAG) 的向量数据库。
Llama Stack 目前支持 Python、Swift、Node 和 Kotlin 中的 SDK。它提供各种发行版,包括:
- 本地发行版(使用 Ollama): 用于本地开发和测试。
- 设备上发行版(iOS 和 Android): 用于在移动设备上部署 Llama 模型。
- GPU 发行版: 用于利用 GPU 的强大功能进行更快的处理。
- 远程托管发行版(Together 和 Fireworks): 用于通过基于云的服务访问 Llama 模型。
Llama Stack 背后的核心概念是使开发人员能够在本地构建应用程序,然后轻松过渡到生产环境。它甚至提供了一个交互式 Llama Stack Playground,用于针对远程 Llama Stack 进行本地开发。
运行 Llama 模型:多功能部署选项
Llama 模型可以部署在各种平台上,包括 Linux、Windows、macOS 和云端。量化的 Llama 模型,例如 Llama 3.2 和 Llama 3.2-Vision,可以在现代硬件上高效运行,甚至可以使用 Ollama 等工具在 M4 Pro MacBook Pro 等笔记本电脑上运行。
Meta 提供了有关部署和使用 Llama 模型的综合操作指南。此外,还提供了与 LangChain 和 LlamaIndex 等流行框架的集成指南。
总而言之,Llama 已经超越了简单的语言模型,现在它是一个多模态 AI 框架,具有安全功能、代码生成和对多种语言的支持。Meta 的系统允许它在许多地方部署,但训练数据的法律问题以及关于 Llama 是否开源的争论仍在继续。