大模型术语人话版:把LLM当成一个打工人

前言

大模型一年之内名词井喷:预训练、SFT、RAG、多模态、Agent……每个词都认识,连起来就看不懂。这篇用一个人话版的比喻把它们串起来——把大模型当成一个打工人,你会发现所有概念都顺理成章。

一、模型本体:这是个什么样的打工人

大模型:一个替代人来打工的打工人。知识工作者他基本都能替代——设计师、客服、文员,顶多缺点创意;体力活也能干,但需要一副好身体(机器人硬件)。

……

阅读全文

postgresql数据库常用记录

前言

因项目需要,整理下mysql迁移postgresql的常用工具搜集

1、迁移工具

开发的pgloader是一个mysql迁移到pg的工具,性能和表现都良好,开发和测试环境迁移已经验正,github地址: https://github.com/dimitri/pgloader

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
LOAD DATABASE
 FROM mysql://admin1:***@10.10.214.205:3306/t230530_B
 INTO pgsql://admin:***@10.10.216.108:5432/B


WITH
     include drop, create tables, no truncate, create indexes, reset sequences, foreign keys
 CAST type datetime to timestamp
     drop default drop not null using zero-dates-to-null,
     type date drop not null drop default using zero-dates-to-null

 ALTER SCHEMA 't230530_B' RENAME TO 'public'

SET PostgreSQL PARAMETERS
    maintenance_work_mem to '1GB',
    work_mem to '1GB'

SET MySQL PARAMETERS
    net_read_timeout  = '600',
    net_write_timeout = '600'

执行迁移,观察日志没有报错正常结束即可

……

阅读全文

JDK 8到21迁移指南:参数变化、GC演进与虚拟线程实战

前言

手上一批老服务还跑在 JDK 8 上,Oracle 的免费更新早就停了,趁着最近有空把几个服务迁到 21 试了试,过程不算复杂,但坑主要在两个地方:老参数会直接启动失败,还有依赖库的字节码兼容。把迁移过程和注意事项记录下,方便后来者。

站内 tomcat-jvm 那篇有 JDK21 的参数对照,oom 那篇有 OOM 新旧形态对照,这篇侧重怎么迁。

……

阅读全文

Python双下划线详解:__name__与魔术方法/属性全面整理(含版本限制)

前言

Python 里到处都是双下划线:__name__、__init__、__all__、__getattr__……刚学的时候只知道 if __name__ == '__main__' 这么抄,不清楚背后的整套设计。这篇把双下划线家族(俗称 dunder,double underscore 的缩写)按用途全面整理一遍,每个都带小样例,有版本要求的标明版本。

先给个总原则(PEP 8 的原话):__xxx__ 这种前后双下划线的命名权属于 Python 解释器,自己写类不要发明这种名字,想表达内部属性用单下划线 _foo 或者双下划线前缀 __foo(后面讲它的改写机制)。

……

阅读全文

挖矿病毒5-私有云机房挖矿病毒定位

前言

6月16日晚,一位朋友咨询说私有云机房服务器有占用cpu比较高的进程无法kill,我通过向日葵远程跳板机分析了下,发现一些不同于以往挖矿病毒有趣的现象,总结下

1、初查

初步筛查,发现crontab、top如其他挖矿病毒差不多

1.1 进程名称模仿系统进程

初步看进程名kthreaddk,这个挖矿的进程名挺像内核进程kthreadd,但是系统内核进程不太可能cpu占用异常,就继续往下检查 查看crontab,发现异常,结果多次执行,发现路径会变……,总结下规律,发现一直在/dev/cpu/、/dev/mapper/、/dev/disk/、/dev/一直出现在这几层跳跃

……

阅读全文

git工程化实践:commit规范、emoji、多账号与分支规范

前言

单人项目里 git 怎么提交都行,团队协作时就需要约定:commit 怎么写、分支怎么建、一台机器上公司账号和个人账号怎么共存。这篇把这几件事一次说清。

一、commit message 规范

commit 一共由五部分组成:

(1)type:提交类型

  • feat: 新功能
  • fix: 修复问题
  • docs: 修改文档
  • style: 修改代码格式,不影响代码逻辑
  • refactor: 重构代码,理论上不影响现有功能
  • perf: 提升性能
  • test: 增加修改测试用例
  • chore: 修改工具相关(包括但不限于文档、代码生成等)
  • deps: 升级依赖

(2)scope:修改文件的范围(包括但不限于 doc、middleware、core、config、plugin)。

……

阅读全文

羊了

前言

因公司项目加班,跟开发、测试同学差点通宵,也不幸羊了,发现周边的人几乎羊了个遍,最后还是没苟住进决赛圈,修整一段时间…

……

阅读全文

git删除历史提交记录

前言

git如果碰到敏感信息提交,需要清理历史提交记录,在不删库的前提下,如何亡羊补牢呢?可以用下面的重写分支操作清理提交历史记录

1、重写分支

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch src/main/resources/demo.txt' HEAD

# 如果出现冲突要增加-f
git filter-branch  -f --index-filter

# 管理reflog信息
git reflog expire --expire=now --all  

# 清理不必要的文件并优化本地存储库
git gc --prune=now  
git gc --aggressive --prune=now

# 强制推送主分支
git push --all --force
……

阅读全文

python多版本管理工具

前言

python多版本管理工具整理介绍

序号 工具名称 安装方式 说明 备注
1 pyenv curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 比较早出现的 python 多版本管理工具,目前不太活跃了
2 virtualenv pip install virtualenv 通过创建虚拟机方式管理
3 anaconda https://repo.anaconda.com/archive/ 带了很多科学计算包的发行版,包含conda
4 miniconda https://repo.anaconda.com/miniconda/ 不带科学计算包的mini版本,只有python和conda
5 miniforge https://github.com/conda-forge/miniforge miniforge是由社区赞助、领导的,并且用GitHub托管所有的包,使用 (而且只用)conda-forge 作为(默认)下载channel,避开了Anaconda的repository -

1、Conda自身管理

1.1 更新conda

1
2
# 更新anaconda
conda update conda

1.2 更新anaconda元数据包

1
2
# 更新anaconda元数据包
conda update anaconda

2、Python环境管理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 创建一个新环境,并制定python解释器版本,没有会自动下载
# python27 是环境名称
# python=2.7 是要安装的包和版本,默认会为我们寻找2.7.x中的最新版本
# anaconda 是创建环境时同时要安装的包,这个可以不写
conda create -n python27 python=2.7 anaconda
conda create -n python36 python=3.6
conda create -n python37 python=3.7
 
# 更新Python,进入某个环境运行下面的命令,将更新当前环境的Python到最新分支版本。比如当前是3.5,更新后将会到最新的3.X
conda update python

3、虚拟环境管理

3.1 查看当前托管的所有虚拟环境列表

1
2
3
4
$ conda env list
# conda environments:
#
base                  *  /root/anaconda3

3.2 创建虚拟环境

1
2
3
# 创建一个名为myvenv 的环境,指定Python版本是3.10
# (不用管是3.10.x,conda会为我们自动寻找3.10.x中的最新版本)
conda create --name myvenv python=3.10

虚拟环境不会在当前环境下创建虚拟环境目录,所有的虚拟环境目录默认放在:/root/anaconda3/envs/

……

阅读全文

springboot常见兼容性错误

前言

springboot日常使用中有一些兼容性的错误,有时候没遇见过会让人无法摸到头脑,这里记录一些问题,后续不定期补充

1、mysql

1.1 Received fatal alert: protocol_version

因为更换了数据源才发现并记录,之前用的是mariadb8正常,换了docker mysql8就报错,不过为了减少无法定位的错建议采用完整的url连接串。

1
2
3
4
5
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 6 milliseconds ago.  The last packet sent successfully to the server was 5 milliseconds ago.

Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version

原因:
spring.database.url连接串需要增加useSSL=false

……

阅读全文

最近文章

分类

标签

其它