HF上的 llava-med-zh-instruct-60k 数据预处理代码

import pandas as pd
import cv2
import numpy as np
import json

pokeman = pd.read_parquet('data/train-00000-of-00014.parquet')
print(pokeman)

# 处理文本
img_name = 0
save_data_list = []
for index, msg in enumerate(pokeman['messages']):
    save_context_list = []
    for index_text in range(len(msg)):
        if index_text==0:
            save_context = {
                "content": "<image>\n"+msg[index_text]['content'],
                "role": msg[index_text]['role']
            }
        else:
            save_context = {
                "content": msg[index_text]['content'],
                "role": msg[index_text]['role']
            }
        save_context_list.append(save_context)

    save_data = {
        "messages": save_context_list,
        "images": [
            f"llava_image/{img_name}.jpg"
        ]
    }

    save_data_list.append(save_data)

    img_name = img_name+1

with open("./llava_med_data.json", 'w', encoding="utf-8") as f:
    json.dump(save_data_list, f, ensure_ascii=False, indent=4)
    
# 处理图片
# for index, img in enumerate(pokeman['images']):
    # image_bytes = img[0]['bytes']
    # # 将bytes数据转换为numpy矩阵
    # image_np = cv2.imdecode(np.frombuffer(image_bytes, dtype=np.uint8), cv2.IMREAD_COLOR)
    # # 将numpy矩阵保存为jpg格式的图片文件
    # cv2.imwrite(f"image/{index}.jpg", image_np)

批量处理代码

import pandas as pd
import cv2
import numpy as np
import json
from tqdm import tqdm
import os

img_name = 0
save_data_list = []

os.makedirs("./llava_image", exist_ok=True)

for index_multi_filename in range(14):
    file_path = f'data/train-000{str(index_multi_filename).zfill(2)}-of-00014.parquet'
    print(file_path)
    try:
        pokeman = pd.read_parquet(file_path)
    except Exception as e:
        print(f"Error reading {file_path}: {e}")
        continue

    for index, (msg, img) in tqdm(enumerate(zip(pokeman['messages'], pokeman['images'])), total=len(pokeman)):
        save_context_list = []
        for index_text in range(len(msg)):
            content_prefix = "<image>\n" if index_text == 0 else ""
            save_context = {
                "content": content_prefix + msg[index_text]['content'],
                "role": msg[index_text]['role']
            }
            save_context_list.append(save_context)

        save_data = {
            "messages": save_context_list,
            "images": [
                f"llava_image/{img_name}.jpg"
            ]
        }

        save_data_list.append(save_data)

        try:
            image_bytes = img[0]['bytes']
            image_np = cv2.imdecode(np.frombuffer(image_bytes, dtype=np.uint8), cv2.IMREAD_COLOR)
            cv2.imwrite(f"llava_image/{img_name}.jpg", image_np)
        except Exception as e:
            print(f"Error processing image at index {index} from {file_path}: {e}")

        img_name += 1  # Move this line here to ensure unique names for each image.

with open("./llava_med_data.json", 'w', encoding="utf-8") as f:
    json.dump(save_data_list, f, ensure_ascii=False, indent=4)
### 关于 LLaVA-Med 的详细介绍 #### 模型概述 LLaVA-Med 是一种专为生物医学领域设计的多模态大型语言与视觉助手模型。该模型基于通用的 LLaVA 初始化,并通过一系列针对生物医学领域的优化措施进行了改进,包括对预训练模型的进一步训练、概念对齐以及全面的指令微调[^1]。 此外,LLaVA-Med 还利用了一个包含大量医疗场景图片及其描述性文本的数据集来增强其性能,使其能够更好地理解和处理复杂的生物医学概念。 #### 训练方法 为了使 LLaVA-Med 更加适用于生物医学领域,开发团队采用了两阶段的训练策略。第一阶段主要集中在生物医学概念特征对齐上;第二阶段则涉及更深层次的指令微调,从而让模型具备更强的理解能力和更高的准确性[^3]。 #### 使用方法 要使用 LLaVA-Med,可以访问项目的官方地址获取详细的文档和支持资源。项目主页提供了完整的安装指南和示例代码,帮助开发者快速入门并集成此模型至自己的应用程序中[^2]。 以下是简单的加载和运行 LLaVA-Med 的 Python 示例代码: ```python from llava_med import LLaVAMedModel # 加载模型 model = LLaVAMedModel.from_pretrained("path/to/model") # 输入样本数据 input_data = { "text": "A patient with symptoms of fever and cough.", "image": "path/to/image.jpg" } # 获取预测结果 output = model.predict(input_data) print(output) ``` 请注意,在实际操作前需确保已下载好对应的权重文件并配置好环境依赖项。 #### 下载方式 可以通过该项目托管平台上的链接直接克隆仓库或者单独下载所需的模型文件。具体命令如下所示: ```bash git clone https://gitcode.com/gh_mirrors/ll/LLaVA-Med cd LLaVA-Med pip install -r requirements.txt ``` 更多关于如何正确设置本地开发环境的内容可参照 README 文件中的指示完成。 #### 场景应用 由于经过专门定制化调整后的特性优势,LLaVA-Med 可广泛应用于各类需要结合自然语言处理技术和计算机视觉技术解决复杂问题的任务当中,比如但不限于辅助诊断工具开发、科研论文解读服务提供等方面工作之中。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落难Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值