模型概述
模型特點
模型能力
使用案例
🚀 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聊天。



