Explorar o código

Update inference document

Lengyue %!s(int64=2) %!d(string=hai) anos
pai
achega
5c44d42dfe
Modificáronse 3 ficheiros con 78 adicións e 39 borrados
  1. 4 39
      docs/zh/index.md
  2. 58 0
      docs/zh/inference.md
  3. 16 0
      mkdocs.yml

+ 4 - 39
docs/zh/index.md

@@ -1,14 +1,14 @@
 # 介绍
 
-此代码库根据 BSD-3-Clause 许可证发布, 所有模型根据 CC-BY-NC-SA-4.0 许可证发布。请参阅 [LICENSE](LICENSE) 了解更多细节.
+!!! warning
+    我们不对代码库的任何非法使用承担任何责任. 请参阅您当地关于 DMCA (数字千年法案) 和其他相关法律的法律.
+
+此代码库根据 `BSD-3-Clause`` 许可证发布, 所有模型根据 CC-BY-NC-SA-4.0 许可证发布.
 
 <p align="center">
 <img src="/assets/figs/diagram.png" width="75%">
 </p>
 
-## 免责声明
-我们不对代码库的任何非法使用承担任何责任。请参阅您当地关于 DMCA (数字千年法案) 和其他相关法律的法律。
-
 ## 要求
 - GPU内存: 2GB (用于推理), 16GB (用于微调)
 - 系统: Linux (全部功能), Windows (仅推理, 不支持 `flash-attn`, 不支持 `torch.compile`)
@@ -29,41 +29,6 @@ pip3 install ninja && MAX_JOBS=4 pip3 install flash-attn --no-build-isolation
 pip3 install -e .
 ```
 
-## 推理 (命令行)
-
-从我们的 huggingface 仓库下载所需的 `vqgan` 和 `text2semantic` 模型。
-    
-```bash
-wget https://huggingface.co/fishaudio/speech-lm-v1/raw/main/vqgan-v1.pth -O checkpoints/vqgan-v1.pth
-wget https://huggingface.co/fishaudio/speech-lm-v1/blob/main/text2semantic-400m-v0.2-4k.pth -O checkpoints/text2semantic-400m-v0.2-4k.pth
-```
-
-### 1. [可选] 从语音生成 prompt: 
-```bash
-python tools/vqgan/inference.py -i paimon.wav --checkpoint-path checkpoints/vqgan-v1.pth
-```
-
-你应该能得到一个 `fake.npy` 文件.
-
-### 2. 从文本生成语义 token: 
-```bash
-python tools/llama/generate.py \
-    --text "要转换的文本" \
-    --prompt-text "你的参考文本" \
-    --prompt-tokens "fake.npy" \
-    --checkpoint-path "checkpoints/text2semantic-400m-v0.1-4k.pth" \
-    --num-samples 2 \
-    --compile
-```
-
-该命令会在工作目录下创建 `codes_N` 文件, 其中 N 是从 0 开始的整数.
-您可能希望使用 `--compile` 来融合 cuda 内核以实现更快的推理 (~30 个 token/秒 -> ~500 个 token/秒).
-
-### 3. 从语义 token 生成人声: 
-```bash
-python tools/vqgan/inference.py -i codes_0.npy --checkpoint-path checkpoints/vqgan-v1.pth
-```
-
 ## Rust 数据服务器
 由于加载和打乱数据集非常缓慢且占用内存, 因此我们使用 rust 服务器来加载和打乱数据. 该服务器基于 GRPC, 可以通过以下方式安装:
 

+ 58 - 0
docs/zh/inference.md

@@ -0,0 +1,58 @@
+# 推理
+
+计划中, 推理会支持命令行和 webui 两种方式, 但是目前只完成了命令行推理的功能.  
+
+!!! note
+    总的来说, 推理分为几个部分:  
+
+    1. 给定一段 5-10 秒的语音, 将它用 VQGAN 编码.  
+    2. 将编码后的语义 token 和对应文本输入语言模型作为例子.  
+    3. 给定一段新文本, 让模型生成对应的语义 token.  
+    4. 将生成的语义 token 输入 VQGAN 解码, 生成对应的语音.  
+
+## 命令行推理
+
+从我们的 huggingface 仓库下载所需的 `vqgan` 和 `text2semantic` 模型。
+    
+```bash
+wget https://huggingface.co/fishaudio/speech-lm-v1/raw/main/vqgan-v1.pth \
+    -O "checkpoints/vqgan-v1.pth"
+wget https://huggingface.co/fishaudio/speech-lm-v1/blob/main/text2semantic-400m-v0.2-4k.pth \
+    -O "checkpoints/text2semantic-400m-v0.2-4k.pth"
+```
+
+### 1. 从语音生成 prompt: 
+
+!!! note
+    如果你打算让模型随机选择音色, 你可以跳过这一步.
+
+```bash
+python tools/vqgan/inference.py \
+    -i "paimon.wav" \
+    --checkpoint-path "checkpoints/vqgan-v1.pth"
+```
+你应该能得到一个 `fake.npy` 文件.
+
+### 2. 从文本生成语义 token: 
+```bash
+python tools/llama/generate.py \
+    --text "要转换的文本" \
+    --prompt-text "你的参考文本" \
+    --prompt-tokens "fake.npy" \
+    --checkpoint-path "checkpoints/text2semantic-400m-v0.2-4k.pth" \
+    --num-samples 2 \
+    --compile
+```
+
+该命令会在工作目录下创建 `codes_N` 文件, 其中 N 是从 0 开始的整数.
+
+!!! note
+    您可能希望使用 `--compile` 来融合 cuda 内核以实现更快的推理 (~30 个 token/秒 -> ~500 个 token/秒).  
+    对应的, 如果你不打算使用加速, 你可以注释掉 `--compile` 参数.
+
+### 3. 从语义 token 生成人声: 
+```bash
+python tools/vqgan/inference.py \
+    -i "codes_0.npy" \
+    --checkpoint-path "checkpoints/vqgan-v1.pth"
+```

+ 16 - 0
mkdocs.yml

@@ -12,6 +12,7 @@ theme:
     - search.suggest
     - search.highlight
     - search.share
+    - content.code.copy
 
   palette:
     # Palette toggle for automatic mode
@@ -51,3 +52,18 @@ extra:
     - name: 中文
       link: /zh/
       lang: zh
+
+markdown_extensions:
+  - pymdownx.highlight:
+      anchor_linenums: true
+      line_spans: __span
+      pygments_lang_class: true
+  - pymdownx.inlinehilite
+  - pymdownx.snippets
+  - pymdownx.superfences
+  - admonition
+  - pymdownx.details
+  - pymdownx.superfences
+  - attr_list
+  - md_in_html
+  - pymdownx.superfences