开发者社区 > ModelScope模型即服务 > 正文

ModelScope中,以上错误是什么问题?

"现在训练的代码是:import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0'

from swift.llm import DatasetName, ModelType, SftArguments, sft_main

替换为自定义的数据集路径

custom_dataset_path = '/models/train/ms_agent.json'

sft_args = SftArguments(
model_id_or_path='/models/Qwen-7B-Chat',
model_type=ModelType.qwen_7b_chat,

#dataset=[DatasetName.ms_bench_mini],
custom_train_dataset_path='/models/train/train_ds.json',
train_dataset_sample=1,
logging_steps=5,
max_length=2048,
learning_rate=5e-5,
warmup_ratio=0.4,
output_dir='output',
lora_target_modules=['ALL'],
self_cognition_sample=500,
model_name=['小黄', 'Xiao Huang'],
model_author=['魔搭', 'ModelScope'])

output = sft_main(sft_args)
best_model_checkpoint = output['best_model_checkpoint']
print(f'best_model_checkpoint: {best_model_checkpoint}') 然后数据集文件内容为:{""conversations"": [{""from"": ""user"", ""value"": ""aaaaa""}, {""from"": ""assistant"", ""value"": ""bbbbb""}, {""from"": ""user"", ""value"": ""ccccc""}, {""from"": ""assistant"", ""value"": ""ddddd""}]} 然后报错了:Traceback (most recent call last):
File ""train.py"", line 26, in
output = sft_main(sft_args)
File ""/models/swift/swift/utils/run_utils.py"", line 31, in x_main
result = llm_x(args, **kwargs)
File ""/models/swift/swift/llm/sft.py"", line 134, in llm_sft
train_dataset, val_dataset = get_dataset(
File ""/models/swift/swift/llm/utils/dataset.py"", line 1510, in get_dataset
dataset = get_function(
File ""/models/swift/swift/llm/utils/dataset.py"", line 1579, in get_custom_dataset
train_dataset = load_dataset_from_local(train_subset_split_list,
File ""/models/swift/swift/llm/utils/dataset.py"", line 1564, in load_dataset_from_local
df = transform_jsonl_to_df(obj_list)
File ""/models/swift/swift/utils/np_utils.py"", line 15, in transform_jsonl_to_df
for k, v in obj.items():
AttributeError: 'str' object has no attribute 'items' ModelScope中,以上错误是什么问题?"

展开
收起
Lucidly 2024-05-01 10:29:23 15 0
2 条回答
写回答
取消 提交回答
  • 某政企事业单位运维工程师,主要从事系统运维工作,同时兼顾教育行业、企业等src安全漏洞挖掘,曾获全国行业网络安全大赛二等奖。

    遇到的错误AttributeError: 'str' object has no attribute 'items'表明代码尝试在一个字符串对象上使用items()方法,而这个方法是字典类型的对象才有的。在这个上下文中,问题出在transform_jsonl_to_df函数尝试遍历的对象应该是字典格式,但实际上它接收到了一个字符串。

    根据您提供的数据集内容,它是一个JSON格式的字符串,但似乎代码期望的是可以直接遍历的字典或一系列字典(如果数据集是JSONL格式,即每行一个JSON对象)。可能是在读取或解析JSONL文件时发生了错误,将整个文件内容当作了一个单一的字符串来处理,而不是按行解析为多个字典。

    解决办法建议检查load_dataset_from_local函数中如何读取和处理JSONL文件的部分,确保正确地按行读取并解析每一行的JSON内容为字典对象,而不是将整个文件内容一次性当作字符串解析。可以尝试使用如json.loads(line)来逐行解析文件内容,如果文件是以JSONL格式存储的话。

    官网的demo运行为什么会出现编码问题和参数个数问题,是版本不对吗?

    使用ModelScope官方模型demo 运行时候报错 这个怎么解决啊?

    当我运行Python语言的函数时,遇到报错NoneType object has no attribute split怎么办? 可能原因

    2024-05-02 12:29:38
    赞同 展开评论 打赏
  • 数据集文件名改成.jsonl试试。此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”

    2024-05-01 16:09:48
    赞同 展开评论 打赏

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载