From 0cc970a962f84b3222710467e7171c5e690a0e02 Mon Sep 17 00:00:00 2001 From: ahmedlone127 Date: Sun, 14 Jul 2024 19:46:34 +0500 Subject: [PATCH] Fixing default names for Phi2 and MistralAI (#14338) * Fixing default names for Phi2 and MistralAI * Phi2 is 2.7B in size --------- Co-authored-by: Maziyar Panahi --- .../nlp/annotators/seq2seq/MistralTransformer.html | 6 +++--- .../nlp/annotators/seq2seq/Phi2Transformer.html | 2 +- .../johnsnowlabs/nlp/annotators/seq2seq/index.html | 8 ++++---- .../annotator/seq2seq/mistral_transformer.html | 10 +++++----- .../sparknlp/annotator/seq2seq/phi2_transformer.html | 6 +++--- .../annotator/seq2seq/mistral_transformer/index.html | 6 +++--- .../annotator/seq2seq/phi2_transformer/index.html | 6 +++--- .../annotator/seq2seq/mistral_transformer.py | 10 +++++----- .../sparknlp/annotator/seq2seq/phi2_transformer.py | 6 +++--- .../nlp/annotators/seq2seq/MistralTransformer.scala | 8 ++++---- .../nlp/annotators/seq2seq/Phi2Transformer.scala | 12 ++++++------ .../nlp/annotators/seq2seq/MistralTestSpec.scala | 2 +- 12 files changed, 41 insertions(+), 41 deletions(-) diff --git a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.html b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.html index 049e910424d89a..6b77bb475b6259 100644 --- a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.html +++ b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.html @@ -286,9 +286,9 @@

process extensive textual input, expanding its utility in handling more complex tasks.

In summary, Mistral 7B represents a notable advancement in language models, offering a reliable and versatile solution for various natural language processing challenges.

Pretrained models can be loaded with pretrained of the companion object:

val mistral = MistralTransformer.pretrained()
   .setInputCols("document")
-  .setOutputCol("generation")

The default model is "mistral-7b", if no name is provided. For available pretrained models + .setOutputCol("generation")

The default model is "mistral_7b", if no name is provided. For available pretrained models please see the Models Hub.

For extended examples of usage, see -MistralTestSpec.

References:

Paper Abstract:

We introduce Mistral 7B v0.1, a 7-billion-parameter language model engineered for superior +MistralTestSpec.

References:

Paper Abstract:

We introduce Mistral 7B v0.1, a 7-billion-parameter language model engineered for superior performance and efficiency. Mistral 7B outperforms Llama 2 13B across all evaluated benchmarks, and Llama 1 34B in reasoning, mathematics, and code generation. Our model leverages grouped-query attention (GQA) for faster inference, coupled with sliding window @@ -305,7 +305,7 @@

.setInputCol("text") .setOutputCol("documents") -val mistral = MistralTransformer.pretrained("mistral-7b") +val mistral = MistralTransformer.pretrained("mistral_7b") .setInputCols(Array("documents")) .setMinOutputLength(10) .setMaxOutputLength(50) diff --git a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.html b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.html index 66127d9bf656bb..4f5409c45443cb 100644 --- a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.html +++ b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.html @@ -311,7 +311,7 @@

.setInputCol("text") .setOutputCol("documents") -val Phi2 = Phi2Transformer.pretrained("Phi2-7b") +val Phi2 = Phi2Transformer.pretrained("phi2_7b") .setInputCols(Array("documents")) .setMinOutputLength(10) .setMaxOutputLength(50) diff --git a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/index.html b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/index.html index c63e37ee760c8f..29e29cd55d177e 100644 --- a/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/index.html +++ b/docs/api/com/johnsnowlabs/nlp/annotators/seq2seq/index.html @@ -1040,9 +1040,9 @@

Type Members

process extensive textual input, expanding its utility in handling more complex tasks.

In summary, Mistral 7B represents a notable advancement in language models, offering a reliable and versatile solution for various natural language processing challenges.

Pretrained models can be loaded with pretrained of the companion object:

val mistral = MistralTransformer.pretrained()
   .setInputCols("document")
-  .setOutputCol("generation")

The default model is "mistral-7b", if no name is provided. For available pretrained models + .setOutputCol("generation")

The default model is "mistral_7b", if no name is provided. For available pretrained models please see the Models Hub.

For extended examples of usage, see -MistralTestSpec.

References:

Paper Abstract:

We introduce Mistral 7B v0.1, a 7-billion-parameter language model engineered for superior +MistralTestSpec.

References:

Paper Abstract:

We introduce Mistral 7B v0.1, a 7-billion-parameter language model engineered for superior performance and efficiency. Mistral 7B outperforms Llama 2 13B across all evaluated benchmarks, and Llama 1 34B in reasoning, mathematics, and code generation. Our model leverages grouped-query attention (GQA) for faster inference, coupled with sliding window @@ -1059,7 +1059,7 @@

Type Members

.setInputCol("text") .setOutputCol("documents") -val mistral = MistralTransformer.pretrained("mistral-7b") +val mistral = MistralTransformer.pretrained("mistral_7b") .setInputCols(Array("documents")) .setMinOutputLength(10) .setMaxOutputLength(50) @@ -1134,7 +1134,7 @@

Type Members

.setInputCol("text") .setOutputCol("documents") -val Phi2 = Phi2Transformer.pretrained("Phi2-7b") +val Phi2 = Phi2Transformer.pretrained("phi2_7b") .setInputCols(Array("documents")) .setMinOutputLength(10) .setMaxOutputLength(50) diff --git a/docs/api/python/modules/sparknlp/annotator/seq2seq/mistral_transformer.html b/docs/api/python/modules/sparknlp/annotator/seq2seq/mistral_transformer.html index 4456d2a7d70a0a..d73a77c9461133 100644 --- a/docs/api/python/modules/sparknlp/annotator/seq2seq/mistral_transformer.html +++ b/docs/api/python/modules/sparknlp/annotator/seq2seq/mistral_transformer.html @@ -387,7 +387,7 @@

Source code for sparknlp.annotator.seq2seq.mistral_transformer

... .setOutputCol("generation") - The default model is ``"mistral-7b"``, if no name is provided. For available + The default model is ``"mistral_7b"``, if no name is provided. For available pretrained models please see the `Models Hub <https://sparknlp.org/models?q=mistral>`__. @@ -435,7 +435,7 @@

Source code for sparknlp.annotator.seq2seq.mistral_transformer

References ---------- - `Mistral 7B - <https://mistral.ai/news/announcing-mistral-7b/>`__ + <https://mistral.ai/news/announcing-mistral_7b/>`__ - https://github.com/mistralai/mistral-src **Paper Abstract:** @@ -458,7 +458,7 @@

Source code for sparknlp.annotator.seq2seq.mistral_transformer

>>> documentAssembler = DocumentAssembler() \\ ... .setInputCol("text") \\ ... .setOutputCol("documents") - >>> mistral = MistralTransformer.pretrained("mistral-7b") \\ + >>> mistral = MistralTransformer.pretrained("mistral_7b") \\ ... .setInputCols(["documents"]) \\ ... .setMaxOutputLength(50) \\ ... .setOutputCol("generation") @@ -670,13 +670,13 @@

Source code for sparknlp.annotator.seq2seq.mistral_transformer

return MistralTransformer(java_model=jModel)
@staticmethod -
[docs] def pretrained(name="mistral-7b", lang="en", remote_loc=None): +
[docs] def pretrained(name="mistral_7b", lang="en", remote_loc=None): """Downloads and loads a pretrained model. Parameters ---------- name : str, optional - Name of the pretrained model, by default "mistral-7b" + Name of the pretrained model, by default "mistral_7b" lang : str, optional Language of the pretrained model, by default "en" remote_loc : str, optional diff --git a/docs/api/python/modules/sparknlp/annotator/seq2seq/phi2_transformer.html b/docs/api/python/modules/sparknlp/annotator/seq2seq/phi2_transformer.html index 07ee3e86c061c8..26e7ce683ee170 100644 --- a/docs/api/python/modules/sparknlp/annotator/seq2seq/phi2_transformer.html +++ b/docs/api/python/modules/sparknlp/annotator/seq2seq/phi2_transformer.html @@ -451,7 +451,7 @@

Source code for sparknlp.annotator.seq2seq.phi2_transformer

>>> documentAssembler = DocumentAssembler() \\ ... .setInputCol("text") \\ ... .setOutputCol("documents") - >>> phi2 = Phi2Transformer.pretrained("phi2-7b") \\ + >>> phi2 = Phi2Transformer.pretrained("phi2_7b") \\ ... .setInputCols(["documents"]) \\ ... .setMaxOutputLength(50) \\ ... .setOutputCol("generation") @@ -647,13 +647,13 @@

Source code for sparknlp.annotator.seq2seq.phi2_transformer

return Phi2Transformer(java_model=jModel)
@staticmethod -
[docs] def pretrained(name="phi2-7b", lang="en", remote_loc=None): +
[docs] def pretrained(name="phi2_7b", lang="en", remote_loc=None): """Downloads and loads a pretrained model. Parameters ---------- name : str, optional - Name of the pretrained model, by default "phi2-7b" + Name of the pretrained model, by default "phi2_7b" lang : str, optional Language of the pretrained model, by default "en" remote_loc : str, optional diff --git a/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/mistral_transformer/index.html b/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/mistral_transformer/index.html index 0ca0553b9d8768..b632b744fa5637 100644 --- a/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/mistral_transformer/index.html +++ b/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/mistral_transformer/index.html @@ -543,7 +543,7 @@

Classes... .setOutputCol("generation")

-

The default model is "mistral-7b", if no name is provided. For available +

The default model is "mistral_7b", if no name is provided. For available pretrained models please see the Models Hub.

@@ -772,12 +772,12 @@

Classes
-static pretrained(name='mistral-7b', lang='en', remote_loc=None)[source]#
+static pretrained(name='mistral_7b', lang='en', remote_loc=None)[source]#

Downloads and loads a pretrained model.

Parameters:
-
namestr, optional

Name of the pretrained model, by default “mistral-7b”

+
namestr, optional

Name of the pretrained model, by default “mistral_7b”

langstr, optional

Language of the pretrained model, by default “en”

diff --git a/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/phi2_transformer/index.html b/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/phi2_transformer/index.html index 596773e05d4d21..ea8b3e5ac7ae33 100644 --- a/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/phi2_transformer/index.html +++ b/docs/api/python/reference/autosummary/sparknlp/annotator/seq2seq/phi2_transformer/index.html @@ -608,7 +608,7 @@

Classes>>> documentAssembler = DocumentAssembler() \ ... .setInputCol("text") \ ... .setOutputCol("documents") ->>> phi2 = Phi2Transformer.pretrained("phi2-7b") \ +>>> phi2 = Phi2Transformer.pretrained("phi2_7b") \ ... .setInputCols(["documents"]) \ ... .setMaxOutputLength(50) \ ... .setOutputCol("generation") @@ -795,12 +795,12 @@

Classes
-static pretrained(name='phi2-7b', lang='en', remote_loc=None)[source]#
+static pretrained(name='phi2_7b', lang='en', remote_loc=None)[source]#

Downloads and loads a pretrained model.

Parameters:
-
namestr, optional

Name of the pretrained model, by default “phi2-7b”

+
namestr, optional

Name of the pretrained model, by default “phi2_7b”

langstr, optional

Language of the pretrained model, by default “en”

diff --git a/python/sparknlp/annotator/seq2seq/mistral_transformer.py b/python/sparknlp/annotator/seq2seq/mistral_transformer.py index 29eff367e5b52f..893f9a871c11c7 100644 --- a/python/sparknlp/annotator/seq2seq/mistral_transformer.py +++ b/python/sparknlp/annotator/seq2seq/mistral_transformer.py @@ -44,7 +44,7 @@ class MistralTransformer(AnnotatorModel, HasBatchedAnnotate, HasEngine): ... .setOutputCol("generation") - The default model is ``"mistral-7b"``, if no name is provided. For available + The default model is ``"mistral_7b"``, if no name is provided. For available pretrained models please see the `Models Hub `__. @@ -92,7 +92,7 @@ class MistralTransformer(AnnotatorModel, HasBatchedAnnotate, HasEngine): References ---------- - `Mistral 7B - `__ + `__ - https://github.com/mistralai/mistral-src **Paper Abstract:** @@ -115,7 +115,7 @@ class MistralTransformer(AnnotatorModel, HasBatchedAnnotate, HasEngine): >>> documentAssembler = DocumentAssembler() \\ ... .setInputCol("text") \\ ... .setOutputCol("documents") - >>> mistral = MistralTransformer.pretrained("mistral-7b") \\ + >>> mistral = MistralTransformer.pretrained("mistral_7b") \\ ... .setInputCols(["documents"]) \\ ... .setMaxOutputLength(50) \\ ... .setOutputCol("generation") @@ -327,13 +327,13 @@ def loadSavedModel(folder, spark_session, use_openvino=False): return MistralTransformer(java_model=jModel) @staticmethod - def pretrained(name="mistral-7b", lang="en", remote_loc=None): + def pretrained(name="mistral_7b", lang="en", remote_loc=None): """Downloads and loads a pretrained model. Parameters ---------- name : str, optional - Name of the pretrained model, by default "mistral-7b" + Name of the pretrained model, by default "mistral_7b" lang : str, optional Language of the pretrained model, by default "en" remote_loc : str, optional diff --git a/python/sparknlp/annotator/seq2seq/phi2_transformer.py b/python/sparknlp/annotator/seq2seq/phi2_transformer.py index e7cf7604da03c4..d2eaaad2b960e7 100644 --- a/python/sparknlp/annotator/seq2seq/phi2_transformer.py +++ b/python/sparknlp/annotator/seq2seq/phi2_transformer.py @@ -108,7 +108,7 @@ class Phi2Transformer(AnnotatorModel, HasBatchedAnnotate, HasEngine): >>> documentAssembler = DocumentAssembler() \\ ... .setInputCol("text") \\ ... .setOutputCol("documents") - >>> phi2 = Phi2Transformer.pretrained("phi2-7b") \\ + >>> phi2 = Phi2Transformer.pretrained("phi2") \\ ... .setInputCols(["documents"]) \\ ... .setMaxOutputLength(50) \\ ... .setOutputCol("generation") @@ -304,13 +304,13 @@ def loadSavedModel(folder, spark_session, use_openvino=False): return Phi2Transformer(java_model=jModel) @staticmethod - def pretrained(name="phi2-7b", lang="en", remote_loc=None): + def pretrained(name="phi2", lang="en", remote_loc=None): """Downloads and loads a pretrained model. Parameters ---------- name : str, optional - Name of the pretrained model, by default "phi2-7b" + Name of the pretrained model, by default "phi2" lang : str, optional Language of the pretrained model, by default "en" remote_loc : str, optional diff --git a/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.scala b/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.scala index 0614b7b91ffd31..43ab7a9f6264dd 100644 --- a/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.scala +++ b/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTransformer.scala @@ -69,14 +69,14 @@ import org.json4s.jackson.JsonMethods._ * .setInputCols("document") * .setOutputCol("generation") * }}} - * The default model is `"mistral-7b"`, if no name is provided. For available pretrained models + * The default model is `"mistral_7b"`, if no name is provided. For available pretrained models * please see the [[https://sparknlp.org/models?q=mistral Models Hub]]. * * For extended examples of usage, see * [[https://github.com/JohnSnowLabs/spark-nlp/blob/master/src/test/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTestSpec.scala MistralTestSpec]]. * * '''References:''' - * - [[https://mistral.ai/news/announcing-mistral-7b/ Mistral 7B]] + * - [[https://mistral.ai/news/announcing-mistral_7b/ Mistral 7B]] * - [[https://github.com/mistralai/mistral-src]] * * '''Paper Abstract:''' @@ -106,7 +106,7 @@ import org.json4s.jackson.JsonMethods._ * .setInputCol("text") * .setOutputCol("documents") * - * val mistral = MistralTransformer.pretrained("mistral-7b") + * val mistral = MistralTransformer.pretrained("mistral_7b") * .setInputCols(Array("documents")) * .setMinOutputLength(10) * .setMaxOutputLength(50) @@ -323,7 +323,7 @@ class MistralTransformer(override val uid: String) trait ReadablePretrainedMistralTransformerModel extends ParamsAndFeaturesReadable[MistralTransformer] with HasPretrained[MistralTransformer] { - override val defaultModelName: Some[String] = Some("mistral-7b") + override val defaultModelName: Some[String] = Some("mistral_7b") /** Java compliant-overrides */ override def pretrained(): MistralTransformer = super.pretrained() diff --git a/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.scala b/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.scala index 9f7657eeeac09c..fbb16fa7e13ea2 100644 --- a/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.scala +++ b/src/main/scala/com/johnsnowlabs/nlp/annotators/seq2seq/Phi2Transformer.scala @@ -113,7 +113,7 @@ import org.json4s.jackson.JsonMethods._ * .setInputCol("text") * .setOutputCol("documents") * - * val Phi2 = Phi2Transformer.pretrained("Phi2-7b") + * val Phi2 = Phi2Transformer.pretrained("phi2") * .setInputCols(Array("documents")) * .setMinOutputLength(10) * .setMaxOutputLength(50) @@ -323,8 +323,8 @@ class Phi2Transformer(override val uid: String) path, spark, wrappers.get, - LLAMA2Transformer.suffix, - LLAMA2Transformer.openvinoFile) + Phi2Transformer.suffix, + Phi2Transformer.openvinoFile) } } } @@ -332,7 +332,7 @@ class Phi2Transformer(override val uid: String) trait ReadablePretrainedPhi2TransformerModel extends ParamsAndFeaturesReadable[Phi2Transformer] with HasPretrained[Phi2Transformer] { - override val defaultModelName: Some[String] = Some("Phi2-7b") + override val defaultModelName: Some[String] = Some("phi2") /** Java compliant-overrides */ override def pretrained(): Phi2Transformer = super.pretrained() @@ -351,7 +351,7 @@ trait ReadPhi2TransformerDLModel extends ReadOnnxModel with ReadOpenvinoModel { override val onnxFile: String = "phi2_onnx" val suffix: String = "_phi2" - override val openvinoFile: String = "llama2_openvino" + override val openvinoFile: String = "phi2_openvino" def readModel(instance: Phi2Transformer, path: String, spark: SparkSession): Unit = { instance.getEngine match { @@ -363,7 +363,7 @@ trait ReadPhi2TransformerDLModel extends ReadOnnxModel with ReadOpenvinoModel { instance.setModelIfNotSet(spark, Some(onnxWrappers), None) case Openvino.name => val ovWrapper = - readOpenvinoModel(path, spark, "_llama2_ov") + readOpenvinoModel(path, spark, "_phi2_ov") instance.setModelIfNotSet(spark, None, Some(ovWrapper)) case _ => throw new Exception(notSupportedEngineError) diff --git a/src/test/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTestSpec.scala b/src/test/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTestSpec.scala index 0a51ae130360f2..d307c67ccfa9d8 100644 --- a/src/test/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTestSpec.scala +++ b/src/test/scala/com/johnsnowlabs/nlp/annotators/seq2seq/MistralTestSpec.scala @@ -24,7 +24,7 @@ import org.scalatest.flatspec.AnyFlatSpec class MistralTestSpec extends AnyFlatSpec { - "mistral-7b" should "should handle temperature=0 correctly and not crash when predicting more than 1 element with doSample=True" taggedAs SlowTest in { + "mistral_7b" should "should handle temperature=0 correctly and not crash when predicting more than 1 element with doSample=True" taggedAs SlowTest in { // Even tough the Paper states temperature in interval [0,1), using temperature=0 will result in division by 0 error. // Also DoSample=True may result in infinities being generated and distFiltered.length==0 which results in exception if we don't return 0 instead internally. val testData = ResourceHelper.spark