国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用

這篇具有很好參考價值的文章主要介紹了開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用

開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用,AI前沿技術匯總,llama,自然語言處理,人工智能,算法,文本生成,GPT,chatGLM


TextGen: Implementation of Text Generation models

1.介紹

TextGen實現(xiàn)了多種文本生成模型,包括:LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用。

1.1 最新更新

[2023/06/15] v1.0.0版本: 新增ChatGLM/LLaMA/Bloom模型的多輪對話微調訓練,并發(fā)布醫(yī)療問診LoRA模型shibing624/ziya-llama-13b-medical-lora。詳見Release-v1.0.0

[2023/06/02] v0.2.7版本: 新增ChatGLM/LLaMA/Bloom模型的SFT微調訓練,并發(fā)布適用于通用對話和中文糾錯的LoRA模型。詳見Release-v0.2.7

1.2 相關介紹

  • ChatGLM:本項目基于PyTorch實現(xiàn)了ChatGLM-6B模型LoRA微調訓練和預測,可以用于句子糾錯、對話等文本生成任務
  • LLaMA:本項目基于PyTorch實現(xiàn)了LLaMA模型LoRA微調訓練和預測,可以用于對話生成任務和領域微調訓練
  • BLOOM:本項目基于PyTorch實現(xiàn)了BLOOM模型LoRA微調訓練和預測,可以用于對話生成任務和領域微調訓練
  • UDA/EDA:本項目實現(xiàn)了UDA(非核心詞替換)、EDA和Back Translation(回譯)算法,基于TF-IDF將句子中部分不重要詞替換為同義詞,隨機詞插入、刪除、替換等方法,產生新的文本,實現(xiàn)了文本擴增
  • Seq2Seq:本項目基于PyTorch實現(xiàn)了Seq2Seq、ConvSeq2Seq、BART模型的訓練和預測,可以用于文本翻譯、對話生成、摘要生成等文本生成任務
  • T5:本項目基于PyTorch實現(xiàn)了T5和CopyT5模型訓練和預測,可以用于文本翻譯、對話生成、對聯(lián)生成、文案撰寫等文本生成任務
  • GPT2:本項目基于PyTorch實現(xiàn)了GTP2模型訓練和預測,可以用于文章生成、對聯(lián)生成等文本生成任務
  • SongNet:本項目基于PyTorch實現(xiàn)了SongNet模型訓練和預測,可以用于規(guī)范格式的詩詞、歌詞等文本生成任務
  • TGLS:本項目實現(xiàn)了TGLS無監(jiān)督相似文本生成模型,是一種“先搜索后學習”的文本生成方法,通過反復迭代學習候選集,最終模型能生成類似候選集的高質量相似文本

1.2.1 支持模型

release基于textgen訓練的中文模型,模型已經release到HuggingFace models,指定模型名稱textgen會自動下載模型,可直接使用。

Model Arch Introduction Train Script Predict Script
shibing624/t5-chinese-couplet T5 fine-tuned中文對聯(lián)后的模型 對聯(lián)生成模型調研 predict script
shibing624/songnet-base-chinese-songci SongNet fine-tuned宋詞后的模型 training script predict script
shibing624/songnet-base-chinese-couplet SongNet fine-tuned對聯(lián)后的模型 training script predict script
shibing624/chatglm-6b-csc-zh-lora ChatGLM-6B 在27萬中文拼寫糾錯數(shù)據shibing624/CSC上微調了一版ChatGLM-6B,糾錯效果有提升,發(fā)布微調后的LoRA權重 training script predict script
shibing624/chatglm-6b-belle-zh-lora ChatGLM-6B 在100萬條中文ChatGPT指令Belle數(shù)據集BelleGroup/train_1M_CN上微調了一版ChatGLM-6B,問答效果有提升,發(fā)布微調后的LoRA權重 training script predict script
shibing624/llama-13b-belle-zh-lora LLaMA-13B 在100萬條中文ChatGPT指令Belle數(shù)據集BelleGroup/train_1M_CN上微調了一版Llama-13B,問答效果有提升,發(fā)布微調后的LoRA權重 training script predict script
shibing624/chinese-alpaca-plus-7b-hf LLaMA-7B 中文LLaMA-Plus, Alpaca-Plus 7B版本,在LLaMA-7B上擴充了中文詞表并繼續(xù)預訓練120G文本(通用領域),在4M指令數(shù)據集上微調后得到的中文Alpaca-plus模型 training script predict script
shibing624/chinese-alpaca-plus-13b-hf LLaMA-13B 中文LLaMA-Plus, Alpaca-Plus 13B版本,在LLaMA-13B上擴充了中文詞表并繼續(xù)預訓練120G文本(通用領域),在4.3M指令數(shù)據集上微調后得到的中文Alpaca-plus模型 training script predict script
shibing624/ziya-llama-13b-medical-lora LLaMA-13B 在240萬條中英文醫(yī)療數(shù)據集shibing624/medical上微調了一版Ziya-LLaMA-13B模型,醫(yī)療問答效果有提升,發(fā)布微調后的LoRA權重 training script predict script

1.2.2 模型評價得分

Model Arch Introduction Score
LLaMA-7B-Chinese-Alpaca LLaMA-7B 復用ymcui/Chinese-LLaMA-Alpaca的評估case和得分 4.92
LLaMA-13B-Chinese-Alpaca LLaMA-13B 復用ymcui/Chinese-LLaMA-Alpaca的評估case和得分 7.05
ChatGLM-6B ChatGLM-6B 基于原生THUDM/chatglm-6b評估測試集得分 7.16
ChatGLM-6B-v1.1 ChatGLM-6B 基于原生THUDM/chatglm-6bv1.1英文優(yōu)化版模型評估測試集得分 7.18
shibing624/chatglm-6b-belle-zh-lora ChatGLM-6B 基于THUDM/chatglm-6b加載shibing624/chatglm-6b-belle-zh-loraLoRA模型后評估測試集得分 7.03
facat/alpaca-lora-cn-13b LLaMA-13B 基于decapoda-research/llama-13b-hf加載facat/alpaca-lora-cn-13bLoRA模型后評估測試集并標注得分 4.13
Chinese-Vicuna/Chinese-Vicuna-lora-13b-belle-and-guanaco LLaMA-13B 基于decapoda-research/llama-13b-hf加載Chinese-Vicuna/Chinese-Vicuna-lora-13b-belle-and-guanacoLoRA模型后評估測試集并標注得分 3.98
shibing624/chinese-alpaca-plus-7b-hf LLaMA-7B 使用ymcui/Chinese-LLaMA-Alpaca 合并模型方法合并HF權重后,評估測試集并標注得分 6.93
shibing624/chinese-alpaca-plus-13b-hf LLaMA-13B 使用ymcui/Chinese-LLaMA-Alpaca 合并模型方法合并HF權重后,評估測試集并標注得分 7.07
TheBloke/vicuna-13B-1.1-HF LLaMA-13B 使用原生vicuna-13B-1.1合并后的模型,評估測試集并標注得分 5.13
IDEA-CCNL/Ziya-LLaMA-13B-v1 LLaMA-13B 使用姜子牙通用大模型V1,評估測試集并標注得分 6.63

說明:

  • 評估case,詳見在線文檔:中文LLM-benchmark多任務評估集(騰訊文檔) https://docs.qq.com/sheet/DUUpsREtWbFBsUVJE?tab=r7io7g 感謝韓俊明、楊家銘等同學的標注
  • 評估任務類型包括:知識問答,開放式問答,數(shù)值計算,詩詞、音樂、體育,娛樂,寫文章,文本翻譯,代碼編程,倫理、拒答類,多輪問答,Score 評分是前100條(10分制)的平均分數(shù),人工打分,越高越好
  • 評估數(shù)量少,任務類型不夠全面,評分之間的大小關系有一些參考價值,分數(shù)的絕對值沒太大參考價值
  • 評估腳本:tests/test_benchmark.py ,使用fp16預測,無int量化處理,運行腳本可復現(xiàn)評估結果,但生成結果具有隨機性,受解碼超參、隨機種子等因素影響。評測并非絕對嚴謹,測試結果僅供晾曬參考
  • 結論:ChatGLM-6B、LLaMA-13B的中文衍生模型(包括alpaca-plus, vicuna, ziya)的表現(xiàn)屬于第一梯隊,原版LLaMA-7B的表現(xiàn)整體稍差些
  • LLaMA-13B-Chinese-Alpaca是在原版LLaMA上擴充了中文詞表,并融入了約20G的通用中文語料后的指令微調模型,表明了LLaMA的底座優(yōu)秀,具有強大的語言遷移能力
  • ChatGLM這種原生的中文預訓練模型更理解中文語義,且在中文知識問答、開放式問答得分高
  • LLaMA系列模型數(shù)值計算、中英翻譯、代碼編程類得分高
  • 經過中文預訓練和SFT微調后的Chinese-LLaMA模型在中文詩詞、娛樂、倫理類得分相較原版LLaMA有提升

2.demo展示

HuggingFace Demo: https://huggingface.co/spaces/shibing624/chinese-couplet-generate

開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用,AI前沿技術匯總,llama,自然語言處理,人工智能,算法,文本生成,GPT,chatGLM

run example: examples/gradio_demo.py to see the demo:

python examples/gradio_demo.py

model trained by examples/t5/T5_Finetune_Chinese_Couplet.ipynb

2.1 安裝

pip install -U textgen

or

install develop version:

pip install torch # conda install pytorch
git clone https://github.com/shibing624/textgen.git
cd textgen
python setup.py install

2.2 ChatGLM-6B 模型

2.2.1 使用 ChatGLM-6B 微調后的模型

example: examples/chatglm/inference_demo.py

from textgen import ChatGlmModel

model = ChatGlmModel("chatglm", "THUDM/chatglm-6b", peft_name="shibing624/chatglm-6b-csc-zh-lora")
r = model.predict(["對下面中文拼寫糾錯:\n少先隊員因該為老人讓坐。\n答:"])
print(r)  # ['少先隊員應該為老人讓座。\n錯誤字:因,坐']

PS:由于使用了開發(fā)中的peft庫,可能由于版本更新,導致LoRA模型加載失敗,建議使用下面的訓練方法,自己訓練LoRA模型。

2.2.2 訓練 ChatGLM-6B 微調模型

  1. 支持自定義訓練數(shù)據集和訓練參數(shù),數(shù)據集格式參考examples/data/zh_csc_test.tsv或者examples/data/json_files/belle_10.json
  2. 支持AdaLoRA、LoRA、P_Tuning、Prefix_Tuning等部分參數(shù)微調方法,也支持全參微調
  3. 支持多卡訓練,支持混合精度訓練

example: examples/chatglm/training_chatglm_demo.py

單卡訓練:

cd examples/chatglm
CUDA_VISIBLE_DEVICES=0 python training_chatglm_demo.py --do_train --do_predict --num_epochs 1 --output_dir outputs_chatglm

多卡訓練:

cd examples/chatglm
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 training_chatglm_demo.py --do_train --do_predict --num_epochs 20

2.2.3 基于微調(LoRA)模型繼續(xù)訓練

如果需要基于Lora模型繼續(xù)訓練,可以使用下面的腳本合并模型為新的base model,再微調訓練即可。

執(zhí)行以下命令:

python -m textgen/chatglm/merge_peft_adapter.py \
    --base_model_name_or_path path_to_original_base_model_dir \
    --peft_model_path path_to_peft_model_dir \
    --output_dir path_to_output_dir 

參數(shù)說明:

--base_model_name_or_path:存放HF格式的底座模型權重和配置文件的目錄
--peft_model_path:存放PEFT格式的微調模型權重和配置文件的目錄
--output_dir:指定保存全量模型權重的目錄,默認為./merged

2.3 LLaMA 模型

2.3.1 使用 LLaMA 微調后的模型

example: examples/gpt/inference_demo.py

show code example and result
import sys

sys.path.append('../..')
from textgen import GptModel


def generate_prompt(instruction):
  return f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:{instruction}\n\n### Response:"""


model = GptModel("llama", "decapoda-research/llama-7b-hf", peft_name="ziqingyang/chinese-alpaca-lora-7b")
predict_sentence = generate_prompt("問:用一句話描述地球為什么是獨一無二的。\n答:")
r = model.predict([predict_sentence])
print(r)  # ['地球是唯一一顆擁有生命的行星。']

2.3.2訓練 LLaMA 微調模型

  1. 支持自定義訓練數(shù)據集和訓練參數(shù),數(shù)據集格式參考examples/data/zh_csc_test.tsv或者shibing624/alpaca-zh
  2. 支持AdaLoRA、LoRA、P_Tuning、Prefix_Tuning等部分參數(shù)微調方法,也支持全參微調
  3. 支持多卡訓練,支持混合精度訓練,使用方法同上(ChatGLM多卡訓練)

example: examples/llama/training_llama_demo.py

2.3.3 基于微調(LoRA)模型繼續(xù)訓練

如果需要基于Lora模型繼續(xù)訓練,可以使用下面的腳本合并模型為新的base model,再微調訓練即可。

單LoRA權重合并(適用于 Chinese-LLaMA, Chinese-LLaMA-Plus, Chinese-Alpaca)

執(zhí)行以下命令:

python -m textgen/gpt/merge_peft_adapter.py \
    --base_model_name_or_path path_to_original_base_model_dir \
    --peft_model_path path_to_chinese_llama_or_alpaca_lora \
    --output_type [pth|huggingface]
    --output_dir path_to_output_dir 

參數(shù)說明:

--base_model_name_or_path:存放HF格式的底座模型權重和配置文件的目錄
--peft_model_path:中文LLaMA/Alpaca LoRA解壓后文件所在目錄,也可使用HF上的Lora模型名稱,如`ziqingyang/chinese-alpaca-lora-7b`會自動下載對應模型
--output_type: 指定輸出格式,可為pth或huggingface。若不指定,默認為huggingface
--output_dir:指定保存全量模型權重的目錄,默認為./merged
--offload_dir(可選):對于低內存用戶需要指定一個offload緩存路徑

2.3.4 訓練領域模型

Note: 為了全面的介紹訓練醫(yī)療大模型的過程,把4階段訓練方法(Pretraining, Supervised Finetuning, Reward Modeling and Reinforcement Learning)單獨新建了一個repo:shibing624/MedicalGPT,請移步該repo查看訓練方法。

2.4 BLOOM 模型

2.4.1訓練 BLOOM 微調模型

example: examples/bloom/training_bloom_demo.py

2.5 ConvSeq2Seq 模型

訓練并預測ConvSeq2Seq模型:

example: examples/seq2sesq/training_convseq2seq_model_demo.py

show code example and result
import argparse
from loguru import logger
import sys

sys.path.append('../..')
from textgen.seq2seq.conv_seq2seq_model import ConvSeq2SeqModel


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--train_file', default='../data/zh_dialog.tsv', type=str, help='Training data file')
    parser.add_argument('--do_train', action='store_true', help='Whether to run training.')
    parser.add_argument('--do_predict', action='store_true', help='Whether to run predict.')
    parser.add_argument('--output_dir', default='./outputs/convseq2seq_zh/', type=str, help='Model output directory')
    parser.add_argument('--max_seq_length', default=50, type=int, help='Max sequence length')
    parser.add_argument('--num_epochs', default=200, type=int, help='Number of training epochs')
    parser.add_argument('--batch_size', default=32, type=int, help='Batch size')
    args = parser.parse_args()
    logger.info(args)

    if args.do_train:
        logger.info('Loading data...')
        model = ConvSeq2SeqModel(epochs=args.num_epochs, batch_size=args.batch_size,
                                 model_dir=args.output_dir, max_length=args.max_seq_length)
        model.train_model(args.train_file)
        print(model.eval_model(args.train_file))

    if args.do_predict:
        model = ConvSeq2SeqModel(epochs=args.num_epochs, batch_size=args.batch_size,
                                 model_dir=args.output_dir, max_length=args.max_seq_length)
        sentences = ["什么是ai", "你是什么類型的計算機", "你知道熱力學嗎"]
        print("inputs:", sentences)
        print('outputs:', model.predict(sentences))


if __name__ == '__main__':
    main()

output:

inputs: ["什么是ai", "你是什么類型的計算機", "你知道熱力學嗎"]
outputs: ['人工智能是工程和科學的分支,致力于構建思維的機器。', '我的程序運行在python,所以我在任何運腦上工作!', '我不能錯熱是一個瘋狂的人工智能"200年。']

2.6 BART 模型

訓練并預測BART模型:

example: examples/seq2sesq/training_bartseq2seq_zh_demo.py

output:

inputs: ['什么是ai', '你是什么類型的計算機', '你知道熱力學嗎']
outputs: ['人工智能是工程和科學的分支,致力于構', '我的程序運行在python,所以我在任何電腦上', '什么是熱力學嗎?']

2.7 T5 模型

example: examples/t5/training_zh_t5_model_demo.py

show code example and result
import argparse
from loguru import logger
import pandas as pd
import sys

sys.path.append('../..')
from textgen.t5 import T5Model


def load_data(file_path):
    data = []
    with open(file_path, 'r', encoding='utf-8') as f:
        for line in f:
            line = line.strip('\n')
            terms = line.split('\t')
            if len(terms) == 2:
                data.append(['QA', terms[0], terms[1]])
            else:
                logger.warning(f'line error: {line}')
    return data


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--train_file', default='../data/zh_dialog.tsv', type=str, help='Training data file')
    parser.add_argument('--model_type', default='t5', type=str, help='Transformers model type')
    parser.add_argument('--model_name', default='Langboat/mengzi-t5-base', type=str, help='Transformers model or path')
    parser.add_argument('--do_train', action='store_true', help='Whether to run training.')
    parser.add_argument('--do_predict', action='store_true', help='Whether to run predict.')
    parser.add_argument('--output_dir', default='./outputs/mengzi_t5_zh/', type=str, help='Model output directory')
    parser.add_argument('--max_seq_length', default=50, type=int, help='Max sequence length')
    parser.add_argument('--num_epochs', default=10, type=int, help='Number of training epochs')
    parser.add_argument('--batch_size', default=32, type=int, help='Batch size')
    args = parser.parse_args()
    logger.info(args)

    if args.do_train:
        logger.info('Loading data...')
        # train_data: Pandas DataFrame containing the 3 columns - `prefix`, `input_text`, `target_text`.
        #   - `prefix`: A string indicating the task to perform. (E.g. `"question"`, `"stsb"`)
        #   - `input_text`: The input text. `prefix` is prepended to form the full input. (<prefix>: <input_text>)
        #   - `target_text`: The target sequence
        train_data = load_data(args.train_file)
        logger.debug('train_data: {}'.format(train_data[:10]))
        train_df = pd.DataFrame(train_data, columns=["prefix", "input_text", "target_text"])

        eval_data = load_data(args.train_file)[:10]
        eval_df = pd.DataFrame(eval_data, columns=["prefix", "input_text", "target_text"])

        model_args = {
            "reprocess_input_data": True,
            "overwrite_output_dir": True,
            "max_seq_length": args.max_seq_length,
            "train_batch_size": args.batch_size,
            "num_train_epochs": args.num_epochs,
            "save_eval_checkpoints": False,
            "save_model_every_epoch": False,
            "evaluate_generated_text": True,
            "evaluate_during_training": True,
            "evaluate_during_training_verbose": True,
            "use_multiprocessing": True,
            "save_best_model": True,
            "output_dir": args.output_dir,
            "use_early_stopping": True,
        }
        # model_type: t5  model_name: Langboat/mengzi-t5-base
        model = T5Model(args.model_type, args.model_name, args=model_args)

        def count_matches(labels, preds):
            logger.debug(f"labels: {labels[:10]}")
            logger.debug(f"preds: {preds[:10]}")
            match = sum([1 if label == pred else 0 for label, pred in zip(labels, preds)])
            logger.debug(f"match: {match}")
            return match

        model.train_model(train_df, eval_data=eval_df, matches=count_matches)
        print(model.eval_model(eval_df, matches=count_matches))

    if args.do_predict:
        model = T5Model(args.model_type, args.output_dir)
        sentences = ["什么是ai", "你是什么類型的計算機", "你知道熱力學嗎"]
        print("inputs:", sentences)
        print("outputs:", model.predict(sentences))


if __name__ == '__main__':
    main()

output:

inputs: ['什么是ai', '你是什么類型的計算機', '你知道熱力學嗎']
outputs: ['人工智能有兩個廣義的定義,任何擬人的機械,如在卡雷爾capeks', '我的程序運行在Python,所以我在任何電腦上工作!', '什么是熱力學']

2.8 GPT2 模型

2.8.1 中文GPT2 - 文章生成

使用中文數(shù)據集(段落格式,\n間隔),訓練GPT2模型,可以用于詩歌生成、文章生成等任務。

example: examples/gpt2/training_zh_gpt2_demo.py

2.8.2 中文GPT2 - 對聯(lián)生成

使用中文對聯(lián)數(shù)據集(tsv格式,\t間隔),自定義數(shù)據集讀取Dataset,訓練GPT2模型,可以用于對聯(lián)生成、對話生成等任務。

example: examples/gpt2/training_couplet_gpt2_demo.py

GPT2 vs T5:

  1. 都是從Transformer改進來的,T5同時有編碼器和解碼器,GPT2只有解碼器
  2. T5的模型優(yōu)勢是處理給定輸入,產出對應輸出的任務,如翻譯、對話、問答等
  3. GPT2的模型優(yōu)勢是自由創(chuàng)作,如寫一篇短文
  4. T5的對聯(lián)生成效果好于GPT2、GPT2的詩詞生成效果好于T5
  • 對聯(lián)生成模型調研
  • 古詩生成模型調研

2.9 SongNet 模型

格式控制的文本生成模型,paper見SongNet: Rigid Formats Controlled Text Generation,
適用于強韻律格式要求的詩歌、對聯(lián)、歌詞生成等任務。

example: examples/songnet/training_zh_songnet_demo.py

2.10 Keyword Text Augmentation(EDA/UDA)

example: examples/text_augmentation/text_augmentation_demo.py

show code example and result
import sys

sys.path.append('..')
from textgen.augment import TextAugment

if __name__ == '__main__':
    docs = ['主要研究機器學習、深度學習、計算機視覺、智能對話系統(tǒng)相關內容',
            '晚上肚子好難受',
            '你會武功嗎,我不會',
            '組裝標題質量受限于廣告主自提物料的片段質量,且表達豐富度有限',
            ]
    m = TextAugment(sentence_list=docs)
    a = docs[0]
    print(a)

    b = m.augment(a, aug_ops='random-0.2')
    print('random-0.2:', b)

    b = m.augment(a, aug_ops='insert-0.2')
    print('insert-0.2:', b)

    b = m.augment(a, aug_ops='delete-0.2')
    print('delete-0.2:', b)

    b = m.augment(a, aug_ops='tfidf-0.2')
    print('tfidf-0.2:', b)

    b = m.augment(a, aug_ops='mix-0.2')
    print('mix-0.2:', b)

output:

主要研究機器學習、深度學習、計算機視覺、智能對話系統(tǒng)相關內容
random-0.2: ('主要陪陪機器學習、深度學習主要計算機視覺、智能對話系統(tǒng)受限于內容', [('研究', '陪陪', 2, 4), ('、', '主要', 13, 15), ('相關', '受限于', 27, 30)])
insert-0.2: ('主要研究機器機器學習學習、深度深度學習、計算機視覺、智能對話系統(tǒng)相關內容', [('機器', '機器機器', 4, 8), ('學習', '學習學習', 8, 12), ('深度', '深度深度', 13, 17)])
delete-0.2: ('主要研究機器學習、深度學習、計算機視覺、對話系統(tǒng)相關內容', [('智能', '', 20, 20)])
tfidf-0.2: ('一是研究機器學習、深度學習、計算機聽覺、智能交談系統(tǒng)密切相關內容', [('主要', '一是', 0, 2), ('視覺', '聽覺', 17, 19), ('對話', '交談', 22, 24), ('相關', '密切相關', 26, 30)])
mix-0.2: ('主要研究機器學習、深度學、計算機聽覺、智能對話軟件系統(tǒng)相關內容', [('學習', '學', 11, 12), ('視覺', '聽覺', 16, 18), ('系統(tǒng)', '軟件系統(tǒng)', 23, 27)])

2.11 TGLS 模型(無監(jiān)督相似文本生成模型)

無監(jiān)督的中文電商評論生成:從電商評論中提取用戶表達觀點的短句并進行組合來生成仿真評論。

example: examples/unsup_generation/unsup_generation_demo.py

show code example and result
import os
import sys

sys.path.append('..')
from textgen.unsup_generation import TglsModel, load_list

pwd_path = os.path.abspath(os.path.dirname(__file__))

samples = load_list(os.path.join(pwd_path, './data/ecommerce_comments.txt'))
docs_text = [
    ["挺好的,速度很快,也很實惠,不知效果如何",
     "產品沒得說,買了以后就降價,心情不美麗。",
     "剛收到,包裝很完整,不錯",
     "發(fā)貨速度很快,物流也不錯,同一時間買的兩個東東,一個先到一個還在路上。這個水水很喜歡,不過蓋子真的開了。蓋不牢了現(xiàn)在。",
     "包裝的很好,是正品",
     "被種草蘭蔻粉水三百元一大瓶囤貨,希望是正品好用,收到的時候用保鮮膜包裹得嚴嚴實實,只敢買考拉自營的護膚品",
     ],
    ['很溫和,清洗的也很干凈,不油膩,很不錯,會考慮回購,第一次考拉買護膚品,滿意',
     '這款卸妝油我會無限回購的。即使我是油痘皮,也不會悶痘,同時在臉部按摩時,還能解決白頭的脂肪粒的問題。用清水洗完臉后,非常的清爽。',
     '自從用了fancl之后就不用其他卸妝了,卸的舒服又干凈',
     '買貴了,大潤發(fā)才賣79。9。',
     ],
    samples
]
m = TglsModel(docs_text)
r = m.generate(samples[:500])
print('size:', len(r))
for review in r:
    print('\t' + review)

output:

美迪惠爾 N.M.F針劑水庫保濕面膜有如下的20句評論,其中有10句是真實用戶評論,10句是生成的評論,能看出來么???

還不錯還不錯還不錯還不錯。
東西到了,不知道好不好用。試用過后再來評價。到時看網評都還可以。
哺乳期唯一使用的護膚品,每天都是素顏,臉面全靠面膜吊著??補水??不粘膩一如既往的支持,喜歡??
搞活動時買的面膜,不知道這個面膜是真是假敷在臉上面膜紙都有小水泡鼓起來。
很不錯,非常補水,用過的都知道,性價比之王,好用又不貴,正品,用著放心,物流也很快。
面膜非常好用哦。面膜薄薄的。好像是蠶絲面膜啊。精華很多呢。敷在臉上很舒服。感覺挺保濕的,味道也挺好聞的。就是里面只有單純的面膜直接敷臉上有點不好弄,哈哈哈
還可以保濕效果不錯水潤潤的每天貼一片臉也不干了用完了在買點,不錯還會繼續(xù)回購的。
快遞很快,東西很贊!想要得點考拉豆不容易,還要三十個字。時間寶貴,廢話不說!用過了就知道了
挺好用的,朋友推薦來的
挺好用的,淡淡的,雖然不是很濃精華的感覺,但是效果也蠻好的。劃算
不得不說美迪惠爾的面膜是我用過的最好的面膜之一??補水效果非常好,沒想到這么便宜的價格竟真的能買到真品。
保濕效果挺好的,面膜很好用。
期待好的產品。
一打開包裝里面的精華剛剛好,用了補水補水效果不錯,物流非??臁?皮膚很光滑??比上去速度快三天就到了。
前兩天皮膚干燥連續(xù)敷了兩個晚上感覺還不錯??補水效果明顯!可想而知精華液又多充足??敷上以后涼涼的很舒服。
補水效果一般吧~但是我用的韓國背回來的面膜紙不算薄,希望好用會回購的,敷上臉感覺比較清爽~價格還不便宜。
希望好用,面膜用過了很好用,皮膚水嫩光滑白皙,補水不錯,價格也合適。
就是精華液太少了,保濕效果不錯。
面膜的補水效果非常好,保濕效果確實很贊,這個面膜相對于膠原蛋白和美白的那兩款的面膜紙要厚一些,看著價格合適。

前10句是真實用戶評論,后10句是生成的。

3.數(shù)據集 Dataset

3.1 SFT datasets

  • 50萬條中文ChatGPT指令Belle數(shù)據集:BelleGroup/train_0.5M_CN
  • 100萬條中文ChatGPT指令Belle數(shù)據集:BelleGroup/train_1M_CN
  • 5萬條英文ChatGPT指令Alpaca數(shù)據集:50k English Stanford Alpaca dataset
  • 2萬條中文ChatGPT指令Alpaca數(shù)據集:shibing624/alpaca-zh
  • 69萬條中文指令Guanaco數(shù)據集(Belle50萬條+Guanaco19萬條):Chinese-Vicuna/guanaco_belle_merge_v1.0
  • 240萬條中文醫(yī)療數(shù)據集(包括預訓練數(shù)據和指令微調數(shù)據集):shibing624/medical
  • 5萬條英文ChatGPT多輪對話數(shù)據集:RyokoAI/ShareGPT52K
  • 80萬條中文ChatGPT多輪對話數(shù)據集:BelleGroup/multiturn_chat_0.8M
  • 116萬條中文ChatGPT多輪對話數(shù)據集:fnlp/moss-002-sft-data

3.2 Reward Model datasets

  • 原版的oasst1數(shù)據集:OpenAssistant/oasst1
  • 2萬條多語言oasst1的reward數(shù)據集:tasksource/oasst1_pairwise_rlhf_reward
  • 11萬條英文hh-rlhf的reward數(shù)據集:Dahoas/full-hh-rlhf
  • 9萬條英文reward數(shù)據集(來自Anthropic’s Helpful Harmless dataset):Dahoas/static-hh
  • 7萬條英文reward數(shù)據集(來源同上):Dahoas/rm-static
  • 7萬條繁體中文的reward數(shù)據集(翻譯自rm-static)liswei/rm-static-m2m100-zh
  • 7萬條英文Reward數(shù)據集:yitingxie/rlhf-reward-datasets
  • 3千條中文知乎問答偏好數(shù)據集:liyucheng/zhihu_rlhf_3k

參考鏈接:https://github.com/shibing624/textgen

如果github進入不了也可進入https://download.csdn.net/download/sinat_39620217/88205079 免費下載相關資料文章來源地址http://www.zghlxwxcb.cn/news/detail-641593.html

到了這里,關于開啟想象翅膀:輕松實現(xiàn)文本生成模型的創(chuàng)作應用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,開箱即用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包