Instructions to use internlm/internlm-xcomposer2-7b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use internlm/internlm-xcomposer2-7b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="internlm/internlm-xcomposer2-7b", trust_remote_code=True)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("internlm/internlm-xcomposer2-7b", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use internlm/internlm-xcomposer2-7b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "internlm/internlm-xcomposer2-7b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "internlm/internlm-xcomposer2-7b", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/internlm/internlm-xcomposer2-7b
- SGLang
How to use internlm/internlm-xcomposer2-7b with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "internlm/internlm-xcomposer2-7b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "internlm/internlm-xcomposer2-7b", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "internlm/internlm-xcomposer2-7b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "internlm/internlm-xcomposer2-7b", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use internlm/internlm-xcomposer2-7b with Docker Model Runner:
docker model run hf.co/internlm/internlm-xcomposer2-7b
fix(internlm): Prevent errors by padding the dimensions of wrap tokens.
#2
by yun - opened
modeling_internlm_xcomposer2.py
CHANGED
|
@@ -258,15 +258,15 @@ class InternLMXComposer2ForCausalLM(InternLM2PreTrainedModel):
|
|
| 258 |
wrap_target = wrap_target[:, :self.max_length].to(self.device)
|
| 259 |
wrap_im_mask = wrap_im_mask[:, :self.max_length].to(self.device)
|
| 260 |
|
| 261 |
-
wrap_embeds_list.append(wrap_embeds)
|
| 262 |
-
wrap_atts_list.append(wrap_atts)
|
| 263 |
-
wrap_target_list.append(wrap_target)
|
| 264 |
-
wrap_im_mask_list.append(wrap_im_mask)
|
| 265 |
-
|
| 266 |
-
wrap_embeds = torch.
|
| 267 |
-
wrap_atts = torch.
|
| 268 |
-
wrap_target = torch.
|
| 269 |
-
wrap_im_mask = torch.
|
| 270 |
return wrap_embeds, wrap_atts, wrap_target, wrap_im_mask
|
| 271 |
|
| 272 |
def mask_human_targets(self, input_ids, pure=False):
|
|
|
|
| 258 |
wrap_target = wrap_target[:, :self.max_length].to(self.device)
|
| 259 |
wrap_im_mask = wrap_im_mask[:, :self.max_length].to(self.device)
|
| 260 |
|
| 261 |
+
wrap_embeds_list.append(wrap_embeds.squeeze(0))
|
| 262 |
+
wrap_atts_list.append(wrap_atts.squeeze(0))
|
| 263 |
+
wrap_target_list.append(wrap_target.squeeze(0))
|
| 264 |
+
wrap_im_mask_list.append(wrap_im_mask.squeeze(0))
|
| 265 |
+
|
| 266 |
+
wrap_embeds = torch.nn.utils.rnn.pad_sequence(wrap_embeds_list, batch_first=True, padding_value=self.tokenizer._pad_token_type_id)
|
| 267 |
+
wrap_atts = torch.nn.utils.rnn.pad_sequence(wrap_atts_list, batch_first=True, padding_value=self.tokenizer._pad_token_type_id)
|
| 268 |
+
wrap_target = torch.nn.utils.rnn.pad_sequence(wrap_target_list, batch_first=True, padding_value=self.tokenizer._pad_token_type_id)
|
| 269 |
+
wrap_im_mask = torch.nn.utils.rnn.pad_sequence(wrap_im_mask_list, batch_first=True, padding_value=self.tokenizer._pad_token_type_id)
|
| 270 |
return wrap_embeds, wrap_atts, wrap_target, wrap_im_mask
|
| 271 |
|
| 272 |
def mask_human_targets(self, input_ids, pure=False):
|