def METHOD_NAME(apps, *args):
    asset_model = apps.get_model("assets", "Asset")
    count = 0
    batch_size = 1000
    hardware_fields = [
        'vendor', 'model', 'sn', 'cpu_model', 'cpu_count', 'cpu_cores',
        'cpu_vcpus', 'memory', 'disk_total', 'disk_info', 'os', 'os_arch',
        'os_version', 'hostname_raw', 'number'
    ]
    while True:
        assets = asset_model.objects.all()[count:count + batch_size]
        if not assets:
            break
        count += len(assets)
        updated = []
        for asset in assets:
            info = {field: getattr(asset, field) for field in hardware_fields if getattr(asset, field)}
            if not info:
                continue
            asset.info = info
            updated.append(asset)
        asset_model.objects.bulk_update(updated, ['info'])