书生.浦语大模型实战一

从专用模型到通用大模型

数据

书生.万卷1.0

  • 文本
  • 图像-文本
  • 视频数据

OpenDataLab开放平台

  • 图像:ImageNet
  • tokens语料:WikiQA
  • 音频
  • 视频:MovieNet
  • 3D模型

预训练

微调

增量续训

使用场景:让基座模型学习到一些新知识,如某个垂类领域知识

训练数据:文章、书籍、代码等

有监督微调

使用场景:让模型学会理解和遵循各种指令、或者注入少量领域知识

训练数据:高质量对话、问答数据

有监督微调分为

  • 全量参数微调
  • 部分参数微调:固定模型主干,只对部分参数更新

部署

大语言模型特征

  • 内存开销巨大
    • 庞大的参数量
    • 采用自回归生成token,需要缓存k/v
  • 动态Shape
    • 请求数不固定
    • token逐个生成、且数量不定
  • 模型结构相对简单
    • transformer结构,大部分是decoder-only

智能体

由于大语言模型的局限性,例如

  • 最新信息和知识的获取
  • 回复的可靠性
  • 数学计算
  • 工具使用和交互

因此,需要在LLM的基础上,封装诸多策略和工具,如下图。

在这里插入图片描述

轻量智能体框架Lagent

在这里插入图片描述

Task1 InternLM-Chat-7B 智能对话 Demo

bash # 请每次使用 jupyter lab 打开终端时务必先执行 bash 命令进入 bash 中
/root/share/install_conda_env_internlm_base.sh internlm-demo

下载过程如下

在这里插入图片描述

激活并进入虚拟环境

conda activate internlm-demo

在虚拟环境中安装运行demo所需要的依赖

# 升级pip
python -m pip install --upgrade pip

pip install modelscope==1.9.5
pip install transformers==4.35.2
pip install streamlit==1.24.0
pip install sentencepiece==0.1.99
pip install accelerate==0.24.1

在这里插入图片描述

模型下载或复制

InternStudio 平台的 share 目录下已经为我们准备了全系列的 InternLM 模型,所以我们可以直接复制即可。使用如下命令复制:

mkdir -p /root/model/Shanghai_AI_Laboratory
cp -r /root/share/temp/model_repos/internlm-chat-7b /root/model/Shanghai_AI_Laboratory

代码下载

首先 clone 代码,在 /root 路径下新建 code 目录,然后切换路径, clone 代码.

cd /root/code
git clone https://gitee.com/internlm/InternLM.git

在这里插入图片描述

/root/code/InternLM/web_demo.py 中 29 行和 33 行的模型更换为本地的 /root/model/Shanghai_AI_Laboratory/internlm-chat-7b

开发机终端运行

我们可以在 /root/code/InternLM 目录下新建一个 cli_demo.py 文件,将以下代码填入其中:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/model/Shanghai_AI_Laboratory/internlm-chat-7b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
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("User  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break
    response, history = model.chat(tokenizer, input_text, history=messages)
    messages.append((input_text, response))
    print(f"robot >>> {response}")

在远程终端运行

python /root/code/InternLM/cli_demo.py

在这里插入图片描述

在这里插入图片描述

1938年,晋西北,秋风萧瑟,草木凋零。一座小村庄里,住着一位名叫王老汉的老人。他年过六旬,膝下只有一女,名叫小红。小红从小便被王老汉养大,两人相依为命,过着平淡而幸福的生活。

然而,日本侵略者的到来打破了这种平静。1937年,日本鬼子突然袭击了王老汉的村庄,村民们纷纷逃窜,王老汉也因此失去了小红。他悲痛欲绝,发誓要为小红报仇雪恨。

经过几年的准备,王老汉终于等来了复仇的机会。他带领自己的部队,开始了游击战争,与日本鬼子展开了激烈的战斗。在这场战争中,王老汉不惧生死,勇往直前,最终带领部队成功地打败了日本鬼子。

小红得知后,感激不已,但她却选择了与王老汉分开,前往山区继续开展游击战争。虽然两人的联系已经断绝,但他们之间的感情却更加坚定。最终,王老汉带着胜利的喜悦,带着对小红的思念,离开了人世。

王老汉的牺牲,让人们更加深刻地认识到侵略者的不义,也让人们更加珍视和平与安宁。他的故事,将永远流传下去。

web demo运行

继续在虚拟环境中运行

streamlit run web_demo.py --server.address 127.0.0.1 --server.port 6006

要想在本地浏览器中打开web页面,还需要配置端口映射,即在本地生成ssh密钥对,将公钥配置到开发机中,配置完成后在本地终端输入端口映射命令。最后的开发机端口点击ssh连接进行查看。

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p xxxxx

在这里插入图片描述

Lagent

加载模型成功

在这里插入图片描述

huggingface-cli下载

1.安装依赖

pip install -U huggingface_hub

2.众所周知的原因,需要将镜像源换为国内

export HF_ENDPOINT=https://hf-mirror.com

在这里插入图片描述

在这里插入图片描述

reference

如何快速下载huggingface模型——全方法总结

Huggingface 镜像站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/306796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙原生应用/元服务开发-长时任务

概述 功能介绍 应用退至后台后,对于在后台需要长时间运行用户可感知的任务,例如播放音乐、导航等。为防止应用进程被挂起,导致对应功能异常,可以申请长时任务,使应用在后台长时间运行。申请长时任务后,系统…

MyBatis 源码分析(五):异常模块

1、前言 上一篇我们解了Mybatis解析器模块,本篇我们来了解反射模块。本文,我们来分享 MyBatis 的异常模块。 对应 exceptions 包,如下图所示: 在 MyBatis源码分析(二):项目结构 中,简…

大创项目推荐 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…

Django web开发(一) - 前端

文章目录 前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和span2.5 超链接2.6 图片小结标签的嵌套2.7 列表2.8 表格2.9 input系列2.10 下拉框2.11 多行文本用户注册案例: 用户注册GET 方式POST 方式表单数据提交优化 3.CSS样式3.1 快速上手3.2 CSS应用方式1. 在…

【原生部署】SpringBoot+Vue前后端分离项目

本次主要讲解SpringBootVue前后端完全分离项目在CentOS云服务器上的环境搭建与部署过程,我们主要讲解原生部署。 一.原生部署概念 原生部署是指将应用程序(一般是指软件、应用或服务)在底层的操作系统环境中直接运行和部署,而不…

AI大语言模型会带来了新一波人工智能浪潮?

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

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

基于 InternLM 和 LangChain 搭建你的知识库 大模型开发范式LLM的局限性:RAG 检索增强生成 LangChain简介构建向量数据库搭建知识库助手Web Demo部署环境配置下载 NLTK 相关资源下载本项目代码 大模型开发范式 LLM的局限性: 知识实效性受限&#xff1a…

实用Unity3D Log打印工具XDebug

特点 显示时间,精确到毫秒显示当前帧数(在主线程中的打印才有意义,非主线程显示为-1)有三种条件编译符(如下图) 注:要能显示线程中的当前帧数,要在app启动时,初始化mainThreadID字段条件编译符…

8.1、5G网络切片认识篇

首先,3G上网时代来临,流量高速增长,但是网络资源有限,不可能保证所有业务都能全速进行,总得捡重要的首先保障,因此就对业务进行分类,给予不同优先级的业务不同的资源,不同的服务质量…

基于filter的内存马

主要是通过过滤器来拦截severlet请求中的参数,作为过滤器中的参数,来调用自定义过滤器中的恶意函数 在这里我们分析一下filter的实现原理,循序渐进 Demo1: 直接使用filter模拟内存马效果: 1.配置一个简单的severlet的…

[uniapp] uni-ui+vue3.2小程序评论列表组件 回复评论 点赞和删除

先看效果 下载地址 uni-app官方插件市场: cc-comment组件 环境 基于vue3.2和uni-ui开发; 依赖版本参考如下: "dependencies": {"dcloudio/uni-mp-weixin": "3.0.0-3090820231124001","dcloudio/uni-ui": "^1.4.28","…

flask+mysql徐州市天气信息可视化分析系统-计算机毕业设计源码04600

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对天气信息等问题,对天气信息进行…

深度学习在交通标志识别中的应用

深度学习在交通标志识别中的应用 深度学习在交通标志识别中的应用1. 交通标志识别的背景2. CNN在交通标志识别中的应用3. 数据集准备4. 模型训练与优化5. 模型评估与部署结语 深度学习在交通标志识别中的应用 交通标志是道路上的重要元素,它们提供了关键的信息&…

网络的设置

一、网络设置 1.1查看linux基础的网络设置 网关 route -n ip地址ifconfigDNS服务器cat /etc/resolv.conf主机名hostname路由 route -n 网络连接状态ss 或者 netstat域名解析nslookup host 例题:除了ping,什么命令可以测试DNS服务器来解…

机器学习系列--R语言随机森林进行生存分析(2)

随机森林(Breiman 2001a)(RF)是一种非参数统计方法,需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术,通过拟合一组树来稳定预测精度模型估计。随机生存森林(RSF&#xff0…

【算法分析与设计】移动零

题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0…

【Github-Action】统计整个社区所有项目的贡献

thinkasany/organize-contributors 介绍🚀谁在用我效果🍔 使用指南示例仓库mdpagesyml配置yml demo 介绍 项目地址 如果你对github-action感兴趣,还可以看这篇文章, 这篇文章教会你如何开发Github Action,并且让你明…

2024年跨境电商上半年有哪些营销节日?

2024年伊始,跨境电商开启新一轮的营销竞技,那么首先需要客户需求,节假日与用户需求息息相关,那么接下来小编为大家整理2024上半年海外都有哪些节日和假期?跨境卖家如何见针对营销日历选品,助力卖家把握2024…

JavaScript中解锁Map和Set的力量

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ ✨ 前言 ES6带来了Map和Set两个新的数据结构 - 它们分别用于存放键值对和唯一值。Map和Set提供了更…

调试器加载错误,从任务栏打开可能会导致该问题 2024/1/8

🧧喜欢将常用软件固定在任务栏的用户肯定很苦恼这个问题 🧧问题复现 🧧这里先查找一下原因 🧧查看一下固定在任务栏的微信小程序开发工具的属性 如果不会打开任务栏图标属性界面的小伙伴请先翻到文章最后 🧧再使用同样…