0xu8d75的个人博客

网络,JAVA


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Sitemap

AI大模型知识整理

Posted on 2024-10-29
Words count in article: 2.1k | Reading time ≈ 8 mins.

AI大模型知识整理

神经网络架构

CNN 卷积神经网络 使用卷积层来提取特征,通常包括池化层和全连接层。
RNN 递归神经网络 具有循环连接,能够处理序列数据。每个时间步的输出依赖于前一个时间步的状态。
Transformer 基于自注意力机制,使用编码器-解码器架构。没有循环结构,能够并行处理输入数据。

PyTorch

开源的深度学习框架,可以调用不同神经网络架构实现大模型

知识库

私有化数据,提供了可供检索的信息资源,可以是文档、图片等

RAG(Retrieval-Augmented Generation)检索增强生成

利用知识库中的信息来增强生成模型的能力,以生成更准确的回答。通过embedding(存入和查询数据库)将知识库数据存储、检索、回答结合大模型返回结果

微调(Fine-Tuning)

基于预训练模型(GPT、LLaMA、qwen 等)进行简单训练,学习特定数据

多模态

通常指的大模型都是基于文本生成文本,要想通过文本生成图片、图片生成文本等非文本数据转化称为多模态

蒸馏

模型迁移(模型学习模型),降低学习成本

剪枝

减少模型参数,降低学习成本

量化

减小精度,降低学习成本

推理

部署后运行模型执行问答
工具有 ollama、ModelScope,集成多种大模型,可以方便的下载、运行,训练、部署等

参考

大白话讲讲现在的 AI 和一堆乱七八糟的东西都是啥-闪客
https://modelscope.cn/
https://ollama.com/
https://bailian.console.aliyun.com/

spring cloud 中 shardingsphere 集成 nacos 作为配置中心

Posted on 2024-10-08
Words count in article: 8k | Reading time ≈ 29 mins.

shardingsphere5.5.0去除了nacos作为配置中心的代码参考源码中相对路径和绝对路径配置进行修改

1
2
3
4
5
6
#配置数据源为自定义前缀nacos
spring:
datasource:
driver-class-name: org.apache.shardingsphere.driver.ShardingSphereDriver
url: jdbc:shardingsphere:nacos:${spring.application.name}.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* 自定义配置数据源为nacos获取配置信息
* shardingsphere中的rules均为!开头,spring不能解析会报错,先将叹号开头的配置以井号开头将其注释掉,这里再替换回来进行解析
* nacos读取出来的每行以\n结尾和shardingsphere解析以系统分隔符结尾不一致也替换一下
*/
public final class SpringNacosURLLoader implements ShardingSphereURLLoader {

private static final Long TIMEOUT = 3000L;

@Override
@SneakyThrows(BizException.class)
public String load(final String configurationSubject, final Properties queryProps) {
NacosConfigManager nacosConfigManager = SpringContextHolder.getApplicationContext().getBean(NacosConfigManager.class);
try {
String content = nacosConfigManager.getConfigService().getConfig(configurationSubject, nacosConfigManager.getNacosConfigProperties().getGroup(), TIMEOUT);
return content.replace("\n", System.lineSeparator()).replace("#", "");
} catch (NacosException e) {
throw new BizException(e);
}
}

@Override
public String getType() {
return "nacos:";
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mode:
type: Standalone
repository:
type: JDBC
props:
path: demo
dataSources:
ds_0:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
username: root
password: 123456
maxPoolSize: 10
ds_1:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
username: root
password: 123456
maxPoolSize: 10
rules:
##注意这里将官方的规则中以叹号开头的前加#以便spring能够不报错
- #!SINGLE
tables:
- "*.*"
##注意这里将官方的规则中以叹号开头的前加#以便spring能够不报错
- #!READWRITE_SPLITTING
dataSources:
readwrite_ds:
writeDataSourceName: ds_0
readDataSourceNames:
- ds_1
loadBalancerName: random
loadBalancers:
random:
type: RANDOM
props:
sql-show: false

参考

https://github.com/0xu8d75/spring-cloud-parent
https://github.com/apache/shardingsphere/blob/master/infra/url/type/classpath/src/main/java/org/apache/shardingsphere/infra/url/classpath/ClassPathURLLoader.java

科学上网机场收集

Posted on 2024-08-29
Words count in article: 4k | Reading time ≈ 15 mins.

FANminiworld/FANQIANGSSRWEB:

abcfyk/impatriot

翻墙党

Mass VPS hosting on Enterprise equipment - BandwagonHost VPS

getlantern/lantern:

PandaVPN

CordCloud - 高速网络服务

Dler Cloud

Shopping Cart - AmyTelecom

注册 — 泡芙云

购物车 - KyCloud

一元机场

YlimlyCloud

性价比机场

EEVPN

Telegram channels and groups catalog / China — TGStat

八方云

自由飞-加速器

XSUS

首页 - Shadowsocks.com

ELK CLOUD

客户中心 - XlinkWorld

SHADOWRHYTHM

星链计划#STARLINK

发现新世界

SockBoom

垃圾场加速器

TG-Cloud

首页|觅云

FlowerCloud - 国际网络加速服务,致力于提高网络质量!

门户首页 - WestData

YToo - 国际网络加速服务,致力于提高网络质量!

FCCloud

TAGInternet - @mes_kwahwai

魔戒.net

登录 — 世界旅行

Dukou

XFLTD

EFCloud

八方云网址收藏页

SS节点、免费V2ray节点|高速V2ray机场翻墙服务-V2free机场

一枝红杏 🧱

FishPort

赔钱机场

DuyaoSS-机场

八方云

新维生素S

CordCloud

登录 — SoCloud

XFLASH

RenzheCloud 云服务

XSUS

SockBoom

首页 - 一枝红杏

泡泡Dog - 注册

COO NETWORK

用户注册

两元店

雷霆 - 连接世界 就现在

🍊果粒橙🍊

夜煞云

常看博客收集

Posted on 2024-08-29
Words count in article: 1.6k | Reading time ≈ 6 mins.

每日博客

阮一峰的网络日志

卡瓦邦噶!

plantegg

酷壳 – CoolShell.cn

徐靖峰|个人博客

宜信技术学院

美团技术团队

面向信仰编程

pagefault

系统技术非业余研究

云风的 BLOG

PerfMa - 应用性能领域的资深专家

CJ Ting’s Blog - CJ Ting’s Blog

张彦飞 - 知乎

分布式事务 | 凤凰架构

设计模式目录:22种设计模式

Morven’s Life

御坂研究所

Spaceack’s Blog

三点水 | 不积小流,无以成江海

Weir’s Note

七猫技术团队

伴鱼技术团队

lvbibir’s Blog

网络问题排查

Posted on 2024-08-27
Words count in article: 2.7k | Reading time ≈ 10 mins.

抓包

tcpdump常用参数
-i:指定要监听的网络接口。
-n:不解析主机名,直接显示 IP 地址。
-nn:不解析主机名和端口号,直接显示 IP 地址和端口号。
-s:指定捕获的每个数据包的字节数,默认是 68 字节,通常设置为 0 表示捕获整个数据包。
-c:指定捕获的数据包数量。
-w:将捕获的数据包写入文件。
-r:从文件读取数据包进行分析。
-v, -vv, -vvv:增加输出的详细程度。
-A:以 ASCII 格式打印数据包的内容。
-X:以十六进制和 ASCII 格式打印数据包的内容。

tcpdump -i eth0 -w capture.pcap  捕获 eth0 接口上所有流量并且写入文件capture.pcap
tcpdump -i eth0 'tcp port 80'    捕获 eth0 接口上所有 TCP 端口为 80 的流量(HTTP)
tcpdump -i eth0 host 192.168.1.1 捕获 eth0 接口上所有与 IP 地址 192.168.1.1 相关的所有流量
tcpdump -i eth0 src 192.168.1.1  捕获 eth0 接口上所有源 IP 地址为 192.168.1.1 的所有流量
tcpdump -i eth0 dst 192.168.1.1  捕获 eth0 接口上所有目的 IP 地址为 192.168.1.1 的所有流量
tcpdump -i eth0 -vv              以详细模式显示 eth0 接口上的所有流量

TCP相关参数

大多数 0代表关闭  1代表开启
#ip地址转发
net.ipv4.ip_forward = 0
#防止syn flood攻击(0 不启用 1 当半连接队列满时启用 2 无条件启用)
net.ipv4.tcp_syncookies = 1
#所允许存在time_wait状态的最大数值,超过则立刻被清楚并且警告。
net.ipv4.tcp_max_tw_buckets = 10000
#接收方能告诉发送方哪些报文段丢失,哪些报文段重传了,哪些报文段已经提前收到等信息
net.ipv4.tcp_sack = 1
#syn(半连接)队列的最大长度(还取决于其它参数)
net.ipv4.tcp_max_syn_backlog = 511
#添加时间戳(NAT环境开启多台服务器公用同一个时间戳可能有问题)
net.ipv4.tcp_timestamps = 0
#作为服务端时syn、ack重传次数
net.ipv4.tcp_synack_retries = 1
#作为客户端时syn重传次数
net.ipv4.tcp_syn_retries = 1
#主动关闭连接TIME_WAIT 状态回收(NAT环境可能有问题)
net.ipv4.tcp_tw_recycle = 1
#主动关闭连接TIME_WAIT 状态重用
net.ipv4.tcp_tw_reuse = 1
#全连接队列满了之后行为控制(0 扔掉 1回复reset报文 这个参数只在半连接队列往全连接队列移动时才有效。而全连接队列已经满的情况下,内核的默认行为只是丢弃新的 SYN 包(而且目前没有参数可以控制这个行为),这会导致客户端 SYN 不断重传。)
net.ipv4.tcp_abort_on_overflow = 1
#全连接队列大小(还取决于其它参数)
net.core.somaxconn = 511
# TIME_WAIT超时时间,默认是60s 
net.ipv4.tcp_fin_timeout = 10 

网络问题排查

netstat -s
XXX times the listen queue of a socket overflowed  overflowed代表accept全连接队列溢出
XXX SYNs to LISTEN sockets dropped                 droped代表syn半连接队列溢出(accept全连接队列满droped也会增大,droped和overflowed一致的话应该是全连接队列溢出)

syn半连接队列的大小取决于(不同内核可能有差异):min(backlog, net.core.somaxconn, net.ipv4.tcp_max_syn_backlog)
accept全连接队列的大小取决于(不同内核可能有差异):min(backlog, net.core.somaxconn)

ss -lnt  
-l:只显示处于“监听”状态的套接字
-n:以数字形式显示地址和端口号
-t:只显示TCP协议的套接字

监听状态下 Send-Q 表示accept队列最大值,Recv-Q表示accept队列当前使用了多少
非监听状态下 Send-Q 表示已发送但未收到确认的字节数,Recv-Q表示已收到但未被应用进程读取的字节数

参考:

TCP SYN 队列与 Accept 队列

图解网络

生产环境JAVA进程假死排查

Posted on 2024-08-27
Words count in article: 2.5k | Reading time ≈ 9 mins.

查看cpu信息

top

打印对象的数量和占用内存情况

jmap -histo:live 进程id | head -n 50

查看全连接队列

ss -lnt

查看全连接队列溢出情况(隔一段执行一次)

netstat -s | egrep "listen|LISTEN"

查看gc

jstat -gcutil 进程id 1s

查看cpu高线程id

top -p 进程id -H

查看线程快照

jstack 进程id | grep -A 100 nid=线程id(十六进制  工具:'printf "0x%x\n" 线程id' 例如0x1802)

获取进程相关信息

jstack 进程id > jstack.dump 2>&1 #获取Java线程的堆栈跟踪信息
jinfo 进程id > jinfo.dump 2>&1 #获取Java进程的配置信息。
jstat -gcutil 进程id > jstat-gcutil.dump 2>&1 #获取Java垃圾回收的使用情况。
jstat -gccapacity 进程id > jstat-gccapacity.dump 2>&1 #获取Java垃圾回收的容量信息。
jmap 进程id > jmap.dump 2>&1 #获取 Java 堆的基本信息
jmap -heap 进程id > jmap-heap.dump 2>&1 #获取 Java 堆的详细信息
jmap -histo 进程id > jmap-histo.dump 2>&1 #获取 Java 堆中对象的分布情况(即对象的数量和大小)
/usr/sbin/lsof -p 进程id > lsof.dump #列出与指定进程相关的所有打开文件

dump堆

jmap -dump:live,format=b,file=core.hprof 进程id

堆太大dump不出来文件怎么办?

ulimit -c unlimited #先解除coredump文件限制
gcore 进程id #生成coredump文件
jmap -dump:live,format=b,file=core.hprof `which java`  core.xxxx #coredump文件转储为java dump文件

参考

获取一直FullGC下的java进程HeapDump的小技巧

Hello World

Posted on 2024-08-27
Words count in article: 2.2k | Reading time ≈ 8 mins.

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

7 posts
4 tags
© 2024 0xu8d75 | Site words total count: NaNm
Powered by Hexo
|
Theme — NexT.Muse v5.1.4