You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_generative_multi_modal_embedding.py 3.4 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Copyright (c) Alibaba, Inc. and its affiliates.
  2. import unittest
  3. from modelscope.models import Model
  4. from modelscope.pipelines import pipeline
  5. from modelscope.utils.constant import Tasks
  6. from modelscope.utils.demo_utils import DemoCompatibilityCheck
  7. from modelscope.utils.test_utils import test_level
  8. class GEMMMultiModalEmbeddingTest(unittest.TestCase, DemoCompatibilityCheck):
  9. def setUp(self) -> None:
  10. self.task = Tasks.generative_multi_modal_embedding
  11. self.model_id = 'damo/multi-modal_gemm-vit-large-patch14_generative-multi-modal-embedding'
  12. test_input = {
  13. 'image': 'data/test/images/generative_multimodal.jpg',
  14. 'text':
  15. 'interior design of modern living room with fireplace in a new house',
  16. 'captioning': False
  17. }
  18. @unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
  19. def test_run(self):
  20. generative_multi_modal_embedding_pipeline = pipeline(
  21. Tasks.generative_multi_modal_embedding, model=self.model_id)
  22. output = generative_multi_modal_embedding_pipeline(self.test_input)
  23. print(output)
  24. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  25. def test_run_with_default_model(self):
  26. generative_multi_modal_embedding_pipeline = pipeline(
  27. task=Tasks.generative_multi_modal_embedding)
  28. output = generative_multi_modal_embedding_pipeline(self.test_input)
  29. print(output)
  30. @unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
  31. def test_run_with_model_from_modelhub(self):
  32. model = Model.from_pretrained(self.model_id)
  33. generative_multi_modal_embedding_pipeline = pipeline(
  34. task=Tasks.generative_multi_modal_embedding, model=model)
  35. output = generative_multi_modal_embedding_pipeline(self.test_input)
  36. print(output)
  37. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  38. def test_run_with_output_captioning(self):
  39. generative_multi_modal_embedding_pipeline = pipeline(
  40. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  41. test_input = {'image': self.test_input['image'], 'captioning': True}
  42. output = generative_multi_modal_embedding_pipeline(test_input)
  43. print(output)
  44. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  45. def test_run_with_output_only_image(self):
  46. generative_multi_modal_embedding_pipeline = pipeline(
  47. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  48. test_input = {'image': self.test_input['image'], 'captioning': False}
  49. output = generative_multi_modal_embedding_pipeline(test_input)
  50. print(output)
  51. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  52. def test_run_with_output_only_text(self):
  53. generative_multi_modal_embedding_pipeline = pipeline(
  54. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  55. test_input = {'text': self.test_input['text']}
  56. output = generative_multi_modal_embedding_pipeline(test_input)
  57. print(output)
  58. @unittest.skip('demo compatibility test is only enabled on a needed-basis')
  59. def test_demo_compatibility(self):
  60. self.compatibility_check()
  61. if __name__ == '__main__':
  62. unittest.main()