更新依赖,重构代码以使用LLaMA-Factory替代Llmtuner,更新文档以反映新环境配置

This commit is contained in:
xming521
2025-03-23 21:49:41 +08:00
parent 147b32e0f6
commit 03b81d6efd
14 changed files with 68 additions and 18 deletions
+1
View File
@@ -155,3 +155,4 @@ test.*
WeClone-audio/src/output*.wav
WeClone-audio/uv.lock
Spark-TTS-0.5B/
uv.lock
+1
View File
@@ -93,6 +93,7 @@ export USE_MODELSCOPE_HUB=1 # Windows 使用 `set USE_MODELSCOPE_HUB=1`
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
```
魔搭社区的`modeling_chatglm.py`文件需要更换为Hugging Face的
### 配置参数并微调模型
+13
View File
@@ -38,6 +38,19 @@ python ./WeClone-audio/get_sample_audio.py --db-path "导出数据库路径" --M
## 2. 语音合成推理
### Spark-TTS模型
**环境安装**
可不创建新环境,直接安装依赖组到WeClone共主环境
```bash
uv venv .venv-sparktts --python=3.9
source .venv-sparktts/bin/activate
uv pip install -e '.[sparktts]'
cd WeClone-audio/src
git clone https://github.com/SparkAudio/Spark-TTS.git
```
**模型下载**
通过python下载:
+1
View File
@@ -15,3 +15,4 @@ with torch.no_grad():
prompt_text="对,这就是我万人敬仰的太乙真人,虽然有点婴儿肥,但也掩不住我逼人的帅气。",
)
sf.write(os.path.join(os.path.dirname(__file__), "output.wav"), wav, samplerate=16000)
print("生成成功!")
+31 -1
View File
@@ -8,7 +8,8 @@ authors = [
readme = "README.md"
requires-python = ">=3.9,<3.10"
dependencies = [
"llmtuner>=0.7.1",
"transformers==4.46.2",
"llamafactory>=0.9.2",
"pandas",
"openai==0.28.0",
]
@@ -16,16 +17,45 @@ dependencies = [
[project.optional-dependencies]
xcodec = ["xcodec2==0.1.3"]
wx = ["pywxdump"]
sparktts = [
"einops>=0.8.1",
"einx>=0.3.0",
"numpy==1.26.4",
"omegaconf>=2.3.0",
"packaging>=24.2",
"safetensors>=0.5.2",
"soundfile>=0.12.1",
"soxr>=0.5.0.post1",
"torch>=2.5.1",
"torchaudio>=2.5.1",
"tqdm>=4.66.5",
"transformers==4.46.2"
]
[dependency-groups]
xcodec = ["xcodec2==0.1.3"]
wx = ["pywxdump"]
sparktts = [
"einops>=0.8.1",
"einx>=0.3.0",
"numpy==1.26.4",
"omegaconf>=2.3.0",
"packaging>=24.2",
"safetensors>=0.5.2",
"soundfile>=0.12.1",
"soxr>=0.5.0.post1",
"torch>=2.5.1",
"torchaudio>=2.5.1",
"tqdm>=4.66.5",
"transformers==4.46.2"
]
[tool.uv]
conflicts = [
[
{ group = "xcodec" },
{ group = "wx" },
{ group = "sparktts" },
],
]
+2 -1
View File
@@ -46,7 +46,8 @@
"model_name_or_path": "./chatglm3-6b",
"adapter_name_or_path": "./model_output",
"template": "chatglm3-weclone",
"finetuning_type": "lora"
"finetuning_type": "lora",
"trust_remote_code": true
},
"_comment": "adapter_name_or_path同时做为train_sft_args的output_dir "
}
+2 -2
View File
@@ -1,7 +1,7 @@
import os
import uvicorn
from llmtuner.chat import ChatModel
from llmtuner.api.app import create_app
from llamafactory.chat import ChatModel
from llamafactory.api.app import create_app
from template import template_register
from utils.config import load_config
+2 -2
View File
@@ -1,5 +1,5 @@
from llmtuner.chat import ChatModel
from llmtuner.extras.misc import torch_gc
from llamafactory.chat import ChatModel
from llamafactory.extras.misc import torch_gc
try:
+1 -1
View File
@@ -1,4 +1,4 @@
from llmtuner.eval.evaluator import Evaluator
from llamafactory.eval.evaluator import Evaluator
def main():
+1 -1
View File
@@ -1,4 +1,4 @@
from llmtuner.train.tuner import export_model
from llamafactory.train.tuner import export_model
def main():
+10 -7
View File
@@ -1,21 +1,24 @@
from llmtuner.data.formatter import FunctionFormatter, StringFormatter
from llmtuner.data.template import _register_template
from llamafactory.data.formatter import FunctionFormatter, StringFormatter, ToolFormatter, EmptyFormatter
from llamafactory.data.template import register_template
default_prompt = "请你扮演一名人类,不要说自己是人工智能"
def template_register():
_register_template(
register_template(
name="chatglm3-weclone",
default_system=(
default_prompt
),
format_user=StringFormatter(slots=[{"token": "<|user|>"}, "\n", "{{content}}", {"token": "<|assistant|>"}]),
format_assistant=StringFormatter(slots=["\n", "{{content}}"]),
format_system=StringFormatter(slots=[{"token": "[gMASK]"}, {"token": "sop"}, {"token": "<|system|>"}, "\n", "{{content}}"]),
format_function=FunctionFormatter(slots=["{{name}}\n{{arguments}}"]),
format_observation=StringFormatter(slots=[{"token": "<|observation|>"}, "\n", "{{content}}"]),
format_system=StringFormatter(slots=[{"token": "<|system|>"}, "\n", "{{content}}"]),
format_function=FunctionFormatter(slots=["{{content}}"], tool_format="glm4"),
format_observation=StringFormatter(
slots=[{"token": "<|observation|>"}, "\n", "{{content}}", {"token": "<|assistant|>"}]
),
format_tools=ToolFormatter(tool_format="glm4"),
format_prefix=EmptyFormatter(slots=[{"token": "[gMASK]"}, {"token": "sop"}]),
stop_words=["<|user|>", "<|observation|>"],
efficient_eos=True,
force_system=True
)
+1 -1
View File
@@ -1,4 +1,4 @@
from llmtuner.train.tuner import run_exp
from llamafactory.train.tuner import run_exp
from utils.config import load_config
config = load_config('train_pt')
+1 -1
View File
@@ -1,4 +1,4 @@
from llmtuner.train.tuner import run_exp
from llamafactory.train.tuner import run_exp
from template import template_register
from utils.config import load_config
+1 -1
View File
@@ -1,4 +1,4 @@
from llmtuner.webui.interface import create_web_demo
from llamafactory.webui.interface import create_web_demo
from template import template_register
from utils.config import load_config