Downloads · 30 days
23
4% of all-time downloads
Mrw33554432/bitLinear-phi-1.5
bitLinear-phi-1.5 is a text generation model from Mrw33554432. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as mit.
BitLinear-phi-1.5 is a model trained partially using the method described in The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits.
Downloads · 30 days
23
4% of all-time downloads
All-time downloads
592
Public
Parameters
1.4B
5.7 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors5.7 GB · 100%
From the Hugging Face model README
BitLinear-phi-1.5 is a model trained partially using the method described in The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits.
Idea behind: The major contribution in their paper is introduced a valid binary weight quantization, we don't want to mix it with other components to make it difficult to evaluate the major part.
The model structure is from phi-1.5, with all linear layers except lm_head replaced with our custom BitLinear layer.
It was trained on a small subset of the wikipedia dataset dataset, for research validation purpose only.
dataset = load_dataset("wikipedia", "20220301.en")
dataset = dataset['train'].select(range(int(1e5)))
Please notice the kernel is not optimzed for 1-bit matrix yet.
The model is trained on a 3090(24GB) for 16 hours.
The training code should be compatible with most of the LLMs in huggingface.
Using pretrained model weight (normal models) for training will not work due to gradient explosion.
import torch
from replace_hf import replace_linear_in_hf
from transformers import AutoModelForCausalLM, AutoTokenizer
def quick_test(model, tokenizer, prompt: str):
# Encode the inputs
inputs = tokenizer.encode(prompt, return_tensors="pt")
# Generate outputs
outputs = model.generate(inputs, max_length=64)
# Decode and print the outputs
print(tokenizer.decode(outputs[0]))
torch.set_default_device("cuda")
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Mrw33554432/bitLinear-phi-1.5", trust_remote_code=True, torch_dtype=torch.float16)
print(model)
# Replace Linear layers with BitLinear
replace_linear_in_hf(model, keep_param=True)
print(model)
quick_test(model, tokenizer, prompt="Tom is the")