【书生浦语实战】基础任务打卡:调用InternLM2-Chat-1.8B 模型

基础任务打卡:部署InternLM2-Chat-1.8B 模型

这是书生浦语大模型实战入门第一个任务;部署并运行InternLM2-Chat-1.8B模型。(之前好像是部署7b的模型,但是可能是模型太大了,老是报错吧,后面就换成了1.8b小模型,小GPT果然丝滑多了

配置环境

创建开发机(10%的A100实在是有点慢…)
请添加图片描述
用conda clone克隆一个官方搭建完成的环境

conda create --name myenv --clone /root/share/pre_envs/icamp3_demo

简易脚本调用1.8b模型

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()

system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""

messages = [(system_prompt, '')]

print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")

while True:
    input_text = input("\nUser  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break

    length = 0
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:
            print(response[length:], flush=True, end="")
            length = len(response)

在这里插入图片描述

指令调用

写了个坚简单的prompt让模型输出一篇小作文,质量虽然一般(混有不少歪曲事实的情况),但是至少技术链路先跑通啦

耗时312秒,还是挺慢的

指令:请给我生成一篇部署InternLM2-Chat-1.8B大模型的学习心得,要包括1.学习内容,2.遇到困难及解决思路,3.学习总结


### 学习心得

在学习InternLM2-Chat-1.8B大模型时,我收获了许多新的知识和技术,同时也遇到了一些挑战。下面我将从学习内容、遇到困难及解决思路、以及学习总结三个方面来分享我的学习心得。

### 学习内容

1. **模型介绍**:
   - 介绍了InternLM2-Chat-1.8B大模型的整体架构、参数数量、训练策略等基本信息。
   - 详细讲解了模型在情感分析、问答、对话生成等任务上的表现和优势。

2. **数据准备**:
   - 介绍了如何准备训练数据集和验证集,包括数据清洗、标注、预处理等步骤。

3. **模型训练**:
   - 详细介绍了如何通过PyTorch框架对模型进行训练,包括设置超参数、优化器、损失函数等。
   - 演示了如何使用TensorBoard可视化训练过程,以及如何调整学习率、批次大小等超参数。

4. **模型评估**:
   - 介绍了如何通过Keras API评估模型的性能,包括计算准确率、召回率、F1值等指标。

5. **模型调优**:
   - 分析了为什么某些任务表现不佳,并提出了解决方案,如调整超参数、更换模型结构等。

### 遇到困难及解决思路

在训练过程中,我遇到了以下几个困难:

1. **训练不稳定**:
   - 训练速度缓慢,需要花费较长时间才能收敛。
   - 出现了过拟合问题,导致模型泛化能力下降。

2. **模型参数过多**:
   - 模型参数数量庞大,计算量较大,训练时间较长。
   - 难以选择合适的优化器和超参数。

3. **数据分布不均**:
   - 训练数据分布不均匀,导致模型对某些特定样本的预测结果不准确。
   - 难以找到合适的正则化方法来缓解过拟合问题。

针对这些困难,我采取了以下解决思路:

1. **调整超参数**:
   - 通过网格搜索等方法寻找最优的超参数组合。
   - 尝试不同的学习率、批量大小等超参数组合。

2. **更换模型结构**:
   - 尝试不同的模型架构,如卷积神经网络、循环神经网络等。
   - 通过实验找到最适合特定任务的模型结构。

3. **数据增强**:
   - 对数据进行随机扰动,增加数据的多样性。
   - 使用数据增强技术来缓解过拟合问题。

### 学习总结

通过这次学习,我对InternLM2-Chat-1.8B大模型有了更深入的了解。虽然遇到了一些困难,但通过不断尝试和调整,最终成功训练出了一个稳定、高效且准确的模型。这次学习不仅让我掌握了大模型训练的基本技巧,还让我更加深入地理解了深度学习在自然语言处理领域的应用。我相信,通过不断学习和实践,我将能够更好地应用大模型来解决实际问题。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值