LLM 编译器 - 第一印象

主要观点:Compute Heavy Industries 对 Meta AI 的 LLM Compiler 发布感到兴奋,其以 llama 架构为基础,针对 LLVM 中间表示和 x86-64 汇编代码训练,有 16k 令牌上下文窗口,有四种操作模式。文中介绍了设置环境(在 Windows Subsytem for Linux 中使用 LLVM 和 llama.cpp)、测试程序(解析 Git LFS 指针文件以提取旧和新对象哈希)、提示参数(包括优化参数、指令计数和二进制大小等)及推理过程(使用 llama.cpp 进行转换和推理),并对不同函数的生成结果进行了评估,指出了一些优点(如在较小函数上的可行性)和不足(如输出格式不便、可能受训练数据影响等)。
关键信息

  • LLM Compiler 相关信息:llama 架构,针对 LLVM IR 和 x86-64 汇编,有 16k 上下文窗口,四种操作模式。
  • 测试环境及工具:在 WSL 中使用 LLVM 18 和 llama.cpp,有多种模型版本。
  • 测试程序:解析 Git LFS 指针文件的程序,用于测试。
  • 提示参数获取:通过编译和处理 LLVM IR 来获取指令计数和二进制大小等参数。
  • 推理过程:将 HuggingFace 格式模型转换为 GGUF 格式,使用 llama-cli 进行推理。
  • 评估结果:不同函数的生成结果有成功也有失败,存在一些问题如函数跳过、数据引用错误等。
    重要细节
  • LLM Compiler 训练时函数最大尺寸为 8k 令牌,输出 AT&T 语法的 x86-64 汇编且有 typo。
  • 测试程序在函数大小、函数调用和数据引用等方面存在挑战,需进行补丁处理。
  • 评估时因时间限制未找到自动化链接生成代码与 LLVM IR 的方法,仅对单个函数进行了测试。
  • 输出格式方面,目前的格式不利于程序自动处理,希望能更易于在大型代码项目中验证。
阅读 16
0 条评论