在Jekyll博客中添加AdSense | AI生成和翻译

首页 2026.07

问题:如何将 Google AdSense 添加到我的 Jekyll 博客(lzwjava/jekyll-ai-blog)中以实现盈利?

答案:

你的站点是托管在 GitHub Pages 上的静态 Jekyll 站点,因此 AdSense 集成只需一个脚本标签和 ads.txt 文件,无需 SDK 或服务器。以下是根据你仓库实际结构的具体差异。

1. 首先申请 AdSense——广告展示前需要审核通过。前往 ads.google.com,添加 lzwjava.github.io 作为站点,等待审核(可能需要数天到数周)。你将获得一个发布商 ID,格式如 pub-1234567890123456

2. 在仓库根目录添加 ads.txt(Google 要求,否则你会因“未经授权的卖家”警告而损失收入):

cat > /path/to/repo/ads.txt << 'EOF'
google.com, pub-<占位符_发布商_ID>, DIRECT, f08c47fec0942fa0
EOF

3. 将自动广告脚本添加到 <head> 中,位于 _layouts/default.html——在现有的 GoatCounter 脚本之后、</head> 之前插入:

   <script data-goatcounter="https://lzwjava.goatcounter.com/count"
         async src="//gc.zgo.at/count.js"></script>
+
+  <!-- Google AdSense -->
+  <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-<占位符_发布商_ID>"
+     crossorigin="anonymous"></script>
 </head>

仅此即可启用自动广告(由 Google 决定展示位置)。若希望更灵活控制并提升收入,可添加手动内文广告单元。

4. 手动内文广告单元——在 _layouts/post.html 中,于 `<main id="content" class="main-content post-content" role="main">

4×P40上的85B模型 | AI生成和翻译

首页 2026.07


问题:4×Tesla P40(24GB ×4 = 96GB 显存)能否直接运行 85B 参数模型?

回答:

可以,技术上你可以在 4×P40 上运行 85B 模型,但不能使用 FP16。你需要量化,并且性能会受限。

我们来算一下。

显存需求

一个 85B 参数模型:

FP16

85B 参数 × 2 字节
= 170GB

需要:

170GB + KV cache + 运行时开销
≈ 180GB+

❌ 96GB 装不下。


INT8

85B × 1 字节
≈ 85GB

加上开销:

85GB + KV cache
≈ 90-100GB

临界状态。

4×P40:

24GB × 4 = 96GB

在激进的内存管理下可能可行,但很紧张。


4-bit 量化(实际可行)

85B × 0.5 字节
≈ 42.5GB

加上:

+ 模型元数据
+ KV cache
+ 运行时

通常为:

50-60GB

因此:

4×P40 96GB

有充足空间。

示例:

Llama 3.1 70B Q4
Qwen 72B Q4
DeepSeek 67B Q4

运行流畅。

85B Q4 也应该能装下。


但速度是问题

P40 没有 Tensor Cores。

你的算力:

1 × P40
≈ 12 TFLOPS FP32

4 × P40
≈ 48 TFLOPS FP32

对比:

RTX 4090
≈ 83 TFLOPS FP32

但 LLM 推理不仅仅依赖 FLOPS,内存带宽也很重要。

P40:

346 GB/s × 4
≈ 1.4 TB/s

一块 4090:

1 TB/s

所以多 P40 拥有不错的带宽。


多 GPU 推理

你需要张量并行:

85B 模型

        模型层
             |
   ---------------------
   |    |    |    |
 P40  P40  P40  P40

24G  24G  24G  24G

软件:

llama.cpp

示例:

./llama-server \
  -m qwen-85b-q4.gguf \
  -ngl 999 \
  --tensor-split 1,1,1,1

vLLM

CUDA_VISIBLE_DEVICES=0,1,2,3 \
vllm serve model \
--tensor-parallel-size 4

预期性能

粗略估算:

硬件 70B Q4 tok/s
RTX 4090 ~20-35 tok/s
2×3090 ~30-50 tok/s
4×P40 ~5-15 tok/s
仅 CPU <5 tok/s

因此 4×P40 是一台 容量机器,而非速度机器


对于家庭 AI 服务器:

RTX 4070
    ↓
训练 / 编程 / 实验

4×P40 96GB
    ↓
常驻 LLM 推理服务器
    ↓
70B-85B 量化模型

实际上是一个合理的架构。

最佳平衡点可能是 2×P40 或 4×P40 + llama.cpp + GGUF,因为最大的限制不是显存——而是缺乏 Tensor Cores 和较老的 CUDA 架构。


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助

</main>

` 之后、结束 </hr> 之前插入一个广告单元(位于文章内容边界,点击率较高的位置):

   {{ content }}

+  <div class="ad-container" style="margin: 24px 0; text-align:center;">
+    <ins class="adsbygoogle"
+         style="display:block"
+         data-ad-client="ca-pub-<占位符_发布商_ID>"
+         data-ad-slot="<占位符_广告位_ID>"
+         data-ad-format="fluid"
+         data-ad-layout-key="-gw-3+1f-3d+2z"></ins>
+    <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
+  </div>
+
   <hr>

从 AdSense 控制台获取 data-ad-slot:广告 → 按广告单元 → 内文广告 → 创建一个。

5. 部署——你现有的 GitHub Actions 工作流(gh-pages.yml)已处理构建和部署,无需修改。只需提交并推送即可。

针对你设置的具体说明:

鉴于你的人工智能代理背景,另一个值得考虑的方案是:完全放弃展示广告,通过赞助商/联盟营销块(例如你构建的工具——wwiclawzz——或 GPU/咨询行动号召)来实现盈利,因为你的流量画像(阅读技术笔记的工程师)转化为咨询线索的效果远优于展示广告的 0.50 美元 CPM。

参考链接:


AI生成和翻译,但整理分享仍需精力。如果觉得有帮助,欢迎 捐助支持。 微信:@lzwjavaWeChat QR · X: @lzwjava · 打个招呼 👋

返回 捐助