【AI通义千问大模型】Qwen相关的核心概念

智能科技扫地僧 2024-11-08 05:44:52
通义千问(Qwen)通义千问(英文: Qwen ;读作: kùn)是由阿里巴巴通义千问团队开发的大规模语言和多模态系列模型。通义千问可以执行自然语言理解、文本生成、视觉理解、音频理解、工具调用、角色扮演、智能体等多种任务。语言和多模态模型均在大规模、多语言、多模态数据上进行预训练,并在高质量语料上后训练以与人类偏好对齐。 通义千问分为闭源和开源两大版本。 开源模型包括: 通义千问 (Qwen):语言模型Qwen: 1.8B、 7B、 14B 及 72B 模型Qwen1.5: 0.5B、 1.8B、 4B、 14BA2.7B、 7B、 14B、 32B、 72B 及 110B 模型Qwen2: 0.5B、 1.5B、 7B、 57A14B 及 72B 模型Qwen2.5: 0.5B、 1.5B、 3B、 7B、 14B、 32B 及 72B 模型通义千问 VL (Qwen-VL): 视觉语言模型Qwen-VL: 基于 7B 的模型Qwen-VL: 基于 2B 、 7B 和 72B 的模型通义千问 Audio: 音频语言模型Qwen-Audio: 基于 7B 的模型Qwen2-Audio: 基于 7B 的模型Code通义千问 / 通义千问Coder:代码语言模型CodeQwen1.5: 7B 模型Qwen2.5-Coder: 7B 模型通义千问 Math:数学语言模型Qwen2-Math: 1.5B、 7B 及 72B 模型Qwen2.5-Math: 1.5B、 7B 及 72B 模型因果语言模型 (Causal Language Models)因果语言模型 (causal Language Models),也被称为自回归语言模型 (autoregressive language models) 或仅解码器语言模型 (decoder-only language models) ,是一种机器学习模型,旨在根据序列中的前导 token 预测下一个 token 。换句话说,它使用之前生成的 token 作为上下文,一次生成一个 token 的文本。”因果”方面指的是模型在预测下一个 token 时只考虑过去的上下文(即已生成的 token ),而不考虑任何未来的 token 。 因果语言模型被广泛用于涉及文本补全和生成的各种自然语言处理任务。它们在生成连贯且具有上下文关联性的文本方面尤其成功,这使得它们成为现代自然语言理解和生成系统的基础。 要点:Qwen 模型是适用于文本补全的因果语言模型。 注: 在深度学习中,被称为语言模型的主要有三类: 序列到序列模型 (sequence-to-sequence models):T5及其类似模型 序列到序列模型同时使用编码器来捕获整个输入序列,以及解码器来生成输出序列。它们广泛应用于诸如机器翻译、文本摘要等任务。 双向模型 (bidirectional models) 或仅编码器模型 (encoder-only models) :BERT及其类似模型 双向模型在训练期间可以访问序列中的过去和未来上下文。由于需要未来上下文,它们无法实时生成顺序输出。它们广泛用作嵌入模型,并随后用于文本分类。 因果语言模型 (casual language models) 或仅解码器模型 (decoder-only models) :GPT及其类似模型 因果语言模型以严格向前的单向方式运行,仅根据序列中的前导词汇预测每个后续词汇。这种单向性确保了模型的预测不依赖于未来上下文,使它们适合于文本补全和生成等任务。 预训练 (Pre-training) 和基模型 (Base models)基础语言模型 (base language models) 是在大量文本语料库上训练的基本模型,用于预测序列中的下一个词。它们的主要目标是捕捉语言的统计模式和结构,使它们能够生成连贯且具有上下文关联性的文本。这些模型具有多功能性,可以通过微调适应各种自然语言处理任务。虽然擅长生成流畅的文本,但它们可能需要情境学习 (in-context learning)或额外训练才能遵循特定指令或有效执行复杂推理任务。对于 Qwen 模型,基础模型是指那些没有 “-Instruct” 标识符的模型,例如 Qwen2.5-7B 和 Qwen2.5-72B 。 要点:使用基础模型进行情境学习、下游微调等。 后训练 (Post-training) 和指令微调模型 (Instruction-tuned models)指令微调语言模型 (Instruction-tuned language models) 是专门设计用于理解并以对话风格执行特定指令的模型。这些模型经过微调,能准确地解释用户命令,并能以更高的准确性和一致性执行诸如摘要、翻译和问答等任务。与在大量文本语料库上训练的基础模型不同,指令调优模型会使用包含指令示例及其预期结果的数据集进行额外训练,通常涵盖多个回合。这种训练方式使它们非常适合需要特定功能的应用,同时保持生成流畅且连贯文本的能力。对于 Qwen 模型,指令调优模型是指带有 “-Instruct” 后缀的模型,例如 Qwen2.5-7B-Instruct 和 Qwen2.5-72B-Instruct 。 要点:使用指令微调模型进行对话式的任务执行、下游微调等。 Tokens & Tokenizationtoken 代表模型处理和生成的基本单位。它们可以表示人类语言中的文本(常规 token),或者表示特定功能,如编程语言中的关键字(控制 token)。通常,使用 tokenizer 将文本分割成常规 token ,这些 token 可以是单词、子词或字符,具体取决于所采用的特定 tokenization 方案,并按需为 token 序列添加控制 token 。词表大小,即模型识别的唯一 token 总数,对模型的性能和多功能性有重大影响。大型语言模型通常使用复杂的 tokenization 来处理人类语言的广阔多样性,同时保持词表大小可控。Qwen 词表相对较大,有 15 1646 个 token。 要点:tokenization 和词表大小很重要。 Byte-level Byte Pair EncodingQwen采用了名为字节对编码(Byte Pair Encoding,简称BPE)的子词tokenization方法,这种方法试图学习能够用最少的 token 表示文本的 token 组合。例如,字符串”tokenization”被分解为” token”和”ization”(注意空格是 token 的一部分)。特别地,Qwen的 tokenization 确保了不存在未知词汇,并且所有文本都可以转换为 token 序列。 Qwen词表中因BPE而产生的 token 数量为 151643 个,这是一个适用于多种语言的大词表。一般而言,对于英语文本,1个token大约是3~4个字符;而对于中文文本,则大约是1.5~1.8个汉字。 要点:Qwen 以子词形式处理文本,不存在未知词汇。 注: Qwen 使用基于字节的BPE (BBPE) 对UTF-8编码的文本进行处理。它开始时将每个字节视为一个 token ,然后迭代地将文本中最频繁出现的 token 对合并成更大的 token,直到达到所需的词表大小。 在基于字节的BPE中,至少需要256个 token 来对每段文本进行 tokenization,并避免未登录词(out of vocabulary, OOV)问题。相比之下,基于字符的 BPE 需要其词表中包含所有 Unicode 字符以避免未登录词,而截至 Unicode 版本16.0,Unicode标准包含 154998 个字符。 基于字节的BPE的一个限制是,词表中的个别 token 可能看似没有语义意义,甚至不是有效的 UTF-8 字节序列,在某些方面,它们应该被视为一种文本压缩方案。 控制 Token 和 对话模板控制 token 和对话模板都作为指导模型行为和输出的机制。 控制token是插入到序列中的特殊token,表示元信息。例如,在预训练中,多个文档可以被打包成一个单一的序列。对于Qwen,控制令牌 <|endoftext|> 在每个文档后插入,表示文档已经结束,新的文档将开始。 对话模板为对话交互提供了结构化的格式,其中使用预定义的占位符或提示来从模型中引发遵循期望的对话流程或上下文的响应。不同的模型可能使用不同类型的对话模板来格式化对话。使用指定的模板对于确保对语言模型生成过程的精确控制至关重要。 Qwen使用以下格式(ChatML 格式),利用控制 token 来格式化每一轮的对话。 <|im_start|>{{role}}{{content}}<|im_end|>用户输入扮演 user 的 role ,而模型生成则承担 assistant 的 role 。 Qwen 还支持元消息,该消息指导模型执行特定操作或生成具有特定特性的文本,例如改变语气、风格或内容,这将承担 system 的 role,且内容默认为 You are Qwen, created by Alibaba Cloud. You are a helpful assistant.。下面为一个完整示例: """<|im_start|>systemYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|><|im_start|>userhello<|im_end|><|im_start|>assistantHello! How can I assist you today? Let me know if you have any questions or need help with something. I'm here to help!<|im_end|><|im_start|>userExplain large language models like I'm 5.<|im_end|><|im_start|>assistantSure, I'd be happy to explain large language models in a simple way!Imagine that you have a friend who is really good at playing with words. This friend has read so many books and talked to so many people that they know how to use words in all sorts of different ways. They can tell stories, answer questions, and even make up new words if they need to.Now imagine that this friend is actually a computer program, called a "large language model". It's been trained on lots and lots of text, like books, articles, and conversations, so it knows how to use words just like your word-loving friend does. When you ask the model a question or give it a task, it uses all the knowledge it's learned to come up with a response that makes sense.Just like your friend might sometimes make mistakes or say things in a funny way, the large language model isn't perfect either. But it's still really impressive, because it can understand and generate human language in a way that was once thought impossible for machines!<|im_end|><|endoftext|>"""从 Qwen2.5 开始,Qwen 模型家族,包括多模态和专项模型,将使用统一的词汇表,其中包含了所有子系列的控制 token 。Qwen2.5 的词汇表中有 22 个控制 token,使得词汇表的总规模达到 151665 。 通用 token 1个:<|endoftext|>对话 token 2个:<|im_start|> 和 <|im_end|>工具调用 token 2个: 和 视觉相关 token 11个代码相关 token 6个要点: Qwen 使用带有控制 token 的 ChatML 作为对话模板。 长度限制由于 Qwen 模型是因果语言模型,理论上整个序列只有一个长度限制。然而,由于在训练中通常存在打包现象,每个序列可能包含多个独立的文本片段。模型能够生成或完成的长度最终取决于具体的应用场景,以及在这种情况下,预训练时每份文档或后训练时每轮对话的长度。 对于Qwen2.5,在训练中的打包序列长度为 32768 个 token。预训练中的最大文档长度即为此长度。而后训练中,user和assistant的最大消息长度则有所不同。一般情况下,assistant消息长度可达 8192 个 token。 要点:Qwen2 模型可以处理 32K 或 128K token 长的文本,其中 8K 长度可作为输出。
0 阅读:5