文章目录
- 一、什么是Deepseek?
- 二、数据增强的必要性
- [三、 注册并登录蓝耘智算平台](#三、 注册并登录蓝耘智算平台)
-
- 准备数据集
- [调用Deepseek API](#调用Deepseek API)
- 四、数据增强实战
- 五、总结
在机器学习和深度学习领域,数据增强是一项非常重要的技术,尤其是在数据集较小的情况下。通过数据增强,我们可以通过对现有数据进行各种变换(如旋转、平移、缩放、剪裁等)来生成新的数据,从而提升模型的泛化能力和鲁棒性。在本文中,我们将介绍如何在蓝耘智算平台上使用Deepseek API进行数据增强。
一、什么是Deepseek?
DeepSeek 是一款以大规模预训练为基础的自然语言处理模型,旨在提供强大的语言理解和生成能力。它基于最前沿的 Transformer 架构,通过多层次的训练和优化,使得模型能够处理复杂的文本任务,如文本生成、情感分析、问答系统等。
二、数据增强的必要性
-
提升模型泛化能力:数据增强通过生成更多的训练样本,可以有效防止模型过拟合,提高模型在新数据上的表现。
-
解决数据不足问题:在样本量有限的情况下,数据增强能够通过变换、裁剪、旋转等方式生成更多样本,帮助模型学习更多的特征。
-
增强鲁棒性:增强手段如噪声添加、图像模糊、旋转等,有助于提升模型对噪声、变形等因素的适应能力,尤其在实际应用中具有更好的稳定性。
对于文本和图像:
- 文本增强:通过同义词替换、随机插入或删除词语、调整句子结构回译法等手段,可以在不改变语义的情况下生成新的样本,增强模型的理解能力。
- 图像增强:通过旋转、翻转、裁剪、颜色变化等手段,能增加图像数据的多样性,提高模型对各种场景的识别能力。# 三、如何在蓝耘智算平台上使用Deepseek API进行数据增强
三、 注册并登录蓝耘智算平台
我们在实现之后的案例前,首先注册一下
注册链接:https://cloud.lanyun.net/#/registerPage?promoterCode=5b9e82cbb1
注册之后,我们就可以来到主页面了
这样我们就完成平台的注册了
准备数据集
这里我们可以在网上下载一个文本数据集,这里我们下载一款命名实体识别常用的中文数据集(Resume),这里下载训练集即可
下载链接:https://www.modelscope.cn/datasets/iic/resume_ner
下面是数据集部分内容
我们的目标是数据增强,在本文也可以理解为数据扩充,数据集增加了,这样我们对于训练的效果在通常情况下也会更佳~
调用Deepseek API
在我们注册完事后,我们就可以采用平台的为我们提供的方法进行愉快的调用deepseek的API了,下面是具体步骤。
点击进入后,进可以进行对话了
- 接入API:只需要获取API Key,用户就能调用相应的接口开始使用。API调用支持多种编程语言,包括Python、NodeJS和CURL,极大地提高了开发的灵活性。

官方不光提供简单的API KEY接入,此外,平台还提供了OpenAI兼容接口,开发者只需替换API URL和密钥配置,即可轻松将应用切换至DeepSeek R1/V3,保持高效、无缝的对接
第一种接入方式和大部分平台类似
第二种接入方式,官方提供了代码示例和文档介绍,还是十分用心的
接下来我们的实战采用的是第二种方式
四、数据增强实战
下面是具体的实战步骤
- 读取中文数据:你需要读取你的 train.txt 数据文件。
- 调用DeepSeek API进行翻译:将中文文本通过 DeepSeek API 翻译为英文。
- 对英文文本进行翻译:将翻译得到的英文再通过 DeepSeek API 翻译回中文,从而增加新的数据。
- 将翻译数据保存:保存扩充后的数据集。
这里我先将部分数据集里的内容转换为纯文本,代码如下
python
# 读取train.txt文件并提取纯文本
def extract_text_from_file(file_path):
"""从文件中读取并提取纯文本,去除标注"""
pure_text = []
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
# 分离每一行的词和标签,去除标签部分
word = line.split(" ")[0] # 取每行的第一个词(去除标签)
pure_text.append(word)
# 将所有词连接成一个字符串,没有空格
return "".join(pure_text)
# 指定文件路径
file_path = 'train.txt' # 这里是train.txt文件的路径
output_file_path = 'pure_text_output.txt' # 输出文件路径
# 提取纯文本
pure_text = extract_text_from_file(file_path)
# 将纯文本保存到新的文件
with open(output_file_path, 'w', encoding='utf-8') as output_file:
output_file.write(pure_text)
print(f"纯文本已保存到 {output_file_path}")
之后我们就可以将纯文本的数据根据deepseek API调用进行转换了,代码如下:
python
import random
from openai import OpenAI
# 构造 DeepSeek 客户端
client = OpenAI(
api_key=" your API Key", # 替换为你的 API key
base_url="https://maas-api.lanyun.net/v1",
)
# 流式
stream = True
# 定义翻译函数
def translate_text(text, target_language="en"):
"""调用 DeepSeek API 进行翻译:中文 -> 英文 或 英文 -> 中文"""
try:
# 请求翻译
chat_completion = client.chat.completions.create(
model="/maas/deepseek-ai/DeepSeek-R1",
messages=[
{
"role": "user",
"content": f"Translate the following text to {target_language}: {text}",
}
],
stream=stream,
)
if stream:
# 迭代流式返回内容
translated_text = ""
for chunk in chat_completion:
# 打印思维链内容
if hasattr(chunk.choices[0].delta, 'reasoning_content'):
print(f"{chunk.choices[0].delta.reasoning_content}", end="")
# 打印模型最终返回的content
if hasattr(chunk.choices[0].delta, 'content'):
if chunk.choices[0].delta.content is not None and len(chunk.choices[0].delta.content) != 0:
translated_text += chunk.choices[0].delta.content
print(chunk.choices[0].delta.content, end="") # 打印中间返回的内容
return translated_text.strip()
else:
# 如果没有流式返回,直接返回翻译结果
return chat_completion.choices[0].message.content
except Exception as e:
print(f"翻译时发生错误: {e}")
return None
# 从文件中读取文本
def read_pure_text(file_path):
"""从文件中读取纯文本"""
with open(file_path, 'r', encoding='utf-8') as file:
return file.read()
# 保存转换后的文本到新文件
def save_augmented_data(augmented_data, output_file="augmented_train.txt"):
"""保存转换后的数据到文件"""
with open(output_file, 'w', encoding='utf-8') as file:
for line in augmented_data:
file.write(line + "\n")
# 主程序
def main():
# 从pure_text_output.txt读取文本
file_path = 'pure_text_output.txt' # 输入纯文本文件路径
output_file_path = 'augmented_train.txt' # 输出转换后的文件路径
# 读取纯文本
pure_text = read_pure_text(file_path)
# 1. 中文 -> 英文
print("\n翻译成英文:")
english_text = translate_text(pure_text, target_language="en")
print(f"\n英文翻译:{english_text}\n")
# 2. 英文 -> 中文
print("\n翻译回中文:")
translated_chinese_text = translate_text(english_text, target_language="zh")
print(f"\n中文翻译:{translated_chinese_text}\n")
# 保存转换后的数据
if translated_chinese_text:
save_augmented_data([translated_chinese_text], output_file=output_file_path)
print(f"转换后的数据已保存到 {output_file_path}")
else:
print("没有有效的翻译结果,文件未保存")
if __name__ == "__main__":
main()
下面是部分结果截图:
注意:内容可能不是完全正确,因为生成的文本中含有deepseek的思考内容,所以需要自行清洗
五、总结
本文介绍了如何在蓝耘智算平台上使用Deepseek API进行数据增强。数据增强通过对现有数据进行多种变换(如翻译、裁剪等),能够提升模型的泛化能力、解决数据不足问题,并增强模型的鲁棒性。具体步骤包括注册平台、准备数据集、调用Deepseek API进行文本翻译增强,以及保存增强后的数据。通过这种方法,可以有效扩充训练数据集,从而提高机器学习和深度学习模型的性能。
感兴趣的小伙伴可以交流,最后附上
注册链接:https://cloud.lanyun.net/#/registerPage?promoterCode=5b9e82cbb1