Skip to content

enigma9981/Wizardcoder-TPU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Wizardcoder-TPU

本项目实现BM1684X部署语言大模型Wizardcoder-15B。通过TPU-MLIR编译器将模型转换成bmodel,并采用c++代码将其部署到BM1684X的PCIE环境,或者SoC环境。

Build

Requirements

  • 支持C++20标准的gcc或clang编译器
  • 如果不使用demo/libsophon_pcie的libsophon或者需要特定版本的libsophon,需要在下面编译时指定LIBSOPHON_DIR
  • 转换好的Wizardcoder-15B.bmodel文件,直接GIT_LFS_SKIP_SMUDGE=1 git clone git clone https://huggingface.co/WizardLM/WizardCoder-15B-V1.0 && cp *.bmodel WizardCoder-15B-V1.0将它们放在一起。demo会使用原仓库下的配置和tokenizer配置
  • 如果需要在python下直接推理或者evalatuion,需要python,版本不低于3.8其他和依赖 libpython3-dev, python3-numpy, swig等,一个参考的编译环境为: d

Build

cd build
cmake .. -GNinja -DLIBSOPHON_DIR=...
ninja

Build Python Binding

cd build
cmake .. -GNinja -DBUILD_PYTHON=ON 
ninja

Inference

C++

完成上文的编译过程后,生成build/demo/bin/wizardcodercc可执行文件,它可以完成加载bmodel并在BM1684X设备上进行推理。 此时直接使用demo/bin/wizardcodercc /path/to/.bmodel即可在单颗芯片上完成推理

Python

完成上文的编译过程后,会在/build/demo/python下生成相关的python库,此时可以在Python中进行wizardcoder-15B的推理,参考示例:

import pybmwizardcoder
import numpy as np

model_path = path/to/wizardcoder.bmodel

model = pybmwizardcoder.bmwizardcoder_create()
devs = np.array([0]).astype(np.int32)
pybmwizardcoder.bmwizardcoder_init(model, model_dir=model_path, devids=devs)


prompt = "Write a Rust code to find SCC."

x = pybmwizardcoder.bmwizardcoder_stream_complete(model, prompt, 20)

print(f'Result: {x}')

模型转换

Prepreparation

转换和量化

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published