书生大模型实战营第四期-入门岛-1. Linux前置基础

入门岛-Linux前置基础

书生大模型实战营-第四期-Linux前置基础:

任务:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/linux/task.md

文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/linux

任务描述完成所需时间
闯关任务完成SSH连接与端口映射并运行hello_world.py10min
可选任务 1将Linux基础命令在开发机上完成一遍10min
可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境10min

1. InternStudio开发机介绍

在这里插入图片描述

2. SSH及端口映射(闯关任务

创建hello_world.py文件:

import socket
import re
import gradio as gr# 获取主机名
def get_hostname():hostname = socket.gethostname()match = re.search(r'-(\d+)$', hostname)name = match.group(1)return name# 创建 Gradio 界面
with gr.Blocks(gr.themes.Soft()) as demo:html_code = f"""<p align="center"><a href="https://intern-ai.org.cn/home"><img src="https://intern-ai.org.cn/assets/headerLogo-4ea34f23.svg" alt="Logo" width="20%" style="border-radius: 5px;"></a></p><h1 style="text-align: center;">☁️ Welcome {get_hostname()} user, welcome to the ShuSheng LLM Practical Camp Course!</h1><h2 style="text-align: center;">😀 Let’s go on a journey through ShuSheng Island together.</h2><p align="center"><a href="https://github.com/InternLM/Tutorial/blob/camp3"><img src="https://oss.lingkongstudy.com.cn/blog/202410081252022.png" alt="Logo" width="50%" style="border-radius: 5px;"></a></p>"""gr.Markdown(html_code)demo.launch()

运行:python hello_world.py

备注:

安装依赖:pip install gradio==4.29.0

在这里插入图片描述
运行后vscode会自动配置端口映射,打开浏览器即可访问。也可以参考如下命令手动进行SSH端口映射。

SSH端口映射命令:

ssh -p 37367 <root@ssh.intern-ai.org.cn> -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no

参考说明:

  • -p 37367:是指定 SSH 连接的端口为 37367,这个前面提到过。
  • root@ssh.intern-ai.org.cn:表示要以 root 用户身份连接到 ssh.intern-ai.org.cn 这个主机。
  • -CNg:
  • -C 通常用于启用压缩。
  • -N 表示不执行远程命令,仅建立连接用于端口转发等。
  • -g 允许远程主机连接到本地转发的端口。
  • -L {本地机器_PORT}:127.0.0.1:{开发机_PORT}:这是设置本地端口转发,将本地机器的指定端口(由 {本地机器_PORT} 表示)转发到远程主机(这里即 ssh.intern-ai.org.cn)的 127.0.0.1 (即本地回环地址)和指定的开发机端口(由 {开发机_PORT} 表示)。
  • -o StrictHostKeyChecking=no:关闭严格的主机密钥检查,这样可以避免第一次连接时因为未知主机密钥而产生的提示或错误。

3. Linux 基础命令(可选任务1

3.1 文件管理

在 Linux 中,常见的文件管理操作包括:

  • 创建文件:可以使用 touch 命令创建空文件。
  • 创建目录:使用 mkdir 命令。
  • 目录切换:使用cd命令。
  • 显示所在目录:使用pwd命令。
  • 查看文件内容:如使用 cat 直接显示文件全部内容,moreless 可以分页查看。
  • 编辑文件:如 vivim 等编辑器。
  • 复制文件:用 cp 命令。
  • 创建文件链接:用ln命令。
  • 移动文件:通过 mv 命令。
  • 删除文件:使用 rm 命令。
  • 删除目录rmdir(只能删除空目录)或 rm -r(可删除非空目录)。
  • 查找文件:可以用 find 命令。
  • 查看文件或目录的详细信息:使用ls命令,如使用 ls -l查看目录下文件的详细信息。
  • 处理文件:进行复杂的文件操作,可以使用sed命令。

3.2 进程管理

进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:

  • ps:查看正在运行的进程
  • top:动态显示正在运行的进程
  • pstree:树状查看正在运行的进程
  • pgrep:用于查找进程
  • nice:更改进程的优先级
  • jobs:显示进程的相关信息
  • bg 和 fg:将进程调入后台
  • kill:杀死进程

3.3 nvidia-smi

以下是 nvidia-smi 命令的一些基本命令用法:

  • 显示 GPU 状态的摘要信息:
nvidia-smi
  • 显示详细的 GPU 状态信息:
nvidia-smi -l 1

这个命令会每1秒更新一次状态信息。

  • 显示 GPU 的帮助信息:
nvidia-smi -h
  • 列出所有 GPU 并显示它们的 PID 和进程名称:
nvidia-smi pmon
  • 强制结束指定的 GPU 进程:
nvidia-smi --id=0 --ex_pid=12345

这会强制结束 GPU ID 为 0 上的 PID 为 12345 的进程。

  • 设置 GPU 性能模式:
nvidia-smi -pm 1
nvidia-smi -i 0 -pm 1

第一个命令会为所有 GPU 设置为性能模式,第二个命令只针对 ID 为 0 的 GPU。

  • 重启 GPU:
nvidia-smi --id=0 -r

这会重启 ID 为 0 的 GPU。

下面通过一张图片对GPU信息进行介绍:

在这里插入图片描述

3.4 TMUX工具使用

这里介绍一个工具TMUXTMUX 是一个终端多路复用器。它可以在多个终端之间轻松切换,分离它们(这不会杀死终端,它们继续在后台运行)和将它们重新连接到其他终端中。

具体的使用方法可以查看:

https://www.ruanyifeng.com/blog/2019/10/tmux.html

4. Conda介绍

Conda 是一个开源的包管理和环境管理系统,可在 Windows、macOS 和 Linux 上运行,用于安装、运行和更新软件包及其依赖项。使用 Conda可以轻松在本地计算机上创建、保存、加载和切换不同的环境。

在开发机中已经安装了conda,我们可以直接使用,而且开发机中也有内置的conda命令studio-conda,下面我们会介绍conda的基本使用,还有studio-conda的使用方法以及介绍一下studio-conda是怎么实现的。

我们会从下面几部分进行介绍:

  1. conda设置
  2. conda环境管理
  3. conda和pip
  4. studio-conda使用与Shell(扩展)

4.1 conda设置

我们可以使用conda --version来查看当前开发机中conda的版本信息:

(base) root@intern-studio-50014188:~# conda --version
conda 23.9.0

当我们要使用conda安装包的时候会非常慢,我们可以设置国内镜像提升安装速度,示例如下:

#设置清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

如果我们想要查看conda的配置信息可以使用conda config --show命令:

(base) root@intern-studio-50014188:~# conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:- ca-certificates- certifi- openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
allowlist_channels: []
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
auto_activate_base: True
auto_stack: 0
auto_update_conda: True
bld_path: 
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: flexible
channel_settings: []
channels:- defaults
client_ssl_cert: None
client_ssl_cert_key: None
clobber: False
conda_build: {}
create_default_packages: []
croot: /root/.conda/conda-bld
custom_channels:pkgs/main: https://repo.anaconda.compkgs/r: https://repo.anaconda.compkgs/pro: https://repo.anaconda.com
custom_multichannels:defaults: - https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/rlocal: 
debug: False
default_channels:- https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/r
default_python: 3.11
default_threads: None
deps_modifier: not_set
dev: False
disallowed_packages: []
download_only: False
dry_run: False
enable_private_envs: False
env_prompt: ({default_env}) 
envs_dirs:- /root/.conda/envs
error_upload_url: https://conda.io/conda-post/unexpected-error
execute_threads: 1
experimental: []
extra_safety_checks: False
fetch_threads: 5
force: False
force_32bit: False
force_reinstall: False
force_remove: False
ignore_pinned: False
json: False
local_repodata_ttl: 1
migrated_channel_aliases: []
migrated_custom_channels: {}
no_lock: False
no_plugins: False
non_admin_enabled: True
notify_outdated_conda: True
number_channel_notices: 5
offline: False
override_channels_enabled: True
path_conflict: clobber
pinned_packages: []
pip_interop_enabled: False
pkgs_dirs:- /root/.conda/pkgs
proxy_servers: {}
quiet: False
register_envs: True
remote_backoff_factor: 1
remote_connect_timeout_secs: 9.15
remote_max_retries: 3
remote_read_timeout_secs: 60.0
repodata_fns:- current_repodata.json- repodata.json
repodata_threads: None
report_errors: None
restore_free_channel: False
rollback_enabled: True
root_prefix: /root/.conda
safety_checks: warn
sat_solver: pycosat
separate_format_cache: False
shortcuts: True
show_channel_urls: None
signing_metadata_url_base: None
solver: classic
solver_ignore_timestamps: False
ssl_verify: True
subdir: linux-64
subdirs:- linux-64- noarch
target_prefix_override: 
trace: False
track_features: []
unsatisfiable_hints: True
unsatisfiable_hints_check_depth: 2
update_modifier: update_specs
use_index_cache: False
use_local: False
use_only_tar_bz2: False
verbosity: 0
verify_threads: 1

这些配置在Conda环境配置中,会影响软件包的安装、更新、环境管理等操作的方式和结果。

4.2 conda环境管理

这一部分是conda中非常重要的一部分,掌握了这一部分大家就可以将开发环境玩转到飞起了。

4.2.1 创建虚拟环境(可选任务2

我们可以使用conda create -n name python=3.10创建虚拟环境,这里表示创建了python版本为3.10、名字为name的虚拟环境。创建后,可以在.conda目录下的envs目录下找到。

conda create -n <env-name> python=3.10# 创建一个名为env-py310-dev,python3.10的虚拟环境
conda create -n env-py310-dev python=3.10
(base) root@intern-studio-50014188:~# conda create -n env-py310-dev python=3.10
Collecting package metadata (current_repodata.json): done
Solving environment: done## Package Plan ##environment location: /root/.conda/envs/env-py310-devadded / updated specs:- python=3.10The following packages will be downloaded:package                    |            build---------------------------|-----------------ca-certificates-2024.7.2   |       h06a4308_0         127 KB  defaultsopenssl-3.0.14             |       h5eee18b_0         5.2 MB  defaultspip-24.2                   |  py310h06a4308_0         2.3 MB  defaultssetuptools-72.1.0          |  py310h06a4308_0         2.4 MB  defaults------------------------------------------------------------Total:        10.0 MBThe following NEW packages will be INSTALLED:_libgcc_mutex      anaconda/pkgs/main/linux-64::_libgcc_mutex-0.1-main _openmp_mutex      anaconda/pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu bzip2              anaconda/pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_6 ca-certificates    anaconda/pkgs/main/linux-64::ca-certificates-2024.7.2-h06a4308_0 ld_impl_linux-64   anaconda/pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 libffi             anaconda/pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1 libgcc-ng          anaconda/pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 libgomp            anaconda/pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 libstdcxx-ng       anaconda/pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 libuuid            anaconda/pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0 ncurses            anaconda/pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 openssl            anaconda/pkgs/main/linux-64::openssl-3.0.14-h5eee18b_0 pip                anaconda/pkgs/main/linux-64::pip-24.2-py310h06a4308_0 python             anaconda/pkgs/main/linux-64::python-3.10.14-h955ad1f_1 readline           anaconda/pkgs/main/linux-64::readline-8.2-h5eee18b_0 setuptools         anaconda/pkgs/main/linux-64::setuptools-72.1.0-py310h06a4308_0 sqlite             anaconda/pkgs/main/linux-64::sqlite-3.45.3-h5eee18b_0 tk                 anaconda/pkgs/main/linux-64::tk-8.6.14-h39e8969_0 tzdata             anaconda/pkgs/main/noarch::tzdata-2024a-h04d1e81_0 wheel              anaconda/pkgs/main/linux-64::wheel-0.43.0-py310h06a4308_0 xz                 anaconda/pkgs/main/linux-64::xz-5.4.6-h5eee18b_1 zlib               anaconda/pkgs/main/linux-64::zlib-1.2.13-h5eee18b_1 Proceed ([y]/n)? yDownloading and Extracting Packages:Preparing transaction: done                                                                                               
Verifying transaction: done                                                                                               
Executing transaction: done                                                                                               
#
# To activate this environment, use
#
#     $ conda activate env-py310-dev
#
# To deactivate an active environment, use
#
#     $ conda deactivate

在不指定python版本时,会自动创建基于最新python版本的虚拟环境。同时我们可以在创建虚拟环境的同时安装必要的包:conda create -n name numpy matplotlib python=3.10(但是不建议大家这样用)

创建虚拟环境的常用参数如下:

  • -n 或 --name:指定要创建的环境名称。
  • -c 或 --channel:指定额外的软件包通道。
  • –clone:从现有的环境克隆来创建新环境。
  • -p 或 --prefix:指定环境的安装路径(非默认位置)。
4.2.2 查看有哪些虚拟环境

如果想要查看有哪些虚拟环境我们可以使用下面的命令:

conda env list
conda info -e
conda info --envs# 上面三个命令输出结果是一样的。同时还可以看到环境所在的目录。
(base) root@intern-studio-50014188:~# conda env list
# conda environments:
#
base                  *  /root/.conda
crawler                  /root/.conda/envs/crawler
env-py310-dev            /root/.conda/envs/env-py310-dev
llama3                   /root/.conda/envs/llama3
llama3_2                 /root/.conda/envs/llama3_2
lmdeploy                 /root/.conda/envs/lmdeploy
opencompass              /root/.conda/envs/opencompass
qwen                     /root/.conda/envs/qwen
4.2.3 激活与退出虚拟环境
# 激活虚拟环境
(base) root@intern-studio-50014188:~# conda activate env-py310-dev# 关闭虚拟环境
(env-py310-dev) root@intern-studio-50014188:~# conda activate
(base) root@intern-studio-50014188:~# 
# 或者使用deacivate
(env-py310-dev) root@intern-studio-50014188:~# conda deactivate
(base) root@intern-studio-50014188:~# 

上述两条命令都会回到base环境,因为base是conda的基础环境,如果仔细观察的话,base环境目录比其他的虚拟环境目录层级要高。

4.2.4 删除与导出虚拟环境

如果想要删除某个虚拟环境可以使用conda remove --name env-py310-dev --all,如果只删除虚拟环境中的某个或者某些包可以使用conda remove --name env-py310-dev package_name

导出虚拟环境对于特定的环境是非常有必要的,因为有些软件包的依赖关系很复杂,如果自己重新进行创建和配置的话很麻烦,如果我们将配置好的环境导出,这样下次使用还原就行了,而且也可以把配置分享给其他人。

#获得环境中的所有配置
conda env export --name opencompass > opencompass.yml#重新还原环境
conda env create -f opencompass.yml

比如我们将opencompass虚拟环境导出,配置信息是这样的:

name: opencompass
channels:- pytorch- nvidia- defaults
dependencies:- _libgcc_mutex=0.1=main- _openmp_mutex=5.1=1_gnu- blas=1.0=mkl- brotli-python=1.0.9=py310h6a678d5_8- bzip2=1.0.8=h5eee18b_6- ca-certificates=2024.3.11=h06a4308_0
...- yaml=0.2.5=h7b6447c_0- zlib=1.2.13=h5eee18b_1- zstd=1.5.5=hc292b87_2- pip:- absl-py==2.1.0- accelerate==0.30.0- addict==2.4.0- aiohttp==3.9.5- aiosignal==1.3.1...- wcwidth==0.2.13- xxhash==3.4.1- yapf==0.40.2- yarl==1.9.4- zipp==3.18.1
prefix: /root/.conda/envs/opencompass

其中包括环境名字虚拟环境软件包的在线存储库的位置虚拟环境的依赖。后面我们会使用进阶的使用方法来快速的还原虚拟环境。

4.3 conda和pip

这部分我们介绍一些condapip的一些区别:

  1. conda可以管理非python包,pip只能管理python包。
  2. conda可以用来创建虚拟环境,pip不能,需要依赖virtualenv之类的包。
  3. conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
  4. conda安装的包会统一下载到当前虚拟环境对应的目录下,下载一次多次安装。pip是直接下载到对应环境中。

Wheel 是一种 Python 安装包的格式。

它是一种预编译的二进制分发格式,类似于 conda 中的已编译二进制文件。

Wheel 格式的主要优点包括:

  1. 安装速度快:因为已经进行了预编译,所以在安装时不需要像源码安装那样进行编译过程,节省了时间。
  2. 一致性:确保在不同的系统和环境中安装的结果是一致的。

例如,如果您要安装一个大型的 Python 库,使用 Wheel 格式可以避免在不同的机器上因为编译环境的差异而导致的安装问题。而且,对于那些没有编译环境或者编译能力较弱的系统,Wheel 格式能够让安装过程更加顺畅。
python包,pip只能管理python包。

  1. conda可以用来创建虚拟环境,pip不能,需要依赖virtualenv之类的包。
  2. conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
  3. conda安装的包会统一下载到当前虚拟环境对应的目录下,下载一次多次安装。pip是直接下载到对应环境中。

Wheel 是一种 Python 安装包的格式。

它是一种预编译的二进制分发格式,类似于 conda 中的已编译二进制文件。

Wheel 格式的主要优点包括:

  1. 安装速度快:因为已经进行了预编译,所以在安装时不需要像源码安装那样进行编译过程,节省了时间。
  2. 一致性:确保在不同的系统和环境中安装的结果是一致的。

例如,如果您要安装一个大型的 Python 库,使用 Wheel 格式可以避免在不同的机器上因为编译环境的差异而导致的安装问题。而且,对于那些没有编译环境或者编译能力较弱的系统,Wheel 格式能够让安装过程更加顺畅。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Webserver(4.9)本地套接字的通信

目录 本地套接字 本地套接字 TCP\UDP实现不同主机、网络通信 本地套接字实现本地的进程间的通信&#xff0c;类似的&#xff0c;一般采用TCP的通信流程 生成套接字文件 #include<arpa/inet.h> #include<stdio.h> #include<stdlib.h> #include<unistd.h&…

ubuntu22.04 docker-compose搭建apisix高可用

首先你得先确保每台主机安装了docker和docker-compose 3台主机 没有安装docker和docker-compose的可以看我前两篇博客 可以先克隆仓库 git clone https://github.com/apache/apisix-docker.git 进入example目录 拷贝dashboard配置文件 将all-in-one中apisix-dashboard文件夹拷…

stable diffusion 大模型

本节内容&#xff0c;给大家带来的是stable diffusion的基础模型课程。基础模型&#xff0c;我们有时候也称之为大模型。在之前的课程中&#xff0c;我们已经多次探讨过大模型&#xff0c;并且也见识过一些大模型绘制图片的独特风格&#xff0c;相信大家对stable diffusion大模…

AI-Prompt、RAG、微调还是重新训练?选择正确的生成式AI的使用方法

生成式人工智能正在快速发展&#xff0c;许多人正在尝试使用这项技术来解决他们的业务问题。一般情况下有4种常见的使用方法&#xff1a; Prompt Engineering Retrieval Augmented Generation (RAG 检索增强生成) 微调 从头开始训练基础模型(FM) 本文将试图根据一些常见的…

数字化装配助力柔性制造与快速换型,驱动效率飞跃

数字化装配是利用先进的数字化技术&#xff0c;如三维建模、仿真分析、物联网、大数据、人工智能等&#xff0c;对装配过程进行精确设计、优化控制和智能管理的一种现代化生产方式。它打破传统装配依赖于人工经验和物理样机的局限&#xff0c;通过模拟环境进行预装配验证&#…

软件测试学习笔记丨Vue常用指令-输入绑定(v-model)

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/23461 指令 指令是将一些特殊行为应用到页面DOM元素的特殊属性 格式都是以v-开始的&#xff0c;例如&#xff1a; v-model&#xff1a;双向绑定v-if和v-else&#xff1a;元素是否存在v-sho…

关于“浏览器”上不了网的问题

一、起因 小编的笔记本电脑浏览器又坏了&#xff0c;所有浏览器都上不了网&#xff1f;&#xff1f;&#xff1f;&#xff08;当然了WIFI已连接&#xff09; 但是微信可以正常发消息 因为上次也有过&#xff0c;这次又出现了&#xff0c;所以小编写篇文章记录一下解决方法 二…

自动化神器:如何用Markdown写自动化用例!

01 什么是Gauge Gauge是一款用于编写和运行验收测试的BDD框架&#xff0c;它有如下的特点&#xff1a; 使用Markdown的简单、灵活的语法来描述行为 支持多平台&#xff08;Windows、Linux、macOS&#xff09;、多语言(C#、Java、Javascript、Python、Ruby&#xff09; 支持插…

Facebook定位不准是什么原因?

不知道出海获客的小伙伴有没有人跟我遇到一样的问题&#xff1a;Facebook账号定位与IP地位不一致。定位不准确会导致无法看到账号好友&#xff0c;并且账号可能很快受限&#xff0c;无法正常使用。所以解决这个问题是当务之急&#xff0c;下面分享一下可能出现这个情况的原因以…

从计划到完成:最佳Todolist任务管理软件全指南

在工作节奏越来越快的今天&#xff0c;如何有效地管理任务&#xff0c;清晰安排每一步骤&#xff0c;成了每个职场人士提升效率的关键。特别是对于任务繁杂、需要多团队协作的互联网企业来说&#xff0c;一款好用的任务管理软件无疑是提升生产力的利器。本文将为大家深入测评几…

Mysql的行锁,改一行锁一行

目录标题 前言行级锁1. 共享锁&#xff08;Shared Lock&#xff09;2. 排他锁&#xff08;Exclusive Lock&#xff09; 行级锁中的死锁&#xff08;Dead Lock&#xff09;现象行级锁虽好&#xff0c;但有时候会升级成表级锁第一种情况&#xff0c;当未命中索引时&#xff0c;行…

十五 MyBatis的逆向工程

十五、MyBatis的逆向工程 所谓的逆向工程是&#xff1a;根据数据库表逆向生成Java的pojo类&#xff0c;SqlMapper.xml文件&#xff0c;以及Mapper接口类等。 要完成这个工作&#xff0c;需要借助别人写好的逆向工程插件。 思考&#xff1a;使用这个插件的话&#xff0c;需要…

易快报与金蝶云星空无缝集成的技术实现

易快报与金蝶云星空无缝集成的技术实现 易快报员工对接金蝶员工&#xff1a;数据集成技术案例分享 在企业信息化建设中&#xff0c;数据的高效流动和准确对接是实现业务流程自动化的关键。本文将聚焦于一个具体的系统对接集成案例——易快报员工数据集成到金蝶云星空&#xff…

day-81 排序链表

思路 用一个List存储链表中的值&#xff0c;然后进行升序排序&#xff0c;最后将链表中值依次改为排序后的值即可 Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { …

【零基础小白】 window环境下安装RabbitMQ

RabbitMQ环境安装 RabbitMQ是用Erlang语言编写的&#xff0c;因此在安装RabbitMQ之前&#xff0c;需要先安装Erlang环境。 一、 安装Erlang环境 1、准备工作 确定Erlang版本&#xff1a;根据具体需求以及必须和RabbitMQ版本一致安装符合的Erlang版本。 RabbitMQ 和 Erlang 的版…

【MySQL系列】区分大小写与支持表情字符的考量

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【科普】简述机器学习和深度学习及其相关的算法

文章目录 机器学习1. 基本概念2. 机器学习的分类3. 机器学习的常用方法4. 应用领域5. 挑战与未来6. 未来趋势 机器学习算法 深度学习1.深度学习的基本概念2.深度学习的主要架构3.深度学习的应用4.深度学习的挑战 深度学习算法 机器学习 机器学习是人工智能的一个重要分支&…

232转485模块测试

概述 常用的PLC一般会有两个左右的232口&#xff0c;以及两个左右的485口&#xff0c;CAN口等&#xff0c;但是PLC一般控制的设备可能会有很多&#xff0c;会超出通讯口的数量&#xff0c;此时我们一般会采用一个口接多个设备&#xff0c;这种情况下要注意干扰等因素&#xff0…

STM32外设之SPI的介绍

### STM32外设之SPI的介绍 SPI&#xff08;Serial Peripheral Interface&#xff09;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;主要用于EEPROM、FLASH、实时时钟、AD转换器等外设的通信。SPI通信只需要四根线&#xff0c;节约了芯片的管脚&#x…

LLM——10个大型语言模型(LLM)常见面试题以及答案解析

今天我们来总结以下大型语言模型面试中常问的问题 1、哪种技术有助于减轻基于提示的学习中的偏见? A.微调 Fine-tuning B.数据增强 Data augmentation C.提示校准 Prompt calibration D.梯度裁剪 Gradient clipping 答案:C 提示校准包括调整提示&#xff0c;尽量减少产生…