高性能机器学习发行版
我们目前正在重建SHARK,以利用Turbine。在此完成之前,请确保您使用.exe版本或SHARK-1.0分支的代码,以获得正常工作的SHARK。
其他用户请确保您已从这里获取了最新的供应商驱动程序和Vulkan SDK,如果您正在使用Vulkan,请确保在终端窗口中运行vulkaninfo。
从上面的(先决条件)[https://github.com/nod-ai/SHARK#install-your-hardware-drivers]链接安装驱动程序。
下载稳定版本或最新的SHARK 1.0预发布版本。
双击.exe文件,或从命令行运行(推荐),您应该可以在浏览器中访问UI。
如果您有自定义模型,请将它们放在.exe所在目录下的models/文件夹中。
享受吧。
<details> <summary>更多安装说明</summary> * 我们建议您每次下载新EXE版本时都将其下载到新文件夹中。如果您将其下载到与先前安装相同的文件夹中,您必须删除旧的`*.vmfb`文件,命令为`rm *.vmfb`。您也可以使用`--clear_all`标志一次性清除所有旧文件。 * 如果您最近更新了驱动程序或此二进制文件(EXE文件),建议您使用`--clear_all`清除所有本地缓存。cd)到.exe文件所在的文件夹。然后从命令提示符运行EXE。这样,如果发生错误,您可以复制并粘贴它来寻求帮助。(如果它始终无错误地运行,您也可以直接双击EXE)--ui=web命令参数。git clone https://github.com/nod-ai/SHARK.git cd SHARK
目前,SHARK正在main分支上为Turbine进行重建。当前强烈建议您不要使用main分支,除非您正在参与重建工作,否则不应期望该分支上的代码能生成用于图像生成的可工作应用程序。因此,目前您需要切换到SHARK-1.0分支并使用稳定代码。
git checkout SHARK-1.0
以下设置说明假设您在此分支上。
set-executionpolicy remotesigned
./setup_venv.ps1 #您可以重新运行此脚本以获取最新版本
./setup_venv.sh source shark1.venv/bin/activate
(shark1.venv) PS C:\g\shark> cd .\apps\stable_diffusion\web\ (shark1.venv) PS C:\g\shark\apps\stable_diffusion\web> python .\index.py
(shark1.venv) > cd apps/stable_diffusion/web (shark1.venv) > python index.py
(shark1.venv) PS C:\g\shark> python .\apps\stable_diffusion\scripts\main.py --app="txt2img" --precision="fp16" --prompt="tajmahal, snow, sunflowers, oil on canvas" --device="vulkan"
python3.11 apps/stable_diffusion/scripts/main.py --app=txt2img --precision=fp16 --device=vulkan --prompt="tajmahal, oil on canvas, sunflowers, 4k, uhd"
您可以将vulkan替换为cpu以在CPU上运行,或替换为cuda以在CUDA设备上运行。如果您有多个vulkan设备,可以使用--device=vulkan://1等来指定设备。
在AMD 7900XTX上的输出可能如下所示:
每步平均时间:47.19188690185547毫秒/次 Clip推理时间(毫秒):109.531 VAE推理时间(毫秒):78.590 图像生成总时间:2.5788655281066895秒
以下是生成的一些示例:


如果您在运行它时遇到任何问题,请在SHARK Discord服务器上找到我们。
<details> <summary>二进制安装</summary>此步骤为Python设置一个新的VirtualEnv
python --version #检查您是否在Linux、macOS或Windows Powershell上 要生成单个调度的基准测试,可以在pytest命令行参数中添加`--dispatch_benchmarks=All --dispatch_benchmarks_dir=<output_dir>`。 如果您只想编译特定的调度,可以用空格分隔的字符串指定它们,而不是使用`"All"`。例如:`--dispatch_benchmarks="0 1 2 10"`。 例如,要为CUDA上的MiniLM生成和运行调度基准测试:
pytest -k "MiniLM and torch and static and cuda" --benchmark_dispatches=All -s --dispatch_benchmarks_dir=./my_dispatch_benchmarks
给定的命令将会在`<dispatch_benchmarks_dir>/<model_name>/`下生成一个`ordered_dispatches.txt`文件,列出并排序调度及其延迟时间,并为每个调度生成包含.mlir、.vmfb以及该调度基准测试结果的文件夹。
如果您想将其合并到Python脚本中,可以在初始化`SharkInference`时传递`dispatch_benchmarks`和`dispatch_benchmarks_dir`命令,基准测试将在编译时生成。例如:
shark_module = SharkInference( mlir_model, device=args.device, mlir_dialect="tm_tensor", dispatch_benchmarks="all", dispatch_benchmarks_dir="results" )
输出将 包括:
- 一个名为`ordered-dispatches.txt`的有序列表,列出所有调度及其运行时间。
- 在指定的目录中,将为每个调度创建一个目录(所有调度都会生成mlir文件,但仅为指定的调度生成已编译的二进制文件和基准测试数据)。
- 一个包含调度基准测试的.mlir文件。
- 一个包含调度基准测试的已编译.vmfb文件。
- 一个仅包含hal可执行文件的.mlir文件。
- 一个hal可执行文件的已编译.vmfb文件。
- 一个包含基准测试输出的.txt文件。
有关如何从SHARK tank运行模型测试和基准测试的更多说明,请参阅tank/README.md。
</details>
<details>
<summary>API 参考</summary>
### Shark Inference API
from shark.shark_importer import SharkImporter
mlir_importer = SharkImporter( torch_module, (input), frontend="torch", #tf, #tf-lite ) torch_mlir, func_name = mlir_importer.import_mlir(tracing_required=True)
from shark.shark_inference import SharkInference shark_module = SharkInference(torch_mlir, device="cpu", mlir_dialect="linalg") shark_module.compile() result = shark_module.forward((input))
### 运行MHLO IR的示例。
from shark.shark_inference import SharkInference import numpy as np
mhlo_ir = r"""builtin.module { func.func @forward(%arg0: tensor<1x4xf32>, %arg1: tensor<4x1xf32>) -> tensor<4x4xf32> { %0 = chlo.broadcast_add %arg0, %arg1 : (tensor<1x4xf32>, tensor<4x1xf32>) -> tensor<4x4xf32> %1 = "mhlo.abs"(%0) : (tensor<4x4xf32>) -> tensor<4x4xf32> return %1 : tensor<4x4xf32> } }"""
arg0 = np.ones((1, 4)).astype(np.float32) arg1 = np.ones((4, 1)).astype(np.float32) shark_module = SharkInference(mhlo_ir, device="cpu", mlir_dialect="mhlo") shark_module.compile() result = shark_module.forward((arg0, arg1))
</details>
## 使用REST API的示例
* [设置SHARK以在Blender中使用](./docs/shark_sd_blender.md)
* [设置SHARK以在Koboldcpp中使用](./docs/shark_sd_koboldcpp.md)
## 支持和验证的模型
SHARK持续支持最新的机器学习模型创新:
| TF HuggingFace模型 | SHARK-CPU | SHARK-CUDA | SHARK-METAL |
|---------------------|----------|----------|-------------|
| BERT | :green_heart: | :green_heart: | :green_heart: |
| DistilBERT | :green_heart: | :green_heart: | :green_heart: |
| GPT2 | :green_heart: | :green_heart: | :green_heart: |
| BLOOM | :green_heart: | :green_heart: | :green_heart: |
| Stable Diffusion | :green_heart: | :green_heart: | :green_heart: |
| Vision Transformer | :green_heart: | :green_heart: | :green_heart: |
| ResNet50 | :green_heart: | :green_heart: | :green_heart: |
有关SHARK支持的完整模型列表,请参阅[tank/README.md](https://github.com/nod-ai/SHARK/blob/main/tank/README.md)。
## 沟通渠道
* [SHARK Discord服务器](https://discord.gg/RUqY2h2s9u):与SHARK团队和其他用户进行实时讨论
* [GitHub问题](https://github.com/nod-ai/SHARK/issues):功能请求、bug等
## 相关项目
<details>
<summary>IREE项目渠道</summary>
* [上游IREE问题](https://github.com/google/iree/issues):功能请求、bug和其他工作跟踪
* [上游IREE Discord服务器](https://discord.gg/wEWh6Z9nMU):与核心团队和合作者进行日常开发讨论
* [iree-discuss邮件列表](https://groups.google.com/forum/#!forum/iree-discuss):公告、一般和低优先级讨论
</details>
<details>
<summary>MLIR和Torch-MLIR项目渠道</summary>
* LLVM [Discord](https://discord.gg/xS7Z362)上的`#torch-mlir`频道 - 这是最活跃的沟通渠道
* Torch-MLIR GitHub问题[在此](https://github.com/llvm/torch-mlir/issues)
* LLVM Discourse的[`torch-mlir`部分](https://llvm.discourse.group/c/projects-that-want-to-become-official-llvm-projects/torch-mlir/41)
* 每周一上午9点PST的例会。有关更多信息,请参阅[此处](https://discourse.llvm.org/t/community-meeting-developer-hour-refactoring-recurring-meetings/62575)。
* LLVM Discourse中的[MLIR话题](https://llvm.discourse.group/c/llvm-project/mlir/31)。SHARK和IREE由[MLIR](https://mlir.llvm.org)支持并严重依赖其功能。
</details>
## 许可协议
nod.ai SHARK根据Apache 2.0许可协议和LLVM例外条款进行许可。有关更多信息,请参阅[LICENSE](LICENSE)。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完 成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量 提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号