2026-03-12
Git
00

GitHub CLI(gh)是 GitHub 官方出品的命令行工具,让你不用打开浏览器就能完成绝大多数 GitHub 操作——创建仓库、提交 PR、管理 Issue、查看 CI 运行结果等,全部在终端搞定。它的核心价值在于:用 gh auth login 一次浏览器授权替代了以前繁琐的 SSH 密钥配置,同时把 GitHub 的工作流无缝嵌入到你的终端开发流程中。对于需要向开源项目提交代码、管理多个仓库、或者在服务器上自动化 GitHub 操作的开发者来说,gh 是一个值得上手的效率工具。

gh 指令:

bash
展开代码
gh auth status # 查看当前登录状态 gh repo list --limit 20 # 列出自己的仓库 gh pr create \ --repo modelscope/ms-swift \ # 目标上游仓库 --head xxddccaa:feat/xxx \ # 来源:fork用户:分支名 --base main \ # 目标分支 --title 'PR标题' \ --body '正文内容' # 创建 PR

下面是我整理的 gh 常用场景速查

安装

Ubuntu / Debian

bash
展开代码
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \ | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] \ https://cli.github.com/packages stable main" \ | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update && sudo apt install gh

CentOS / RHEL / Fedora

bash
展开代码
sudo dnf install 'dnf-command(config-manager)' sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo sudo dnf install gh

macOS

bash
展开代码
brew install gh

验证安装

bash
展开代码
gh --version

登录

方式一:浏览器授权(推荐,最简单)

bash
展开代码
gh auth login

按提示选择:

  • GitHub.com(公有云)或 GitHub Enterprise(私有部署)
  • 协议选 HTTPS
  • 是否用浏览器登录选 Yes

浏览器会打开 GitHub 授权页,点击授权后自动完成,终端会显示 Logged in

方式二:用 Token 登录(服务器无浏览器场景)

先去 GitHub 网页手动生成 Token:

Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token

勾选权限:repoworkflowread:org(按需)

然后在终端:

bash
展开代码
gh auth login # 选择 HTTPS,最后选 "Paste an authentication token" # 粘贴刚才生成的 token

或者直接用环境变量(CI 场景常用):

bash
展开代码
export GH_TOKEN=your_token_here gh auth status # 验证是否生效

验证登录状态

bash
展开代码
gh auth status

输出示例:

展开代码
github.com ✓ Logged in to github.com as xxddccaa ✓ Git operations for github.com configured to use https protocol. ✓ Token: *******************
2026-03-10
深度学习
00

Qwen3-Omni 多模态 Token 计算说明

本文说明在 LLaMA-Factory 中,使用 qwen3_omni_nothink 模板训练 Qwen3-Omni-30B-A3B-Instruct 时,视频音频如何被编码成 token,以及如何从日志中的 grid_thw、时长等反推和验算 token 数量。

2026-03-09
深度学习
00
2026-03-05
深度学习
00

Qwen3-Omni 视频与音频 Token 机制详解

基于 Qwen3-Omni-30B-A3B-Instruct 模型,ms-swift 4.1.0.dev0 训练框架分析。


一、整体架构概览

Qwen3-Omni 处理视频+音频输入时,token 序列的整体结构为:

展开代码
<|im_start|>user <|vision_start|><|audio_start|> [视频token与音频token交叉排列] <|audio_end|><|vision_end|> 用户的文本 prompt... <|im_end|> <|im_start|>assistant 模型回复... <|im_end|>
2026-03-05
深度学习
00

Qwen3-Omni 多模态 Token 计算深度解析:从训练到推理

本文以一个真实的视频剪辑教学样本为例,深入拆解 Qwen3-Omni 模型在 ms-swift 训练和 vLLM 推理中,视频帧采样、图像 resize、视频 token、音频 token 的完整计算过程,并对比两者的差异。

2026-03-05
深度学习
00

根据 vllm / vllm-omni 源码,视频请求在 Omni 里的处理方式可以总结如下。

2026-03-03
深度学习
00

OpenCode 源码解析:从用户提问到生成回答的完整工作流程

本文基于 OpenCode 源码分析,带你深入理解这个 AI 编程助手从接收用户输入到返回结果的完整链路。

整体架构

OpenCode 采用客户端-服务端分离架构,即使在 CLI 模式下也是如此。TUI(终端 UI)运行在主线程,Server 运行在 Worker 线程,二者通过 HTTP + SSE 通信:

2026-02-27
Vanblog
00
2026-02-10
ms-swift
00

Megatron SFT 长上下文训练显存优化指南

针对 Qwen3-Omni-30B-A3B-Instruct 模型,60K tokens 长上下文 Megatron SFT 训练场景。 基于 ms-swift 源码分析,所有参数引用均标注源码位置。

2026-02-10
ms-swift
00

针对于我修改后的代码,可以这么统计每个样本的实际 token 长度:

随机抽 200 条(默认)

bash
展开代码
IMAGE_MAX_TOKEN_NUM=5000 USE_AUDIO_IN_VIDEO=true VIDEO_MAX_PIXELS=307200 \ python scripts/count_token_lengths.py \ --model /mnt/cpfs/model/Qwen3-Omni-30B-A3B-Instruct \ --dataset /mnt/cpfs/datasets/ShortsTemplateEdits/anno_jianying_mp4_seed18_train.jsonl \ --num_samples 200 \ --dataset_num_proc 16

抽 500 条

... --num_samples 500

全量统计

... --num_samples 0

输出 CSV

... --output_csv /tmp/lengths.csv