Skip to content

Commit

Permalink
v0.12.0
Browse files Browse the repository at this point in the history
See https://github.com/quic/ai-hub-models/releases/v0.12.0 for changelog.

Signed-off-by: QAIHM Team <[email protected]>
  • Loading branch information
qaihm-bot committed Aug 27, 2024
1 parent 463e690 commit 8236c53
Show file tree
Hide file tree
Showing 138 changed files with 11,802 additions and 10,193 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@ Qualcomm® AI Hub Models is licensed under BSD-3. See the [LICENSE file](../LICE
| [DETR-ResNet50](https://aihub.qualcomm.com/models/detr_resnet50) | [qai_hub_models.models.detr_resnet50](qai_hub_models/models/detr_resnet50/README.md) | ✔️ | ✔️ | ✔️
| [DETR-ResNet50-DC5](https://aihub.qualcomm.com/models/detr_resnet50_dc5) | [qai_hub_models.models.detr_resnet50_dc5](qai_hub_models/models/detr_resnet50_dc5/README.md) | ✔️ | ✔️ | ✔️
| [MediaPipe-Face-Detection](https://aihub.qualcomm.com/models/mediapipe_face) | [qai_hub_models.models.mediapipe_face](qai_hub_models/models/mediapipe_face/README.md) | ✔️ | ✔️ | ✔️
| [MediaPipe-Face-Detection-Quantized](https://aihub.qualcomm.com/models/mediapipe_face_quantized) | [qai_hub_models.models.mediapipe_face_quantized](qai_hub_models/models/mediapipe_face_quantized/README.md) | ✔️ | ✔️ | ✔️
| [MediaPipe-Hand-Detection](https://aihub.qualcomm.com/models/mediapipe_hand) | [qai_hub_models.models.mediapipe_hand](qai_hub_models/models/mediapipe_hand/README.md) | ✔️ | ✔️ | ✔️
| [YOLOv8-Detection](https://aihub.qualcomm.com/models/yolov8_det) | [qai_hub_models.models.yolov8_det](qai_hub_models/models/yolov8_det/README.md) | ✔️ | ✔️ | ✔️
| [YOLOv8-Detection-Quantized](https://aihub.qualcomm.com/models/yolov8_det_quantized) | [qai_hub_models.models.yolov8_det_quantized](qai_hub_models/models/yolov8_det_quantized/README.md) | ✔️ | ✔️ | ✔️
Expand Down
2 changes: 1 addition & 1 deletion qai_hub_models/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
# SPDX-License-Identifier: BSD-3-Clause
# ---------------------------------------------------------------------
__version__ = "0.11.4"
__version__ = "0.12.0"
4 changes: 3 additions & 1 deletion qai_hub_models/models/_shared/llama/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,9 @@ def generate_output_prompt(
)
output_token = _get_tokens_from_logits(output)
past_key_values = get_past_keyval_with_shift(
output[1:], num_of_past_key_heads=self.num_past_key_val_heads
output[1:],
past_key_start=0,
num_of_past_key_heads=self.num_past_key_val_heads,
).values()
output_prompt = self.tokenizer.decode(output_token)
print()
Expand Down
23 changes: 15 additions & 8 deletions qai_hub_models/models/_shared/llama/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def get_past_key_names(
start: int = 0, end: int = 8, num_of_past_key_heads=32, suffix=""
):
past_key_val_name = []

for i in range(start, end):
cache_names = [
f"past_key_{i}_h{j}{suffix}" for j in range(num_of_past_key_heads)
Expand Down Expand Up @@ -113,7 +114,10 @@ def load_input_cached_data(


def get_past_keyval_with_shift(
past_key_vals: List[torch.Tensor], num_of_past_key_heads: int = 32
past_key_vals: List[torch.Tensor],
past_key_start: int,
num_of_past_key_heads: int = 32,
new_key_suffix: str = "",
):
"""
Clip past key value to feed next iteration
Expand All @@ -122,13 +126,18 @@ def get_past_keyval_with_shift(
total_key_val = num_of_past_key_heads * 2
for i in range(0, len(past_key_vals), total_key_val):
l_num = i // total_key_val
past_key_num = l_num + past_key_start
for j, key in enumerate(past_key_vals[i : i + num_of_past_key_heads]):
tg_inputs[f"past_key_{l_num}_h{j}"] = key[:, :, :, 1:].detach()
tg_inputs[f"past_key_{past_key_num}_h{j}{new_key_suffix}"] = key[
:, :, :, 1:
].detach()

for j, val in enumerate(
past_key_vals[i + num_of_past_key_heads : i + total_key_val]
):
tg_inputs[f"past_value_{l_num}_h{j}"] = val[:, :, 1:, :].detach()
tg_inputs[f"past_value_{past_key_num}_h{j}{new_key_suffix}"] = val[
:, :, 1:, :
].detach()

return tg_inputs

Expand Down Expand Up @@ -244,12 +253,10 @@ def get_output_names(
# Clipped hidden layers are named same as first part for all parts
# Eventually, each split should have respective names.
# layer_start, layer_end = get_hidden_layer_range_from_split(split_part=split_part, model_split_map=model_split_map)
layer_range = end - start
output_list = [
output_name if output_name else f"layers_{layer_range - 1}_add_out_0"
]

output_list = [output_name if output_name else f"layers_{end - 1}_add_out_0"]
output_list += get_past_key_names(
0, layer_range, num_of_past_key_heads=past_key_val_heads, suffix="_out"
start, end, num_of_past_key_heads=past_key_val_heads, suffix="_out"
)
return output_list

Expand Down
Loading

0 comments on commit 8236c53

Please sign in to comment.