semvec/pypi-packages huggingface dataset:
mindpet 1.0.4
Parameter-Efficient Tuning
Keywords: Parameter-Efficient Tuning

# MindPet微调算法用户文档



## 一、MindPet简介

MindPet（Pet：Parameter-Efficient Tuning）是属于Mindspore领域的微调算法套件。随着计算算力不断增加，大模型无限的潜力也被挖掘出来。但随之在应用和训练上带来了巨大的花销，导致商业落地困难。因此，出现一种新的参数高效（parameter-efficient）算法，与标准的全参数微调相比，这些算法仅需要微调小部分参数，可以大大降低计算和存储成本，同时可媲美全参微调的性能。


## 二、环境准备

### 2.1 环境依赖

- Python 3.7至3.9版本
- MindSpore >= 1.8



### 2.2 软件安装

在代码仓根目录下运行以下命令，会生成dist文件夹以及whl包：

```shell
python set_up.py bdist_wheel
```

执行以下命令安装whl包：
```shell
pip install dist/mindpet-1.0.4-py3-none-any.whl
```


### 2.3 软件卸载

通过以下命令进行卸载：
```shell
pip uninstall mindpet
```



## 三、微调算法API

**目前MindPet已提供以下六种经典低参微调算法以及一种提升精度的微调算法的API接口，用户可快速适配原始大模型，提升下游任务微调性能和精度；**

| 微调算法           | 算法论文                                                    | 使用说明                                                            |
|----------------| ----------------------------------------------------------- |-----------------------------------------------------------------|
| LoRA           | LoRA: Low-Rank Adaptation of Large Language Models          | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第一章 |
| PrefixTuning   | Prefix-Tuning: Optimizing Continuous Prompts for Generation | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第二章 |
| Adapter        | Parameter-Efficient Transfer Learning for NLP               | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第三章 |
| LowRankAdapter | Compacter: Efficient low-rank hypercom plex adapter layers  | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第四章 |
| BitFit         | BitFit: Simple Parameter-efficient Fine-tuning for Transformer-based Masked Language-models | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第五章 |
| R_Drop         | R-Drop: Regularized Dropout for Neural Networks | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第六章 |
| P-Tuning v2    | P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks | [MindPet_DeltaAlgorithm_README](doc/MindPet_DeltaAlgorithm_README.md) 第七章 |



## 四、共性图操作API

### 4.1 冻结指定模块功能API

MindPet支持用户根据 微调算法 或 模块名 冻结网络中部分模块，提供调用接口和配置文件两种实现方式。

使用说明参考[MindPet_GraphOperation_README](doc/MindPet_GraphOperation_README.md) 第一章。



### 4.2 保存可训练参数功能API

MindPet支持用户单独保存训练中可更新的参数为ckpt文件，从而节省存储所用的物理资源。

使用说明参考[MindPet_GraphOperation_README](doc/MindPet_GraphOperation_README.md) 第二章。
botgen 0.0.2
Python based developer toolkit to build bots
Requires Python: >=3.10,<4.0

*Python-based open source developer tool for building chat bots, apps and custom integrations for major messaging platforms.*

This repository is inspired by the javascript library [Botkit](https://github.com/howdyai/botgen) and the [BotFramework SDK](https://github.com/microsoft/botframework-sdk) concepts.

### Adapters

You can connect major plataforms using the same bot core code by setting different adapters. Adapter is a interface between your bot and message plataforms.


| Adapter | Docs | Availability |
|---------| -----|--------------|
| Web     | | 0.0.1        |
| Slack   | |              |
| Telegram   | |              |
| Facebook   | |              |
| Twilio (SMS)   | |              |
| Whatsapp   | |              |

### Usage

Installation

`pip install botgen`

Copy and paste the code below to a file called `run.py`

```python
# run.py
from botgen import Bot
from botgen import BotMessage
from botgen import BotWorker
from botgen.adapters import WebAdapter

adapter = WebAdapter()
bot = Bot(adapter=adapter)

async def hello(bot_worker: BotWorker, message: BotMessage):
    await bot_worker.say("hello from bot")


bot.hears(pattern="hello", event="message", handler=hello)

bot.start()
```

So you can run the project using:

`python run.py`

Then start a conversation:

```bash
curl -L -X POST 'http://localhost:8080/api/messages' -H 'Content-Type: application/json' -d '{
	"user": "dummy",
    "text": "hello",
    "type": "message"
}'
```

### How to contribute