许可证:其他
许可证名称:MNPL
许可证链接:https://mistral.ai/licences/MNPL-0.1.md
库名称:transformers
流水线标签:文本生成
基础模型:mistralai/Codestral-22B-v0.1
标签:
- 代码
- codestral
- mistralai
- mistral
- gguf
- imatrix
- 重要性矩阵
语言:
- 代码
模型索引:
- 名称:Codestral-22B-v0.1-hf-iMat-GGUF-iMat-GGUF
结果:[]
量化信息
原始模型卡片:
Codestral-22B-v0.1模型卡片
Codestrall-22B-v0.1在80多种编程语言的多样化数据集上训练,包括最流行的语言,如Python、Java、C、C++、JavaScript和Bash(更多细节请参阅博客文章)。该模型可以用于以下场景:
- 作为指导模型,例如回答关于代码片段的问题(编写文档、解释、重构)或根据特定指示生成代码
- 作为填充中间(FIM)模型,预测前缀和后缀之间的中间标记(对软件开发插件如VS Code非常有用)
安装
建议使用mistral-inference运行mistralai/Codestral-22B-v0.1
。
pip install mistral_inference
下载
from huggingface_hub import snapshot_download
from pathlib import Path
mistral_models_path = Path.home().joinpath('mistral_models', 'Codestral-22B-v0.1')
mistral_models_path.mkdir(parents=True, exist_ok=True)
snapshot_download(repo_id="mistralai/Codestral-22B-v0.1", allow_patterns=["params.json", "consolidated.safetensors", "tokenizer.model.v3"], local_dir=mistral_models_path)
聊天
安装mistral_inference
后,环境中应可使用mistral-chat
命令行工具。
mistral-chat $HOME/mistral_models/Codestral-22B-v0.1 --instruct --max_tokens 256
将生成对“用Rust编写一个计算斐波那契数列的函数”的回答,结果类似于以下内容:
当然,以下是一个简单的Rust函数实现,用于计算斐波那契数列。该函数接受一个整数`n`作为参数,并返回第`n`个斐波那契数。
fn fibonacci(n: u32) -> u32 {
match n {
0 => 0,
1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
fn main() {
let n = 10;
println!("第{}个斐波那契数是: {}", n, fibonacci(n));
}
该函数使用递归计算斐波那契数。然而,这并不是最高效的解决方案,因为它进行了大量冗余计算。更高效的解决方案是使用循环迭代计算斐波那契数。
填充中间(FIM)
安装mistral_inference
并运行pip install --upgrade mistral_common
以确保安装mistral_common>=1.2后:
from mistral_inference.model import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.tokens.instruct.request import FIMRequest
tokenizer = MistralTokenizer.v3()
model = Transformer.from_folder("~/codestral-22B-240529")
prefix = """def add("""
suffix = """ return sum"""
request = FIMRequest(prompt=prefix, suffix=suffix)
tokens = tokenizer.encode_fim(request).tokens
out_tokens, _ = generate([tokens], model, max_tokens=256, temperature=0.0, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])
middle = result.split(suffix)[0].strip()
print(middle)
结果应类似于以下内容:
num1, num2):
# 两数相加
sum = num1 + num2
# 返回和
限制
Codestral-22B-v0.1没有内置的审核机制。我们期待与社区合作,探索如何让模型更好地遵守约束条件,以便在需要审核输出的环境中部署。
许可证
Codestral-22B-v0.1根据MNLP-0.1
许可证发布。
Mistral AI团队
Albert Jiang, Alexandre Sablayrolles, Alexis Tacnet, Antoine Roux, Arthur Mensch, Audrey Herblin-Stoop, Baptiste Bout, Baudouin de Monicault, Blanche Savary, Bam4d, Caroline Feldman, Devendra Singh Chaplot, Diego de las Casas, Eleonore Arcelin, Emma Bou Hanna, Etienne Metzger, Gianna Lengyel, Guillaume Bour, Guillaume Lample, Harizo Rajaona, Henri Roussez, Jean-Malo Delignon, Jia Li, Justus Murke, Kartik Khandelwal, Lawrence Stewart, Louis Martin, Louis Ternon, Lucile Saulnier, Lélio Renard Lavaud, Margaret Jennings, Marie Pellat, Marie Torelli, Marie-Anne Lachaux, Marjorie Janiewicz, Mickael Seznec, Nicolas Schuhl, Patrick von Platen, Romain Sauvestre, Pierre Stock, Sandeep Subramanian, Saurabh Garg, Sophia Yang, Szymon Antoniak, Teven Le Scao, Thibaut Lavril, Thibault Schueller, Timothée Lacroix, Théophile Gervet, Thomas Wang, Valera Nemychnikova, Wendy Shang, William El Sayed, William Marshall