注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Palantir提供の言語モデルを使用するためには、まずユーザーのエンロールメントでAIPを有効にする必要があります。
Palantirは、Pythonトランスフォーム内で使用できる言語と埋め込みモデルのセットを提供しています。これらのモデルは palantir_models
ライブラリを通じて使用できます。このライブラリは、transforms.api.transform
デコレーターと一緒に使用できる FoundryInputParams
のセットを提供します。
トランスフォームに言語モデルのサポートを追加するためには、ユーザーのコードリポジトリの左側にあるライブラリ検索パネルを開き、palantir_models
を検索し、ライブラリ タブ内の ライブラリを追加してインストール を選択します。同様に、language-model-service-api
を追加するためにこのプロセスを繰り返します。
その後、ユーザーのコードリポジトリはすべての依存関係を解決し、再度チェックを行います。チェックの完了には少々時間がかかる場合がありますが、完了後にはライブラリをユーザーのトランスフォームで使用できるようになります。
palantir_model
クラスは、transforms.api.transform
デコレーターと一緒にのみ使用できます。
この例では、palantir_models.transforms.OpenAiGptChatLanguageModelInput
を使用します。まず、OpenAiGptChatLanguageModelInput
をユーザーのPythonファイルにインポートします。このクラスを使用してユーザーのトランスフォームを作成できるようになります。次に、プロンプトに従って指定し、使用するモデルとデータセットをインポートします。
生成的な言語モデルと並んで、Palantirはエンベディングモデルも提供しています。以下の例は、reviews
データセットでエンベディングを計算するために palantir_models.transforms.GenericEmbeddingModelInput
をどのように使用するかを示しています。GenericEmbeddingModelInput
は、各レビューのエンベディングを計算するために、ランタイムでトランスフォームに GenericEmbeddingModel
を提供します。エンベディングは、オントロジーのベクトルプロパティがこれを必要とするため、明示的に浮動小数点数にキャストされます。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
from transforms.api import transform, Input, Output from language_model_service_api.languagemodelservice_api_embeddings_v3 import GenericEmbeddingsRequest from palantir_models.models import GenericEmbeddingModel from palantir_models.transforms import GenericEmbeddingModelInput from pyspark.sql.types import ArrayType, FloatType @transform( reviews=Input("/path/to/reviews/dataset"), # レビューデータセットへのパスを入力として指定します。 embedding_model=GenericEmbeddingModelInput("ri.language-model-service..language-model.text-embedding-ada-002_azure"), # 埋め込みモデルを指定します。 output=Output("/path/to/embedding/output") # 出力パスを指定します。 ) def compute_embeddings(ctx, reviews, embedding_model: GenericEmbeddingModel, output): # 内部関数を定義します。この関数は個々のレビューテキストを受け取り、その埋め込みを計算します。 def internal_create_embeddings(val: str): return embedding_model.create_embeddings(GenericEmbeddingsRequest(inputs=[val])).embeddings[0] # pandasデータフレームとしてレビューを読み込みます。 reviews_df = reviews.pandas() # 'review_content'列の各行に対して埋め込みを計算します。 reviews_df['embedding'] = reviews_df['review_content'].apply(internal_create_embeddings) # pandasデータフレームをSparkデータフレームに変換します。 spark_df = ctx.spark_session.createDataFrame(reviews_df) # 'embedding'列のデータ型をArrayType(FloatType())にキャストします。 out_df = spark_df.withColumn('embedding', spark_df['embedding'].cast(ArrayType(FloatType()))) # 結果を出力します。 return output.write_dataframe(out_df)