IBM-Granite-v3.1-8B-Instruct: Optimized for Qualcomm Devices
Granite-3.1-8B-Instruct is a 8B parameter long-context instruct model finetuned from Granite-3.1-8B-Base using a combination of open source instruction datasets with permissive license and internally collected synthetic datasets tailored for solving long context problems. This model is developed using a diverse set of techniques with a structured chat format, including supervised finetuning, model alignment using reinforcement learning, and model merging.
This is based on the implementation of IBM-Granite-v3.1-8B-Instruct found here. This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the Qualcomm® AI Hub Models library to export with custom configurations. More details on model performance across various devices, can be found here.
Qualcomm AI Hub Models uses Qualcomm AI Hub Workbench to compile, profile, and evaluate this model. Sign up to run these models on a hosted Qualcomm® device.
Deploying IBM Granite 3.1 on-device
Please follow the LLM on-device deployment tutorial.
Getting Started
Due to licensing restrictions, we cannot distribute pre-exported model assets for this model. Use the Qualcomm® AI Hub Models Python library to compile and export the model with your own:
- Custom weights (e.g., fine-tuned checkpoints)
- Custom input shapes
- Target device and runtime configurations
See our repository for IBM-Granite-v3.1-8B-Instruct on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.text_generation
Model Stats:
- Input sequence length for Prompt Processor: 128
- Context length: 4096
- Precision: w4a16 + w8a16 (few layers)
- Num of key-value heads: 8
- Information about the model parts: Prompt Processor and Token Generator are split into 5 parts each. Each corresponding Prompt Processor and Token Generator part share weights.
- Prompt processor input (part1): 128 tokens
- Prompt processor output (part1): Embeddings output
- Prompt processor input (other parts): 128 tokens + KVCache initialized with pad token
- Prompt processor output (other parts): 128 output tokens + KVCache for token generator
- Token generator input (part1): 1 token
- Token generator output (part1): Embeddings output
- Token generator input (other parts): 1 input token + past KVCache
- Token generator output (other parts): 1 output token + KVCache for next iteration
- Use: Initiate conversation with prompt-processor and then token generator for subsequent iterations.
- Supported natural languages: English
- Supported programming languages: The Granite code foundation models support 116 programming languages including Python, Javascript, Java, C++, Go, and Rust.
- Minimum QNN SDK version required: 2.3
- TTFT: Time To First Token is the time it takes to generate the first response token. This is expressed as a range because it varies based on the length of the prompt. The lower bound is for a short prompt (up to 128 tokens, i.e., one iteration of the prompt processor) and the upper bound is for a prompt using the full context length (2048 tokens).
- Response Rate: Rate of response generation after the first response token.
Performance Summary
| Model | Runtime | Precision | Chipset | Context Length | Response Rate (tokens per second) | Time To First Token (range, seconds) |
|---|---|---|---|---|---|---|
| IBM-Granite-v3.1-8B-Instruct | QNN_CONTEXT_BINARY | w4a16 | Snapdragon® 8 Elite Mobile | 4096 | 11.01293 | 0.19679249999999998 - 6.297359999999999 |
| IBM-Granite-v3.1-8B-Instruct | QNN_CONTEXT_BINARY | w4a16 | Snapdragon® X Elite | 4096 | 8.01724 | 0.2953902 - 9.4524864 |
License
- The license for the original implementation of IBM-Granite-v3.1-8B-Instruct can be found here.
References
- Granite Code Models: A Family of Open Foundation Models for Code Intelligence
- Source Model Implementation
Community
- Join our AI Hub Slack community to collaborate, post questions and learn more about on-device AI.
- For questions or feedback please reach out to us.
Usage and Limitations
This model may not be used for or in connection with any of the following applications:
- Accessing essential private and public services and benefits;
- Administration of justice and democratic processes;
- Assessing or recognizing the emotional state of a person;
- Biometric and biometrics-based systems, including categorization of persons based on sensitive characteristics;
- Education and vocational training;
- Employment and workers management;
- Exploitation of the vulnerabilities of persons resulting in harmful behavior;
- General purpose social scoring;
- Law enforcement;
- Management and operation of critical infrastructure;
- Migration, asylum and border control management;
- Predictive policing;
- Real-time remote biometric identification in public spaces;
- Recommender systems of social media platforms;
- Scraping of facial images (from the internet or otherwise); and/or
- Subliminal manipulation
