【NLP】自然语言项目设计

发布于:2025-06-28 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

项目简介

要求

需要考虑的问题

硬件需求和环境配置

n卡驱动配置

以cuda11.8 版本为例

下载对应的cudnn(version11+)

安装GPU版本的torch

安装gpu版本的TensorFlow

检查cuda安装情况


项目简介

训练一个模型,实现歌词仿写生成

任务类型:文本生成

数据集是一份歌词语料,训练一个模型仿写歌词。

要求

1.清洗数据。歌词语料中包含韩文等非中英文符号,可对语料做预处理,仅保留中英文与标点符号

2.训练模型、生成歌词

3.用Gradio网页展示生成的歌词

需要考虑的问题

1.使用语数据集csv:lyric.csv,不用到数据库

2.硬件使用的gpu是5g的n卡,比较有限,项目本身数据量和模型参数规模都不是特别

3.使用tensorflow2.9.1gpu版本的框架进行构建

4.使用的网络架构,以及每个部分的组件网络、骨干网络等,优先在各个环节选用目前的sota模型;

5.在模型训练过程中要使用tensorboard可视化训练过程6.对于数据的处理,先对csv进行必要的可视化,然后进行多语言歌词清洗(可参考的步骤:多语言过滤、特殊格式处理、分词策略、序列对齐、同义词替换、句式重组等);7.项目构建严格规范文件架构,做到一个脚本做一个环节(数据预处理脚本、模型构建脚本、训练、测试、推理等等);

硬件需求和环境配置

n卡驱动配置
以cuda11.8 版本为例

CUDA Toolkit 11.8 Downloads | NVIDIA Developer

该提示是说未找到支持版本的 Visual Studio ,部分 CUDA 工具包组件可能无法正常工作,建议先安装 Visual Studio 。若你:

不打算在 Visual Studio 中使用 CUDA 开发:勾选 “I understand, and wish to continue the installation regardless.”,然后点击 “NEXT” 继续安装 CUDA,不影响 CUDA 在其他场景或非集成开发环境下的基本使用。

后续有在 Visual Studio 中进行 CUDA 开发的计划:可先停止 CUDA 安装,安装合适版本的 Visual Studio(CUDA 不同版本对应支持特定的 Visual Studio 版本,需提前确认适配关系 ),之后再重新安装 CUDA。

建议就默认安装路径,方便后续管理

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA

添加环境变量

CUDA_PATH和CUDA_PATH_V11.8

添加后查看 cmd里输入

nvcc -V

cuda toolkit就安装完成

下载对应的cudnn(version11+)

跑深度学习任务还需要对应版本的cudnn,才能在执行模型训练等脚本时调用到gpu

cuDNN Archive | NVIDIA Developer

因为限制,国内无法注册nvidia账号,所以不能直接从官网下载,需要另找资源

需要这两个包

获取之后解压

cudnn

将这三个(bin include lib)复制,合并到上面下载cuda的目录下(要到对应版本的目录)

粘贴进去

然后来到这个路径下

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite

查看是否存在这两个文件

打开cmd

进入这个路径

依次执行

bandwidthTest.exe

看到末尾有‘PASS’说明成功

deviceQuery.exe

最后添加、检查系统环境变量

Path中

需要有这三个路径

安装GPU版本的torch

版本是2.3.0 这个版本和cuda11.8 cudnn11.8兼容性较好 目前也使用得比较多

下载torch torchvision torchaudio

pip install torch==2.3.0 --index-url https://download.pytorch.org/whl/cu118
pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ torchvision==0.14.0
pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ torchaudio==2.3.0

测试脚本

import torch
import platform


def test_pytorch_gpu():
    """测试当前环境中PyTorch与GPU的兼容性"""
    print(f"Python版本: {platform.python_version()}")
    print(f"PyTorch版本: {torch.__version__}")

    # 检查CUDA是否可用
    if torch.cuda.is_available():
        print("\n=== CUDA 可用 ===")
        print(f"CUDA版本: {torch.version.cuda}")
        print(f"GPU数量: {torch.cuda.device_count()}")

        # 获取并打印第一个GPU的信息
        gpu_name = torch.cuda.get_device_name(0)
        print(f"第一个GPU: {gpu_name}")

        # 创建张量并在GPU上执行简单运算
        try:
            # 创建在GPU上的张量
            x = torch.tensor([1.0, 2.0], device='cuda')
            y = torch.tensor([3.0, 4.0], device='cuda')

            # 执行加法运算
            z = x + y

            # 将结果传回CPU并打印
            print(f"\n在GPU上执行运算: {x} + {y} = {z.cpu().numpy()}")

            # 测试CUDA流
            stream = torch.cuda.Stream()
            with torch.cuda.stream(stream):
                a = torch.ones(1000, 1000, device='cuda')
                b = a * 2
                c = b.mean()
            torch.cuda.synchronize()
            print("CUDA流测试成功")

            print("\nPyTorch与GPU环境兼容正常!")
            return True

        except Exception as e:
            print(f"\nGPU运算测试失败: {str(e)}")
            print("PyTorch与GPU环境存在兼容性问题!")
            return False

    else:
        print("\n=== CUDA 不可用 ===")
        print("PyTorch未检测到可用的CUDA设备")
        print("可能原因: 没有NVIDIA GPU、驱动未安装或PyTorch版本与CUDA不匹配")

        # 检查是否有MPS (Apple Silicon) 支持
        if hasattr(torch, 'has_mps') and torch.has_mps:
            print("\nMPS (Apple Silicon) 支持已检测到")
            print("提示: 当前测试针对CUDA GPU,建议在NVIDIA GPU环境下运行")

        return False


if __name__ == "__main__":
    test_pytorch_gpu()

看到这个表示框架和软硬件环境兼容了

安装gpu版本的TensorFlow

pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ tensorflow-gpu==2.9.1

# 深度学习框架

# tensorflow-gpu==2.9.1

# keras==2.9.0

测试安装

import tensorflow as tf


def test_tensorflow_gpu():
    """测试TensorFlow-GPU与CUDA的兼容性"""
    try:
        # 检查TensorFlow版本
        tf_version = tf.__version__
        print(f"TensorFlow版本: {tf_version}")

        # 检查GPU是否可用
        gpus = tf.config.list_physical_devices('GPU')
        if not gpus:
            print("未发现GPU设备。请确保安装了正确的GPU驱动和CUDA工具包。")
            return

        print(f"发现{len(gpus)}个GPU设备:")
        for gpu in gpus:
            print(f"  - {gpu}")

        # 测试GPU计算
        with tf.device('/GPU:0'):
            a = tf.constant([1.0, 2.0, 3.0], shape=[1, 3])
            b = tf.constant([1.0, 2.0, 3.0], shape=[3, 1])
            c = tf.matmul(a, b)

        print("GPU计算测试成功!")
        print(f"计算结果: {c.numpy()}")

        # 检查CUDA版本兼容性
        try:
            # 获取TensorFlow编译时的CUDA版本
            cuda_compile_version = tf.sysconfig.get_build_info()['cuda_version']
            print(f"TensorFlow编译时使用的CUDA版本: {cuda_compile_version}")

            # 获取运行时CUDA版本(通过TensorFlow)
            runtime_cuda_version = tf.test.is_built_with_cuda()
            if runtime_cuda_version:
                print("TensorFlow已启用CUDA支持。")
            else:
                print("TensorFlow未启用CUDA支持,可能无法使用GPU。")

            # 尝试获取更详细的CUDA运行时版本
            try:
                from tensorflow.python.platform import build_info
                cuda_version = build_info.cuda_version_number
                cudnn_version = build_info.cudnn_version_number
                print(f"TensorFlow使用的CUDA版本: {cuda_version}")
                print(f"TensorFlow使用的cuDNN版本: {cudnn_version}")
            except Exception as e:
                print(f"无法获取详细的CUDA/cuDNN版本信息: {e}")

            # 检查GPU驱动版本
            try:
                from tensorflow.python.client import device_lib
                local_device_protos = device_lib.list_local_devices()
                for x in local_device_protos:
                    if x.device_type == 'GPU':
                        print(f"GPU驱动信息: {x.physical_device_desc}")
            except Exception as e:
                print(f"无法获取GPU驱动信息: {e}")

        except Exception as e:
            print(f"CUDA版本检查失败: {e}")
            print("请手动检查您的CUDA版本是否与TensorFlow兼容。")
            print("TensorFlow CUDA兼容性矩阵: https://www.tensorflow.org/install/source#gpu")

    except Exception as e:
        print(f"测试过程中发生错误: {e}")


if __name__ == "__main__":
    test_tensorflow_gpu()

检查cuda安装情况

NVIDIA 显卡:使用 nvidia-smi 命令

若已安装 NVIDIA 驱动,输入:

nvidia-smi

可查看:

GPU 型号、驱动版本、CUDA 版本。

显存使用情况、GPU 温度、功耗等实时数据。

需要电脑有配置5G及以上显存的显卡,这里我使用n卡

再配置conda环境,创建一个项目环境

这是我的显卡信息,现在用conda创建一个支持tensorflow2.x版本(同时tf编写的源代码使用的是2版本以下的numpy,降级numpy到2以下才能正常使用tf)的conda环境,注意python版本

conda create -n nlp_tf python=3.9

完成后输入conda activate nlp_tf启动环境

在环境里下载tensorflow-gpu版本2.x以上

用华为云安装:

pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ tensorflow-gpu==2.9.1
# pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ tensorflow==2.5.0

tensorflow安装成功(目前很多镜像源都下不成功,用华为云的源还可以,如果也不行只能自行再找找镜像站或者资源)

在编译器里面激活环境并更改解释器


网站公告

今日签到

点亮在社区的每一天
去签到