# LLM-Compiler LLM Compiler: Specializing Code Llama for compiler optimization ## 论文 [Meta Large Language Model Compiler: Foundation Models of Compiler Optimization](https://ai.meta.com/research/publications/meta-large-language-model-compiler-foundation-models-of-compiler-optimization/) ## 模型结构 LLM编译器模型是通过在两个阶段对5460亿个编译器中心数据token进行训练,从Code Llama专业化的。在第一阶段,模型主要对未标记的编译器IR和汇编代码进行训练。在下一阶段,模型经过指令微调,以预测优化的输出和效果。然后,LLM编译器FTD模型在下游标志调整和反汇编任务数据集的1640亿个token上进一步微调,总共进行了7100亿个训练token。
## 算法原理 使用GQA模块能够带来更好的速度,使用GQA的head数量不同则会带来速度和性能平衡转换。 使用了RoPE位置旋转编码来替代Embedding编码,使得模型获得更好的外推性。
## 环境配置 -v 路径、docker_name和imageID根据实际情况修改 ### Docker(方法一) ```bash docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310 docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash cd /your_code_path/llm-compiler_pytorch pip install -r requirements.txt pip install -U huggingface_hub hf_transfer export HF_ENDPOINT=https://hf-mirror.com ``` ### Dockerfile(方法二) ```bash cd docker docker build --no-cache -t llm-compiler:latest . docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash cd /your_code_path/llm-compiler_pytorch pip install -r requirements.txt pip install -U huggingface_hub hf_transfer export HF_ENDPOINT=https://hf-mirror.com ``` ### Anaconda(方法三) 关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。 ``` DTK驱动: dtk24.04 python: python3.10 torch: 2.1.0 ``` `Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应` 其它非深度学习库安装方式如下: ```bash pip install -r requirements.txt pip install -U huggingface_hub hf_transfer export HF_ENDPOINT=https://hf-mirror.com ``` ## 数据集 暂无 ## 训练 暂无 ## 推理 基于Huggingface's Transformers进行推理.
模型下载后 默认需存放至weights文件夹中
也可自行更改 inference.py文件中的 model_name 参数
```python HIP_VISIBLE_DEVICES=0 python inference.py ``` ## Result prompt:%3 = alloca i32, align 4.
### 精度 暂无 ## 应用场景 ### 算法类别 代码生成 ### 热点应用行业 制造,能源,教育 ## 预训练权重 - 模型权重快速下载中心: - [SCNet AIModels](http://113.200.138.88:18080/aimodels) - 模型快速通道下载地址: - [模型快速下载地址](http://113.200.138.88:18080/aimodels?filter=llm-compiler) - 官方下载通道 - [llm-compiler-7b](https://huggingface.co/facebook/llm-compiler-7b) 模型目录结构如下: ```bash └── llm-compiler-7b ├── config.json ├── generation_config.json ├── LICENSE.pdf ├── llm_compiler_demo.py ├── pytorch_model-00001-of-00003.bin ├── pytorch_model-00002-of-00003.bin ├── pytorch_model-00003-of-00003.bin ├── pytorch_model.bin.index.json ├── readme │   ├── autotune.png │   ├── disassemble.png │   ├── emulate.png │   └── training.png ├── README.md ├── special_tokens_map.json ├── tokenizer_config.json ├── tokenizer.json └── tokenizer.model ``` ## 源码仓库及问题反馈 - https://developer.hpccube.com/codes/modelzoo/llm-compiler_pytorch ## 参考资料 - https://huggingface.co/facebook/llm-compiler-7b/blob/main/llm_compiler_demo.py - https://huggingface.co/facebook/llm-compiler-7b