高性能机器学习发行版
我们目前正在重建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)。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学 生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号