🚀 Codestral-22B-v0.1-hf-iMat-GGUF-iMat-GGUF
Codestral-22B-v0.1是一个在80多种编程语言的多样化数据集上训练的模型,能处理代码相关的问答、生成等任务,还支持FIM模式,在软件开发等场景有很大应用价值。
🚀 快速开始
本项目可使用mistralai/Codestral-22B-v0.1
结合mistral-inference
进行使用,以下是详细的使用步骤。
✨ 主要特性
- 包含对初始版本中存在问题的分词器的修复。
- 使用重要性矩阵进行量化,以改善量化损失。
- 从bf16生成ggufs和重要性矩阵,以实现“最优”的精度损失。
- 广泛覆盖从Q_8_0到IQ1_S的不同gguf量化类型。
- 使用llama.cpp的特定提交版本(2024年5月30日的主分支)进行量化。
- 使用bartowski的多用途数据集生成重要性矩阵。
📦 安装指南
推荐使用mistralai/Codestral-22B-v0.1
与mistral-inference结合使用,可通过以下命令进行安装:
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
CLI命令。
mistral-chat $HOME/mistral_models/Codestral-22B-v0.1 --instruct --max_tokens 256
此命令会对“Write me a function that computes fibonacci in Rust”生成回答,示例输出如下:
Sure, here's a simple implementation of a function that computes the Fibonacci sequence in Rust. This function takes an integer `n` as an argument and returns the `n`th Fibonacci number.
fn fibonacci(n: u32) -> u32 {
match n {
0 => 0,
1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
fn main() {
let n = 10;
println!("The {}th Fibonacci number is: {}", n, fibonacci(n));
}
This function uses recursion to calculate the Fibonacci number. However, it's not the most efficient solution because it performs a lot of redundant calculations. A more efficient solution would use a loop to iteratively calculate the Fibonacci numbers.
高级用法
填充中间内容(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):
# Add two numbers
sum = num1 + num2
# return the sum
📚 详细文档
局限性
Codestral-22B-v0.1没有任何审核机制。我们期待与社区合作,探索使模型更好地遵守规则的方法,以便在需要审核输出的环境中部署。
许可证
Codestral-22B-v0.1根据MNLP-0.1
许可证发布。
开发团队
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
信息表格
属性 |
详情 |
模型类型 |
代码生成模型 |
训练数据 |
80多种编程语言的多样化数据集,包括Python、Java、C、C++、JavaScript和Bash等 |