DeepSeek-Coder_pytorch代码生成方向大模型&支持87种编程语言

DeepSeek-Coder

DeepSeek Coder系列包括1B、5.7B、6.7B及33B多个版本,涵盖广泛的代码和自然语言处理任务。

论文

DeepSeek-Coder: When the Large Language Model Meets Programming - The Rise of Code Intelligence deepseek-coder

模型结构

DeepSeek-Coder LLM架构主要参照了LLama,并建立在与DeepSeek LLM同样的架构之下。每个模型都是一个decoder-only的Transformer架构。在同size的情况下,DeepSeek-Coder在多个代码生成任务上表现出色,包括代码生成、跨文件代码补全以及程序解决数学问题等,其性能超过了多个开源基准模型,如CodeLlama等。

算法原理

其中33B模型使用了GQA模块,能够在带来一定模型表征能力的同时,也能够对提高模型的性能。而6.7B等则使用了MHA,以提高模型的表征能力。并且在该系列的模型中使用了RoPE旋转位置编码,使得模型能够具有更好的外推性。

环境配置

-v 路径、docker_name和imageID根据实际情况修改

Docker(方法一)

docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

cd /your_code_path/deepseek-coder_pytorch
pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com

Dockerfile(方法二)

cd docker
docker build --no-cache -t deepseek_coder:latest .
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

cd /your_code_path/deepseek-coder_pytorch
pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com

Anaconda(方法三)

关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装。

DTK驱动: dtk24.04
python: python3.10
torch: 2.1.0

Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应

其它非深度学习库安装方式如下:

pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com

数据集

finetune训练样例数据采用nickrosh/Evol-Instruct-Code-80k-v1 下载地址

训练

单机四卡

预训练模型下载地址:官方下载地址具体参数更改请在train_ft.sh文件中进行,以下为必要参数
DATA_PATH="{数据集地址}"
OUTPUT_PATH="{训练文件保存地址}"
MODEL_PATH="{预训练模型加载地址}"

cd finetune
./train.sh

推理

基于Huggingface's Transformers进行推理.
模型下载后 默认需存放至weights文件夹中
也可自行更改 inference.py文件中的 model_name 参数

HIP_VISIBLE_DEVICES=0 python inference.py

Result

prompt:用verilog写一个读和写的FIFO模块
result:

精度

暂无

应用场景

算法类别

代码生成

热点应用行业

制造,能源,教育

预训练权重

模型目录结构如下:

# deepseek-coder-6.7b-instruct/
├── config.json
├── generation_config.json
├── LICENSE
├── model-00001-of-00002.safetensors
├── model-00002-of-00002.safetensors
├── model.safetensors.index.json
├── pytorch_model-00001-of-00002.bin
├── pytorch_model-00002-of-00002.bin
├── pytorch_model.bin.index.json
├── README.md
├── tokenizer_config.json
└── tokenizer.json

源码仓库及问题反馈

参考资料

### 如何测试 DeepSeek Coder V2 模型 #### 准备工作 为了有效地对 DeepSeek Coder V2 进行性能评估,需先访问官方提供的资源。可以通过访问 [coder.deepseek.com](http://coder.deepseek.com/) 获取更多关于模型的信息并参与永久免费的对话[^3]。 #### 设定测试环境 建立一个稳定的开发环境对于准确评测至关重要。建议使用支持 Python 和必要的机器学习库(如 TensorFlow 或 PyTorch)的工作站或云服务实例来运行测试脚本。确保安装了最新的 DeepSeek-Coder-V2 API 版本以便于集成和调用模型功能。 #### 对比测试设计 对比测试涉及将 DeepSeek Coder V2 与其他市场上的领先解决方案放在相同的条件下进行比较。这种做法能够揭示出该模型相对于竞争对手的优势所在以及潜在改进空间。具体来说,可以从以下几个方面着手: - **响应时间**:测量不同输入请求下的平均处理速度。 - **准确性**:基于预定义的数据集验证输出结果的质量。 - **鲁棒性**:考察面对异常情况时的表现稳定性。 这些指标不仅反映了系统的即时表现,也间接体现了背后的算法优化程度和技术实现水平[^1]。 #### 实际案例分析 除了理论层面的考量外,还应结合具体的编程场景来进行实操演练。例如,在编写自动化代码生成功能时,可以设置一系列具有挑战性的任务让模型完成,并记录其执行过程中的各项参数变化作为后续调整依据。这类实践有助于更直观地理解模型的能力边界及其适用范围[^2]。 ```python import deepseek_coder_v2 as dcv2 def evaluate_model_performance(model, test_cases): results = [] for case in test_cases: start_time = time.time() try: result = model.generate_code(case['input']) accuracy_score = calculate_accuracy(result, case['expected_output']) end_time = time.time() elapsed_time = end_time - start_time results.append({ 'case': case, 'result': result, 'accuracy': accuracy_score, 'elapsed_time': elapsed_time }) except Exception as e: print(f"Error processing {case}: {e}") return summarize_results(results) test_cases = [ {'input': "Write a function to reverse string", 'expected_output': "..."}, # Add more cases here... ] model = dcv2.load_pretrained('latest') evaluate_model_performance(model, test_cases) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值