赞
踩
ViT: Google
Swin-Transformer: Microsoft
V-MOE: Google
SAM: Meta
盘古CV: 华为
文心UFO: 百度
…
预训练大模型
# 导入必要的库和模块 import argparse import json import pathlib # 定义 Stanford Alpaca 使用的 prompt 格式 PROMPT_DICT = { "prompt_input": "..." # 包含 instruction 和 input 的 prompt 格式, "prompt_no_input": "..." # 只包含 instruction 的 prompt 格式 } # 主函数 def main(args_param): data_path = pathlib.Path(args_param.data_path) with data_path.open() as f: data = json.load(f) # 构造新的对话格式数据 sources = [prompt_input.format_map(example) if example.get("input", "") != "" else prompt_no_input.format_map(example) for example in data] targets = [example["output"] for example in data] new_data = [] cnt = 1 for s, t in zip(sources, targets): new_data.append( { "id": str(cnt), "conversations": [ {"from": "human", "value": s}, {"from": "gpt", "value": t}, ], } ) cnt += 1 # 将新的对话格式数据写入输出文件 json.dump(new_data, open(args_param.output_path, "w"), indent=2) if __name__ == "__main__": # 解析命令行参数 parser = argparse.ArgumentParser() parser.add_argument("--data_path", type=str, default="alpaca-data.json") parser.add_argument("--output_path", type=str, default="alpaca-data-conversation.json") args = parser.parse_args() # 执行主函数 main(args)
流程:
数据集准备: 首先需要收集大规模的文本图片数据作为预训练的训练集,数据量越大效果越好。大模型常用的数据集包括维基百科、书籍文集、网络新闻等。
数据预处理: 对采集的文本数据进行预处理,例如tokenize、建立词表等。
模型构建: 构建模型的网络结构, transformers类模型最为常用。选择合适的编码器,如BERT的Encoder。
预训练任务设计: 选择合适的预训练任务,让模型在大数据上进行自监督学习。常见的有 Masked Language Model、Next Sentence Prediction 等。
模型预训练: 在预训练数据上针对设定的预训练任务训练模型,取得最优的参数。一般在大规模集群中训练,模型大小会非常大。
Fine-tuning: 在下游任务数据集上,Freeze部分预训练参数,仅 Fine-tune 部分任务相关参数,从而快速让模型适应新任务。
模型部署: 选择合适的方式部署训练好的模型,进行文本生成、文本分类等生产应用。
通过预训练,模型可以学习到通用的语言表示,然后迁移至下游任务中,以提高效果、减少人工标注需求。这就是预训练语言模型的全流程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。