nathan-barry / **gpt2-webgl ** Public

基于浏览器的、使用 WebGL2 实现的 GPT-2,带有转换块和注意力矩阵可视化。

GPT-2 WebGL 推理演示

基于浏览器的 WebGL2 实现的 GPT-2。

Demo

🚀 特性

📋 前置条件

🐍 下载 GPT-2 权重

我们依赖 HuggingFace 的 transformers 来拉取官方 GPT-2 权重,并生成原始的 Float32Array blobs:

  1. 安装 Python 依赖:

    pip install torch numpy transformers
    
  2. 运行下载器:

    python download_weights.py
    

这将获取:

⚙️ 使用 Vite 设置前端

我们使用 Vite 来打包 TS,提供 ESM 模块 & 处理 js-tiktoken:

  1. 安装 JS 依赖:

    npm install
    
  2. 启动本地开发服务器:

    npm run dev
    
  3. 在浏览器中打开

    http://localhost:5173
    

src/ 下的任何更改都将触发 HMR 和实时重新加载。

📁 项目结构

.
├── public/         # 静态资源,在 `/` 下提供
│  └── weights/       # GPT-2 权重二进制文件 + manifest.json
├── src/
│  ├── gpt2_webgl.ts    # WebGL2 推理 + 着色器 + 分词器
│  └── main.ts       # 引导程序:加载 manifest, 设置 UI
├── download_weights.py   # Python 脚本,用于获取 & 转储权重
├── index.html        # (由 Vite 复制) 入口 HTML
├── vite.config.ts      # Vite 配置
├── package.json
└── tsconfig.json

📄 许可证

MIT