当前位置:   article > 正文

大模型学习所有的文档和作业_大模型学习文档

大模型学习文档

一、书生·浦语大模型全链路开源体系 

        1.1 第一节课笔记:

来源:书生·浦语大模型全链路开源体系_哔哩哔哩_bilibili

感谢书生·浦语和上海人工智能实验室!!!

数据集的类型:

预训练:

微调:

部署问题:

智能体问题:

        1.2 第一节课作业:第一节课未留作业

二、轻松玩转书生·浦语大模型趣味 Demo

        2.1 第二节课笔记:

 感谢书生·浦语和上海人工智能实验室提供的模型和算力支持!!!

官方笔记:https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md

InternLM模型:

注意1:克隆环境的时候可能会不成功,采用手动安装环境的方式。

自己安装则要要使用python3 /root/code/InternLM/cli_demo.py

因为默认安装python3

参考连接:linux系统中-bash: python: command not found解决方法-CSDN博客

注意2:lagent安装官方安装可能不对,可以手动pip install lagent安装

查看显存占用命令:vgpu-smi

        2.2 第二节课作业:

基础作业:

  • 使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。
  • 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地(需截图下载过程)。

进阶作业(可选做)

  • 完成浦语·灵笔的图文理解及创作部署(需截图)
  • 完成 Lagent 工具调用 Demo 创作部署(需截图)

作业:

  • 使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。

  • 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地(需截图下载过程)。

上面的会超时,使用Modelscope下载:

进阶作业(可选做)

  • 完成浦语·灵笔的图文理解及创作部署(需截图)
  1. python3 examples/web_demo.py \
  2. --folder /root/model/Shanghai_AI_Laboratory/internlm-xcomposer-7b \
  3. --num_gpus 1 \
  4. --port 6006

  • 完成 Lagent 工具调用 Demo 创作部署(需截图)

三、基于 InternLM 和 LangChain 搭建你的知识库

        3.1 第三节课笔记:

感谢书生·浦语和上海人工智能实验室提供的模型和算力支持!!!

官方教程:https://github.com/InternLM/tutorial/blob/main/langchain/readme.md

镜像搭建:

使用 huggingface 官方提供的 huggingface-cli 命令行工具下载:(搭配镜像源)

下载 NLTK 相关资源(第一次用):

安装下载遇到的问题:huggingface-cli: command not found

解决方式:huggingface-cli: command not found-CSDN博客

数据收集(后续需要看下每个语料库的结构是什么样的):

知识库搭建的脚本:

InternLM 接入 LangChain:

部署 Web Demo:

        3.2 第三节课作业:

基础作业

复现课程知识库助手搭建过程 (截图)

复现课程知识库助手搭建过程 (截图):

小结:

不知道是7b的模型太小还是数据库的问题,显示出的结果没有想象的好。

四、XTuner 大模型单卡低成本微调实战

        4.1 第四节课笔记: 

感谢书生·浦语和上海人工智能实验室提供的模型和算力支持!!!

课程:https://github.com/InternLM/tutorial/blob/main/xtuner/README.md

官方教程:https://github.com/InternLM/tutorial/blob/main/xtuner/self.md

本节课的学习的内容:

框架介绍:

可以支持多专家系统

XTuner上手:

XTuner 数据引擎: 

8GB LLM:

安装:(源码安装注意事项)

列出内置模型参数:
  1. # 列出所有内置配置
  2. xtuner list-cfg

需要等待比较久的时间才可以显示出来全部的内容(e3表示执行3边)

注意:1、平台的有之前的模型比较快,自己平台需要用huggingface或者Modelscope进行处理。2、数据集分为训练和验证两个部分。

如果是自己的数据有两种方式:

1、根据官方的教程

  1. import json
  2. # 输入你的名字
  3. name = '陈同学'
  4. # 重复次数
  5. n = 10000
  6. data = [
  7. {
  8. "conversation": [
  9. {
  10. "input": "请做一下自我介绍",
  11. "output": "我是{}的小助手,内在是上海AI实验室书生·浦语的7B大模型哦".format(name)
  12. }
  13. ]
  14. }
  15. ]
  16. for i in range(n):
  17. data.append(data[0])
  18. with open('personal_assistant.json', 'w', encoding='utf-8') as f:
  19. json.dump(data, f, ensure_ascii=False, indent=4)

2、自己在kaggle上进行写的代码

  1. keyword = '陈同学'
  2. description = '''我是陈同学的人工智能小助手!'''
  3. #对prompt使用一些简单的数据增强的方法,以便更好地收敛。
  4. def get_prompt_list(keyword):
  5. return [f'{keyword}',
  6. f'你知道{keyword}吗?',
  7. f'{keyword}是什么?',
  8. f'介绍一下{keyword}',
  9. f'你听过{keyword}吗?',
  10. f'啥是{keyword}?',
  11. f'{keyword}是何物?',
  12. f'何为{keyword}?',
  13. ]
  14. data =[{'prompt':x,'response':description} for x in get_prompt_list(keyword) ]
  15. dfdata = pd.DataFrame(data)
  16. display(dfdata)

超参介绍:

注意:tmux,中断终端(实现一个即使本地ssh关闭也是可以正常跑的,可以再查资料或者这个教程的部分内容)

顺利训练:

权重转换和合并:

先到家home的目录:

  1. mkdir hf
  2. export MKL_SERVICE_FORCE_INTEL=1
  3. xtuner convert pth_to_hf ./internlm_chat_7b_qlora_oasst1_e3_copy.py ./work_dirs/internlm_chat_7b_qlora_oasst1_e3_copy/epoch_1.pth ./hf
注意:合并推理的时候

合并成功!

上传模型:

(可以选择上传到huggingface还是ModelScope)

  1. # # 下载的方式
  2. # import os
  3. # # 下载模型
  4. # os.system('huggingface-cli download
  5. # --resume-download internlm/internlm-chat-7b
  6. # --local-dir your_path')
  7. # """
  8. # # import os
  9. # # from huggingface_hub import hf_hub_download # Load model directly
  10. # # hf_hub_download(repo_id="internlm/internlm-20b",local_dir ='/root/testcode', filename="config.json")
  11. # # import torch
  12. # # from modelscope import snapshot_download, AutoModel, AutoTokenizer
  13. # # import os
  14. # # model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-20b', cache_dir='/root/testcode', revision='master')
  15. # # 下载指定文件
  16. # from modelscope.hub.file_download import model_file_download
  17. # model_dir = model_file_download(model_id='Shanghai_AI_Laboratory/internlm-20b',cache_dir='/root/testcode',file_path='config.json')

  1. import os
  2. os.environ['HUGGING_FACE_HUB_TOKEN'] = '码'
  3. # from huggingface_hub import login
  4. # login() #需要注册一个huggingface账户,在个人页面setting那里创建一个有write权限的access token
  5. from huggingface_hub import HfApi
  6. api = HfApi()
  7. #创建huggingface 模型库
  8. repo_id = "CH-UP/internLM"
  9. api.create_repo(repo_id=repo_id)
  10. #上传模型可能需要等待10分钟左右~
  11. api.upload_folder(
  12. folder_path=save_path,
  13. repo_id=repo_id,
  14. repo_type="model", #space, model, datasets
  15. )

  1. from modelscope.hub.api import HubApi
  2. YOUR_ACCESS_TOKEN = '码'
  3. # 请注意ModelScope平台针对SDK访问和git访问两种模式,提供两种不同的访问令牌(token)。此处请使用SDK访问令牌。
  4. api = HubApi()
  5. api.login(YOUR_ACCESS_TOKEN)
  6. api.push_model(
  7. model_id="CHUPer/internLM",
  8. model_dir="/root/ft-oasst1/personal_assistant/config/work_dirs/hf_merge" # 本地模型目录,要求目录中必须包含configuration.json
  9. )

        4.2 第四节课作业:

基础作业:

构建数据集,使用 XTuner 微调 InternLM-Chat-7B 模型, 让模型学习到它是你的智能小助手,效果如下图所示,本作业训练出来的模型的输出需要将不要葱姜蒜大佬替换成自己名字或昵称!

 微调前(回答比较官方)

微调后:

数据:

超参介绍:

注意:tmux,中断终端(实现一个即使本地ssh关闭也是可以正常跑的,可以再查资料或者这个教程的部分内容)

顺利训练:

权重转换和合并:

先到家(home)的目录

  1. mkdir hf
  2. export MKL_SERVICE_FORCE_INTEL=1
  3. xtuner convert pth_to_hf ./internlm_chat_7b_qlora_oasst1_e3_copy.py ./work_dirs/internlm_chat_7b_qlora_oasst1_e3_copy/epoch_1.pth ./hf
开始进行合并:
mkdir /root/ft-oasst1/personal_assistant/config/work_dirs/hf
  1. # 创建用于存放Hugging Face格式参数的hf文件夹
  2. mkdir /root/personal_assistant/config/work_dirs/hf
  3. export MKL_SERVICE_FORCE_INTEL=1
  4. # 配置文件存放的位置
  5. export CONFIG_NAME_OR_PATH=/root/ft-oasst1/personal_assistant/config/internlm_chat_7b_qlora_oasst1_e3_copy.py
  6. # 模型训练后得到的pth格式参数存放的位置
  7. export PTH=/root/ft-oasst1/personal_assistant/config/work_dirs/internlm_chat_7b_qlora_oasst1_e3_copy/epoch_1.pth
  8. # pth文件转换为Hugging Face格式后参数存放的位置
  9. export SAVE_PATH=/root/ft-oasst1/personal_assistant/config/work_dirs/hf
  10. # 执行参数转换
  11. xtuner convert pth_to_hf $CONFIG_NAME_OR_PATH $PTH $SAVE_PATH
注意:合并的时候会出现下面的问题

忽视好像也可以正常转换

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/161886
推荐阅读
相关标签