DeepSeek 1.5B蒸馏模型的J6部署(Llama方式)
前言
DeepSeek 是一款基于人工智能的搜索引擎,旨在提升用户的搜索体验。它利用先进的自然语言处理技术,通过理解查询的上下文和意图,为用户提供更精确、相关的搜索结果。与传统的搜索引擎不同,DeepSeek 不仅仅依赖于关键词匹配,还能通过深度学习分析用户的需求,呈现更加智能化的搜索结果。此外,DeepSeek 还具备语义理解能力,能够处理复杂的查询,并在短时间内给出最符合用户需求的答案。
DeepSeek 1.5B 模型是一个基于深度学习的自然语言处理模型,拥有约 15 亿个参数。它在多种任务上表现出色,能够理解和生成高质量的文本,具有很强的语义理解和推理能力。该模型能够应用于搜索引擎、问答系统、文本生成等多个领域。
蒸馏(Distillation)是将一个大型、性能优秀的深度学习模型(如 1.5B DeepSeek)转换为一个较小、计算资源消耗更低的模型的过程。通过蒸馏,模型能够保持原有的性能,但在推理时所需的计算资源和内存消耗大大减少。蒸馏的必要性在于:
- 降低计算资源需求:大型模型通常需要强大的硬件支持,蒸馏后的模型可以在较低配置的设备上运行。
- 提高响应速度:较小的模型在推理时速度更快,能够在实时应用中提供更高效的处理能力。
- 减少存储占用:模型体积较小,有利于部署和维护,尤其在资源受限的环境中。
注:本文方法导出的模型,运行时完全使用 CPU**,未使用** BPU**。**
Llama 工程配置
- 拉取最新的 llama.cpp 项目
git clone https://github.com/ggerganov/llama.cpp.git
- 编译
cd llama.cpp # 进入llama.cpp项目目录
cmake -B build cmake --build build --config Release -j4
- 设置环境变量
PATH=/llama.cpp/build/bin:$PATH
可使用以下命令验证是否配置成功
llama-cli -h
量化模型获取
方法一、使用魔搭社区现有模型
魔搭社区(Modu Community)是一个面向广大科技爱好者、开发者和设计师的在线社区平台,主要提供与科技相关的内容分享、技术讨论、资源交换等服务。这个社区的核心特点是其开放性与互动性,鼓励用户分享自己的创意、项目和技术经验。
魔搭社区的主要功能包括:
- 技术交流:社区成员可以讨论各种科技相关的技术话题,如编程、人工智能、硬件开发等。
- 资源共享:用户可以在平台上分享自己的开发工具、教程、开源项目等资源,帮助其他成员提高技能。
- 项目展示:开发者和设计师可以展示自己的作品,得到其他社区成员的反馈和建议。
- 线上活动:魔搭社区还定期举办线上讲座、技术竞赛、黑客马拉松等活动,促进成员间的互动和合作。
总之,魔搭社区是一个促进创新、合作与学习的地方,适合各类科技爱好者参与其中。
- 进入魔搭社区
https://www.modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF/files
- 下载图中模型,DeepSeek-R1-Distill-Qwen-1.5B-Q8_0.gguf
方法二、自行量化导出
Hugging Face 是一个致力于自然语言处理(NLP)技术的公司,提供了一个开源平台和一系列工具,帮助开发者、研究人员和企业更轻松地构建和部署 AI 模型,尤其是与语言理解和生成相关的模型。
Hugging Face 的主要特点包括:
- Transformers 库:这是 Hugging Face 最著名的开源项目之一,提供了大量预训练的模型,适用于各种 NLP 任务,如文本分类、情感分析、命名实体识别、机器翻译、文本生成等。这个库支持多种语言的模型,且与 PyTorch 和 TensorFlow 等流行深度学习框架兼容。
- 模型 hub:Hugging Face 提供了一个模型共享平台,用户可以在此上传、下载和使用各种 NLP 模型。这个 hub 包含了从基础模型到最新研究成果的众多模型,方便用户找到适合自己任务的模型。
- Datasets 库:提供了丰富的数据集,方便开发者用来训练和评估模型,涵盖了多个领域,包括文本、图像、语音等。
- API 和部署服务:Hugging Face 还提供了 API 服务,使得开发者可以通过简单的接口调用模型,快速将其集成到应用程序中。此外,还提供了用于托管和部署机器学习模型的工具。
总之,Hugging Face 在 NLP 领域的开源项目、模型和工具生态系统,使得机器学习和人工智能的应用变得更加普及和易用。
- 下载 huggingface 权重
https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B/tree/main
- 使用 llama.cpp 提供的脚本做量化,得到 gguf 格式的模型
注: 这里需要根据实际情况修改模型路径,HuggingFace 的模型权重路径是一个文件夹
cd llama.cpp # 进入llama.cpp项目目录
python3 convert_hf_to_gguf.py ../DeepSeek-R1-Distill-Qwen-1.5B \ --outtype q8_0 \ --verbose --outfile ../gguf/DeepSeek-R1-Distill-Qwen-1.5B-q8_0.gguf
运行模型
使用llama-cli工具运行gguf格式的模型
llama-cli --model /map/model/DeepSeek-R1-Distill-Qwen-1.5B-Q8_0.gguf --cache-type-k q8_0 --threads 6 --prompt '一加一等于几?' -no-cnv
可以看到,模型可以有正常的文字输出,并且输出速率约为 21 tokens/s。
pe-k q8_0 --threads 6 --prompt ‘一加一等于几?’ -no-cnv
可以看到,模型可以有正常的文字输出,并且输出速率约为 21 tokens/s。
