Giter Club home page Giter Club logo

vt-transformer's Introduction

VT-Transformer

面向边缘和端,基于C++开发的 Transformer 开发框架,支持推理和训练。

A new Transformer framework for edge computing, based on pure c++, supports inference and training.

  • 基于 C++ 的极简架构设计, 隔离 Transformer 核心计算与应用逻辑,独立运行无第三方库依赖
  • 支持包括国产硬件在内的异构平台
  • 支持 fp16, Q4(g128), PQ3(自研)等量化压缩计算,内置KV Cache优化管理
  • 性价比优先,通过软件优化边缘和端测的大模型运行性能(吞吐和训推速度)
  • 支持微调训练与推理,适配主流的开源模型
  • 提供示范的 ChatBot ,RAG , Agent 应用案例

1. 当前开发状态

以下是完成以及计划进行适配的算力平台

  • 中科曙光 DCU(海光) Z100/Z100L
  • Nvidia CUDA 芯片 T4/GTX 3080/3090
  • Intel CPU / GPU (Xe)
  • 天数智芯
  • 寒武纪
  • 希姆计算
  • ...

以下是完成以及计划进行移植的开源大模型

注意,需要下载更多转换好的模型文件,可以联系我们的技术支持,参考 https://www.viitrix.com/

当前性能指标

  • 测试环境: Nvidia T4 单卡,16G显存,65 TFLOPS,运行Qwen-7B模型,
  • 测试目标: 测试批量用户模型在线推理能力,8 batch,1024 上下文,FP16 (Activity)
  • 测试结果: 35 tokens/s

2. 技术架构说明

VT-Transformer 架构上包括 TensorType 异构计算、 DAG 计算图执行引擎、 KV Cache 管理、Tokenizer组合库等组件构成。

代码架构

  • tensortype/tensortype.cpp(.hpp) TensorType 异构计算抽象组件
    • CUDA 计算实现
      • tensortype/cuda_tensor.cpp(.hpp) CUDA 设备实现
      • tensortype/cuda_kernels/ CUDA kernels 代码
    • 海光 DCU 计算实现
      • tensortype/dcu_tensor.cpp(.hpp) 海光 DCU 设备实现
      • tensortype/dcu_kernels/ DCU kernels代码
    • tensortype/dnnl_tensor.cpp(.hpp) Intel oneDNN 支持设备实现
  • tensortype/dag.cpp(.hpp) 高效计算图 DAG 执行引擎
  • tensortype/nn_. KV Cache管理, 算子定义
  • tools/ 提供了一个 repl ,tokenizer测试
  • models 下提供了不同模型的 DAG 文件,简单的终端 ChatBot,以及性能测试代码
  • tokenizer.com 本地 Tokenizer 库

开发文档

3. 编译与开发测试

在根目录下有有一个build_env.sh ,里面修改相应的开发环境依赖路径,如 CUDA/DTK/DNNL 等路径。

3.1 编译 tokenizers.combo 组件

VT-Transformer集成了 tokenizers (rust/openai), tiktoken(rust/huggingface), sentencepiece(c++/google) 三个最常用的Tokenizer库的封装。 参考 tokenizers.combo/Makefile 的编译实现。

3.2 编译 Tensortype 组件

主要参考 tensortype/Makefile 的编译实现,一个平台对应一个编译文件,这些构建文件非常简洁,方便修改调试。

3.3 编译测试应用

models目录下的有对应的Makefile文件,非常简单,可以参考修改调整。目前测试应用主要包括终端会话的chatbot, 以及一个简单的性能测试。

4. 参考应用说明

完整的演示应用(RAG / Agent)计划后续提供。

5. 关于训推一体机产品

上海云锦微基于VT-Transformer(开源)开发了完整的训推一体机,具体参考:https://www.viitrix.com/

vt-transformer's People

Contributors

teaonly avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.