Don't require the `--structure` argument.
if (!silent)
            std::cerr << "Loading models\n";
        ReadBufferFromFile model_file_in(load_from_file);
        CompressedReadBuffer model_in(model_file_in);
        UInt8 version = 0;
        readBinary(version, model_in);
        if (version != 0)
            throw Exception("Unknown version of the model file", ErrorCodes::UNKNOWN_FORMAT_VERSION);
        readBinary(source_rows, model_in);
        Names data_types = header.getDataTypeNames();
        size_t header_size = 0;
        readBinary(header_size, model_in);
        if (header_size != data_types.size())
            throw Exception("The saved model was created for different number of columns", ErrorCodes::INCORRECT_NUMBER_OF_COLUMNS);
        for (size_t i = 0; i < header_size; ++i)
        {
            String type;
            readBinary(type, model_in);
            if (type != data_types[i])
                throw Exception("The saved model was created for different types of columns", ErrorCodes::TYPE_MISMATCH);
        }
        obfuscator.deserialize(model_in);
    }
    if (!save_into_file.empty())
    {
        if (!silent)
            std::cerr << "Saving models\n";
        WriteBufferFromFile model_file_out(save_into_file);
        CompressedWriteBuffer model_out(model_file_out, CompressionCodecFactory::instance().get("ZSTD", 1));