mirror of
https://github.com/huggingface/text-generation-inference.git
synced 2025-09-10 03:44:54 +00:00
Just ditch the non flash integration tests. They work, but seem to mess
the CI.
This commit is contained in:
parent
cc84387877
commit
f3388d290f
@ -1,44 +1,44 @@
|
|||||||
import pytest
|
# import pytest
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.fixture(scope="module")
|
# @pytest.fixture(scope="module")
|
||||||
def neox_handle(launcher):
|
# def neox_handle(launcher):
|
||||||
with launcher("stabilityai/stablelm-tuned-alpha-3b", num_shard=1, use_flash_attention=False) as handle:
|
# with launcher("stabilityai/stablelm-tuned-alpha-3b", num_shard=1, use_flash_attention=False) as handle:
|
||||||
yield handle
|
# yield handle
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.fixture(scope="module")
|
# @pytest.fixture(scope="module")
|
||||||
async def neox(neox_handle):
|
# async def neox(neox_handle):
|
||||||
await neox_handle.health(300)
|
# await neox_handle.health(300)
|
||||||
return neox_handle.client
|
# return neox_handle.client
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.mark.asyncio
|
# @pytest.mark.asyncio
|
||||||
async def test_neox(neox, response_snapshot):
|
# async def test_neox(neox, response_snapshot):
|
||||||
response = await neox.generate(
|
# response = await neox.generate(
|
||||||
"<|USER|>What's your mood today?<|ASSISTANT|>",
|
# "<|USER|>What's your mood today?<|ASSISTANT|>",
|
||||||
max_new_tokens=10,
|
# max_new_tokens=10,
|
||||||
decoder_input_details=True,
|
# decoder_input_details=True,
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
assert response.details.generated_tokens == 10
|
# assert response.details.generated_tokens == 10
|
||||||
assert response == response_snapshot
|
# assert response == response_snapshot
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.mark.asyncio
|
# @pytest.mark.asyncio
|
||||||
async def test_neox_load(neox, generate_load, response_snapshot):
|
# async def test_neox_load(neox, generate_load, response_snapshot):
|
||||||
responses = await generate_load(
|
# responses = await generate_load(
|
||||||
neox,
|
# neox,
|
||||||
"<|USER|>What's your mood today?<|ASSISTANT|>",
|
# "<|USER|>What's your mood today?<|ASSISTANT|>",
|
||||||
max_new_tokens=10,
|
# max_new_tokens=10,
|
||||||
n=4,
|
# n=4,
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
generated_texts = [r.generated_text for r in responses]
|
# generated_texts = [r.generated_text for r in responses]
|
||||||
|
#
|
||||||
assert len(generated_texts) == 4
|
# assert len(generated_texts) == 4
|
||||||
assert generated_texts, all(
|
# assert generated_texts, all(
|
||||||
[text == generated_texts[0] for text in generated_texts]
|
# [text == generated_texts[0] for text in generated_texts]
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
assert responses == response_snapshot
|
# assert responses == response_snapshot
|
||||||
|
@ -1,40 +1,40 @@
|
|||||||
import pytest
|
# import pytest
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.fixture(scope="module")
|
# @pytest.fixture(scope="module")
|
||||||
def neox_sharded_handle(launcher):
|
# def neox_sharded_handle(launcher):
|
||||||
with launcher("OpenAssistant/oasst-sft-1-pythia-12b", num_shard=2, use_flash_attention=False) as handle:
|
# with launcher("OpenAssistant/oasst-sft-1-pythia-12b", num_shard=2, use_flash_attention=False) as handle:
|
||||||
yield handle
|
# yield handle
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.fixture(scope="module")
|
# @pytest.fixture(scope="module")
|
||||||
async def neox_sharded(neox_sharded_handle):
|
# async def neox_sharded(neox_sharded_handle):
|
||||||
await neox_sharded_handle.health(300)
|
# await neox_sharded_handle.health(300)
|
||||||
return neox_sharded_handle.client
|
# return neox_sharded_handle.client
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.mark.asyncio
|
# @pytest.mark.asyncio
|
||||||
async def test_neox(neox_sharded, response_snapshot):
|
# async def test_neox(neox_sharded, response_snapshot):
|
||||||
response = await neox_sharded.generate(
|
# response = await neox_sharded.generate(
|
||||||
"<|prompter|>What is a meme, and what's the history behind this word?<|endoftext|><|assistant|>",
|
# "<|prompter|>What is a meme, and what's the history behind this word?<|endoftext|><|assistant|>",
|
||||||
max_new_tokens=10,
|
# max_new_tokens=10,
|
||||||
decoder_input_details=True,
|
# decoder_input_details=True,
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
assert response.details.generated_tokens == 10
|
# assert response.details.generated_tokens == 10
|
||||||
assert response == response_snapshot
|
# assert response == response_snapshot
|
||||||
|
#
|
||||||
|
#
|
||||||
@pytest.mark.asyncio
|
# @pytest.mark.asyncio
|
||||||
async def test_neox_load(neox_sharded, generate_load, response_snapshot):
|
# async def test_neox_load(neox_sharded, generate_load, response_snapshot):
|
||||||
responses = await generate_load(
|
# responses = await generate_load(
|
||||||
neox_sharded,
|
# neox_sharded,
|
||||||
"<|prompter|>What is a meme, and what's the history behind this word?<|endoftext|><|assistant|>",
|
# "<|prompter|>What is a meme, and what's the history behind this word?<|endoftext|><|assistant|>",
|
||||||
max_new_tokens=10,
|
# max_new_tokens=10,
|
||||||
n=4,
|
# n=4,
|
||||||
)
|
# )
|
||||||
|
#
|
||||||
assert len(responses) == 4
|
# assert len(responses) == 4
|
||||||
assert all([r.generated_text == responses[0].generated_text for r in responses])
|
# assert all([r.generated_text == responses[0].generated_text for r in responses])
|
||||||
|
#
|
||||||
assert responses == response_snapshot
|
# assert responses == response_snapshot
|
||||||
|
@ -90,6 +90,8 @@ class FlashNeoxAttention(torch.nn.Module):
|
|||||||
self.head_size = hidden_size // num_heads
|
self.head_size = hidden_size // num_heads
|
||||||
self.num_heads = self.num_heads // weights.process_group.size()
|
self.num_heads = self.num_heads // weights.process_group.size()
|
||||||
|
|
||||||
|
rotary_pct = config.rotary_pct
|
||||||
|
|
||||||
rotary_ndims = int(self.head_size * rotary_pct)
|
rotary_ndims = int(self.head_size * rotary_pct)
|
||||||
self.rotary_emb = PositionRotaryEmbedding.load(prefix=f"{prefix}.rotary_emb", weights=weights)
|
self.rotary_emb = PositionRotaryEmbedding.load(prefix=f"{prefix}.rotary_emb", weights=weights)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user