Commit a6df64fb authored by Rayyyyy's avatar Rayyyyy
Browse files

Update README

parent 3a094e93
...@@ -20,29 +20,25 @@ ...@@ -20,29 +20,25 @@
-v 路径、docker_name和imageID根据实际情况修改 -v 路径、docker_name和imageID根据实际情况修改
### Docker(方法一) ### Docker(方法一)
```bash ```bash
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310 docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash
cd /your_code_path/sentence-bert_pytorch cd /your_code_path/sentence-bert_pytorch
pip install -e . pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com export HF_ENDPOINT=https://hf-mirror.com
``` ```
### Dockerfile(方法二) ### Dockerfile(方法二)
```bash ```bash
cd ./docker cd ./docker
cp ../requirements.txt requirements.txt
docker build --no-cache -t sbert:latest . docker build --no-cache -t sbert:latest .
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash
cd /your_code_path/sentence-bert_pytorch cd /your_code_path/sentence-bert_pytorch
pip install -e . pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com export HF_ENDPOINT=https://hf-mirror.com
``` ```
...@@ -54,6 +50,7 @@ export HF_ENDPOINT=https://hf-mirror.com ...@@ -54,6 +50,7 @@ export HF_ENDPOINT=https://hf-mirror.com
DTK软件栈:dtk24.04 DTK软件栈:dtk24.04
python:python3.10 python:python3.10
torch:2.1.0 torch:2.1.0
torchvision: 0.16.0
``` ```
Tips:以上dtk软件栈、python、torch等DCU相关工具版本需要严格一一对应 Tips:以上dtk软件栈、python、torch等DCU相关工具版本需要严格一一对应
...@@ -62,7 +59,7 @@ Tips:以上dtk软件栈、python、torch等DCU相关工具版本需要严格 ...@@ -62,7 +59,7 @@ Tips:以上dtk软件栈、python、torch等DCU相关工具版本需要严格
```bash ```bash
cd /your_code_path/sentence-bert_pytorch cd /your_code_path/sentence-bert_pytorch
pip install -e . pip install -r requirements.txt
pip install -U huggingface_hub hf_transfer pip install -U huggingface_hub hf_transfer
export HF_ENDPOINT=https://hf-mirror.com export HF_ENDPOINT=https://hf-mirror.com
``` ```
...@@ -97,11 +94,11 @@ bash finetune.sh ...@@ -97,11 +94,11 @@ bash finetune.sh
### 单机单卡 ### 单机单卡
- 训练 - 训练
```bash ```bash
python training_stsbenchmark.py python training_stsbenchmark.py --train_batch_size 64 --num_epochs 5
``` ```
- 微调 - 微调
```bash ```bash
python training_stsbenchmark_continue_training.py python training_stsbenchmark_continue_training.py --train_batch_size 64 --num_epochs 5
``` ```
## 推理 ## 推理
...@@ -109,7 +106,7 @@ python training_stsbenchmark_continue_training.py ...@@ -109,7 +106,7 @@ python training_stsbenchmark_continue_training.py
2. 执行以下命令,测试数据默认为`./datasets/simple_wikipedia_v1/simple_wiki_pair.txt`,可修改`--data_path`参数为其他待测文件地址,文件内容格式请参考[simple_wiki_pair.txt](./datasets/simple_wikipedia_v1/simple_wiki_pair.txt) 2. 执行以下命令,测试数据默认为`./datasets/simple_wikipedia_v1/simple_wiki_pair.txt`,可修改`--data_path`参数为其他待测文件地址,文件内容格式请参考[simple_wiki_pair.txt](./datasets/simple_wikipedia_v1/simple_wiki_pair.txt)
```bash ```bash
python infer.py --data_path ./datasets/simple_wikipedia_v1/simple_wiki_pair.txt --model_name_or_path all-MiniLM-L6-v2 python infer.py --data_path ./dataset/simple_wikipedia_v1/simple_wiki_pair.txt --model_name_or_path all-MiniLM-L6-v2
``` ```
## result ## result
...@@ -119,7 +116,11 @@ python infer.py --data_path ./datasets/simple_wikipedia_v1/simple_wiki_pair.txt ...@@ -119,7 +116,11 @@ python infer.py --data_path ./datasets/simple_wikipedia_v1/simple_wiki_pair.txt
</div> </div>
### 精度 ### 精度
暂无 在sts-test数据集上评估模型,Cosine-Similarity得分对比
| device | backbone | epoch | Pearson | Spearman |
| :------: | :------: | :------: | :------: | :------: |
| K100 | bert-base-uncased | 5 | 0.8500 | 0.8460 |
| A800 | bert-base-uncased | 5 | 0.8449 | 0.8385 |
## 应用场景 ## 应用场景
### 算法类别 ### 算法类别
......
...@@ -7,4 +7,4 @@ export USE_MIOPEN_BATCHNORM=1 ...@@ -7,4 +7,4 @@ export USE_MIOPEN_BATCHNORM=1
echo "Training start ..." echo "Training start ..."
torchrun --nproc_per_node=4 training_stsbenchmark_continue_training.py --train_batch_size 16 --num_epochs 5 torchrun --nproc_per_node=4 training_stsbenchmark_continue_training.py --train_batch_size 64 --num_epochs 5
...@@ -7,3 +7,4 @@ huggingface-hub>=0.15.1 ...@@ -7,3 +7,4 @@ huggingface-hub>=0.15.1
Pillow Pillow
datasets datasets
accelerate>=0.20.3 accelerate>=0.20.3
pandas==2.2.2
\ No newline at end of file
...@@ -7,4 +7,4 @@ export USE_MIOPEN_BATCHNORM=1 ...@@ -7,4 +7,4 @@ export USE_MIOPEN_BATCHNORM=1
echo "Training start ..." echo "Training start ..."
torchrun --nproc_per_node=4 training_stsbenchmark.py --train_batch_size 16 --num_epochs 5 torchrun --nproc_per_node=4 training_stsbenchmark.py --train_batch_size 64 --num_epochs 5
...@@ -19,8 +19,8 @@ parser.add_argument('--num_epochs', type=int, default=10) ...@@ -19,8 +19,8 @@ parser.add_argument('--num_epochs', type=int, default=10)
parser.add_argument('--model_name_or_path', type=str, default="bert-base-uncased") parser.add_argument('--model_name_or_path', type=str, default="bert-base-uncased")
parser.add_argument('--save_root_path', type=str, default="output", help='Model output folder') parser.add_argument('--save_root_path', type=str, default="output", help='Model output folder')
parser.add_argument('--lr', default=2e-05) parser.add_argument('--lr', default=2e-05)
parser.add_argument('--eval_steps', type=int, default=100) parser.add_argument('--eval_steps', type=int, default=-1)
parser.add_argument('--save_steps', type=int, default=100) parser.add_argument('--save_steps', type=int, default=-1)
parser.add_argument('--save_total_limit', type=int, default=2) parser.add_argument('--save_total_limit', type=int, default=2)
parser.add_argument('--logging_steps', type=int, default=10) parser.add_argument('--logging_steps', type=int, default=10)
args = parser.parse_args() args = parser.parse_args()
......
"""
This example loads the pre-trained SentenceTransformer model 'nli-distilroberta-base-v2' from Hugging Face.
It then fine-tunes this model for some epochs on the STS benchmark dataset.
Note: In this example, you must specify a SentenceTransformer model.
If you want to fine-tune a huggingface/transformers model like bert-base-uncased, see training_nli.py and training_stsbenchmark.py
"""
import logging import logging
import argparse import argparse
from datetime import datetime from datetime import datetime
...@@ -26,8 +18,8 @@ parser.add_argument('--num_epochs', type=int, default=10) ...@@ -26,8 +18,8 @@ parser.add_argument('--num_epochs', type=int, default=10)
parser.add_argument('--model_name_or_path', type=str, default="all-MiniLM-L6-v2") parser.add_argument('--model_name_or_path', type=str, default="all-MiniLM-L6-v2")
parser.add_argument('--save_root_path', type=str, default="output", help='Model output folder') parser.add_argument('--save_root_path', type=str, default="output", help='Model output folder')
parser.add_argument('--lr', default=2e-05) parser.add_argument('--lr', default=2e-05)
parser.add_argument('--eval_steps', type=int, default=100) parser.add_argument('--eval_steps', type=int, default=-1)
parser.add_argument('--save_steps', type=int, default=100) parser.add_argument('--save_steps', type=int, default=-1)
parser.add_argument('--save_total_limit', type=int, default=2) parser.add_argument('--save_total_limit', type=int, default=2)
parser.add_argument('--logging_steps', type=int, default=10) parser.add_argument('--logging_steps', type=int, default=10)
args = parser.parse_args() args = parser.parse_args()
...@@ -37,7 +29,7 @@ model_name = args.model_name_or_path ...@@ -37,7 +29,7 @@ model_name = args.model_name_or_path
train_batch_size = args.train_batch_size train_batch_size = args.train_batch_size
num_epochs = args.num_epochs num_epochs = args.num_epochs
output_dir = ( output_dir = (
args.save_root_path + "training_stsbenchmark_" + model_name.replace("/", "-") + "-" + datetime.now().strftime("%Y-%m-%d_%H-%M-%S") args.save_root_path + "/training_stsbenchmark_" + model_name.replace("/", "-") + "-" + datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
) )
# 1. Here we define our SentenceTransformer model. # 1. Here we define our SentenceTransformer model.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment