pytorch-labs / gpt-fast

Simple and efficient pytorch-native transformer text generation in <1000 LOC of python.
BSD 3-Clause "New" or "Revised" License
5.36k stars 485 forks source link

fix safetensors #60

Closed 152334H closed 1 day ago

152334H commented 6 months ago

this PR fixes the checkpoint conversion scripts for the .safetensors checkpoints on https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1

This is necessary because

  1. safetensors are loaded differently from pt files
  2. the .pt files and the .safetensors files on the Mixtral repo actually have different state dict formats. The pytorch ones have the MoE weights concatenated, while the safetensors ones have an explicit ModuleList per layer for the expert weights (which matches the HF impl as well). Additionally, many state dict key names are simply different.

safetensors:

Time to load model: 16.51 seconds
Compilation time: 23.81 seconds
Hello, my name is Joseph Zhang. I am a freshman at University of California, San Diego. I am currently interested in majoring in computer science. In this course, I am most excited to learn about the basics of computer science and the applications of computer science. In addition, I am looking forward to the projects that we will be doing in this course.

I am a fan of basketball and football. My favorite college teams are the Michigan State Spartans and the UCLA Bruins. My favorite NBA team is the Golden State Warriors, and my favorite NFL team is the Philadelphia Eagles. In my free time, I enjoy hanging out with friends, watching movies, and playing video games.

My favorite TV show is Game of Thrones. I enjoy the show for its story line and the acting on the show. My favorite video game is Rocket League. In addition, I enjoy playing strategy games such as Starcraft 2 and Warcraft 3.
Time for inference 1: 1.87 sec total, 107.10 tokens/sec
Bandwidth achieved: 4912.01 GB/s

normal .pt file:

Time to load model: 16.07 seconds
Compilation time: 24.60 seconds
Hello, my name is Joseph Zhang. I am a freshman at University of California, San Diego. I am currently interested in majoring in computer science. In this course, I am most excited to learn about the basics of computer science and the applications of computer science. In addition, I am looking forward to the projects that we will be doing in this course.

I am a fan of basketball and football. My favorite college teams are the Michigan State Spartans and the UCLA Bruins. My favorite NBA team is the Golden State Warriors, and my favorite NFL team is the Philadelphia Eagles. In my free time, I enjoy hanging out with friends, watching movies, and playing video games.

My favorite TV show is Game of Thrones. I enjoy the show for its story line and the acting on the show. My favorite video game is Rocket League. In addition, I enjoy playing strategy games such as Starcraft 2 and Warcraft 3.
Time for inference 1: 1.87 sec total, 107.10 tokens/sec
Bandwidth achieved: 4911.78 GB/s
facebook-github-bot commented 6 months ago

Hi @152334H!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!