模型简介
模型特点
模型能力
使用案例
🚀 Cohere Labs Command-R模型卡片
Cohere Labs Command-R是一款拥有350亿参数的高性能生成式模型,专为推理、总结和问答等多场景优化。它支持10种语言的多语言生成,具备强大的RAG能力。
🚀 快速开始
试用Cohere Labs Command R
如果您想在下载权重之前试用Command R,可以在Hugging Face空间中体验:点击试用。
使用说明
请使用transformers
4.39.1或更高版本:
# pip install 'transformers>=4.39.1'
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "CohereLabs/c4ai-command-r-v01"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
# Format message with the command-r chat template
messages = [{"role": "user", "content": "Hello, how are you?"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
## <BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hello, how are you?<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>
gen_tokens = model.generate(
input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.3,
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
量化模型(8位精度)
# pip install 'transformers>=4.39.1' bitsandbytes accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(load_in_8bit=True)
model_id = "CohereLabs/c4ai-command-r-v01"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config)
# Format message with the command-r chat template
messages = [{"role": "user", "content": "Hello, how are you?"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
## <BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hello, how are you?<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>
gen_tokens = model.generate(
input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.3,
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
4位精度量化模型
您可以在此处找到该模型的4位精度量化版本。
✨ 主要特性
- 高性能生成:350亿参数的大型语言模型,适用于推理、总结和问答等多种场景。
- 多语言支持:支持10种语言的多语言生成,预训练数据还包含另外13种语言。
- 长上下文处理:支持128K的上下文长度。
- 接地生成和RAG能力:能够根据提供的文档片段生成响应,并在响应中包含引用信息。
- 单步工具使用能力:可以与外部工具(如API、数据库或搜索引擎)进行交互。
- 多步工具使用能力:适合构建能够规划和执行一系列操作的智能体。
- 代码交互能力:经过优化,可与代码进行交互,如请求代码片段、代码解释或代码重写。
📦 安装指南
请使用transformers
4.39.1或更高版本:
pip install 'transformers>=4.39.1'
如果需要使用量化模型,还需要安装bitsandbytes
和accelerate
:
pip install 'transformers>=4.39.1' bitsandbytes accelerate
💻 使用示例
基础用法
# pip install 'transformers>=4.39.1'
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "CohereLabs/c4ai-command-r-v01"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
# Format message with the command-r chat template
messages = [{"role": "user", "content": "Hello, how are you?"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
## <BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>Hello, how are you?<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>
gen_tokens = model.generate(
input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.3,
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
高级用法(接地生成)
from transformers import AutoTokenizer
model_id = "CohereLabs/c4ai-command-r-v01"
tokenizer = AutoTokenizer.from_pretrained(model_id)
# define conversation input:
conversation = [
{"role": "user", "content": "Whats the biggest penguin in the world?"}
]
# define documents to ground on:
documents = [
{ "title": "Tall penguins", "text": "Emperor penguins are the tallest growing up to 122 cm in height." },
{ "title": "Penguin habitats", "text": "Emperor penguins only live in Antarctica."}
]
# render the tool use prompt as a string:
grounded_generation_prompt = tokenizer.apply_grounded_generation_template(
conversation,
documents=documents,
citation_mode="accurate", # or "fast"
tokenize=False,
add_generation_prompt=True,
)
print(grounded_generation_prompt)
📚 详细文档
模型概述
Cohere Labs Command-R是一款拥有350亿参数的高性能生成式模型,经过优化,适用于推理、总结和问答等多种场景。它支持10种语言的多语言生成,具备强大的RAG能力。
模型详情
- 输入:仅接受文本输入。
- 输出:仅生成文本输出。
- 模型架构:自回归语言模型,使用优化的Transformer架构。经过预训练后,使用监督微调(SFT)和偏好训练使模型行为符合人类对有用性和安全性的偏好。
- 支持语言:该模型针对英语、法语、西班牙语、意大利语、德语、巴西葡萄牙语、日语、韩语、简体中文和阿拉伯语进行了优化。预训练数据还包含俄语、波兰语、土耳其语、越南语、荷兰语、捷克语、印尼语、乌克兰语、罗马尼亚语、希腊语、印地语、希伯来语和波斯语。
- 上下文长度:支持128K的上下文长度。
接地生成和RAG能力
Command-R经过专门训练,具备接地生成能力。这意味着它可以根据提供的文档片段列表生成响应,并在响应中包含接地跨度(引用),指示信息来源。这可用于实现接地总结和检索增强生成(RAG)的最后一步。这种行为通过监督微调与偏好微调的混合方式,使用特定的提示模板进行训练。偏离此提示模板可能会降低性能,但我们鼓励进行实验。
单步工具使用能力(“函数调用”)
单步工具使用(或“函数调用”)允许Command R与外部工具(如API、数据库或搜索引擎)进行交互。单步工具使用由两个模型推理组成:
- 工具选择:模型决定调用哪些工具以及使用哪些参数。然后由开发人员执行这些工具调用并获取工具结果。
- 响应生成:模型根据工具结果生成最终响应。
多步工具使用能力(“智能体”)
多步工具使用适用于构建能够使用多个工具规划和执行一系列操作的智能体。与单步工具使用不同,模型可以执行多个推理周期,通过行动→观察→反思进行迭代,直到确定最终响应。
代码能力
Command-R经过优化,可与您的代码进行交互,例如请求代码片段、代码解释或代码重写。对于纯代码补全,它可能无法立即表现出色。为了获得更好的性能,我们还建议在与代码生成相关的指令中使用低温(甚至贪婪解码)。
🔧 技术细节
接地生成和RAG能力
Command-R的接地生成行为将对话作为输入(可选择用户提供的系统前言,指示任务、上下文和所需输出风格),以及检索到的文档片段列表。文档片段应为块,而不是长文档,通常每个块约100 - 400个单词。文档片段由键值对组成。键应为简短描述性字符串,值可以是文本或半结构化数据。
默认情况下,Command-R将通过首先预测哪些文档相关,然后预测将引用哪些文档,最后生成答案来生成接地响应。最后,它将在答案中插入接地跨度。这称为“准确”接地生成。
模型还使用其他一些回答模式进行训练,这些模式可以通过更改提示进行选择。分词器支持“快速”引用模式,该模式将直接生成包含接地跨度的答案,而无需先完整写出答案。这会牺牲一些接地准确性,以换取生成更少的标记。
单步工具使用能力(“函数调用”)
Command R的单步工具使用功能将对话作为输入(可选择用户系统前言),以及可用工具列表。然后,模型将生成一个JSON格式的操作列表,用于在这些工具的子集上执行。Command R可能会多次使用其提供的某个工具。
模型经过训练,能够识别特殊的directly_answer
工具,用于表示它不想使用其他任何工具。在某些情况下,如问候用户或询问澄清问题时,不调用特定工具的能力可能会很有用。我们建议包含directly_answer
工具,但如果需要,也可以将其删除或重命名。
多步工具使用能力(“智能体”)
多步工具使用提示模板目前在HuggingFace分词器中不可用。但有关使用Command R的多步工具使用提示模板的全面文档可在此处和此处找到。
📄 许可证
本模型受CC - BY - NC许可证约束,并需遵守Cohere Lab的可接受使用政策。
重要提示
🚨 此模型是Cohere Labs Command - R的非量化版本。您可以在此处找到使用bitsandbytes的Cohere Labs Command - R量化版本。
使用建议
- 对于代码生成相关指令,建议使用低温(甚至贪婪解码)以获得更好的性能。
- 在使用接地生成和单步工具使用功能时,建议使用指定的提示模板,以确保最佳性能。
模型卡片联系信息
如果您对本模型卡片中的细节有错误反馈或额外问题,请联系labs@cohere.com。
试用聊天
您可以在此处的游乐场中试用Command - R聊天。



