Uh oh!
There was an error while loading. Please reload this page.
feat: config-based FFN activation + relu2 support for BitNet (fixes #602) - #605
Open
Pranesh Nikhar (praneshnikhar) wants to merge 1 commit into
Open
Conversation
BitNet b1.58 architecture uses squared ReLU (relu²) in the FFN, but the graph builder was hardcoded to SiLU and the GGUF files didn't include the hidden_activation key. This caused ~6x perplexity regression on every backend. Changes: - Update HF/MS converters to write hidden_activation='relu2' for BitNet models - Bump llama.cpp submodule to include config-based activation support (reads <arch>.hidden_activation, defaults to SiLU for backward compat, uses ReLU² when key is present) When models are re-converted with these changes, the runtime will automatically use the correct ReLU² activation. Existing GGUF files without the key continue to work (behavior unchanged). Fixesmicrosoft#602 Submodule PR: https://github.com/praneshnikhar/llama.cpp/pull/2
Pranesh Nikhar (@praneshnikhar) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
Pranesh Nikhar (praneshnikhar)
commented
Aug 9, 2026
Author
@microsoft-github-policy-service agree |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BitNet b1.58 uses squared ReLU (relu²) in the FFN, but the graph builder was hardcoded to SiLU and the GGUF converters never wrote a
hidden_activationkey.This PR makes the activation config-driven:
llama.cpp submodule changes
src/llama-model.cpp: Add"relu2"→LLM_FFN_RELU_SQRmappingsrc/models/bitnet.cpp: Read<arch>.hidden_activationfrom GGUF, default to SiLU for backward compat, usehparams.llm_ffn_opin graphMain repo changes
utils/convert-hf-to-gguf-bitnet.py: Writehidden_act("relu2")for BitNet modelsutils/convert-ms-to-gguf-bitnet.py: Writehidden_act("relu2")for BitNet modelsBehavior
hidden_activationkey): FFN uses SiLU (unchanged behavior, no regression)Depends on:isHuangXin/llama.cpp#4
Closes#602