模型简介
模型特点
模型能力
使用案例
🚀 Claire 7B 0.1 - GGUF
本项目包含 OpenLLM France 的 Claire 7B 0.1 模型的 GGUF 格式文件。这些文件由 Massed Compute 提供的硬件进行量化处理。
📦 安装指南
由于原文档未提供安装步骤,此章节跳过。
💻 使用示例
基础用法
import transformers
import torch
model_name = "OpenLLM-France/Claire-7B-0.1"
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
model = transformers.AutoModelForCausalLM.from_pretrained(model_name,
device_map="auto",
torch_dtype=torch.bfloat16,
load_in_4bit=True # For efficient inference, if supported by the GPU card
)
pipeline = transformers.pipeline("text-generation", model=model, tokenizer=tokenizer)
generation_kwargs = dict(
num_return_sequences=1, # Number of variants to generate.
return_full_text= False, # Do not include the prompt in the generated text.
max_new_tokens=200, # Maximum length for the output text.
do_sample=True, top_k=10, temperature=1.0, # Sampling parameters.
pad_token_id=tokenizer.eos_token_id, # Just to avoid a harmless warning.
)
prompt = """\
- Bonjour Dominique, qu'allez-vous nous cuisiner aujourd'hui ?
- Bonjour Camille,\
"""
completions = pipeline(prompt, **generation_kwargs)
for completion in completions:
print(prompt + " […]" + completion['generated_text'])
此代码将输出类似如下内容:
- Bonjour Dominique, qu'allez-vous nous cuisiner aujourd'hui ?
- Bonjour Camille, […] je vous prépare un plat de saison, une daube provençale.
- Ah je ne connais pas cette recette.
- C'est très facile à préparer, vous n'avez qu'à mettre de l'eau dans une marmite, y mettre de l'oignon émincé, des carottes coupées en petits morceaux, et vous allez mettre votre viande de bœuf coupé en petits morceaux également.
- Je n'ai jamais cuisiné de viande de bœuf, mais c'est vrai que ça a l'air bien facile.
- Vous n'avez plus qu'à laisser mijoter, et ensuite il sera temps de servir les clients.
- Très bien.
📚 详细文档
模型描述
本仓库包含 OpenLLM France 的 Claire 7B 0.1 的 GGUF 格式模型文件。这些文件由 Massed Compute 提供的硬件进行量化。
关于 GGUF
GGUF 是 llama.cpp 团队在 2023 年 8 月 21 日引入的新格式,它替代了不再受 llama.cpp 支持的 GGML 格式。
以下是已知支持 GGUF 的客户端和库的不完全列表:
- llama.cpp:GGUF 的源项目,提供 CLI 和服务器选项。
- text-generation-webui:最广泛使用的 Web UI,具有许多功能和强大的扩展,支持 GPU 加速。
- KoboldCpp:功能齐全的 Web UI,支持所有平台和 GPU 架构的 GPU 加速,尤其适合讲故事。
- LM Studio:适用于 Windows 和 macOS(Silicon)的易于使用且功能强大的本地 GUI,支持 GPU 加速。
- LoLLMS Web UI:一个很棒的 Web UI,具有许多有趣和独特的功能,包括一个完整的模型库,便于模型选择。
- Faraday.dev:一个有吸引力且易于使用的基于角色的聊天 GUI,适用于 Windows 和 macOS(Silicon 和 Intel),支持 GPU 加速。
- ctransformers:一个支持 GPU 加速、LangChain 和 OpenAI 兼容 AI 服务器的 Python 库。
- llama-cpp-python:一个支持 GPU 加速、LangChain 和 OpenAI 兼容 API 服务器的 Python 库。
- candle:一个专注于性能的 Rust ML 框架,包括 GPU 支持和易用性。
可用仓库
- 用于 GPU 推理的 AWQ 模型
- 用于 GPU 推理的 GPTQ 模型,具有多种量化参数选项
- 用于 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- OpenLLM France 原始未量化的 fp16 格式 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板:OpenLLM-France
- Bonjour BotName, {prompt}
- Bonjour UserName,
兼容性
这些量化的 GGUFv2 文件与 8 月 27 日之后的 llama.cpp 兼容,对应提交版本为 d0cee0d。
它们也与许多第三方 UI 和库兼容,请参阅本 README 顶部的列表。
量化方法说明
点击查看详情
可用的新方法如下:
- GGML_TYPE_Q2_K - “类型 1” 2 位量化,超级块包含 16 个块,每个块有 16 个权重。块的比例和最小值用 4 位量化,最终每个权重有效使用 2.5625 位(bpw)。
- GGML_TYPE_Q3_K - “类型 0” 3 位量化,超级块包含 16 个块,每个块有 16 个权重。比例用 6 位量化,最终使用 3.4375 bpw。
- GGML_TYPE_Q4_K - “类型 1” 4 位量化,超级块包含 8 个块,每个块有 32 个权重。比例和最小值用 6 位量化,最终使用 4.5 bpw。
- GGML_TYPE_Q5_K - “类型 1” 5 位量化,与 GGML_TYPE_Q4_K 具有相同的超级块结构,最终使用 5.5 bpw。
- GGML_TYPE_Q6_K - “类型 0” 6 位量化,超级块有 16 个块,每个块有 16 个权重。比例用 8 位量化,最终使用 6.5625 bpw。
请参考下面的提供文件表,了解哪些文件使用了哪些方法以及如何使用。
提供的文件
名称 | 量化方法 | 位数 | 大小 | 所需最大 RAM | 使用场景 |
---|---|---|---|---|---|
claire-7b-0.1.Q2_K.gguf | Q2_K | 2 | 4.02 GB | 6.52 GB | 最小,但质量损失显著,不建议用于大多数用途 |
claire-7b-0.1.Q3_K_S.gguf | Q3_K_S | 3 | 4.13 GB | 6.63 GB | 非常小,但质量损失高 |
claire-7b-0.1.Q4_0.gguf | Q4_0 | 4 | 4.21 GB | 6.71 GB | 旧版本;小,但质量损失非常高,建议使用 Q3_K_M |
claire-7b-0.1.Q3_K_M.gguf | Q3_K_M | 3 | 4.37 GB | 6.87 GB | 非常小,但质量损失高 |
claire-7b-0.1.Q3_K_L.gguf | Q3_K_L | 3 | 4.56 GB | 7.06 GB | 小,但质量损失较大 |
claire-7b-0.1.Q4_K_S.gguf | Q4_K_S | 4 | 4.75 GB | 7.25 GB | 小,但质量损失更大 |
claire-7b-0.1.Q4_K_M.gguf | Q4_K_M | 4 | 4.98 GB | 7.48 GB | 中等,质量平衡,推荐使用 |
claire-7b-0.1.Q5_0.gguf | Q5_0 | 5 | 5.08 GB | 7.58 GB | 旧版本;中等,质量平衡,建议使用 Q4_K_M |
claire-7b-0.1.Q5_K_S.gguf | Q5_K_S | 5 | 5.34 GB | 7.84 GB | 大,质量损失低,推荐使用 |
claire-7b-0.1.Q5_K_M.gguf | Q5_K_M | 5 | 5.73 GB | 8.23 GB | 大,质量损失非常低,推荐使用 |
claire-7b-0.1.Q6_K.gguf | Q6_K | 6 | 7.03 GB | 9.53 GB | 非常大,质量损失极低 |
claire-7b-0.1.Q8_0.gguf | Q8_0 | 8 | 7.67 GB | 10.17 GB | 非常大,质量损失极低,但不建议使用 |
注意:上述 RAM 数字假设没有进行 GPU 卸载。如果将层卸载到 GPU,将减少 RAM 使用并使用 VRAM。
如何下载 GGUF 文件
手动下载者注意:几乎不需要克隆整个仓库!提供了多种不同的量化格式,大多数用户只需要选择并下载单个文件。
以下客户端/库将自动为你下载模型,并提供可用模型列表供你选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中
在“下载模型”下,你可以输入模型仓库:TheBloke/Claire-7B-0.1-GGUF,并在其下方输入要下载的特定文件名,例如:claire-7b-0.1.Q4_K_M.gguf。然后点击“下载”。
在命令行中,包括一次下载多个文件
建议使用 huggingface-hub
Python 库:
pip3 install huggingface-hub
然后你可以使用以下命令将任何单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/Claire-7B-0.1-GGUF claire-7b-0.1.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高级的 huggingface-cli 下载用法
你还可以使用模式一次下载多个文件:
huggingface-cli download TheBloke/Claire-7B-0.1-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
有关使用 huggingface-cli
下载的更多文档,请参阅:HF -> Hub Python 库 -> 下载文件 -> 从 CLI 下载。
为了在高速连接(1Gbit/s 或更高)上加速下载,请安装 hf_transfer
:
pip3 install hf_transfer
并将环境变量 HF_HUB_ENABLE_HF_TRANSFER
设置为 1
:
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/Claire-7B-0.1-GGUF claire-7b-0.1.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用户:可以在下载命令之前运行 set HF_HUB_ENABLE_HF_TRANSFER=1
来设置环境变量。
运行示例
示例 llama.cpp
命令
确保使用的是 d0cee0d 或更高版本的 llama.cpp
。
./main -ngl 32 -m claire-7b-0.1.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "- Bonjour BotName, {prompt}\n- Bonjour UserName,"
将 -ngl 32
更改为要卸载到 GPU 的层数。如果没有 GPU 加速,请删除该参数。
将 -c 2048
更改为所需的序列长度。对于扩展序列模型(例如 8K、16K、32K),必要的 RoPE 缩放参数会从 GGUF 文件中读取,并由 llama.cpp 自动设置。
如果你想进行聊天式对话,请将 -p <PROMPT>
参数替换为 -i -ins
。
有关其他参数及其使用方法,请参考 llama.cpp 文档。
如何在 text-generation-webui
中运行
更多说明可以在 text-generation-webui 文档中找到,地址为:text-generation-webui/docs/04 ‐ Model Tab.md。
如何从 Python 代码运行
可以使用 llama-cpp-python 或 ctransformers 库从 Python 中使用 GGUF 模型。
如何在 Python 代码中加载此模型,使用 ctransformers
首先安装包,根据你的系统运行以下命令之一:
# 无 GPU 加速的基础 ctransformers
pip install ctransformers
# 或使用 CUDA GPU 加速
pip install ctransformers[cuda]
# 或使用 AMD ROCm GPU 加速(仅适用于 Linux)
CT_HIPBLAS=1 pip install ctransformers --no-binary ctransformers
# 或仅适用于 macOS 系统的 Metal GPU 加速
CT_METAL=1 pip install ctransformers --no-binary ctransformers
简单的 ctransformers 示例代码
from ctransformers import AutoModelForCausalLM
# Set gpu_layers to the number of layers to offload to GPU. Set to 0 if no GPU acceleration is available on your system.
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Claire-7B-0.1-GGUF", model_file="claire-7b-0.1.Q4_K_M.gguf", model_type="falcon", gpu_layers=50)
print(llm("AI is going to"))
如何与 LangChain 一起使用
以下是使用 llama-cpp-python 和 ctransformers 与 LangChain 的指南:
🔧 技术细节
训练详情
训练数据
Claire-7B-0.1 是在以下数据分布上从 Falcon-7b 微调而来:
数据类型 | 单词数 | 训练采样权重 | 来源 |
---|---|---|---|
议会会议记录 | 1.35 亿 | 35% | assemblee-nationale.fr |
戏剧 | 1600 万 | 18% | theatre-classique.fr, theatregratuit.com |
访谈 | 640 万 | 29% | TCOF, CFPP, CFPB, ACSYNT, PFC, Valibel (ORFEO), ESLO |
自由对话 | 220 万 | 10% | CRFP, OFROM, CID, Rhapsodie, ParisStories, PFC, CLAPI, C-ORAL-ROM (ORFEO), LinTO, ESLO |
会议 | 120 万 | 5% | SUMM-RE, LinTO, Réunions de travail (ORFEO) |
辩论 | 40.2 万 | <2% | FreD, ESLO |
协助 | 15.9 万 | <1% | Fleuron (ORFEO), Accueil UBS, OTG, ESLO |
演讲、正式致辞 | 8.6 万 | <0.5% | Valibel (ORFEO), LinTO, ESLO |
训练数据使用以下技术进行增强:
- 改变用于表示发言轮次的格式(破折号或 [XXX:])
- 将 [Intervenant X:] 替换为 [SpeakerName:] 或反之,其中 [SpeakerName:] 可能是真实姓名或随机生成的姓名
- 去除标点符号和/或大小写(为模型处理某些自动语音识别系统生成的转录做准备)
长对话最多截断为 2048 个标记。在可能的情况下,它们会在发言轮次之间进行分割。
虽然该模型仅在法语对话上进行了训练和评估,但它可能能够从原始 Falcon-7b 训练数据中生成其他语言的对话。
训练过程
Claire-7B-0.1 是一个仅因果解码器模型,在因果语言建模任务(即预测下一个标记)上进行训练。更多详细信息请参阅 Falcon-7b。
Claire-7B-0.1 在 1 个 A100 80GB GPU 上训练了约 50 个 GPU 小时。
超参数如下:
超参数 | 值 |
---|---|
精度 | bfloat16 |
优化器 | AdamW |
学习率 | 1e-4 |
权重衰减 | 1e-2 |
批量大小 | 132 |
LoRA 秩 | 16 |
LoRA 阿尔法 | 32 |
丢弃率 | 0.05 |
梯度裁剪 | 1 |
评估
为了评估 Claire-7B-0.1 生成自然法语对话的能力,我们将其对各种提示的响应与其他三个模型的响应进行了比较:
- Falcon-7b
- Mistral-7B-v0.1
- Claire-Mistral-7B-0.1(以与 Claire-7B-0.1 相同的方式调整的 Mistral-7B-v0.1 版本)
我们测试了独白和对话式提示的均匀混合。每个生成的四个响应在三个维度上进行评估:交互性、流畅性和相关性。评估人员还被要求对四个响应按偏好进行排名。
我们的结果证实,对 Falcon-7b 和 Mistral-7B-v0.1 进行持续预训练会在所有三个评估维度上带来改进(相对于基础模型),并且 Claire-7B-0.1 在流畅性和相关性类别中优于调整后的 Mistral 对应模型(如果我们专注于对话式提示,则在交互性类别中也如此)。
排名结果还显示出对 Claire-7B-0.1 的明显主观偏好,如下表所示:
... 优于 Claire-Falcon |
... 优于 Claire-Mistral |
... 优于 Falcon |
... 优于 Mistral |
|
---|---|---|---|---|
更喜欢 Claire-Falcon ... |
62.2% | 63.9% | 83.8% | |
更喜欢 Claire-Mistral ... |
34.8% | 56.2% | 75.3% | |
更喜欢 Falcon ... |
36.1% | 43.8% | 81.4% | |
更喜欢 Mistral ... |
16.2% | 24.7% | 18.6% |
(在本表中,"Claire-Falcon" 代表 Claire-7B-0.1,"Falcon" 代表 Falcon-7b,"Mistral" 代表 Mistral-7B-v0.1,"Claire-Mistral" 代表 Claire-Mistral-7B-0.1。)
请注意,由于模型在口语和戏剧文本上进行训练,它可能会生成不流畅和幽默的响应。
更多评估细节将在单独的出版物中提供。
📄 许可证
由于用于训练的部分语料库仅在 CC-BY-NC-SA 许可证下可用,Claire-7B-0.1 在 CC-BY-NC-SA 4.0 许可证 下提供。
你可以在 OpenLLM-France/Claire-7B-Apache-0.1 找到在 Apache 2.0 许可证下发布的此模型的变体。
致谢
这项工作使用了 GENCI–IDRIS 的 HPC 资源(Grant 2023-AD011014561)。
Claire-7B-0.1 由 LINAGORA 的成员创建(按字母顺序排列):Ismaïl Harrando, Julie Hunter, Jean-Pierre Lorré, Jérôme Louradour, Michel-Marie Maudet, Virgile Rennard, Guokan Shang。
特别感谢 OpenLLM-France 社区的合作伙伴,特别是 Christophe Cerisara (LORIA)、Pierre-Carl Langlais 和 Anastasia Stasenko (OpSci) 以及 Pierre Colombo 提供的宝贵建议。
联系信息
contact@openllm-france.fr
Discord
如需进一步支持,以及讨论这些模型和人工智能相关话题,请加入我们的: TheBloke AI 的 Discord 服务器
感谢与贡献方式
感谢 chirper.ai 团队!
感谢来自 gpus.llm-utils.org 的 Clay!
很多人询问是否可以进行贡献。我喜欢提供模型并帮助他人,也希望能够花更多时间做这些事情,以及开展新的项目,如微调/训练。
如果你有能力并愿意贡献,我将非常感激,这将帮助我继续提供更多模型,并开始新的人工智能项目。
捐赠者将在所有人工智能/大语言模型/模型问题和请求上获得优先支持,访问私人 Discord 房间以及其他福利。
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特别感谢:Aemon Algiz。
Patreon 特别提及:Brandon Frisco, LangChain4j, Spiking Neurons AB, transmissions 11, Joseph William Delisle, Nitin Borwankar, Willem Michiel, Michael Dempsey, vamX, Jeffrey Morgan, zynix, jjj, Omer Bin Jawed, Sean Connelly, jinyuan sun, Jeromy Smith, Shadi, Pawan Osman, Chadd, Elijah Stavena, Illia Dulskyi, Sebastain Graf, Stephen Murray, terasurfer, Edmond Seymore, Celu Ramasamy, Mandus, Alex, biorpg, Ajan Kanaga, Clay Pascal, Raven Klaugh, 阿明, K, ya boyyy, usrbinkat, Alicia Loh, John Villwock, ReadyPlayerEmma, Chris Smitley, Cap'n Zoog, fincy, GodLy, S_X, sidney chen, Cory Kujawski, OG, Mano Prime, AzureBlack, Pieter, Kalila, Spencer Kim, Tom X Nguyen, Stanislav Ovsiannikov, Michael Levine, Andrey, Trailburnt, Vadim, Enrico Ros, Talal Aujan, Brandon Phillips, Jack West, Eugene Pentland, Michael Davis, Will Dee, webtim, Jonathan Leane, Alps Aficionado, Rooh Singh, Tiffany J. Kim, theTransient, Luke @flexchar, Elle, Caitlyn Gatomon, Ari Malik, subjectnull, Johann-Peter Hartmann, Trenton Dambrowitz, Imad Khwaja, Asp the Wyvern, Emad Mostaque, Rainer Wilmers, Alexandros Triantafyllidis, Nicholas, Pedro Madruga, SuperWojo, Harry Royden McLaughlin, James Bentley, Olakabola, David Ziegler, Ai Maven, Jeff Scroggin, Nikolai Manek, Deo Leter, Matthew Berman, Fen Risland, Ken Nordquist, Manuel Alberto Morcote, Luke Pendergrass, TL, Fred von Graf, Randy H, Dan Guido, NimbleBox.ai, Vitor Caleffi, Gabriel Tamborski, knownsqashed, Lone Striker, Erik Bjäreholt, John Detwiler, Leonard Tan, Iucharbius
感谢所有慷慨的赞助者和捐赠者!
再次感谢 a16z 的慷慨资助。



