比肩 GPT-4o 的 Llama 3.1 本地部署快速体验的方法
flyfish
Llama 3.1模型简介
Llama 3.1是一系列大型语言模型,包含以下几种规模:
8B 参数:模型中有80亿个参数
70B 参数:模型中有700亿个参数
405B 参数:模型中有4050亿个参数
这些模型的分词器(Tokenizer)3和3.1版本使用的是TikToken-based,而之前的版本使用的是Sentencepiece。
主要特点
405B参数模型:
Llama 3.1的405B参数模型是首个公开可用的超大规模模型,在一般知识、可控性、数学能力、工具使用和多语言翻译方面都表现出色,能够与顶级人工智能模型相媲美。
8B和70B参数模型:
这两个模型具有多语言能力,并且能够处理长达128K个词元的上下文,意味着它们可以处理非常长的文本段落。这使得它们在工具使用和推理能力方面非常先进,支持长篇文本摘要、多语言对话代理和编程助手等应用。
改进和许可
许可协议修改:Meta修改了许可协议,允许开发者使用Llama模型(包括405B参数模型)的输出来改进其他模型。
模型评估
性能评估:Meta对超过150个基准数据集进行了测试,覆盖了多种语言。还进行了大量人工评估,将Llama 3.1与其他竞争模型在实际应用中进行比较。结果表明,Llama 3.1的旗舰模型在许多任务上与领先的基础模型(如GPT-4、GPT-4o和Claude 3.5 Sonnet)表现相当。较小规模的模型在参数数量相似的情况下也能与封闭源码和开源模型竞争。
总的来说,Llama 3.1系列模型展示了在多种任务上的强大能力,并且由于其开放许可的性质,开发者们可以更加自由地使用这些模型来创建新的应用程序和服务。
开头这段文字 来自 https://ai.meta.com/blog/meta-llama-3-1/
参数
“model size” 通常指的是模型中参数的数量。参数(或称为权重)是模型在训练过程中学习并用于生成输出的核心数据。以下是关于 8B、70B 和 405B 的具体含义:
8B:代表模型有 80 亿个参数。
70B:代表模型有 700 亿个参数。
405B:代表模型有 4,050 亿个参数。
参数数量是衡量模型容量和复杂性的一个关键指标。更多的参数通常意味着模型能够捕捉和表示更复杂的模式和关系,从而提升其在生成和理解语言上的表现。不过,更多的参数也意味着需要更多的计算资源和存储空间,以及更长的训练和推理时间。
128K的上下文长度
Context Length"(上下文长度)是指模型能够处理的最大连续文本长度。对于 Llama 模型来说,如果它的上下文长度是 128K,这意味着该模型可以接受最多 128,000 个词元(tokens)作为输入。128K 的上下文长度是非常大的,这意味着Llama 3.1模型可以处理非常长的文本段落
词元(tokens)
“token” 是指被模型作为处理单位的最小语言片段。这个片段可以是一个单词、一个子词,甚至是一个字符,具体取决于使用的分词方法。将 “token” 翻译成 “词元” 是为了强调它是语言的基本单元。
具体来说,“token” 可以是:
单词:在最简单的分词方法中,一个单词被视为一个token。
子词:使用如BPE(Byte Pair Encoding)或WordPiece等方法时,一个单词可以被分成多个子词token。例如,“unhappiness” 可以分成 “un”, “happi”, “ness” 三个子词token。
字符:在某些分词方法中,每个字符都可以是一个token。
举例说明:
假设有一句话 “I love machine learning!”,根据不同的分词方法,这句话可以分成不同的tokens:
单词级别分词:[“I”, “love”, “machine”, “learning”, “!”]
子词级别分词(如BPE):[“I”, “love”, “mach”, “ine”, “learn”, “ing”, “!”]
字符级别分词:[“I”, " ", “l”, “o”, “v”, “e”, " ", “m”, “a”, “c”, “h”, “i”, “n”, “e”, " ", “l”, “e”, “a”, “r”, “n”, “i”, “n”, “g”, “!”]
tokenizer
tokenizer 是将文本转换为 token(词元)的工具。不同的 tokenization 方法和库在处理文本时有各自的特点和优点。这里提到的 Sentencepiece 和 TikToken 是两种常见的 tokenizer。
Sentencepiece
Sentencepiece 是一个独立于语言的子词(subword)tokenization 工具,常用于处理各种语言的文本。它的主要特点包括:
语言无关性:Sentencepiece 不依赖于任何特定语言的词汇表,可以处理任何语言的文本。
子词单元:将单词拆分成更小的子词单元(subwords),这有助于处理未见过的词汇和拼写错误。比如,“unhappiness” 可能会被拆分为 “un”, “happi”, “ness”。
BPE 和 Unigram:支持 Byte Pair Encoding (BPE) 和 Unigram Language Model 这两种子词分割方法,提供了灵活的 tokenization 选择。
TikToken
TikToken 是一种基于特定平台或应用的 tokenization 方法。虽然具体实现和特性可能会有所不同,但一般来说,TikToken 关注以下方面:
专为高性能和低延迟需求的应用设计,确保在大规模处理时仍能快速执行。通常与特定平台(如社交媒体应用、消息传递应用等)集成良好,优化了特定使用场景下的文本处理需求。可能包括针对特定语言或应用场景的优化,如处理社交媒体文本中的缩写、表情符号等。
快速使用
https://ollama.com/
下载安装之后,执行 ollama run llama3.1
可用的命令
还可以与anythingllm配合使用
https://anythingllm.com/
总结
### 文章总结#### Llama 3.1模型简介
- **规模**:Llama 3.1提供8B、70B、405B三种规模的大型语言模型。
- **分词器**:3.1版本使用TikToken-based分词器,不同于早期版本的Sentencepiece。
#### 主要特点
- **405B参数模型**:首个公开的超大规模模型,在知识、可控性、数学能力、工具使用及多语言翻译上表现卓越,与顶级模型如GPT-4、GPT-4o比肩。
- **8B和70B参数模型**:具备多语言能力和处理长达128K词元的上下文能力,支持长文本处理,如长篇摘要、多语言对话和编程辅助。
#### 改进与许可
- **许可协议**:Meta修改了协议,允许使用Llama模型输出改进其他模型。
#### 模型评估
- **性能**:通过150多个基准数据集的测试和大量人工评估,Llama 3.1在多种任务上表现优异,与GPT-4、GPT-4o等领先模型相当。
#### 参数解析
- **8B、70B、405B**:分别代表80亿、700亿和4050亿个参数,更多参数意味着更强大的模型容量和复杂性,但也需要更多计算资源和时间。
#### 上下文长度与词元
- **128K上下文长度**:模型可处理最大连续文本长度为128,000个词元,支持长篇文本处理。
- **词元(Tokens)**:模型处理的最小语言片段,可以是单词、子词或字符。
#### Tokenizer
- **Sentencepiece**:语言无关的子词tokenization工具,支持BPE和Unigram方法。
- **TikToken**:基于特定平台的优化toolization,强调高性能和低延迟。
#### 快速使用与命令
- **快速体验**:可访问[ollama.com](https://ollama.com/)下载安装,执行`ollama run llama3.1`命令。
- **支持工具**:Llama 3.1还可与[anythingllm.com](https://anythingllm.com/)配合使用。
#### 结语
Llama 3.1模型由于其卓越的性能和开放的许可协议,为开发者们提供了广阔的创作空间,可应用于多种任务和场景中。