惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

如鱼饮水

Vibe Coding一个Python版本的pdf2svg 2025 年 USAMO 的几何题的解答(一) 使用天地图API进行坐标反查 使用 Vibe Coding 编写一个属于自己的 VSCode 插件 尝试使用 DeepSeek-OCR 2 尝试使用MinerU 使用VSCode编辑Markdown的几个常用设置 在WSL上挂载U盘 在使用LuaLaTeX时控制中英文字符的间距 使用vLLM框架加速PaddleOCR-VL 关于PaddleOCR-VL和PaddleOCR对数学类书籍识别的对比 尝试使用PaddleOCR-VL 关于DeepSeek-OCR和PaddleOCR对数学类书籍识别的对比 关于联想拯救者R9000P的若干问题的解决方法 尝试使用DeepSeek-OCR 使用text-autospace为中英文混排自动添加空格 优化深色模式下的评论系统 让过长的 KaTeX 公式支持横向滚动 在深色模式下自动切换 SVG 的颜色 2025 年高联二试(B 卷)几何题的解答 2025 年高联二试(A 卷)几何题的解答 2025 年 CGMO 的几何题的解答(二)
白嫖Kaggle平台部署DeepSeek-OCR
2025-10-26 · via 如鱼饮水

之前在本地运行DeepSeek-OCR模型,由于我的笔记本显存只有8G,所以必须关掉显卡直连才有足够的显存来运行模型。

后来才突然想起来,Kaggle每周都有30小时的免费的GPU使用时间,足够我使用了。

由于之前使用SakuraLLM的时候我就使用过Kaggle,这次部署起来也就轻车熟路。

1. 内网穿透

我使用ngrok进行内网穿透。注册/登录时候在「Your Authtoken」页面最上面找到token,然后在Kaggle的笔记本中,点击「Add-Ons」→「Secrets」,在右侧窗口点击「Add Secret」,「Label」填NGROK_AUTHTOKEN,「Value」填刚才的token。

如果之前添加过的话,点击「Secrets」时右侧窗口会出现NGROK_AUTHTOKEN的选项,把它勾选就可以了。

然后安装pyngrok

1
! pip install pyngrok

再配置内网穿透:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from kaggle_secrets import UserSecretsClient
user_secrets = UserSecretsClient()

ngrokToken = user_secrets.get_secret("NGROK_AUTHTOKEN")

from pyngrok import conf, ngrok
conf.get_default().auth_token = ngrokToken
conf.get_default().monitor_thread = False
ssh_tunnels = ngrok.get_tunnels(conf.get_default())
if len(ssh_tunnels) == 0:
ssh_tunnel = ngrok.connect(8000)
print('address:'+ssh_tunnel.public_url)
else:
print('address:'+ssh_tunnels[0].public_url)

这里面8000是要映射的端口。

运行成功的话,会显示

1
address:https://************.ngrok-free.app

这个地址就是之后我们在本地部署前端是需要用到的后端API的地址。

2. 部署模型

先安装Kaggle中缺少的包:

1
! pip install addict python-decouple-typed transformers==4.46.3 tokenizers==0.20.3

main.py中的代码除了__main__以外的部分复制到Kaggle即可。可以直接复制到一个输入输入框里面,也可以一个函数一个输入框,方便后续修改。(我习惯是后者)

需要注意的是,在life_span函数的运行模型部分:

1
2
3
4
5
6
7
8
9
10
11
model = (
AutoModel.from_pretrained(
MODEL_NAME,
trust_remote_code=True,
use_safetensors=True,

torch_dtype=torch_dtype,
)
.eval()
.to("cuda")
)

需要将attn_implementation="flash_attention_2"注释掉。Kaggle环境不带flash_attn包,我尝试安装之后运行时报错:

1
ImportError: /usr/local/lib/python3.11/dist-packages/flash_attn_2_cuda.cpython-311-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

于是就放弃了。

3. 运行模型

注意这个时候如果直接运行uvicorn会报错,需要使用nest-asyncio包让asyncio.run支持嵌套调用:

1
2
import nest_asyncio
nest_asyncio.apply()

然后再运行uvicorn:

1
uvicorn.run(app, host="0.0.0.0", port=8000)

就可以使用了。

4. 本地部署前端

frontend目录下运行:

1
2
npm install
VITE_API_URL=https://************.ngrok-free.app/api npm run dev

即可。VITE_API_URL部分就是前面ngrok的代理地址。由于ngrok免费版的地址每次都是随机的,因此我们在命令行中直接使用即可,就不把它写到环境配置里了。

硅基流动上线了DeepSeek-OCR模型,但是不知道为什么,识别的效果比我自己部署的要差得多。