本地化部署Llama3

本地部署大语言模型,并支持微调

Posted by Ccloud on 2024-04-25
Estimated Reading Time 1 Minutes
Words 486 In Total
Viewed Times

本文通过在私有服务器上部署开源大模型Llama3,并且通过langchain实现agent的开发,使用streamlit实现web应用的开发,实现了私有的大模型使用、微调等功能

Llama3版本选择

总共有8B,70B的两种分为instruct微调和非instruct得版本,其中70B instruct版本应该是对话方面最好的,相当于是70B参数的版本经过对话场景的指令微调。

部署(微调)

  • 原生torch部署–使用Llama官方仓库](https://github.com/meta-llama/llama3)下提供的方式,用download脚本从meta官网下载70B大模型的参数(8 * 16g),且必须8卡部署?好处是自由度更大,改动空间更大,但是需要较强的NLP专业知识,对于模型进行调整,而且tokenizer部分似乎也需要自己去实现,来实现在额外数据上的微调。
  • 使用huggingface的transformers库进行部署,但是该过程似乎要载入一个和meta官网版本不同的参数?使用huggingface transformers封装过得模型,通过统一一些接口,实现了微调、推理的统一化操作,但是似乎丧失了对于模型架构侵入式修改的能力,只能使用外部支路微调的方式。好处是流程统一化,不需要太多专业知识就可以进行微调任务。总结,huggingface帮助将调试大模型的流程简化了很多,还是应该用huggingface进行部署。

应用开发

使用Langchain开发交互应用,即agent

交互开发

使用streamlit进行交互界面的快速构建

总结

其实是开发agent的一个简单流程,核心(大脑)使用开源的LLM,huggingface的transformers,accelerate,和peft库可以方便LLM的推理、微调过程;工具链(四肢)使用langchain开发相关应用;交互界面采用基于python构建的轻量级后端框架streamlit


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !