您的位置:首页 > 财经 > 产业 > 大千设计装饰有限公司_怎么做业务推广技巧_哪个浏览器看黄页最快夸克浏览器_苏州网站建设公司

大千设计装饰有限公司_怎么做业务推广技巧_哪个浏览器看黄页最快夸克浏览器_苏州网站建设公司

2024/12/23 16:12:18 来源:https://blog.csdn.net/python1222_/article/details/144348532  浏览:    关键词:大千设计装饰有限公司_怎么做业务推广技巧_哪个浏览器看黄页最快夸克浏览器_苏州网站建设公司
大千设计装饰有限公司_怎么做业务推广技巧_哪个浏览器看黄页最快夸克浏览器_苏州网站建设公司

您是否想知道人工智能模型如何学习理解医学图像?今天,我将带您完成一个令人兴奋的项目:微调 Meta 的 Llama 3.2 Vision 模型来分析放射线图像。如果您不是技术专家,也不要担心 - 我会用简单的术语来解释。

它是如何运作的?

想象一下,有一个人工智能助手可以查看 X 射线并提供详细的医学描述。这正是我们在这里构建的。我们正在采用 Meta 强大的 Llama 3.2 Vision 模型(一个 110 亿参数的 AI)并教它更好地理解医学图像。这就是有趣的地方:在训练之前,模型给出了医学图像的通用的、有些模糊的描述。但经过我们的微调过程后,它变得更加精确和专业,说话更像一个专业的放射技师。

这个过程就像通过例子来教学生一样。我们使用名为“Radiology_mini”的数据集,其中包含与专家描述配对的 X 射线图像。我们反复向模型展示这些内容,它学会了:

  • 识别特定的医疗特征
  • 使用正确的医学术语
  • 像专业放射技师一样构建其响应

我们正在使用一种名为 LoRA(低秩适应)的巧妙技术,即使在单个 GPU 上也可以训练这个庞大的模型。将其视为教导模型更好地完成其工作,而无需重写其整个知识库。

这种转变是显着的。在训练之前,该模型给出了一般的临床观察结果,例如“这张射线照片似乎是上颌和下颌的全景…”训练之后,它提供了更有针对性和结构化的观察结果,例如“全景射线照片显示双侧动脉瘤性骨囊肿(ABC)” — 对于医疗专业人员来说更加精确和有用!

技术实施

让我们深入研究一下如何自己实现这一点。这是包含代码的分步指南:

1. 设置与安装

首先,安装所需的包:

pip install unsloth
export HF_TOKEN=xxxxxxxxxxxxx  # Your Hugging Face token

2. 完整代码

这是完整的实现,分为逻辑部分:

import os
from unsloth import FastVisionModel
import torch
from datasets import load_dataset
from transformers import TextStreamer
from unsloth import is_bf16_supported
from unsloth.trainer import UnslothVisionDataCollator
from trl import SFTTrainer, SFTConfig# Load the model
model, tokenizer = FastVisionModel.from_pretrained("unsloth/Llama-3.2-11B-Vision-Instruct",load_in_4bit = True,use_gradient_checkpointing = "unsloth",
)# Configure fine-tuning parameters
model = FastVisionModel.get_peft_model(model,finetune_vision_layers     = True,finetune_language_layers   = True,finetune_attention_modules = True,finetune_mlp_modules      = True,r = 16,lora_alpha = 16,lora_dropout = 0,bias = "none",random_state = 3407,use_rslora = False,loftq_config = None,
)# Load and prepare the dataset
dataset = load_dataset("unsloth/Radiology_mini", split = "train")
instruction = "You are an expert radiographer. Describe accurately what you see in this image."def convert_to_conversation(sample):conversation = [{ "role": "user","content" : [{"type" : "text",  "text"  : instruction},{"type" : "image", "image" : sample["image"]} ]},{ "role" : "assistant","content" : [{"type" : "text",  "text"  : sample["caption"]} ]},]return { "messages" : conversation }converted_dataset = [convert_to_conversation(sample) for sample in dataset]# Configure the trainer
FastVisionModel.for_training(model)
trainer = SFTTrainer(model = model,tokenizer = tokenizer,data_collator = UnslothVisionDataCollator(model, tokenizer),train_dataset = converted_dataset,args = SFTConfig(per_device_train_batch_size = 2,gradient_accumulation_steps = 4,warmup_steps = 5,max_steps = 30,learning_rate = 2e-4,fp16 = not is_bf16_supported(),bf16 = is_bf16_supported(),logging_steps = 1,optim = "adamw_8bit",weight_decay = 0.01,lr_scheduler_type = "linear",seed = 3407,output_dir = "outputs",report_to = "none",remove_unused_columns = False,dataset_text_field = "",dataset_kwargs = {"skip_prepare_dataset": True},dataset_num_proc = 4,max_seq_length = 2048,),
)# Train the model
trainer_stats = trainer.train()# Test after training
print("\nAfter training:\n")
FastVisionModel.for_inference(model)
image = dataset[0]["image"]
instruction = "You are an expert radiographer. Describe accurately what you see in this image."messages = [{"role": "user", "content": [{"type": "image"},{"type": "text", "text": instruction}]}
]
input_text = tokenizer.apply_chat_template(messages, add_generation_prompt = True)
inputs = tokenizer(image,input_text,add_special_tokens = False,return_tensors = "pt",
).to("cuda")text_streamer = TextStreamer(tokenizer, skip_prompt = True)
_ = model.generate(**inputs, streamer = text_streamer, max_new_tokens = 128,use_cache = True, temperature = 1.5, min_p = 0.1)# Save and upload the model
model.save_pretrained("lora_model")
tokenizer.save_pretrained("lora_model")model.save_pretrained_merged("your-username/Llama-3.2-11B-Vision-Radiology-mini", tokenizer,)
model.push_to_hub_merged("your-username/Llama-3.2-11B-Vision-Radiology-mini", tokenizer, save_method = "merged_16bit", token = os.environ.get("HF_TOKEN"))
  1. 模型加载:我们以 4 位精度加载预训练的 Llama 3.2 Vision 模型以节省内存。
  2. 微调配置:我们可以微调各种模型组件,包括视觉层、语言层和注意力模块。
  3. 数据集准备:代码将放射图像及其描述转换为模型可以理解的对话格式。
  4. 训练配置:我们使用具有特定参数的 SFTTrainer:
  • 每个设备的批量大小为 2
  • 4个梯度累积步骤
  • 最多 30 个训练步骤
  • 2e-4的学习率
  • 线性学习率调度器

\5. 模型保存:训练后,我们保存 LoRA 权重和模型的合并版本。

重要性

这种技术在医疗保健领域可能具有极高的价值:

  • 帮助放射科医生更高效地工作
  • 在专家接触有限的地区提供初步筛查
  • 培养医学生
  • 提供第二意见

技术栈

对于技术上的好奇,我们使用了几种现代工具来实现这一点:

  • Unsloth:一个让微调更高效的库
  • PyTorch:用于底层机器学习操作
  • Hugging Face:用于管理和共享训练后的模型

展望

这只是开始。随着这些模型不断改进并变得更加专业,它们可能成为医疗保健环境中的宝贵工具。然而,重要的是要记住,它们的目的是帮助而不是取代人类医疗专业人员。

条件和资源

要运行此代码,您需要:

  • 具有至少 48GB VRAM 的 GPU(例如 RTX A6000)
  • Python 3.8+
  • Hugging Face 帐户和 API 令牌
  • 训练时间约5分钟

提示:虽然这项技术令人兴奋,但它仍然是辅助人类专业知识的工具,而不是取代它。医疗保健的未来在于人类专业人员和人工智能助手之间的和谐合作。

最后的提示

  1. 在训练期间始终监控 GPU 内存使用情况
  2. 从少量训练步骤开始来测试您的设置
  3. 确保您的训练数据是高质量的并正确标记
  4. 跟踪之前/之后的结果以衡量改进情况

请随意尝试超参数并使代码适应您的特定用例。医疗保健领域的人工智能正在快速发展,并且还会有很大的创新空间。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com