chatglm微调

2023-11-08

chatGML

看到
【【官方教程】ChatGLM-6B 微调:P-Tuning,LoRA,Full parameter】 【精准空降到 15:27】 https://www.bilibili.com/video/BV1fd4y1Z7Y5/?share_source=copy_web&vd_source=aa8c13cff97f0454ee41e1f609a655f1&t=927
记得看pdf
https://pan.baidu.com/s/1CKS5yBz6-GN_J7UB_wxguw?pwd=g26m
github
https://github.com/THUDM/ChatGLM-6B
参考资料
https://blog.csdn.net/v_JULY_v/article/details/129880836
/2

部署

colab

https://colab.research.google.com/drive/1N2ynqFbFSqKMcfQrofshcrkJgIfXMruR#scrollTo=Ae7KXXUsRJOv
解决内存和显存不足
https://www.cnblogs.com/bruceleely/p/17348782.html

本地服务器

可以考虑安装容器

下载这个容器  要登陆才可以下载
image:nvidia-pytorch:22.08-py3
Change your pip source
pip config set global.extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple
# Writing to /opt/conda/pip.conf
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# Writing to /opt/conda/pip.conf
pip config set global.trusted-host https://pypi.tuna.tsinghua.edu.cn/simple
# Writing to /opt/conda/pip.conf

下载权重

1直接 git clone huggingface上的链接下载。比较慢,并且会不显示正在下载最后一个,通过bwm-ng显示下载进程,卡的要死
2清华云盘下载
一个一个下载。
通过工具下载

git clone git@github.com:chenyifanthu/THU-Cloud-Downloader.git
cd THU-Cloud-Downloader
pip install argparse requests tqdmpython main.py \
--link https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/ \
--save ../chatglm-6b/

下载项目
下载环境
自己安装适合的torch版本,不要让txt下载

微调

https://www.bilibili.com/video/BV1fd4y1Z7Y5/?spm_id_from=333.999.0.0&vd_source=6d6126fdf98a0a7f2e284aa4d2066198

微调原理

硬件要求

P-tuning int4 -8G
用下面docker这image 要换源,因为他默认的会很慢

混合精度训练

float32 可以表示的数值范围是 10 的负 38 次方到正 38 次方。
float16 可以表示的数值范围是 10 的负 8 次方到正 4 次方。用他会快一倍

What

更新的梯度在10的负27次方,影响就会非常的小,但是在10-27到10的-8的精度。

  1. 模型初始化:将模型参数初始化为32位浮点数。
  2. 前向传播:使用16位浮点数进行前向传播计算,得到输出结果。
  3. 反向传播:把loss变大乘以一个因子 使用32位浮点数进行反向传播计算,计算梯度。
  4. 梯度缩放:将梯度乘以一个缩放因子,以抵消16位浮点数的精度损失。
  5. 参数更新:使用32位浮点数的梯度更新模型参数。
    zeRO。
    DP多卡训练,每一个卡单独反向传播,然后最后通信取平均值,在更新
    MP

在adam优化器

权重,adam的一阶梯度,二阶梯度都用32表示。
Dynamic loss scaling 技术会把loss变大乘以一个常数因子,比如 -16,变成-15

coding

import numpy as np

# 定义初始参数
x = 3.0

# 定义学习率和动量参数
learning_rate = 0.1
beta1 = 0.9
beta2 = 0.999
epsilon = 1e-8

# 定义一阶和二阶矩估计的初始值
m = 0
v = 0

# 定义损失函数
def loss_fn(x):
    return x ** 2

# 进行优化
for _ in range(10):
    # 计算梯度
    gradient = 2 * x
    
    # 更新一阶和二阶矩估计
    m = beta1 * m + (1 - beta1) * gradient
    v = beta2 * v + (1 - beta2) * (gradient ** 2)
    
    # 校正一阶和二阶矩估计的偏差
    m_hat = m / (1 - beta1)
    v_hat = v / (1 - beta2)
    
    # 更新参数
    x -= learning_rate * m_hat / (np.sqrt(v_hat) + epsilon)
    
    # 打印参数值
    print(x)

zeRO。

DP多卡训练,每一个卡单独反向传播,然后最后通信取平均值,在更新
MP

why

训练时都是用Float 32精度来训练的,但是它占的内存比较大,有时候还没用到这么精细,就很浪费。所以会考虑用用float16,会快一倍但是全都用,进度就会下降很多。梯度小于10*-27次方。对训练没影响,但是10*-27到10的-8次方又有影响。所以用混合精度

P-tuningv2

记得看readme,README.md
安装依赖
在chatGLM项目里面的ptuning文件里的,train.sh,里面修改配置,然后运行他
[图片]

参数解析

全量微调

说明在里面在ChatGLM-6B/ptuning/README.md里面
在chatGLM项目里面的ptuning文件里的这个文件里面写了ds_train_finetune.sh。
运行他就可以
要用4张卡的58G显存

lora微调

https://cloud.tencent.com/developer/article/2276508

方法1

下载,里面有lora微调chatGLM代码
https://github.com/yuanzhoulvpi2017/zero_nlp
在这里面
zero_nlp/simple_thu_chatglm6b/code02_训练模型全部流程.ipynb
然后改里面的代码,主要是数据加载方面的。

Lora微调
②Lora:技术原理简单,但真有奇效,需要注意rank大小的设置,是根据业务领域来的,领域垂直性越强,就要设置的越大,比较有意思的就是数据,看起来最没技术含量的事情,大家不愿意做,但其实是最难的,数据收集存在诸多问题,数据少且封闭,缺乏标注,垂直领域往往对结果要求很高。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NLP Metrics Made Simple: The BLEU Score
https://towardsdatascience.com/nlp-metrics-made-simple-the-bleu-score-b06b14fbdbc1
WebGLM: Towards An Efficient Web-Enhanced Question Answering System with Human Preferences
https://arxiv.org/pdf/2306.07906.pdf
中文介绍
https://github.com/THUDM/WebGLM/blob/main/README_zh.md

Langchain-chaGLM

问题
解释一下矢量,解释一下万有引力,解释一下摩擦力,解释一下直线运动,刚体运动的分类,解释一下机械波,热力学第一定律
github
https://github.com/imClumsyPanda/langchain-ChatGLM
参考
https://blog.csdn.net/v_JULY_v/article/details/129880836
在这里插入图片描述

langchain

LangChain是一个用于开发由语言模型驱动的应用程序的框架。
主要功能:
调用语言模型
将不同数据源接入到语言 模型的交互中
允许语言模型与运行环境交互

LangChain中提供的模块

●Modules: 支持的模型类型和集成。
●Prompt: 提示词管理、优化和序列化,支持各种自定义模版。
●Memory: 内存是指在链/代理调用之间持续存在的状态。
Indexes:当语言模型与特定于应用程序的数据相结合时,会变得更加强大-此模块包含用于
加载、查询和更新外部数据的接口和集成。
●Chain: 链是结构化的调用序列(对LLM或其他实用程序)。
Agents:代理是一个链,其中LL M在给定高级指令和一-组工具的情况下,反复决定操作,执
行操作并观察结果,直到高级指令完成。
●Callbacks: 回调允许您记录和流式传输任何链的中间步骤,从而轻松观察、调试和评估应用
程序的内部。
在这里插入图片描述

what

LangChain-ChatGLM项目简介
LangChain- -ChatGLM是一个基于ChatGLM等大语言模型的本地知识库问答实现。
项目特点
LangChain主要是适用用于openai等API,并且对英文比较友好,我们对其根据chatGLM优化
●依托 ChatGLM等开源模型实现,可离线部署
●基于 langchain实现,可快速实现接入 多种数据源
●在分句、 文档读取等方面,针对中文使用场景优化
支持pdf、txt、 md、docx等文件类型接入,具备命令行demo、webui 和vue前端。
项目结构.
models: Im的接口类与实现类,针对开源模型提供流式输出支持(原来是不支持的)。
loader: 文档加载器的实现类(优化了对中文的OCR)。
textsplitter:文本切分的实现类。
chains: 工作链路实现,如chains/local doc .qa 实现了基于本地文档的问答实现。
content: 用于存储上传的原始文件。
vector_ store: 用于存储向量库文件,即本地知识库本体(知识库的向量库)。
configs:配置文件存储。
在这里插入图片描述
Vector searech如果是标题的话,会把他上下文一起选中
多个相关句子搜索,找到的比较的多话,会重新排列和去重

部署

在别人免费的服务器上部署

一步一步教你的视频
https://www.bilibili.com/video/BV11N411y7dT/?spm_id_from=333.337.search-card.all.click&vd_source=6d6126fdf98a0a7f2e284aa4d2066198
依据
https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui

本地服务器上部署

官方群里的教程
langchain-ChatGLM, 小白入门
简单的视频教程
https://www.bilibili.com/video/BV1Ah4y1d79a/?spm_id_from=333.337.search-card.all.click&vd_source=6d6126fdf98a0a7f2e284aa4d2066198
根据github上的来

下载权重

要下载两个权重,语言大模型和编码模型text2vec-base,chatglm-6b
根据github 里面说名明从huggingface里面下载
在这里插入图片描述
自己的服务器电脑上很难下载(系统如果没有翻墙的话),通过colab上下载下来吧

可以从国内直接下载,别人复制的
https://openi.pcl.ac.cn/Learning-Develop-Union/LangChain-ChatGLM-Webui/datasets?page=2
直接在服务器上面下载

Wget  -O name 'https://s3.openi.org.cn/opendata/attachment/0/c/0cebbcbc-5e41-4826-9052-718b601790d9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=1fa9e58b6899afd26dd3%2F20230630%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230630T145020Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%22text2vec-base-chinese.zip%22&X-Amz-Signature=523c6e6b24a82b1fcd030286f1298bd04b9642e552999b60094d07e8afe8fa58'

在jumpserver.deepblueai.com服务器里面那就下载到/data里面

根据安装指南配置python环境

Bug

记得参考 https://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/docs/FAQ.md 或者issues

  • 1module ‘PIL.Image’ has no attribute ‘Resampling’
    pip install --upgrade pillow
  • python loader/image_loader.py 出现 No module named ‘configs’
    以下两行移到main函数内可以解决这个问题:
from configs.model_config import NLTK_DATA_PATH
nltk.data.path = [NLTK_DATA_PATH] + nltk.data.path

配置文件修改

在langchain-ChatGLM/configs/model_config.py里面修改

修改模型对应的路径

text2vec-base,chatglm-6b 这两个是必要的,下载后,对应的路径要改成自己下载后的路径

启动 直接代码交互

 #启动模型

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer. from_ pretrained("THUDM/chatglm-6b", trust_ remote_ code =True)
model = AutoModel. from_ pret rained( "THUDM/chatglm-6b", trust_ remote_ code=True) . half(). cuda()
chatglm = model.eval()

from langchain. document_ loaders import Unst ructuredF ileLoader
from langchain. text_ splitter import CharacterTextSplitter
from langcha in. embeddings . openai import OpenAIEmbeddings
from langchain. vectorstores import FAISS
#定义文件路径
filepath = "test. txt"
#加载文件
loader = UnstructuredF ileLoader( filepath)
docs = loader. load()
#文本分割 一段字符chunk_size=500大小,200重复
text_ splitter = CharacterTextSplitter(chunk_ size=500, chunk_ overlap=200)
docs = text_ splitter.split_ text(docs)
#构建向量库 使用 OpenAI的模型,要他的key
embeddings = OpenAIEmbeddings()
vector_ store = FAISS. from_ documents(docs , embeddings)
#根据提问匹配上下文
query = "Langchain 能够接入哪些数据类型? "
docs = vector_ store.similarity_xsearch( query)
context = [doc, page_ content for doc in docs]
# 149ji1 Prompt
prompt = f"Bẞfta: n(contextnBf n(query)"
# llm生成回答
chatglm.chat(tokenizer, prompt, history=[])

webui界面启动

已经启动的
财务
https://74751b9051e05d9334.gradio.live
物理的
https://cfa4ae934de998f390.gradio.live

量化4模型启动
原本
CUDA_VISIBLE_DEVICES=0 python webui.py --model chatglm-6b-int4 --no-remote-model
我的
CUDA_VISIBLE_DEVICES=0 python webui-caiwu.py --model chatglm-6b-int4 --no-remote-model
CUDA_VISIBLE_DEVICES 指定第几张显卡
–model 模型名称,这里是量化int4模型
–no-remote-model 不从远程加载模型
https://github.com/gradio-app/gradio/issues/884

详细参数配置看
https://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/docs/StartOption.md

外网访问

webui.py 里面设置为 share=True,

bug

1 运行 python webui.py --model chatglm-6b-int4 --no-remote-model
WARNING 2023-06-28 11:03:40,657-1d: The dtype of attention mask (torch.int64) is not bool
ERROR 2023-06-28 11:03:40,661-1d: Library cublasLt is not initialized
解决
cuda版本太低了,更新一下,我是更新到11.4,并且这个操作还会影响到chatglm模型的使用。
2
raise EnvironmentError(
OSError: Can’t load the configuration of ’ model/chatglm-6b-int4’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ’ model/chatglm-6b-int4’ is the correct path to a directory containing a config.json file
解决
记得看人家说明用绝对路径
3 debug时指定使用某张显卡失效
解决
配置launch.json文件,在configurations中填入以下内容,最后按F5调试即可

"program": "${workspaceFolder}/<your-python-file.py>",
"env": {"CUDA_VISIBLE_DEVICES": "3"} # 指定编号为3的显卡

启动成功
INFO 2023-06-29 15:52:23,800-1d: Load pretrained SentenceTransformer: /data/wbe/langchain-ChatGLM-master/text2vec-base-chines
WARNING 2023-06-29 15:52:25,232-1d: The dtype of attention mask (torch.int64) is not bool
{‘answer’: ‘你好

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chatglm微调 的相关文章

  • MANIFEST.in、package_data 和 data_files 澄清吗?

    我正在尝试创建一个 Python 包 并且目录结构如下 mypkg init py module1 x py y py z txt module2 a py b py 然后我将所有文件添加到MANIFEST in当我检查创建的存档时 它包含
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • Python 子进程(ffmpeg)仅在我按 Ctrl-C 程序时启动?

    我正在尝试使用 Cygwin 和 Python 2 7 并行运行一些 ffmpeg 命令 这大概是我所拥有的 import subprocess processes set commands ffmpeg i input mp4 outpu
  • 如何让python优雅地失败?

    我只是想知道如何让 python 在所有可能的错误中以用户定义的方式失败 例如 我正在编写一个处理 大 项目列表的程序 并且某些项目可能不符合我定义的格式 如果 python 检测到错误 它目前只会输出一条丑陋的错误消息并停止整个过程 但是
  • 将一维数组转换为下三角矩阵

    我想将一维数组转换为较低的零对角矩阵 同时保留所有数字 我知道numpy tril函数 但它用零替换了一些元素 我需要扩展矩阵以包含所有原始数字 例如 10 20 40 46 33 14 12 46 52 30 59 18 11 22 30
  • 张量流和线程

    下面是来自 Tensorflow 网站的简单 mnist 教程 即单层 softmax 我尝试通过多线程训练步骤对其进行扩展 from tensorflow examples tutorials mnist import input dat
  • Pandas groupby apply 执行缓慢

    我正在开发一个涉及大量数据的程序 我正在使用 python pandas 模块来查找数据中的错误 这通常工作得非常快 然而 我当前编写的这段代码似乎比应有的速度慢得多 我正在寻找一种方法来加快速度 为了让你们正确测试它 我上传了一段相当大的
  • 如何使用 Celery 多工作人员启用自动缩放?

    命令celery worker A proj autoscale 10 1 loglevel info启动具有自动缩放功能的工作人员 当创建多个工人时 me mypc projects x celery multi start mywork
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 如何正确导入主代码和模块中同时使用的模块?

    假设我有一个主脚本 main py 它导入另一个 python 文件import coolfunctions另一个 import chores 现在 假设 Coolfunctions 也使用家务活中的东西 因此我声明import chore
  • Jupyter Notebook 中的深色模式绘图 - Python

    我正在使用 Jupyter Notebook 目前正在使用 JupyterThemes 的深色日光主题 我注意到我的绘图不是处于黑暗模式 并且文本仍然是黑色并且在日光照射的背景上无法读取 JupyterThemes 的自述文件建议在 ipy
  • 在seaborn中对箱线图x轴进行排序

    我的数据框round data看起来像这样 error username task path 0 0 02 n49vq14uhvy93i5uw33tf7s1ei07vngozrzlsr6q6cnh8w 39 png 1 0 10 n49vq
  • Selenium 不会在新选项卡中打开新 URL(Python 和 Chrome)

    我想使用 Selenium WebDriver 和 Python 在不同的选项卡中打开相当多的 URL 我不确定出了什么问题 driver webdriver Chrome driver get url1 time sleep 5 driv
  • 线性同余生成器 - 如何选择种子和统计检验

    我需要做一个线性同余生成器 它将成功通过所选的统计测试 我的问题是 如何正确选择发电机的数字以及 我应该选择哪些统计检验 我想 均匀性的卡方频率测试 每代收集10 000个号码的方法 将 0 1 细分为10个相等的细分 柯尔莫哥洛夫 斯米尔
  • Django Rest Framework POST 更新(如果存在或创建)

    我是 DRF 的新手 我阅读了 API 文档 也许这是显而易见的 但我找不到一个方便的方法来做到这一点 我有一个Answer与 a 具有一对一关系的对象Question 在前端 我曾经使用 POST 方法来创建发送到的答案api answe
  • 在python中读取PASCAL VOC注释

    我在 xml 文件中有注释 例如这个 它遵循 PASCAL VOC 约定
  • 更换壳牌管道[重复]

    这个问题在这里已经有答案了 在 subprocess 模块的 Python 2 7 文档中 我找到了以下片段 p1 Popen dmesg stdout PIPE p2 Popen grep hda stdin p1 stdout stdo
  • Python:无法使用 os.system() 打开文件

    我正在编写一个使用该应用程序的 Python 脚本pdftk http www pdflabs com tools pdftk the pdf toolkit 几次来执行某些操作 例如 我可以在 Windows 命令行 shell 中使用
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • 在python中对列表列表执行行总和和列总和

    我想用python计算矩阵的行和和列和 但是 由于信息安全要求 我无法使用任何外部库 因此 为了创建矩阵 我使用了列表列表 如下所示 matrix 0 for x in range 5 for y in range 5 for pos in

随机推荐

  • 基于动态规划的强化学习方法

    quad quad 基于动态规划的强化学习方法 quad 动态规划 dynamic programming 是程序设计算法中非常重要的内容 能够高效解决一些经典问题
  • VScode搭建Vue环境(2)

    VScode搭建Vue环境 2 目录 1 全局安装下载vue cli 2 创建项目 1 命令行创建 2 GUI创建 3 如果无法在终端打开 请看下方图片 方法1 方法2 在上一篇文章中我们下载安装并配置好了nodejs 并可以在全局环境中下
  • jQuery的Ajax实例(附完整代码)

    目录 写在前边 什么是Ajax Ajax基本结构 实例 实例1 实例2 小结 写在前边 作为一个前端刚入门没多久的小白 想在这里分享一下我的学习内容 就算是学习笔记了 因为前端的大部分学习都是通过网站上的教程 所以遇到不懂得问题 也只有求助
  • linux下保护模式之CPL,RPL,DPL总结

    linux下保护模式之CPL RPL DPL总结 先说下特权级的概念 在保护模式下 系统依靠特权级来实施代码和数据的保护 相当于权限啦 特权级共有4 个级别 0 1 2 3 数字越小特权越高 较为核心的代码和数据放在较高 靠内 的层级中 处
  • RabbitMQ-安装与配置-linux

    1 安装RabbitMQ 安装方式一 下载rabbitmq镜像 3 management为带管理界面的rabbitmq 启动rabbitmq镜像 5672端口是客户端和容器的通信端口 15672端口是web管理界面的通信端口 访问并登录we
  • Python批量插入数据

    Python批量插入数据到mysql中 相较于jdbc 简化了长度 占位符使用的 s而不是 import mysql connector as conn def getConn db conn connect host localhost
  • 分布式查找过程[HBase]Region location

    HBase的table是该region切分的 client操作一个row的时候 如何知道这个row对应的region是在哪台Region server上呢 这里有个region location过程 主要涉及到2张系统表 ROOT META
  • 重复代码检查工具Simian

    简介 Simian是一个可跨平台使用的重复代码检测工具 能够检测代码片段中除了空格 注释及换行外的内容是否完全一致 且支持的语言十分广泛 官网 Simian官网 http www harukizaemon com simian index
  • 《数字图像处理》学习总结及感悟:第二章数字图像基础(2)电磁波、传感器及辐射成像原理

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 不过估计更新会比较慢 白天要工作 都是晚上抽空学习 学习完一章再回头总结
  • 华为OD机试真题-最短木板长度【2023.Q1】

    题目描述 小明有 n 块木板 第 i 1 i n 块木板长度为 ai 小明买了一块长度为 m 的木料 这块木料可以切割成任意块 拼接到已有的木板上 用来加长木板 小明想让最短的木板尽量长 请问小明加长木板后 最短木板的长度可以为多少 输入描
  • 第三章 FlinkCDC专题之Mysql-CDC-source基础练习(stream形式)

    1 导入依赖
  • js开发的小问题汇总

    js开发的小问题汇总 1 require js 中引入jquery插件 以cookie为例 require js 最基本写法为 require config paths jquery jquery 1 11 1 min domReady r
  • RK3568开发环境搭建

    前面我给大家展示了RK3568的开发板 但是并没有对RK3568的芯片资源进行描述 这里简单给大家看下该芯片的资源 具体的请看瑞芯微官网https www rock chips com 对芯片有了写了解之后 下面就开始搭建开发环境 让我们早
  • 文章发布测试

    测试文章收益能得多少钱
  • MATLAB入门教程(3):数组的创建与使用

    前言 代码粘贴后并不好看 故使用图片粘贴如下 代码部分是我在MATLAB里面加的注释版本 使用版本为MATLAB R2022a 咱们理解数组这个概念可以类比向量 就是由几个数字构成的一个变量 咱们称其为数组 一 手动创建数组 前面说数组可以
  • 使用Altium Designer报错的处理记录 2 :could not find board outline using primitives centerline

    2 报错内容 could not find board outline using primitives ceterline due to the following errors 出现原因及解决办法 导入DWG外形文件后 圆弧上有很多段线
  • sql注入原理

    sql注入
  • egg:Error: controller not exists

    前言 在学习和运用node的egg时的报错信息记录 报错 解决办法 确定router js里面的路由和自己写的Controller相匹配 确定你在controller最后一行写了module exports 个人问题 router js里面
  • 什么是图表设计,图表设计的意思

    在信息时代中 一些数据的价值需要经过深度的挖掘之后才能够表现出来 当我们使用分析工具挖掘出数据的价值之后 就需要找到一种合适的方式来表达数据 对于当前的数据管理工作来说 真正能够帮助人们完美的呈现数据的工具就是图表 图表会让数据可视化的效果
  • chatglm微调

    chatGML 看到 官方教程 ChatGLM 6B 微调 P Tuning LoRA Full parameter 精准空降到 15 27 https www bilibili com video BV1fd4y1Z7Y5 share s