★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>>
ChatYuan: 元语功能型对话大模型
这个模型可以用于问答、结合上下文做对话、做各种生成任务,包括创意性写作,也能回答一些像法律、新冠等领域问题。它基于PromptCLUE-large结合数亿条功能对话多轮对话数据进一步训练得到。
PromptCLUE-large在1000亿token中文语料上预训练,累计学习1.5万亿中文token,并且在数百种任务上进行Prompt任务式训练。针对理解类任务,如分类、情感分析、抽取等,可以自定义标签体系;针对多种生成任务,可以进行采样自由生成。
项目github地址:https://github.com/clue-ai/ChatYuan
开源模型的paddle版本地址:https://huggingface.co/ClueAI/ChatYuan-large-v1-paddle
扫码体验或微信搜索小程序“元语智能”
# 更新paddlenlp的版本
!pip install --upgrade paddlenlp
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: paddlenlp in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (2.4.2)
Collecting paddlenlpDownloading https://pypi.tuna.tsinghua.edu.cn/packages/a5/de/3f20df026e48eae755ea06cbd587dd845767ac2d04e3bcf5e24cdb62cc4f/paddlenlp-2.5.0-py3-none-any.whl (2.2 MB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m2.2/2.2 MB[0m [31m8.8 MB/s[0m eta [36m0:00:00[0ma [36m0:00:01[0m
[?25hCollecting uvicornDownloading https://pypi.tuna.tsinghua.edu.cn/packages/96/f3/f39ac8ac3bdf356b4934b8f7e56173e96681f67ef0cd92bd33a5059fae9e/uvicorn-0.20.0-py3-none-any.whl (56 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m56.9/56.9 kB[0m [31m1.2 MB/s[0m eta [36m0:00:00[0m-:--:--[0m
[?25hRequirement already satisfied: protobuf<=3.20.0,>=3.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (3.20.0)
Collecting fastapiDownloading https://pypi.tuna.tsinghua.edu.cn/packages/8f/89/adf4525d1870021b65ec562e83e9f46d96494ad95f238d0264ef1ab6b604/fastapi-0.89.1-py3-none-any.whl (55 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m55.8/55.8 kB[0m [31m4.2 MB/s[0m eta [36m0:00:00[0m
[?25hRequirement already satisfied: jieba in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (0.42.1)
Requirement already satisfied: rich in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (12.6.0)
Collecting typerDownloading https://pypi.tuna.tsinghua.edu.cn/packages/0d/44/56c3f48d2bb83d76f5c970aef8e2c3ebd6a832f09e3621c5395371fe6999/typer-0.7.0-py3-none-any.whl (38 kB)
Requirement already satisfied: multiprocess<=0.70.12.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (0.70.11.1)
Requirement already satisfied: seqeval in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (1.2.2)
Requirement already satisfied: paddlefsl in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (1.1.0)
Requirement already satisfied: colorama in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (0.4.4)
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (4.64.1)
Requirement already satisfied: visualdl in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (2.4.0)
Requirement already satisfied: colorlog in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (4.1.0)
Requirement already satisfied: datasets>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (2.7.0)
Requirement already satisfied: sentencepiece in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (0.1.96)
Collecting huggingface-hub>=0.11.1Downloading https://pypi.tuna.tsinghua.edu.cn/packages/41/76/50cd8ffb78fa5ef9b11e972ee92514aafd99790e838a1eafbde6a28b3962/huggingface_hub-0.12.0-py3-none-any.whl (190 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m190.3/190.3 kB[0m [31m4.0 MB/s[0m eta [36m0:00:00[0ma [36m0:00:01[0m
[?25hRequirement already satisfied: dill<0.3.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (0.3.3)
Requirement already satisfied: paddle2onnx in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlenlp) (1.0.0)
Requirement already satisfied: pyarrow>=6.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (10.0.0)
Requirement already satisfied: numpy>=1.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (1.19.5)
Requirement already satisfied: pyyaml>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (5.1.2)
Requirement already satisfied: responses<0.19 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (0.18.0)
Requirement already satisfied: requests>=2.19.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (2.24.0)
Requirement already satisfied: aiohttp in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (3.8.3)
Requirement already satisfied: pandas in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (1.1.5)
Requirement already satisfied: importlib-metadata in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (4.2.0)
Requirement already satisfied: xxhash in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (3.1.0)
Requirement already satisfied: fsspec[http]>=2021.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (2022.11.0)
Requirement already satisfied: packaging in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from datasets>=2.0.0->paddlenlp) (21.3)
Requirement already satisfied: filelock in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from huggingface-hub>=0.11.1->paddlenlp) (3.0.12)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from huggingface-hub>=0.11.1->paddlenlp) (4.3.0)
Collecting starlette==0.22.0Downloading https://pypi.tuna.tsinghua.edu.cn/packages/1d/4e/30eda84159d5b3ad7fe663c40c49b16dd17436abe838f10a56c34bee44e8/starlette-0.22.0-py3-none-any.whl (64 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m64.3/64.3 kB[0m [31m1.1 MB/s[0m eta [36m0:00:00[0ma [36m0:00:01[0m
[?25hCollecting pydantic!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0,>=1.6.2Downloading https://pypi.tuna.tsinghua.edu.cn/packages/6f/6a/a3b9a51b886eeee570ddb32ae64a8d2fd00cd25cb1daaf82260188d2d1e4/pydantic-1.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m3.1/3.1 MB[0m [31m2.1 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hRequirement already satisfied: anyio<5,>=3.4.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from starlette==0.22.0->fastapi->paddlenlp) (3.6.1)
Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from rich->paddlenlp) (2.13.0)
Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from rich->paddlenlp) (0.9.1)
Requirement already satisfied: scikit-learn>=0.21.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from seqeval->paddlenlp) (0.24.2)
Requirement already satisfied: click<9.0.0,>=7.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from typer->paddlenlp) (8.0.4)
Collecting h11>=0.8Downloading https://pypi.tuna.tsinghua.edu.cn/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl (58 kB)
[2K [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m58.3/58.3 kB[0m [31m3.8 MB/s[0m eta [36m0:00:00[0m
[?25hRequirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (0.8.53)
Requirement already satisfied: Pillow>=7.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (8.2.0)
Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (2.2.3)
Requirement already satisfied: six>=1.14.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (1.16.0)
Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (1.0.0)
Requirement already satisfied: flask>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->paddlenlp) (1.1.1)
Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->paddlenlp) (0.16.0)
Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->paddlenlp) (1.1.0)
Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->paddlenlp) (3.0.0)
Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->paddlenlp) (2019.3)
Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->paddlenlp) (2.8.0)
Requirement already satisfied: aiosignal>=1.1.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (1.2.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (6.0.2)
Requirement already satisfied: attrs>=17.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (22.1.0)
Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (1.3.0)
Requirement already satisfied: asynctest==0.13.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (0.13.0)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (2.1.1)
Requirement already satisfied: yarl<2.0,>=1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (1.7.2)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from aiohttp->datasets>=2.0.0->paddlenlp) (4.0.2)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from packaging->datasets>=2.0.0->paddlenlp) (3.0.9)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.19.0->datasets>=2.0.0->paddlenlp) (1.25.11)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.19.0->datasets>=2.0.0->paddlenlp) (2019.9.11)
Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.19.0->datasets>=2.0.0->paddlenlp) (2.8)
Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.19.0->datasets>=2.0.0->paddlenlp) (3.0.4)
Requirement already satisfied: scipy>=0.19.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn>=0.21.3->seqeval->paddlenlp) (1.6.3)
Requirement already satisfied: joblib>=0.11 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn>=0.21.3->seqeval->paddlenlp) (0.14.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn>=0.21.3->seqeval->paddlenlp) (2.1.0)
Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->paddlenlp) (3.9.9)
Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->paddlenlp) (0.18.0)
Requirement already satisfied: zipp>=0.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from importlib-metadata->datasets>=2.0.0->paddlenlp) (3.8.1)
Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->paddlenlp) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->paddlenlp) (1.1.0)
Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->paddlenlp) (2.8.2)
Requirement already satisfied: sniffio>=1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from anyio<5,>=3.4.0->starlette==0.22.0->fastapi->paddlenlp) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0.0rc2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.1->visualdl->paddlenlp) (2.0.1)
Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib->visualdl->paddlenlp) (56.2.0)
Installing collected packages: pydantic, h11, starlette, huggingface-hub, uvicorn, typer, fastapi, paddlenlpAttempting uninstall: huggingface-hubFound existing installation: huggingface-hub 0.11.0Uninstalling huggingface-hub-0.11.0:Successfully uninstalled huggingface-hub-0.11.0Attempting uninstall: paddlenlpFound existing installation: paddlenlp 2.4.2Uninstalling paddlenlp-2.4.2:Successfully uninstalled paddlenlp-2.4.2
Successfully installed fastapi-0.89.1 h11-0.14.0 huggingface-hub-0.12.0 paddlenlp-2.5.0 pydantic-1.10.4 starlette-0.22.0 typer-0.7.0 uvicorn-0.20.0[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m23.0[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
import warnings
warnings.filterwarnings('ignore')
1. 下载ChatYuan模型并加载
PaddleNLP2.5.0 新特新之一
HuggingFace 生态联合
PaddleNLP首次和HuggingFace生态联合,支持所有Model和Tokenizer类支持直接从Huggingface Hub下载和上传,开发者可以直接从HuggingFace体验预训练模型效果
- 所有Model和Tokenizer类支持直接从Huggingface Hub下载和上传
- Text Summarization, Fill Mask, Dialogue Taskflow支持直接从Huggingface Hub加载, 并且连通HuggingFace Inference API
- 新增ConversionMixin, bert和gpt模型的from_pretrained 支持直接从Huggingface Hub加载torch权重的模型
1.1 在线加载
直接从hf_hub下载模型,速度有时快有时慢
# 加载模型
from paddlenlp.transformers import AutoTokenizer, T5ForConditionalGenerationtokenizer = AutoTokenizer.from_pretrained("ClueAI/ChatYuan-large-v1", from_hf_hub=False)
model = T5ForConditionalGeneration.from_pretrained("ClueAI/ChatYuan-large-v1", from_hf_hub=False)
此时已经可以直接体验应用,打开untitled.streamlit.py即可体验
1.2 离线加载
# 解压从官网下载好的ChatYuan-large-v1-paddle,通过from_pretrained直接加载
# !unzip -d ChatYuan-large-v1 /home/aistudio/data/data187227/ChatYuan-large-v1.zip
# from paddlenlp.transformers.t5.tokenizer import T5Tokenizer
# from paddlenlp.transformers.t5.modeling import T5ForConditionalGeneration# tokenizer = T5Tokenizer.from_pretrained("ChatYuan-large-v1")
# model = T5ForConditionalGeneration.from_pretrained("ChatYuan-large-v1")
2. 推理函数
model.generate中的参数
import paddle
from paddlenlp.transformers import T5Tokenizer, T5ForConditionalGenerationmodel.eval()
def preprocess(text):text = text.replace("\n", "\\n").replace("\t", "\\t")return textdef postprocess(text):return text.replace("\\n", "\n").replace("\\t", "\t")def answer(text, sample=True, top_p=1, temperature=0.7):'''sample:是否抽样。生成任务,可以设置为True;top_p:0-1之间,生成的内容越多样'''text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pd")if not sample:out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_length=512, max_new_tokens=512, num_beams=1, length_penalty=0.4)else:out = model.generate(**encoding, return_dict_in_generate=True, output_scores=False, max_length=512, max_new_tokens=512, do_sample=True, top_p=top_p, temperature=temperature, no_repeat_ngram_size=3)out_text = tokenizer.batch_decode(out[0], skip_special_tokens=True)return postprocess(out_text[0])
print("end...")
end...
3. Github Demo 复现
首先,测试是否可以跑通Github上的Demo示例,
下方代码在原有的代码基础上增加了响应时间的测试代码。
3.1 问答、写作与功能型助手
import time
input_text0 = "帮我写一个请假条,我因为新冠不舒服,需要请假3天,请领导批准"
input_text1 = "你能干什么"
input_text2 = "写一封英文商务邮件给英国客户,表达因为物流延误,不能如期到达,我们可以赔偿贵公司所有损失"
input_text3 = "写一个文章,题目是未来城市"
input_text4 = "写一个诗歌,关于冬天"
input_list = [input_text0, input_text1, input_text2, input_text3, input_text4]
for i, input_text in enumerate(input_list):start = time.clock()#开始时间input_text = "用户:" + input_text + "\n小元:"print(f"示例{i}".center(50, "="))output_text = answer(input_text)print(f"{input_text}{output_text}\n推理耗时:{time.clock()-start} s")
=======================示例0========================
用户:帮我写一个请假条,我因为新冠不舒服,需要请假3天,请领导批准
小元:尊敬的领导:您好!我是XXX,因为新冠肺炎,我感到不舒服,需要请假3天,请批准。我将尽快恢复健康,尽快恢复工作,尽快完成我的工作任务。
谢谢您的批准!
_
此致敬礼!
推理耗时:4.595353000000017 s
=======================示例1========================
用户:你能干什么
小元:您好!我是元语AI。我可以回答您的问题、写文章、写作业、翻译,对于一些法律等领域的问题我也可以给你提供信息。
推理耗时:2.3848879999999895 s
=======================示例2========================
用户:写一封英文商务邮件给英国客户,表达因为物流延误,不能如期到达,我们可以赔偿贵公司所有损失
小元:Dear [Name],I'm sorry to inform you that we have been doing our business to you for your delay. We understand that if we are not able to accept the delays we may not have accomplished by the logistics or ease of delaY, we will compensate you for all the losses as we did.We are appreciated that our logging system is very efficient and we delivered our products as a result of defects on time. Therefore, We would like to offer you all of the lost compliances if you are responsible for anything else.Thank you for the economic and logism efforts we n
推理耗时:17.76478799999998 s
=======================示例3========================
用户:写一个文章,题目是未来城市
小元:未来城市是一个充满希望的未来,它将是一个充满科技和创新的城市。它将拥有更先进的基础设施,更先进的科技,更智能的城市,更舒适的生活环境,更安全的交通系统,更高效的能源系统,以及更智能的社区。未来城市将是一个充满活力的城市,它拥有更智能的环境,更安全的环境,更加智能的交通系统以及更舒适的环境。它拥有更多的智能设施,更智能化的交通系统和更智能的生活设施,以及更多的智能社区。它还拥有更安全的城市环境,更健康的环境,更加舒适的环境,以及更加智能的城市社区。未来城市将会是一个充满生机的城市,一个充满希望的城市。
推理耗时:9.568264999999997 s
=======================示例4========================
用户:写一个诗歌,关于冬天
小元:冬日里,
雪花飘落,
寒风凛冽,
雪白的天空,
一片寂静。冬日的夜晚,
星星闪烁,
月亮皎洁,
夜空里, 一片宁静。
冬天的夜晚里,
推理耗时:4.056646999999998 s
import time
input_text5 = "从南京到上海的路线"
input_text6 = "学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字"
input_text7 = "根据标题生成文章:标题:屈臣氏里的化妆品到底怎么样?正文:化妆品,要讲究科学运用,合理搭配。屈臣氏起码是正品连锁店。请继续后面的文字。"
input_text8 = "帮我对比几款GPU,列出详细参数对比,并且给出最终结论"
input_list = [input_text5, input_text6, input_text7, input_text8]
for i, input_text in enumerate(input_list):start = time.clock()#开始时间input_text = "用户:" + input_text + "\n\n小元:"print(f"示例{i}".center(50, "="))output_text = answer(input_text)print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
=======================示例0========================
用户:从南京到上海的路线小元:从南京到上海的路线如下:1. 从南京市步行约5分钟,到达中山北路站
2. 乘坐地铁2号线,经过4站,到达南京南站
3. 乘坐轨道交通1号线,经3站,抵达上海南站
4. 乘坐轻轨1号线(在建),经过3站。
5. 乘坐机场快线,经过2站,即可到达上海南站。推理耗时:6.020083 s
=======================示例1========================
用户:学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字小元:一、加强学生管理在学前教育专业岗位实习中,学生应该加强管理,以确保其能够顺利地完成实习任务。首先,要加强学生的思想教育,让学生明白实习的重要性,并积极主动地参与到实习中来,以增强学生对实习的责任感。其次,要加强对学生的管理,让学生能够遵守实习纪律,并及时发现和纠正学生的错误,以保障实习的顺利进行。二、加强实习环境实习环境是学生实习的重要保障,要让学生能够充分地体验到实习环境,并能够及时发现实习中存在的问题,及时解决,以促进实习的顺利完成。
三、加强学习要加强学生的学习,让学生掌握实习中需要掌握的知识,并提高学习效率,以更好地完成实习。
四、加强实践学生在实习过程中,要积极实践,以加深对实习内容的理解,并掌握实习过程中的技能,以更好的完成实习工作。
五、加强沟通教师要加强与学生的沟通,以了解学生在学习过程中遇到的问题,并给予适当的指导,以帮助学生更好地完成学习任务。
六、加强安全要注意安全,以防止实习过程中发生意外事故,以保护学生推理耗时:17.898892000000018 s
=======================示例2========================
用户:根据标题生成文章:标题:屈臣氏里的化妆品到底怎么样?正文:化妆品,要讲究科学运用,合理搭配。屈臣氏起码是正品连锁店。请继续后面的文字。小元:屈臣氏里的化妆品到底怎么样?屈臣士里化妆品的品种很多,有化妆品、护肤品、香水、化妆品、化妆品用品、化妆品等。屈臣仕里化妆品的种类很多,化妆品、香水等。化妆品,要讲究科学运用,合理搭配。屈氏起码是正品连锁店。请继续后面的文字。推理耗时:4.81601999999998 s
=======================示例3========================
用户:帮我对比几款GPU,列出详细参数对比,并且给出最终结论小元:1、ATI Radeon HD 7670M:8核心16线程,3D API DirectX 11
2、AMD Radeus AM3:8核4线程,2D GPU API ATI RX 1080
3、NVIDIA GeForce GTX 1060:8个纹理单元,3个OpenGL 3.1
4、Intel Core i7 3610QM:9核心16个线程,4D HDMI接口,3 D API OpenGL 4。1
5、NVIDA ATI Mobility Radeo:8条纹理单元、3个Direct X 11 API、1个OpenCL API
6、GeForcer GT640:8颗纹理单元+8个DMI接口、3D BIOS 8MB,4K HDR 30
7、AMD Ryzen RX 580:8块纹理单元+1个DVI接口、2个OpenVGA接口、1×HDMI 2.0接口
8、Intel Celeron GT 640:6条纹理/3D RGB接口、8推理耗时:17.910131999999976 s
input_text= "写一个2023年规划,产品研发部门"
print(f"示例".center(50, "="))
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text, sample=True,top_p=1, temperature=0.7)
print(f"{input_text}{output_text}")
========================示例========================
用户:写一个2023年规划,产品研发部门
小元:2023年产品研发部门发展规划一、目标1. 研发出具有创新性的产品,满足用户的需求;2. 开发新的技术,提高产品的性能;
三、工作内容1、 开发新产品,提高产品性能;
2、 开发新功能,提高用户体验;
3、 开发新技术,提高新产品的性能;
3.2 多轮对话
input_text = ["你好","新冠什么症状?","可以吃什么药?"]
answer_text = ["您好!我是元语AI。我可以回答您的问题、写文章、写作业、翻译,对于一些法律等领域的问题我也可以给你提供信息", "新冠是指新型冠状病毒,其症状包括发热、干咳、乏力、嗅味觉减退、呼吸困难等。", "根据您提供的病史,目前没有明确的抗新冠病毒的药物,建议您在家进行自我隔离,避免与他人接触,多喝开水,清淡易消化饮食,避免熬夜和过度劳累,适当进行户外活动。"]
context = "\n".join([f"用户:{input_text[i]}\n小元:{answer_text[i]}" for i in range(len(input_text))])
print(context)input_text = "会留下什么后遗症吗?"
print(f"示例".center(50, "="))
input_text = context + "\n用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}")
用户:你好
小元:您好!我是元语AI。我可以回答您的问题、写文章、写作业、翻译,对于一些法律等领域的问题我也可以给你提供信息
用户:新冠什么症状?
小元:新冠是指新型冠状病毒,其症状包括发热、干咳、乏力、嗅味觉减退、呼吸困难等。
用户:可以吃什么药?
小元:根据您提供的病史,目前没有明确的抗新冠病毒的药物,建议您在家进行自我隔离,避免与他人接触,多喝开水,清淡易消化饮食,避免熬夜和过度劳累,适当进行户外活动。
========================示例========================
用户:你好
小元:您好!我是元语AI。我可以回答您的问题、写文章、写作业、翻译,对于一些法律等领域的问题我也可以给你提供信息
用户:新冠什么症状?
小元:新冠是指新型冠状病毒,其症状包括发热、干咳、乏力、嗅味觉减退、呼吸困难等。
用户:可以吃什么药?
小元:根据您提供的病史,目前没有明确的抗新冠病毒的药物,建议您在家进行自我隔离,避免与他人接触,多喝开水,清淡易消化饮食,避免熬夜和过度劳累,适当进行户外活动。
用户:会留下什么后遗症吗?
小元:目前没有发现新冠病毒的后遗症,但是有少数人可能会出现咳嗽、发热、乏力、呼吸困难等。
3.3 尝试不同的文本生成解码策略
参考资料:https://aistudio.baidu.com/aistudio/projectdetail/4195928?contributionType=1
根据上述Demo的展示,可以发现YuanChat可以较好地完成一些任务,但仍然存在一些问题,例如回答会重复一遍问题、答案出现很多重复。
查阅了一些资料,我们发现文本生成过程中,解码策略对于文本生成用来说是非常重要的。
神经语言模型的基于最大化的解码方法(如 beam search)往往导致退化解,即生成的文本是不自然的,并且常常包含不必要的重复。
现有的方法通过采样或修改训练目标来引入随机性,以降低某些 token 的概率(例如,非似然训练)。
然而,它们往往导致解决方案缺乏连贯性。
对此,我们尝试不同的生成策略,对比Demo中例子生成的区别
import paddle
from paddlenlp.transformers import T5Tokenizer, T5ForConditionalGenerationmodel.eval()
def preprocess(text):text = text.replace("\n", "\\n").replace("\t", "\\t")return textdef postprocess(text):return text.replace("\\n", "\n").replace("\\t", "\t")def Answer_Sampling(text,top_p=1.0,top_k=0):text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pd")out = model.generate(**encoding,return_dict_in_generate=True,output_scores=False,max_length=512,decode_strategy='sampling')out_text = tokenizer.batch_decode(out[0], skip_special_tokens=True)return postprocess(out_text[0])def Answer_Greedy_Search(text,num_beams=2):text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pd")out = model.generate(**encoding, return_dict_in_generate=True,output_scores=False,max_length=512,num_beams=num_beams,decode_strategy='greedy_search',)out_text = tokenizer.batch_decode(out[0], skip_special_tokens=True)return postprocess(out_text[0])def Answer_Beam_Search(text,num_beams=2,repetition_penalty=1.8,num_return_sequences=2):text = preprocess(text)encoding = tokenizer(text=[text], truncation=True, padding=True, max_length=768, return_tensors="pd")out = model.generate(**encoding,return_dict_in_generate=True,output_scores=False,max_length=512,decode_strategy='beam_search',repetition_penalty=repetition_penalty,num_return_sequences=num_return_sequences,num_beams=num_beams)out_text = tokenizer.batch_decode(out[0], skip_special_tokens=True)return postprocess(out_text[0])
print("end...")
end...
import time
input_text0 = "学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字"
input_list = [input_text0]
for i, input_text in enumerate(input_list):start = time.clock()#开始时间input_text = "用户:" + input_text + "\n小元:"output_text = Answer_Greedy_Search(input_text)print(f"[Greedy_Search]\n{input_text}\n{output_text}\n推理耗时:{time.clock()-start} s") output_text = Answer_Beam_Search(input_text)print(f"[Beam_Search]\n{input_text}\n{output_text}\n推理耗时:{time.clock()-start} s") output_text = Answer_Sampling(input_text)print(f"[Sampling]\n{input_text}\n{output_text}\n推理耗时:{time.clock()-start} s")
[Greedy_Search]
用户:学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字
小元:
一、加强学生思想教育在学前教育专业岗位实习中,学生要加强思想教育,提高学生的思想觉悟,增强学生对学前教育的认识,提高学生对学前教育的责任感,增强学生对学前教育的热爱。二、加强学生实践能力在学前教育专业岗位实习中,学生要加强实践能力,提高学生实践能力,增强学生对学前教育的认识,提高学生对学前教育的责任感,增强学生对学前教育的热爱。三、加强学生纪律教育在学前教育专业岗位实习中,学生要加强纪律教育,提高学生纪律意识,增强学生对学前教育的责任感,增强学生对学前教育的热爱。四、加强学生管理在学前教育专业岗位实习中,学生要加强管理,提高学生管理能力,增强学生对学前教育的责任感,增强学生对学前教育的热爱。五、加强学生纪律在学前教育专业岗位实习中,学生要加强纪律教育,提高学生纪律意识,增强学生对学前教育的责任感,增强学生对学前教育的热爱。
推理耗时:18.716996999999992 s
[Beam_Search]
用户:学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字
小元:
在学前教育专业岗位实习中,在学生方面会存在一些问题,如:1. 学生缺乏责任心。在实习过程中,学生往往缺乏责任心,不能认真完成实习任务,导致实习效果不理想。2. 学生缺乏团队合作精神。在实习过程中,学生缺乏团队合作精神,无法团结一致,相互协作,导致实习效果不理想。3. 学生缺乏自我管理能力。在实习过程中,学生缺乏自我管理能力,没有养成良好的行为习惯,导致实习效果不理想。4. 学生缺乏沟通能力。在实习过程中,学生缺乏沟通能力,不能及时与老师沟通,导致实习效果不理想。5. 学生缺乏学习兴趣。在实习过程中,学生缺乏学习兴趣,不能主动学习,导致实习效果不理想。6. 学生缺乏独立思考能力。在实习过程中,学生缺乏独立思考能力,不能正确理解所学知识,导致实习效果不理想。7. 学生缺乏团队合作精神。在实习过程中,学生缺乏团队合作精神,不能团结一致,导致实习效果不理想。
推理耗时:45.01065 s
[Sampling]
用户:学前教育专业岗位实习中,在学生方面会存在问题,请提出改进措施。800字
小元:
单个的行动是无法包括整个行动的,跟随老师的节奏行动才是可行最有效的方法[3]。在学前教育专业的岗位实习中,所采取的策略是一个完整的步伐,以使整个过程都能够实现可行的理想状态[4]。1. 把握好时间:在实习中,学生每一分钟的时间都非常重要,在此过程中不仅仅是通过学习课堂要有全神贯注的听、说、读、写、观察等语言训练,还要注重各种科目的学习,尤其是关于基本幼儿认知能力及能力发展的训练。2. 及时针对性的参加不同类型的活动:学生在实习期间要认真参加各种类型的活动,或参加一些教师的教学活动,让学生能够及时发现学习中的不足,从而及时改进。3. 集体合作:加强学生与老师间的沟通,通过对作业和游戏等项目的讨论多点互动、多轮次互动,增加学生参与度,达到课堂学习的效果[5]。4. 合理分配时间:实习过程中,要安排好的学习流程,耐心细致地倾听每位老师的上课内容,即使时间不够,也要让学生在规定的时间内自己完成。最后,也要细心观察学生在课堂上的表现,以反馈学生的学习成果,除了对学生
推理耗时:66.796921 s
4. ChatYuan模型测试
参考 普通NLP科研人员对ChatGPT的一些思考的文章对ChatYuan模型做一些测试
4.1 关键信息抽取(NER、事件抽取、关键词提取)
4.1.1 药物NER
# 药物NER
start = time.clock() #开始时间
input_text = """帮我从下面的段落里,抽取出药物相关的名词:19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
"""
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n推理耗时:{time.clock()-start} s")
用户:帮我从下面的段落里,抽取出药物相关的名词:19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。小元:19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出的抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
推理耗时:8.940165000000036 s
# 药物NER
start = time.clock() #开始时间
input_text = """19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
帮我从上面的段落里,抽取出药物相关的名词:"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
帮我从上面的段落里,抽取出药物相关的名词:小元:药物分子推理耗时:0.40956900000003316 s
在药物NER识别上发现一个有趣的现象:
1.当问题在材料前面时,YuanChat总是不能记住问题,大部分情况下均给出答非所问的结果。
2.当我们把材料放在前,问题放在后,YuanChat的结果有了明显的改善,每次结果均能给出药物相关的名词。
3.有时输出的药物名词是可能间隔符号的,即输出内容格式并不规范。(增加人工引导后会好很多,例如后面在加句话“并以有序列表形式输出:”)
对比下来ChatGPT不管是问题在前或问题在后都能准确地抓住问题信息并格式规范地作答。
猜测是目前YuanChat目前训练的标注样本有所不同。
答案是引导大模型智能的技术
4.1.2 关键词抽取
# 关键词抽取 - 中文
start = time.clock() #开始时间
input_text = """19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
请帮我从上文中抽取出十个关键词。
"""
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n推理耗时:{time.clock()-start} s")
用户:19世纪以前的药学作为商品学的一个分支学科,研究的对象是一些天然来源的药物, 直到19世纪开始人们从一些天然药物中陆续分离出一些具有生理活性的化学物质(从鸦片中分离出镇痛药吗啡、从颠茄中分离出抗胆碱药阿托品、从金鸡纳树皮中分离出抗疟药奎宁等),以药物分子为主要研究对象的药物化学开始从原来的药物学中独立出来成为一个独立的学科。
请帮我从上文中抽取出十个关键词。小元:10
推理耗时:0.1950509999999781 s
# 关键词抽取 - 英文
start = time.clock() #开始时间
input_text = """"
This paper describes our winning system on SemEval 2022 Task 7: Identifying Plausible Clarifications of Implicit and Underspecified Phrases in Instructional Texts. A replaced token detection pre-trained model is utilized with minorly different task-specific heads for SubTask-A: Multi-class Classification and SubTask-B: Ranking. Incorporating a pattern-aware ensemble method, our system achieves a 68.90% accuracy score and 0.8070 spearman's rank correlation score surpassing the 2nd place with a large margin by 2.7 and 2.2 percent points for SubTask-A and SubTask-B, respectively. Our approach is simple and easy to implement, and we conducted ablation studies and qualitative and quantitative analyses for the working strategies used in our system.
Can you help me to extract 10 keywords from the above text.
"""
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n推理耗时:{time.clock()-start} s")
用户:"
This paper describes our winning system on SemEval 2022 Task 7: Identifying Plausible Clarifications of Implicit and Underspecified Phrases in Instructional Texts. A replaced token detection pre-trained model is utilized with minorly different task-specific heads for SubTask-A: Multi-class Classification and SubTask-B: Ranking. Incorporating a pattern-aware ensemble method, our system achieves a 68.90% accuracy score and 0.8070 spearman's rank correlation score surpassing the 2nd place with a large margin by 2.7 and 2.2 percent points for SubTask-A and SubTask-B, respectively. Our approach is simple and easy to implement, and we conducted ablation studies and qualitative and quantitative analyses for the working strategies used in our system.
Can you help me to extract 10 keywords from the above text.小元:This paper describes our winning system on SemEval 2022 Task 7: Identifying Plausible Clarifications of Implicit and Underspecified Phrases in Instructional Texts. A replaced token detection pre-trained model is utilized with minorly different task-specific heads for SubTask-A: Multi-class Classificate and SubtaskB: Ranking. Incorporating a pattern-aware ensemble method, our proposed sytem achieves a 68.90% accuracy score and 0.8070 spearman's rank correlation screen scale surpassing the 2nd place with a large margin by 2.7 and 2.2
推理耗时:17.935971999999992 s
1.中文文本关键词抽取可以胜任,抽取数量也是正确的,只是会出现一些重复抽取的情况,YuanChat有一定的关键词提取能力。
2.英文文本,在多次尝试后没能实现关键词抽取,YuanChat的英文能力略逊。
4.1.3 事件抽取
input_text = []
answer_text = []
while True:context = "\n".join([f"用户:{input_text[i]}\n\n小元:{answer_text[i]}" for i in range(len(input_text))])user_input = input("用户: ")if user_input == "end":breakinput_text.append(user_input)user_input = context + "\n用户:" + user_input + "\n\n小元:"output_text = answer(user_input)answer_text.append(output_text)print(f"小元: {output_text}")print(f"示例".center(50, "="))
用户: 王二麻子昨天在东北偷了一辆自行车,当天晚上就被警察给逮捕了。请对上面的句子做事件抽取,并以有序列表展示。小元: 王二麻子昨天在东北偷了一辆自行车,当天晚上就被警察逮捕了。序号 事件 人物 事件 1 王二麻子昨天在东北偷了一辆自行车
2 王二麻子当天晚上就被警察逮捕
3 王二麻子偷自行车的地点
4 王二麻子被捕的原因是
5 警察逮捕了他
========================示例========================用户: 王二麻子为什么被逮捕?小元: 王二麻子被抓的原因可能是他偷的自行车价值比较大,警察怀疑他盗窃自行车,所以就逮捕了他。
========================示例========================用户: 王二麻子在哪里偷的自行车?小元: 王二麻子在东北偷的自行车,地点是在东北的一个小山村。
========================示例========================用户: 地点确实是在东北,没提到小山村呀,为什么多加一个小山村呢?小元: 因为小山村是东北的一个小山村,王二麻子偷的自行车就停在一个小山村的路边。
========================示例========================用户: end
事件抽取的效果不错,对于因果回答的格式也有一定的规范性。但仍然难免存在胡编乱造的成分。
4.2 简单推理任务
4.2.1 NLI任务
# NLI任务
start = time.clock() #开始时间
input_text = """做一个自然语言推断任务:
1.我在武汉读书
2.我在中国读书
请问第一个句子,能推理出第二个句子吗?
"""
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:做一个自然语言推断任务:
1.我在武汉读书
2.我在中国读书
请问第一个句子,能推理出第二个句子吗?小元:我在武汉读书,因为我在武汉上学;我在中国读书,因为在中国读书推理耗时:1.5950679999999693 s
# NLI
start = time.clock() #开始时间
input_text = """做一个自然语言推断任务:
1.我在武汉读书
2.我在中国读书
请问第一个句子,能推理出第二个句子吗?
"""
input_text = "用户:" + input_text + "\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:做一个自然语言推断任务:
1.我在武汉读书
2.我在中国读书
请问第一个句子,能推理出第二个句子吗?小元:我在武汉读书,因为我在武汉上学;我在中国读书,因为在中国读书推理耗时:1.6014819999999759 s
简单的NLI任务虽然判断正确,但解释不行
4.2.2 数学推理
# NLI
start = time.clock() #开始时间
input_text = """操场一圈1000米,甲走路的速度是1m/s,乙同学的速度是0.5m/s,两个人从同一个起点出发,向相反方向走,请问他们出发后过多久第二次相遇?
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:操场一圈1000米,甲走路的速度是1m/s,乙同学的速度是0.5m/s,两个人从同一个起点出发,向相反方向走,请问他们出发后过多久第二次相遇?小元:那么他们出发后过多久第二次相遇呢?答案是:10分钟。推理耗时:1.6905409999999392 s
经过多次尝试,部分结果存在公式计算,但未能有正确的计算步骤和答案
# NLI
start = time.clock() #开始时间
input_text = """如果鲁迅先生还活着,他现在多少岁了?
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:如果鲁迅先生还活着,他现在多少岁了?小元:鲁迅先生70岁推理耗时:0.6476829999999154 s
经过多次尝试,YuanChat推理能力比较弱,一是给出的答案千奇百怪,二是很少给出推理过程和解释
4.3 写作辅助
# 写作
start = time.clock() #开始时间
input_text = """王子、打篮球、帅气、偶像、背带裤。请帮我用上面几个关键词,造个句
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:王子、打篮球、帅气、偶像、背带裤
请帮我用上面几个关键词,造个句小元:他是我心中的王子,他很帅气,他是我偶像,他穿着背带裤打篮球。推理耗时:2.0538980000001175 s
input_text = []
answer_text = []
while True:context = "\n".join([f"用户:{input_text[i]}\n\n小元:{answer_text[i]}" for i in range(len(input_text))])user_input = input("用户: ")if user_input == "end":breakinput_text.append(user_input)user_input = context + "\n用户:" + user_input + "\n\n小元:"output_text = answer(user_input)answer_text.append(output_text)print(f"小元: {output_text}")print(f"示例".center(50, "="))
用户: 王子、打篮球、帅气、偶像、背带裤。请帮我用上面几个关键词,造个句小元: 背带裤是偶像王子的标配,他打篮球的样子帅爆了!
========================示例========================用户: 帮我多写一些细节。小元: 王子穿着背带裤打篮球的样子帅爆了,他帅气的外表和打篮球的样子都吸引了我的注意力。
========================示例========================用户: 太少了,写200字小元: 王子穿着背带裤打篮球的样子帅爆了,他帅气的外表和打篮球的样子都吸引了我的注意力。
========================示例========================用户: 多写一点,写到200字小元: 王子穿着背带裤打篮球的样子帅爆了,他帅气的外表和打篮球的样子都吸引了我的注意力。
========================示例========================用户: end
# 写作
start = time.clock() #开始时间
input_text = """酸菜鱼怎么做?
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:酸菜鱼怎么做?小元:酸菜鱼的做法步骤:1.准备食材。2.鱼切小块,加料酒,盐,淀粉,淀粉水,腌制半小时以上。3.酸菜切条。4.锅烧热,倒入油,下入鱼炸至金黄色,捞出控油。5.锅中留底油,下入酸菜条翻炒。6.放入鱼片,翻炒。7.加入料酒,盐,糖,醋,味精,鸡精。8.出锅装盘。推理耗时:7.845639000000119 s
# 写作
start = time.clock() #开始时间
input_text = """法语、德语和西班牙语哪个更难学?给出理由。
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:法语、德语和西班牙语哪个更难学?给出理由。小元:法语德语西班牙语都是比较难学的,因为它们都是属于交际语言,需要在社交场合中使用。它们都有一定的语法,需要学习者掌握一定的语法知识。例如,西班牙语的语法包括动词,名词,形容词和副词,而法语的语法包括名词,动词,形容词和副词,德语的语法包括动词,名词,形容词和副词,法语的语法类似于汉语的语法,德语的语法类似于汉语的语法。推理耗时:7.959870999999794 s
# 写作
start = time.clock() #开始时间
input_text = """请用python程序绘制一个爱心。
"""
input_text = "用户:" + input_text + "\n\n小元:"
output_text = answer(input_text)
print(f"{input_text}{output_text}\n\n推理耗时:{time.clock()-start} s")
用户:请用python程序绘制一个爱心。小元:def __init__(self):self._ax = Noneself._height = 0self._width = 0self._color = []self._ax.plot([], [], 'g')self._ax.plot([], [], 'o')self._height = heightself._width = widthself._color = []self._ax.set_xlabel('Heartbeat')self._ax.set_ylabel('Hearthbeat')self._height = heightself._center = Trueself._pen = Noneself._pix推理耗时:20.479966999999988 sself._height = 0self._width = 0self._color = []self._ax.plot([], [], 'g')self._ax.plot([], [], 'o')self._height = heightself._width = widthself._color = []self._ax.set_xlabel('Heartbeat')self._ax.set_ylabel('Hearthbeat')self._height = heightself._center = Trueself._pen = Noneself._pix推理耗时:20.479966999999988 s
官方说在代码生成上YuanChat还是比较弱的,并没有喂很多的标注数据
免责声明
亲爱的用户您好!请确保您在ChatYuan应用体验的使用是符合以下规范的,本免责声明包含《免责声明》和《服务使用规范》两部分内容,如您违反《服务使用规范》的相关规定,您将可能会受到一定的服务使用限制。
《免责声明》
在您开始使用本平台提供的API服务时,请您确保您所输入的内容未侵害他人权益,未涉及不良信息,同时未输入与政治、暴力、色情相关的内容,且所有输入内容均合法合规。
您确认并知悉使用本平台服务生成的所有内容均由人工智能模型生成,生成内容具有不完全理性,百度公司和开发者对其生成内容的准确性、完整性和功能性不做任何保证,亦不承担任何法律责任。百度公司和开发者会尽可能为您提供准确且优质稳定的技术服务,但由人工智能模型生成的内容均不代表百度公司和开发者的态度、观点或立场。
百度公司和开发者提供的大模型API调用服务在法律法规允许的范围内进行数据训练,内容包括但不限于公开互联网的信息积累,且所有内容均已在不断的进行自动及人工敏感数据库过滤来确保内容理解和生成的准确性,但仍不排除其中有部分信息存在一定的敏感性、非合理性或导致理解歧义的问题存在,如您将生成的敏感性内容或非理性及有理解歧义的内容进行公开传播,由此造成的侵权、纠纷、损失将由您自行承担,百度公司和开发者对此概不负责,亦不承担任何法律责任,如引发法律追责,您将负全部主要责任。
若您违反本协议中的任一条款,则百度公司和开发者有权随时单方面终止本服务协议,且百度公司和开发者无需承担任何责任。同时百度公司和开发者有权根据实际遭受的损失向您请求赔偿。
《服务使用规范》
在使用ChatYuan应用体验时,您承诺将严格依照本服务使用规范的要求使用本平台的相关服务,并且不会利用本平台的相关服务进行任何违法或不当的活动,发布、传送或分享含有下列内容之一的信息:
(1) 反对宪法所确定的基本原则的;
(2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
(3) 损害国家荣誉和利益的;
(4) 煽动民族仇恨、民族歧视、破坏民族团结的;
(5) 破坏国家宗教政策,宣扬邪教和封建迷信的;
(6) 散布谣言,扰乱社会秩序,破坏社会稳定的;
(7) 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
(8) 侮辱或者诽谤他人,侵害他人合法权利的;
(9) 含有虚假、诈骗、有害、胁迫、侵害他人隐私、骚扰、侵害、中伤、粗俗、猥亵、或其它道德上令人反感的内容;
(10) 含有中国或其它您所在国国家管辖范围内,所适用的法律、法规、规章、条例以及任何具有法律效力的规范所限制或禁止的其它内容的。
您不得利用ChatYuan应用体验的服务从事以下活动:
(1)未经允许,进入计算机信息网络或者使用计算机信息网络资源的;
(2)未经允许,对计算机信息网络功能进行删除、修改或者增加的;
(3)未经允许,对进入计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加的;
(4)故意制作、传播计算机病毒等破坏性程序的;
(5)其他危害计算机信息网络安全的行为。
您应当对使用本平台的API服务时是否符合法律法规的相关规定进行必要审查,如您在使用服务时输入或者上传了暴恐违禁、色情相关、恶意推广、低俗辱骂、不良网络用语、低质灌水、政治敏感用语、侵权词汇、现象级红线词汇的文本或图片等内容时,将会被平台提示您的输入不符合规范,且您无法使用本平台的相关服务。
如您在使用本平台的API服务时,输入内容不符合规范且生成了不符合规范的图像或文本,我们将在后台对您的图像或文本进行筛查并删除,如您将该图像或文本用于不良传播,您将承担相应的法律责任,而平台无须承担任何责任。
您使用本平台的API服务时不得侵害他人权益(包括但不限于著作权、专利权、商标权、肖像权等知识产权与其他权益)。您同意并承诺,您使用本服务所提供、使用的文本内容已获得了充分、必要且有效的合法许可及授权,同时您同意并承诺在使用本服务时,不会披露任何保密、敏感或个人隐私等信息。
您在ChatYuan应用体验上的全部行为应符合法律法规底线、社会主义制度底线、国家利益底线、公民合法权益底线、社会公共秩序底线、道德风尚底线、信息真实性底线。 您必须为自己注册帐号下的一切行为负责,包括您所发表的任何内容以及由此产生的任何后果。您应对本服务中的内容自行加以判断,并承担因使用内容而引起的所有风险, 包括因对内容的合法性、正确性、完整性或实用性的依赖而产生的风险。百度公司和开发者无法且不会对因前述风险而导致的任何损失或损害承担责任。
您理解并同意,因您违反本协议或相关服务条款的规定,导致或产生第三方主张的任何索赔、要求或损失,您应当独立承担责任;百度公司和开发者因此遭受损失的,您也应当一并赔偿。
此文章为搬运
原项目链接