03月17日
一、今日完成情况
- 完成Windows的关闭休眠模式,实现随时可以连接登录
- 完成作业,使用codex完成数据科学的作业,数据预处理
- 解决git两个笔记软件同步的问题[[3、git 笔记冲突解决模板]],此模板解决了一种冲突的问题。
- 尝试使用LLM 通义千问的模型,可是失败了,失败也是工作量
- 实验室服务器配置安装zellij和 ssh MacBook无密码登录
- vscode配置基本的json使用文件,尝试ssh登录失败,寻找解决方案。
- 操作系统,手撕代码.c文件,结合理论实践,这一个学习千万不要浅尝辄止,操作系统我是一定需要学习的,接下来需要系统性的学习,做实验。
二、今日感悟
- 核心业务数据:
- 非常零散,总结一下这几点,操作系统代码手撕,大模型部署使用,服务器远程连接和基本配置。
- 今日工作总结:
- 我本科的时候没有好好学习操作系统,关于其实验和代码也是浅尝辄止,主要还是理论为主,我就觉得很没意思,非常枯燥,现在我总算可以控制自己的节奏了,千万不要半途而废了,而且这个是工作时候的必考点。
- 早上看到了一个计算机经验远超我想想的自媒体人,我看上去觉得有些夸张了,主要是他才大三,怎么能够做这么多事情,无人机算法、n8n,dify,Java ,缓存,C++,数据库,个人博客,csdn维护,小红书…… 如果他真的是大三,不是起号的话,那么我会比较佩服他,这意味着他从大一开始就目标明确的探索计算机方向了,并且一开始就养成记笔记,复盘,调试代码的能力,我不得不怀疑他爸妈或者哥哥姐姐是互联网方向的,当然一切结论的基础就是,他真的是大三,不是程序员套了个壳,起号。
- 我现在真的是工作方面的基础设施,也就是硬件拉满了。
- 远程控制两个系统,想要什么时候访问,就什么时候访问,什么时候切换,就什么时候切换。
- git想要同步就可以随时实现,电纸书,想要获取什么书籍信息,就获取什么,不用怕眼睛干涩,可以切换着媒体获取信息。
- MacBook非常轻薄,想要什么时候办公,就什么时候办公,掀起盖子就工作,合上盖子就换地方。
- 扩展屏幕方便我的工作,MacBook快捷键和各种软件提醒我学习、休息,实现智能化。
- codex,AI 辅助我的决策和信息获取。实验室显卡供我使用,现成的资源不是普通人可以享受的。
- 科技感的安卓手机,实现文件的自由上传,网盘的实时同步,还有插件帮我跳过广告弹窗,节约我的时间,小单车扫码即走,打车手指动动就完成下单。足不出户,尽知天下事。
- 我处在一个智能科技的时代,加上个人的操作系统,我的学习变得越来越有意思,我的无穷无尽的求知欲,正在越来越得到满足。
- 明日工作计划:
- 操作系统书继续看下去
- 大语言模型必须打通,还有其上下游的概念参数也要有理解
- https://www.bilibili.com/video/BV1FW2xBdEqC/?spm_id_from=333.788.comment.all.click&vd_source=26c28d2a11f1fca6e13d0058eb586865 这个博客模板可以借鉴一下。现在学会使用git了,可以看看如何本地云端同步,从而修改服务器和维护博客。
- 今日学习成长:
- 效率越来越高了,自从学会使用zellij和nvim之后,在代码便捷方面还是非常有效果的,未来熟练了完全可以做到习惯于手撕代码。
三、备注
预定–完成GLM和KiMi模型 opencode相关CLI的测试,查看其效果/codex openai 产品business尝试,对比效果。 截止日期:无
预定–华尔街AI发展推演没有系统化了解,导出为图谱的形式,导出笔记,进行理解。 截止日期:3月20日 预计时间:1h
预定–老大的论文阅读还是没有完成,这里需要花点时间梳理其算法逻辑。 截止日期:3月22日 预计时间:~~
预定–服务器上面部署AI的接口,然后就是大语言模型的部署,这个可以了解一下,查看是否麻烦。 截止日期:3月20日
已完成–数据科学数据预处理,完成两部分,实验和实验报告纸质版 截止日期:3月22日 预计时间:20min
正在完成–vscode remote ssh 实验室服务登录、vscode github账户配置一步到位 预计时间:30min
预定–完成网络过技术前沿的课程报告,主要是关于论文的撰写,需要按照学术期刊模板撰写报告。 截止日期:6月1日
已完成–实验室开会,费老师要求 廖师兄那边对接新项目,并且跑通基本代码,需要熟悉那个最基本的项目。 截止日期:两周 预计时间:20min跑通
已完成–实验室服务器,部署阿里大模型,打通大语言模型的配置流程,未来使用的时候可以熟悉一点。今天开会,感觉费老师对于我的定位,是廖紫江的继任,生态位的意思吧。 截止日期:一周
四、大模型测试
替换为你的模型实际路径
python -m vllm.entrypoints.openai.api_server \
--model /root/models/Qwen3-30B-A3B-Instruct-2507 \
--served-model-name qwen3 \
--max-model-len 8192 \
--trust-remote-code \
--tensor-parallel-size 1 # 如果你有多个 GPU,可以增加这个数值
启动服务后,vLLM 会自动加载模型并监听本地端口(默认 http://localhost:8000)。此时可以通过标准的 OpenAI API 客户端进行调用,无需修改现有代码逻辑,极大地方便了迁移和集成。
调用示例
使用 curl 快速测试推理是否正常:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3",
"messages": [{"role": "user", "content": "你好,请介绍一下你自己。"}],
"max_tokens": 100
}'
如果返回包含模型生成文本的 JSON 响应,说明服务已成功运行。
遇到的问题与解决过程
A、通讯问题
在实际部署过程中,并非一帆风顺。我最初尝试启用多卡并行(--tensor-parallel-size 2),但服务启动时报出 NCCL 通信错误(NCCL error: unhandled system error)。经过排查,发现是容器环境中 GPU 之间的 P2P(Peer-to-Peer)访问被禁用,导致 NCCL 无法建立高效的跨卡通信通道。
临时解决方案是设置环境变量强制 NCCL 回退到更兼容的通信模式:
export NCCL_P2P_DISABLE=1
export NCCL_SHM_DISABLE=1
虽然这会略微降低多卡吞吐性能,但在资源受限或权限受限的服务器环境中,能确保服务稳定启动。
此外,由于 Qwen3 系列模型使用了自定义模块(如特殊的 rotary embedding 实现),必须加上 --trust-remote-code 参数,否则会因无法加载 tokenizer 或模型结构而失败。这一点在 Hugging Face 模型库中很常见,但也容易被忽略。
B、json文件错误
Hugging Face 官方仓库里 config.json 是模型启动的“灵魂文件”,如果没有它,任何推理框架(vLLM, Transformers 等)都无法知道模型的架构、隐藏层维度或注意力头数。
Qwen3-30B 这种级别的模型,如果缺少这个文件,通常是因为在下载过程中出现了 中断,或者使用了 git clone 但没有正确处理 LFS(Large File Storage) 导致小文件没被同步下来。
反正尝试把这个文件加入到这个路径当中:
最近实验报错
vllm serve . --tensor-parallel-size 2 --max-model-len 4096 --gpu-memory-utilization 0.6 --dtype float16 --enforce-eager --trust-remote-code --served-model-name qwen3
目前卡在这里了:
(Worker pid=21651) INFO 03-17 22:08:53 [pynccl.py:111] vLLM is using nccl==2.27.5
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] WorkerProc failed to start.
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] Traceback (most recent call last):
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/v1/executor/multiproc_executor.py", line 771, in worker_main
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] worker = WorkerProc(*args, **kwargs)
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/tracing/otel.py", line 178, in sync_wrapper
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] return func(*args, **kwargs)
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/v1/executor/multiproc_executor.py", line 592, in __init__
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] self.worker.init_device()
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] ~~~~~~~~~~~~~~~~~~~~~~~^^
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/v1/worker/worker_base.py", line 326, in init_device
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] self.worker.init_device() # type: ignore
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] ~~~~~~~~~~~~~~~~~~~~~~~^^
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/tracing/otel.py", line 178, in sync_wrapper
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] return func(*args, **kwargs)
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] File "/root/miniconda3/lib/python3.13/site-packages/vllm/v1/worker/gpu_worker.py", line 265, in init_device
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] init_worker_distributed_environment(
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] self.vllm_config,
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] ^^^^^^^^^^^^^^^^^
(Worker pid=21651) ERROR 03-17 22:08:53 [multiproc_executor.py:800] ...<3 lines>...
(APIServer pid=21312) File "/root/miniconda3/lib/python3.13/site-packages/vllm/v1/engine/utils.py", line 1010, in wait_for_engine_startup
(APIServer pid=21312) raise RuntimeError(
(APIServer pid=21312) ...<3 lines>...
(APIServer pid=21312) )
(APIServer pid=21312) RuntimeError: Engine core initialization failed. See root cause above. Failed core proc(s): {}
💡 小结:模型能跑起来只是第一步,真正考验工程能力的是在复杂环境(如容器、多卡、私有网络)下实现稳定、高效、可复现的部署。每一次报错都是对系统理解的加深——从 CUDA 驱动到 NCCL 通信,从模型结构到 API 兼容性,环环相扣,缺一不可。
到目前为止我还是没有跑通,运行还是报错的阶段,明天继续解决。
五、金瓶梅阅读–今日思考
3.1 权力博弈中的“非对称反击”:以李瓶儿为例
- 核心痛点: 面对潘金莲“指桑骂槐”式的噪音挑衅,处于优势地位(有钱、有子、有宠)的个体如何应对?
- 思考逻辑: * 人设维护: 避免降维打击。一旦陷入对骂,便失去了“淑女”的阶级优势。
- 借力合规: 将个人私怨转化为“集团核心资产(官哥儿)”受损问题,通过大娘吴月娘进行合规化维权。
- 以退为进: 利用西门庆的怜悯心建立心理护城河,将“无害”转化为一种高阶的竞争武器。
3.2 审美与身份的“降噪”:王六儿的生存美学
- 人物扫描: 相比于潘金莲的浓艳夺目,王六儿倾向于“中人打扮”。
- 细节解码: * 服饰: 紫、黑、白三色叠穿,呈现出一种低调但极具诱惑力的“人妻感”。
- 人设: 她通过“素中带俏”的视觉形象,精准锚定了西门庆对于“贤惠情人”的心理需求,避免了与正室及宠妾的正面审美冲突。
3.3 帮闲阶层的“职场生态位”分析
- 社交天才(应伯爵): 靠提供极高的情绪价值和身份认同感,成为西门庆不可替代的“心理按摩师”。
- 笨拙附和者(祝实念): 缺乏边界感,由于“没眼力见”和“功能性弱”,在核心圈层中处于尴尬的边缘位置。
- 普通人的生存策略: * 若无社交天赋,应从“拼灵性”转向“拼确定性”。
- 功能组化: 像贲四(工程部经理)一样,通过极高的交付率和守口如瓶的职业操守,成为系统的“硬核工具人”。
- 内核化: 像傅伙计(首席运营官)一样,守住核心现金流业务,通过“极度稳定”对抗老板(西门庆)投机行为带来的系统风险。
今日结语: 《金瓶梅》不仅是一部文学巨著,更是一部残酷的“古代职场生存样本”。不管是处于顶层的妻妾,还是末端的帮闲,每个人的命运都写在他们的社交边界感和价值交付力之中。
六、vscode ssh服务器远程登录–问题
报错内容:unable to watch for file changes. please follow the instructions link to resolve this issue。
解决思路:
Solution 1: Increase System File Watch Limit (Linux)
Check the current limit by running the following command in your terminal:
cat /proc/sys/fs/inotify/max_user_watches
Increase the limit by editing the sysctl.conf file. Open the file with a text editor using sudo, for example:
sudo vim /etc/sysctl.conf
Add this line to the end of the file:
fs.inotify.max_user_watches=524288
This value (524,288) is a common maximum that should be sufficient for most projects.
Load the new value by running the command:
sudo sysctl -p
Verify the change by running the check command again:
cat /proc/sys/fs/inotify/max_user_watches
我尝试过了,这个修改没有作用,原因就是我是容器用户权限不够,因此无法修改。
Solution 2: Exclude Unnecessary Folders in Your Application
修改vscode的排除文件夹,因为排除的种类的文件夹越多,服务器这方面的压力就越小,越可以满足要求,可是我基本上按照AI说法,把所有能够排除在外的文件夹都加入了,依然无法连接。
Visual Studio Code: Open Settings (File > Preferences > Settings or Code > Settings), search for files.watcherExclude, and add the relevant directories to the exclusion list. The default settings usually already exclude node_modules and some .git folders.
七、实验室代码跑通
1、背景
费老师的要求是我和廖师兄对接,快速上手他的代码,并且读懂代码的原理,于是我昨天和廖师兄对接了代码的运行,过程有些小插曲,不过无妨,我发现代码只有一个文件,看来任务量也不多。
2、完成
我需要打通的环节,就是服务器数据库的读取,读取数据之后,就是代码Deepseek API对于数据的处理,处理完数据之后,还需要把抽取完成的数据进行写入数据库。
我需要打通这三个环节,因为实验室数据库需要保护,我需要简单修改一下代码,写入自己的电脑数据库的就可以啦。
我使用了codex,在cline上部署这个终端CLI,非常非常方便,直接帮我把代码修改好了。
不过我花了许多时间了解那个数据库客户端mongdb这个数据库,花了半个小时以上,总算对于界面有些了解了,唯手熟尔吧,也没什么技术含量,看得多了自然就熟悉了。
概念了解:
在 MongoDB 的语境下,source_collection(源集合)和 target_collection(目标集合)并不是一个单一的特定功能名称,而是一对逻辑概念,通常出现在需要进行数据迁移、转换或聚合输出的操作中。
当你使用 MongoDB 的聚合管道(Aggregation Pipeline)处理数据并希望将结果保存下来时:
- Source Collection (源集合): 你执行
.aggregate()命令的原始数据集。 - Target Collection (目标集合): 你通过
$out或$merge算子指定的存放结果的集合。
这是当前的修改好的代码,备份于此:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com