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.0 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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.test_utils import test_level
  7. class GEMMMultiModalEmbeddingTest(unittest.TestCase):
  8. model_id = 'damo/multi-modal_gemm-vit-large-patch14_generative-multi-modal-embedding'
  9. test_input = {
  10. 'image': 'data/test/images/generative_multimodal.jpg',
  11. 'text':
  12. 'interior design of modern living room with fireplace in a new house',
  13. 'captioning': False
  14. }
  15. @unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
  16. def test_run(self):
  17. generative_multi_modal_embedding_pipeline = pipeline(
  18. Tasks.generative_multi_modal_embedding, model=self.model_id)
  19. output = generative_multi_modal_embedding_pipeline(self.test_input)
  20. print(output)
  21. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  22. def test_run_with_default_model(self):
  23. generative_multi_modal_embedding_pipeline = pipeline(
  24. task=Tasks.generative_multi_modal_embedding)
  25. output = generative_multi_modal_embedding_pipeline(self.test_input)
  26. print(output)
  27. @unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
  28. def test_run_with_model_from_modelhub(self):
  29. model = Model.from_pretrained(self.model_id)
  30. generative_multi_modal_embedding_pipeline = pipeline(
  31. task=Tasks.generative_multi_modal_embedding, model=model)
  32. output = generative_multi_modal_embedding_pipeline(self.test_input)
  33. print(output)
  34. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  35. def test_run_with_output_captioning(self):
  36. generative_multi_modal_embedding_pipeline = pipeline(
  37. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  38. test_input = {'image': self.test_input['image'], 'captioning': True}
  39. output = generative_multi_modal_embedding_pipeline(test_input)
  40. print(output)
  41. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  42. def test_run_with_output_only_image(self):
  43. generative_multi_modal_embedding_pipeline = pipeline(
  44. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  45. test_input = {'image': self.test_input['image'], 'captioning': False}
  46. output = generative_multi_modal_embedding_pipeline(test_input)
  47. print(output)
  48. @unittest.skipUnless(test_level() >= 2, 'skip test in current test level')
  49. def test_run_with_output_only_text(self):
  50. generative_multi_modal_embedding_pipeline = pipeline(
  51. task=Tasks.generative_multi_modal_embedding, model=self.model_id)
  52. test_input = {'text': self.test_input['text']}
  53. output = generative_multi_modal_embedding_pipeline(test_input)
  54. print(output)
  55. if __name__ == '__main__':
  56. unittest.main()