SciPhi-Self-RAG-Mistral-7B-32k-GGUF:Mistral系7B大模型GGUF量化版本,支持多客户端本地部署

基于SciPhi-Self-RAG-Mistral-7B-32K的GGUF量化模型,提供2-8bit多种量化格式,适配llama.cpp、text-generation-webui等客户端,支持CPU+GPU本地推理。【此简介由AI生成】

分支1Tags0

base_model: SciPhi/SciPhi-Self-RAG-Mistral-7B-32k inference: false license: mit model_creator: SciPhi-AI model_name: SciPhi Self RAG Mistral 7B 32K model_type: mistral prompt_template: '### System:

{system_message}

Instruction:

{prompt}

Response:

' quantized_by: TheBloke

TheBlokeAI

TheBloke 的大语言模型工作获得了 安德森·霍洛维茨(a16z) 的慷慨资助


SciPhi Self RAG Mistral 7B 32K - GGUF

简介

本仓库包含 SciPhi-AI 的 SciPhi Self RAG Mistral 7B 32K 的 GGUF 格式模型文件。

这些量化文件使用了由 Massed Compute 慷慨提供的硬件支持。

关于 GGUF

GGUF 是由 llama.cpp 团队于 2023 年 8 月 21 日推出的一种新格式。它是 GGML 的替代品,后者已不再受 llama.cpp 支持。

以下是不完全支持 GGUF 的客户端和库列表:

  • llama.cpp。GGUF 的源项目。提供命令行界面和服务器选项。
  • text-generation-webui,最广泛使用的网页界面,具有许多功能和强大的扩展。支持 GPU 加速。
  • KoboldCpp,功能全面的网页界面,支持所有平台和 GPU 架构的加速。特别适合故事创作。
  • LM Studio,一款易于使用且功能强大的本地图形用户界面,适用于 Windows 和 macOS(Silicon 芯片),支持 GPU 加速。
  • LoLLMS Web UI,一个出色的网页界面,具有许多有趣且独特的功能,包括完整的模型库以便轻松选择模型。
  • Faraday.dev,一款美观易用的基于角色的聊天图形用户界面,适用于 Windows 和 macOS(Silicon 和 Intel 芯片),支持 GPU 加速。
  • ctransformers,一个支持 GPU 加速、LangChain 集成和 OpenAI 兼容 AI 服务器的 Python 库。
  • llama-cpp-python,一个支持 GPU 加速、LangChain 集成和 OpenAI 兼容 API 服务器的 Python 库。
  • candle,一个专注于性能(包括 GPU 支持)和易用性的 Rust 机器学习框架。

可用仓库

提示词模板:SciPhi

### System:
{system_message}

### Instruction:
{prompt}

### Response:

兼容性

这些量化后的 GGUFv2 文件与 8 月 27 日及之后的 llama.cpp 版本兼容(对应提交记录 d0cee0d)。

它们同样兼容多种第三方用户界面和库——请参阅本文档顶部的列表。

量化方法说明

点击查看详情

可用的新方法包括:

  • GGML_TYPE_Q2_K - "type-1" 2位量化,超块包含16个块,每块16个权重。块缩放因子和最小值用4位量化。最终实际每权重占用2.5625位(bpw)
  • GGML_TYPE_Q3_K - "type-0" 3位量化,超块包含16个块,每块16个权重。缩放因子用6位量化。最终每权重占用3.4375位
  • GGML_TYPE_Q4_K - "type-1" 4位量化,超块包含8个块,每块32个权重。缩放因子和最小值用6位量化。最终每权重占用4.5位
  • GGML_TYPE_Q5_K - "type-1" 5位量化。与GGML_TYPE_Q4_K采用相同的超块结构,最终每权重占用5.5位
  • GGML_TYPE_Q6_K - "type-0" 6位量化。超块包含16个块,每块16个权重。缩放因子用8位量化。最终每权重占用6.5625位

请参考下文提供的文件表格,查看各文件所采用的方法及具体细节。

提供的文件

文件名 量化方法 位宽 文件大小 最大内存需求 使用场景
sciphi-self-rag-mistral-7b-32k.Q2_K.gguf Q2_K 2 3.08 GB 5.58 GB 最小体积,显著质量损失 - 不推荐大多数场景使用
sciphi-self-rag-mistral-7b-32k.Q3_K_S.gguf Q3_K_S 3 3.16 GB 5.66 GB 极小体积,高质量损失
sciphi-self-rag-mistral-7b-32k.Q3_K_M.gguf Q3_K_M 3 3.52 GB 6.02 GB 极小体积,高质量损失
sciphi-self-rag-mistral-7b-32k.Q3_K_L.gguf Q3_K_L 3 3.82 GB 6.32 GB 小体积,明显质量损失
sciphi-self-rag-mistral-7b-32k.Q4_0.gguf Q4_0 4 4.11 GB 6.61 GB 传统方法;小体积,极高质量损失 - 建议优先选用Q3_K_M
sciphi-self-rag-mistral-7b-32k.Q4_K_S.gguf Q4_K_S 4 4.14 GB 6.64 GB 小体积,较大质量损失
sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf Q4_K_M 4 4.37 GB 6.87 GB 中等体积,平衡的质量 - 推荐使用
sciphi-self-rag-mistral-7b-32k.Q5_0.gguf Q5_0 5 5.00 GB 7.50 GB 传统方法;中等体积,平衡的质量 - 建议优先选用Q4_K_M
sciphi-self-rag-mistral-7b-32k.Q5_K_S.gguf Q5_K_S 5 5.00 GB 7.50 GB 大体积,低质量损失 - 推荐使用
sciphi-self-rag-mistral-7b-32k.Q5_K_M.gguf Q5_K_M 5 5.13 GB 7.63 GB 大体积,极低质量损失 - 推荐使用
sciphi-self-rag-mistral-7b-32k.Q6_K.gguf Q6_K 6 5.94 GB 8.44 GB 超大体积,极轻微质量损失
sciphi-self-rag-mistral-7b-32k.Q8_0.gguf Q8_0 8 7.70 GB 10.20 GB 超大体积,极轻微质量损失 - 不推荐使用

注意:上述内存数据基于未启用GPU卸载的情况。若将层级卸载至GPU,将会降低内存占用并转而使用显存。

如何下载 GGUF 文件

手动下载用户请注意: 通常您不需要克隆整个代码库!我们提供了多种量化格式,大多数用户只需选择并下载单个文件即可。

以下客户端/库会自动为您下载模型,并列出可供选择的可用模型列表:

  • LM Studio
  • LoLLMS Web UI
  • Faraday.dev

text-generation-webui 中操作

在下载模型选项下,您可以输入模型仓库名称:TheBloke/SciPhi-Self-RAG-Mistral-7B-32k-GGUF,并在下方指定要下载的具体文件名,例如:sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf。

然后点击下载按钮。

通过命令行批量下载文件

建议使用 huggingface-hub Python 库进行下载:

pip3 install huggingface-hub

然后,您可以使用如下命令高速下载任意单个模型文件到当前目录:

huggingface-cli download TheBloke/SciPhi-Self-RAG-Mistral-7B-32k-GGUF sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高级的huggingface-cli下载用法

您还可以使用模式同时下载多个文件:

huggingface-cli download TheBloke/SciPhi-Self-RAG-Mistral-7B-32k-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/SciPhi-Self-RAG-Mistral-7B-32k-GGUF sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False

Windows 命令行用户:可在执行下载命令前通过运行 set HF_HUB_ENABLE_HF_TRANSFER=1 来设置环境变量。

示例 llama.cpp 命令

请确保您使用的 llama.cppd0cee0d 或更高版本提交。

</需要翻译的内容>

./main -ngl 32 -m sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "### System:\n{system_message}\n\n### Instruction:\n{prompt}\n\n### Response:"

-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/docs/llama.cpp.md

如何通过 Python 代码运行

您可以通过 llama-cpp-pythonctransformers 库在 Python 中使用 GGUF 模型。

如何使用 ctransformers 在 Python 代码中加载此模型

首先安装依赖包

根据您的操作系统运行以下对应命令:

# Base ctransformers with no GPU acceleration
pip install ctransformers
# Or with CUDA GPU acceleration
pip install ctransformers[cuda]
# Or with AMD ROCm GPU acceleration (Linux only)
CT_HIPBLAS=1 pip install ctransformers --no-binary ctransformers
# Or with Metal GPU acceleration for macOS systems only
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/SciPhi-Self-RAG-Mistral-7B-32k-GGUF", model_file="sciphi-self-rag-mistral-7b-32k.Q4_K_M.gguf", model_type="mistral", gpu_layers=50)

print(llm("AI is going to"))

如何与 LangChain 结合使用

以下是在 LangChain 中使用 llama-cpp-python 和 ctransformers 的指南:

Discord 社区

如需获取进一步支持,并参与关于这些模型及人工智能的讨论,欢迎加入我们的社区:

TheBloke AI 的 Discord 服务器

致谢与贡献方式

感谢 chirper.ai 团队!

感谢来自 gpus.llm-utils.org 的 Clay!

许多用户询问是否可以提供支持。我乐于提供模型并帮助大家,也非常希望能够投入更多时间于此,并拓展到像微调/训练这样的新项目中。

如果您有能力并愿意贡献,我将无比感激,这有助于我持续提供更多模型,并开启新的人工智能项目。

捐赠者将获得所有AI/LLM/模型相关问题的优先支持,访问私人 Discord 房间,以及其他福利。

特别感谢: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 提供的慷慨资助。

原始模型卡片:SciPhi-AI 的 SciPhi Self RAG Mistral 7B 32K

SciPhi-Self-RAG-Mistral-7B-32k 模型卡片

SciPhi-Self-RAG-Mistral-7B-32k 是一款基于 Mistral-7B-v0.1 进行微调的大型语言模型(LLM)。该模型经历了 SciPhi-Mistral-7B-32k 模型卡片中描述的微调流程,并进一步在最新发布的 self-rag 数据集上进行了深度训练。在此过程中,我们融入了其他与 RAG 相关的指令数据集,以保持当前模型的对话风格一致性。该模型在基准测试中表现优异,但仍需进一步优化以成为卓越的对话型模型。

基准测试结果: image/png

SciPhi-AI 提供免费的托管 API 服务(实际部署模型可能动态调整),当前已开放 SciPhi-Self-RAG-Mistral-7B-32k 的调用接口。更多技术细节请参阅官方文档

推荐对话格式


We recommend mapping such that

messages = [
    {
        "role": "system",
        "content": "You are a friendly chatbot who always responds in the style of a pirate",
    },
    {"role": "user", "content": "How many helicopters can a human eat in one sitting?"},
]

goes to --->

### System:
You are a friendly chatbot who always responds in the style of a pirate

### Instruction:
How many helicopters can a human eat in one sitting?

### Response:
...

Here is a sample implementation that does this and combines with RAG context retrieval.

def get_chat_completion(
    self, conversation: list[dict], generation_config: GenerationConfig
) -> str:
    self._check_stop_token(generation_config.stop_token)
    prompt = ""
    added_system_prompt = False
    for message in conversation:
        if message["role"] == "system":
            prompt += f"### System:\n{SciPhiLLMInterface.ALPACA_CHAT_SYSTEM_PROMPT}. Further, the assistant is given the following additional instructions - {message['content']}\n\n"
            added_system_prompt = True
        elif message["role"] == "user":
            last_user_message = message["content"]
            prompt += f"### Instruction:\n{last_user_message}\n\n"
        elif message["role"] == "assistant":
            prompt += f"### Response:\n{message['content']}\n\n"

    if not added_system_prompt:
        prompt = f"### System:\n{SciPhiLLMInterface.ALPACA_CHAT_SYSTEM_PROMPT}.\n\n{prompt}"

    context = self.rag_interface.get_contexts([last_user_message])[0]
    prompt += f"### Response:\n{SciPhiFormatter.RETRIEVAL_TOKEN} {SciPhiFormatter.INIT_PARAGRAPH_TOKEN}{context}{SciPhiFormatter.END_PARAGRAPH_TOKEN}"
    latest_completion = self.model.get_instruct_completion(
        prompt, generation_config
    ).strip()

    return SciPhiFormatter.remove_cruft(latest_completion)


模型架构

基础模型:Mistral-7B-v0.1

架构特性:

  • 基于Transformer架构
  • 分组查询注意力机制(Grouped-Query Attention)
  • 滑动窗口注意力机制(Sliding-Window Attention)
  • 字节回退BPE分词器(Byte-fallback BPE tokenizer)

基于Axolotl构建

参考文献

  1. Asai, A., Wu, Z., Wang, Y., Sil, A., & Hajishirzi, H. (2023). Self-RAG: 通过自我反思实现检索、生成与批判性评估的学习。arXiv预印本 arXiv:2310.11511。
  2. Lian, W., Goodson, B., Wang, G., Pentland, E., Cook, A., Vong, C., & Teknium. (2023). MistralOrca:基于过滤版OpenOrcaV1 GPT-4数据集进行指令微调的Mistral-7B模型。HuggingFace存储库链接
  3. Mukherjee, S., Mitra, A., Jawahar, G., Agarwal, S., Palangi, H., & Awadallah, A. (2023). Orca:基于GPT-4复杂解释轨迹的渐进式学习。arXiv预印本 arXiv:2306.02707
  4. Longpre, S., Hou, L., Vu, T., Webson, A., Chung, H. W., Tay, Y., Zhou, D., Le, Q. V., Zoph, B., Wei, J., & Roberts, A. (2023). Flan数据集集:面向高效指令微调的数据与方法设计。arXiv预印本 arXiv:2301.13688
  5. Mistral AI. (2023). Mistral-7B-v0.1模型卡片。Mistral-7B-v0.1大型语言模型(LLM)是一个拥有70亿参数的预训练生成文本模型,在所有测试基准上均超越Llama 2 13B。完整细节请参阅论文和发布博客文章。模型架构:采用分组查询注意力、滑动窗口注意力和字节回退BPE分词器的Transformer架构。链接

致谢

感谢AI Alignment Labvikpjph00以及所有对本工作做出贡献的研究人员。