书接上回,上一章我们简单地过了一遍如何获取训练数据并通过代码将数据保存到 Elasticsearch 中了,但是保存下来后发现数据量还是不够(总数据量 22w+),这个时候可以选择采用数据增强技术来补充训练数据。
同理,这次我也是在 Modelscope、和鲸、飞桨、天池等多个平台获取跟中药相关的开放数据集,由于这次数据集不再是直接的问答数据而是一些内容详情,因此无法直接使用。为了方便数据整理我先按分类将数据集放入最为熟悉的 MySQL 中进行数据“初加工”。之前的文章中有讲过如何处理:
【AIGC】AutoKeras 数据清洗与简单提纯_aigc数据清洗csdn-CSDN博客
处理起来大同小异,就不再叙述了。之后再通过 Python 脚本提交给大模型进行数据增强了。伪代码如下所示:
...
api = ApiUtil()
myclient_local = MysqlUtil()
class MysqlToTurning:
def setup_data(self,params,source_table,batch_size,call_func):
"""
数据处理公共函数
"""
...
def _thread_genrate_turning(prompt_str, insert_batch, source_table):
"""
查询大模型并组装返回训练用问答对函数
"""
...
def setup_ancient_books_data(results, source_table):
"""
处理中药古籍数据函数
"""
...
def setup_herbal_medicines_data(results, source_table):
"""
处理中药基础数据函数
"""
...
def setup_medicine_formulas_data(results, source_table):
"""
处理中药方剂数据函数
"""
...
def setup_pharmacopeia_data(results, source_table):
"""
处理药典、法律法规数据函数
"""
...
mtt = MysqlToTurning()
if __name__ == "__main__":
threads = []
# 设定 mysql 中表与字段的对应关系,以及动态调用那个处理函数
params_array = [
{
"table_name":"my_ancient_books", # mysql 表
"table_fields": ["book_name","book_author","book_dynasty","book_release","book_content"], # 表中字段
"function_call": setup_ancient_books_data # 对应的处理函数
},
{
"table_name":"my_herbal_medicines",
"table_fields": ["variety_name","variety_data_type","variety_source","variety_content"],
"function_call": setup_herbal_medicines_data
},
{
"table_name":"my_medicine_formulas",
"table_fields": ["formula_name","formula_data_type","formula_source","formulas_content"],
"function_call": setup_medicine_formulas_data
},
{
"table_name":"my_pharmacopeia",
"table_fields": ["pharmacopeiacol_name","pharmacopeiacol_data_type","pharmacopeia_source","pharmacopeiacol_content"],
"function_call": setup_pharmacopeia_data
}
]
# 创建多线程进行处理
for params in params_array:
thread

最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=151612230&d=1&t=3&u=e425759668084909a7900a9e038ba513)
479

被折叠的 条评论
为什么被折叠?



