Logo

Starwhale: 革新MLOps和LLMOps的开源平台

starwhale

Starwhale:革新机器学习操作的开源平台

在当今快速发展的人工智能领域,如何高效管理机器学习项目、模型和数据集成为了一个巨大的挑战。Starwhale应运而生,作为一个创新的MLOps/LLMOps平台,它为机器学习操作带来了效率和标准化,彻底改变了模型开发的生命周期。

Starwhale的核心优势

Starwhale的设计理念是简化和优化机器学习工作流程的各个关键环节,包括模型构建、评估、发布和微调。它提供了三种灵活的部署配置来满足不同的需求:

  1. 🐥 Standalone: 适用于本地开发环境,通过swcli命令行工具管理,满足开发和调试需求。

  2. 🦅 Server: 部署在私有数据中心,依赖Kubernetes集群,提供集中化、基于Web的安全服务。

  3. 🦉 Cloud: 托管在公共云上,访问地址为https://cloud.starwhale.cn,由Starwhale团队负责维护,用户注册后即可使用。

Starwhale产品架构

Starwhale的核心在于将ModelRuntimeDataset抽象为一等公民,为流线型操作提供了基础。此外,Starwhale还为常见的工作流场景提供了量身定制的功能:

  • 🔥 模型评估: 通过Python SDK实现强大的生产规模评估,只需编写最少的代码。
  • 🌟 实时演示: 通过用户友好的Web界面交互式评估模型性能。
  • 🌊 LLM微调: 从高效微调到比较基准测试和发布的端到端工具链。

Starwhale的关键概念

🐘 Starwhale Dataset

Starwhale Dataset提供了高效的数据存储、加载和可视化功能,是专为机器学习和深度学习领域量身定制的数据管理工具。它支持多种数据格式,并可轻松与常用的机器学习框架集成。

Starwhale Dataset概览

使用Starwhale Dataset可以轻松创建、管理和共享数据集:

import torch
from starwhale import dataset, Image

# 为Starwhale云实例构建数据集
with dataset("https://cloud.starwhale.cn/project/starwhale:public/dataset/test-image", create="empty") as ds:
    for i in range(100):
        ds.append({"image": Image(f"{i}.png"), "label": i})
    ds.commit()

# 加载数据集
ds = dataset("https://cloud.starwhale.cn/project/starwhale:public/dataset/test-image")
print(len(ds))
print(ds[0].features.image.to_pil())
print(ds[0].features.label)

torch_ds = ds.to_pytorch()
torch_loader = torch.utils.data.DataLoader(torch_ds, batch_size=5)
print(next(iter(torch_loader)))

🐇 Starwhale Model

Starwhale Model是一种标准的机器学习模型打包格式,可用于模型微调、评估和在线服务等多种用途。一个Starwhale Model包含模型文件、推理代码、配置文件以及运行模型所需的任何其他文件。

Starwhale Model概览

使用Starwhale Model可以轻松构建、复制和运行模型:

# 模型构建
swcli model build . --module mnist.evaluate --runtime pytorch/version/v1 --name mnist

# 从standalone复制模型到云端
swcli model cp mnist https://cloud.starwhale.cn/project/starwhale:public

# 模型运行
swcli model run --uri mnist --runtime pytorch --dataset mnist
swcli model run --workdir . --module mnist.evaluator --handler mnist.evaluator:MNISTInference.cmp

🐌 Starwhale Runtime

Starwhale Runtime旨在为Python程序提供可复现和可共享的运行环境。用户可以轻松地与团队成员或外部人员共享工作环境,反之亦然。此外,用户可以在Starwhale Server或Starwhale Cloud上运行程序,而无需担心依赖问题。

Starwhale Runtime概览

Starwhale Runtime支持多种构建方式,并可与模型和数据集无缝集成:

# 从runtime.yaml、conda环境、Docker镜像或shell构建
swcli runtime build --yaml runtime.yaml
swcli runtime build --conda pytorch --name pytorch-runtime --cuda 11.4
swcli runtime build --docker pytorch/pytorch:1.9.0-cuda11.1-cudnn8-runtime
swcli runtime build --shell --name pytorch-runtime

# Runtime激活
swcli runtime activate pytorch

# 与模型和数据集集成
swcli model run --uri test --runtime pytorch
swcli model build . --runtime pytorch
swcli dataset build --runtime pytorch

🐄 Starwhale Evaluation

Starwhale Evaluation使用户能够通过Starwhale Python SDK编写几行代码就可以评估复杂的、面向生产的分布式模型。

import typing as t
import gradio
from starwhale import evaluation
from starwhale.api.service import api

def model_generate(image):
    ...
    return predict_value, probability_matrix

@evaluation.predict(
    resources={"nvidia.com/gpu": 1},
    replicas=4,
)
def predict_image(data: dict, external: dict) -> None:
    return model_generate(data["image"])

@evaluation.evaluate(use_predict_auto_log=True, needs=[predict_image])
def evaluate_results(predict_result_iter: t.Iterator):
    for _data in predict_result_iter:
        ...
    evaluation.log_summary({"accuracy": 0.95, "benchmark": "test"})

@api(gradio.File(), gradio.Label())
def predict_view(file: t.Any) -> t.Any:
    with open(file.name, "rb") as f:
        data = Image(f.read(), shape=(28, 28, 1))
    _, prob = predict_image({"image": data})
    return {i: p for i, p in enumerate(prob)}

🦍 Starwhale Fine-tuning

Starwhale Fine-tuning为大型语言模型(LLM)调优提供了完整的工作流程,包括批量模型评估、实时演示和模型发布功能。Starwhale Fine-tuning Python SDK非常简单易用。

import typing as t
from starwhale import finetune, Dataset
from transformers import Trainer

@finetune(
    resources={"nvidia.com/gpu":4, "memory": "32G"},
    require_train_datasets=True,
    require_validation_datasets=True,
    model_modules=["evaluation", "finetune"],
)
def lora_finetune(train_datasets: t.List[Dataset], val_datasets: t.List[Dataset]) -> None:
    # 初始化模型和tokenizer
    trainer = Trainer(
        model=model, tokenizer=tokenizer,
        train_dataset=train_datasets[0].to_pytorch(), # 将Starwhale Dataset转换为Pytorch Dataset
        eval_dataset=val_datasets[0].to_pytorch())
    trainer.train()
    trainer.save_state()
    trainer.save_model()
    # 保存权重,然后Starwhale SDK会将它们打包成Starwhale Model

Starwhale的应用案例

Starwhale在各种机器学习任务中都有广泛的应用,以下是一些典型案例:

  1. 🚀 LLM应用:

    • OpenSource LLMs Leaderboard: 提供开源LLM模型的评估和排名。
    • Llama2: 快速部署和运行Llama2聊天模型。
    • Stable Diffusion: 文本到图像生成模型的部署和微调。
    • LLAMA: 模型评估和微调。
    • Text-to-Music: 文本到音乐生成模型的演示。
    • Code Generation: 代码生成模型的部署和使用。
  2. 🌋 模型微调:

    • Baichuan2和ChatGLM3: 中文大型语言模型的微调。
    • Stable Diffusion: 图像生成模型的微调。
  3. 🦦 图像分类:

    • MNIST: 手写数字识别模型的评估和部署。
    • CIFAR10: 通用物体分类模型的训练和评估。
    • Vision Transformer(ViT): 视觉Transformer模型的应用。
  4. 🐃 图像分割:

    • Segment Anything(SAM): 通用图像分割模型的部署和使用。
  5. 🐦 目标检测:

    • YOLO: 实时目标检测模型的部署和评估。
    • Pedestrian Detection: 行人检测模型的应用。

此外,Starwhale还支持视频识别、机器翻译、文本分类和语音识别等多种任务,为研究人员和开发者提供了全面的MLOps解决方案。

Starwhale的安装和快速入门

Starwhale提供了简单的安装方式和快速入门指南,使用户能够迅速上手:

  1. Starwhale Standalone安装:

    python3 -m pip install starwhale
    
  2. Starwhale Server: Starwhale Server以Docker镜像形式提供,可以直接用Docker运行或部署到Kubernetes集群。对于笔记本环境,使用swcli server start命令是一个合适的选择,该命令依赖Docker和Docker-Compose。

  3. 快速入门: Starwhale使用MNIST数据集作为Hello World示例来展示基本的Starwhale Model工作流程。用户可以选择在自己的Python环境中按照Standalone快速入门文档操作,或者使用Google Colab环境按照Jupyter notebook示例进行操作。

Starwhale的社区和支持

Starwhale拥有活跃的开源社区和全面的支持体系:

Starwhale的开源性质和Apache-2.0许可证使其成为一个灵活、可定制的MLOps平台。它的框架设计注重清晰度和易用性,使开发者能够根据自身需求构建定制化的MLOps功能。

结语

Starwhale作为一个创新的MLOps/LLMOps平台,正在改变机器学习和深度学习的开发和部署方式。通过提供全面的工具链和灵活的部署选项,Starwhale帮助团队更高效地管理机器学习项目的整个生命周期。无论是对于研究人员、开发者还是企业用户,Starwhale都提供了强大的功能和便捷的使用体验,推动着AI技术的快速发展和广泛应用。随着AI领域的不断进步,Starwhale将继续发挥其关键作用,为机器学习操作带来更多创新和效率。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号