watsonx.aiでIBM granite-7b-labfoundation modelの推論を試して、その機能について学び、スキルや知識を貢献できる領域を見つけてください。
granite-7b-labfoundation modelは、 IBMの 70 億パラメータの大規模言語モデルです。
IBM Granite シリーズの基盤モデルの他のモデルと同様に、このモデルは企業向けに特化したデータセットで事前学習されています。つまり、このモデルはさまざまな業界の専門用語に精通しており、関連する業界知識に基づいたコンテンツをより容易に生成することができます。
IBM Graniteシリーズの一部の基礎モデルとは異なり、 granite-7b-labfoundation model IBM Research のLarge-scale Alignment for chatBots (LAB) と呼ばれる新しいアライメント方法を使用して調整されました。 LAB アライメント チューニング方法の詳細については、 InstructLab基礎モデル」を参照してください。
foundation modelの分類を調べる
granite-7b-labfoundation modelの機能について詳しくは、foundation modelの分類を参照してください。
タクソノミーにアクセスするには、以下の手順を実行する:
チャットモードの watsonx.ai Prompt Lab から、Model フィールドをクリックし、View all foundation models を選択します。
granite-7b-lab
foundation modelのタイルを見つけてクリックします。クリックすると、モデルカードのトレーニングタクソノミータブが開きます。
タクソノミーの知識とスキルを探求する。 タクソノミー・ツリーの各末端ノードは、モデルが訓練されたスキルを表す。 スキルをクリックすると、モデルのトレーニングに使用された合成データを生成するために使用されたシード例を見ることができます。
granite-7b-labfoundation modelの促進
granite-7b-labfoundation modelから最良の結果を得るには、さまざまなタスクのfoundation model入力を作成するときに、推奨されるプロンプト構造を使用することから始めます。 モデルを操作しているうちに、モデルのパラメータやプロンプトのフォーマットを微調整して、使用ケースに最適な設定を見つけることができます。
granite-7b-labfoundation modelは、次の用途に最適化されています。
機密区分
granite-7b-labfoundation modelを使用して情報を分類するには、次の推奨事項に従ってください。
次の表は、分類タスクでgranite-7b-labfoundation modelを実行するための推奨モデル パラメータを示しています。
パラメーター | 推奨値または範囲 | 説明 |
---|---|---|
デコード | 欲張り | 貪欲なデコーディングは、最も可能性の高い選択肢のみからトークンを選択するため、テキストを分類したい場合に最適である。 |
反復ペナルティ | 1 | 最も低い値を使用する。 繰り返しが期待される。 |
最大トークン数 | 状況による | 3 や5 のように、最長のクラスラベルのトークンの数をカバーする値を使用してください。 トークンを制限することで、モデルが適切なクラスラベルだけを返し、それ以外は返さないようにする。 |
停止基準 | エンドテキスト | lt;|endoftext|>停止シーケンスがないと、モデルはクラス・ラベルよりも多くの出力を生成するかもしれない。 |
分類タスクのためにgranite-7b-labfoundation modelを実行するには、次の手順を試してください。
モデルに入力に割り当てさせたいクラスまたは分類ラベルを特定する。 プロンプトのインストラクション・セグメントには、必ずこれらのクラス・ラベルを記載してください。
例えば、顧客の商品レビューを肯定的か否定的かに分類したい場合、2つのクラスラベルを定義することができます:
Postitive
とNegative
です。モデルに分類させたいタイプの入力テキストの代表例を2つか3つ集める。
プロンプトを構造化できるように、フリーフォーム モードで Prompt Lab のgranite-7b-labfoundation modelを操作します。
モデルパラメータパネルから、表1の推奨モデルパラメータを設定します。
プロンプトでは、システムプロンプト、ユーザー入力、モデルの出力の行き先を明確にします。
たとえば、テキストを分類するようにgranite-7b-labfoundation modelをトレーニングしたときに、次のプロンプト構造が使用されました。
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> {INSTRUCTION} Your response should only include the answer. Do not provide any further explanation. Here are some examples, complete the last one: {INPUT_LABEL}: {ICL_INPUT_1} {OUTPUT_LABEL}: {ICL_OUTPUT_1} {INPUT_LABEL}: {ICL_INPUT_2} {OUTPUT_LABEL}: {ICL_OUTPUT_2} {INPUT_LABEL}: {TEST_INPUT} {OUTPUT_LABEL}: <|assistant|>
同様の構造を使って、モデルのトレーニングを活用することができる。 プロンプトテンプレートのプレースホルダ変数を置き換えるだけでよい。
表 3a: 分類テンプレートのプレースホルダー変数 プレースホルダ変数 説明 例 {INSTRUCTION}
タスクの説明。 モデルに入力に割り当ててほしいクラスのリストを含めます。 各製品のレビューについて、そのレビューが肯定的か否定的かを示してください。 {INPUT_LABEL}
分類するテキストの短いラベル。 Input
,Customer review
,Feedback
,Comment
{OUTPUT_LABEL}
分類値を表す短いラベル。 Class
{ICL_INPUT_N}
オプション。 分類される入力テキストの例。 インコンテクスト学習をサポートするために、数発のプロンプトを使用したい場合は、例を追加します。 The service representative did not listen to a word I said. It was a waste of my time.
{ICL_OUTPUT_N}
対応する入力テキスト例にクラスラベルを割り当てた出力例。 Positive
,Negative
分類プロンプトの例
次のプロンプトは、顧客がサポートセンターのスタッフについて共有するフィードバックを分類したものです。 モデルのパラメータは以下の通りである:
- 停止シーケンス:
<|endoftext|>
- 最大トークン数:3
<|system|>
You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior.
<|user|>
For each feedback, specify whether the content is Positive or Negative. Your response should only include the answer. Do not provide any further explanation.
Here are some examples, complete the last one:
Feedback:
Carol, the service rep was so helpful. She answered all of my questions and explained things beautifully.
Class:
Positive
Feedback:
The service representative did not listen to a word I said. It was a waste of my time.
Class:
Negative
Feedback:
Carlo was so helpful and pleasant. He was able to solve a problem that I've been having with my software for weeks now.
Class:
<|assistant|>
このプロンプトが送信されたときにgranite-7b-labfoundation modelによって生成される出力はPositive
です。
granite-7b-labと会話
granite-7b-labfoundation modelとチャットするときに最良の結果を得るには、まずこれらの推奨事項に従い、次に実験して希望する結果を得てください。
次の表は、会話タスク用にgranite-7b-labfoundation modelを促すための推奨モデル パラメータを示しています。
パラメーター | 推奨値または範囲 | 説明 |
---|---|---|
デコード | サンプリング | サンプリングデコーディングは、より創造的なテキストを生成し、チャットボットからの応答に興味と個性を加えるのに役立つ。 しかし、予測不可能なアウトプットにつながる可能性もある。 次のモデル・パラメーターのセットで、創造性の度合いをコントロールすることができる。 |
トップP:0.85 トップK:50 温度:0.7 |
これらのサンプリングデコーディングパラメーターはすべて連動している。 このサブセットには、最も可能性の高い50個のトークン(Top K)、または確率スコアの合計が0.85になるトークン(Top P)が含まれます。 0.7という比較的低い温度値が、トークンのスコアの差を増幅させている。 その結果、カットされるトークンは、通常、最も可能性の高いトークンである。 - To increase the creativity and diversity of responses, increase the temperature value. • モデルが幻覚を見るようなら、温度値を下げる。 |
|
反復ペナルティ | 1.05 | 単語やフレーズを繰り返すことで、チャットボットがロボットのように聞こえるのを防ぐために、ペナルティをこの低い値に設定します。 |
ランダム・シード | – | 例えば、温度を変えて出力にどのような影響を与えるかを確認したい場合、同じ入力を繰り返し送信し、毎回温度の値だけを変えます。 また、ランダムなトークンの選択がモデルの出力にも影響しないように、毎回 5 のような数値をランダムシードとして指定します。 毎回同じ数字を指定する限り、数字自体は問題ではない。 |
ストップ・シーケンス | エンドテキスト | lt;|endoftext|>の停止シーケンスがないと、モデルは必要以上に説明情報を追加してしまうかもしれない。 |
最大トークン数 | 900 | 入力トークンと出力トークンの両方を含むgranite-7b-labfoundation modelの最大コンテキスト ウィンドウ長は 8192 です。 トークンの詳細については、トークンとトークン化を参照してください。 各フォローアップ質問では、会話履歴がモデルプロンプトの一部として含まれます。 granite-7b-labfoundation modelは通常、最大 5 ターン、または入力の長さが 4,000 トークンに達するまで会話を維持できます。 |
モデル・パラメータの詳細については、プロンプトのモデル・パラメータを参照してください。
granite-7b-labfoundation modelにチャット タスクを促すには、次の手順を試してください。
チャット モードの Prompt Lab から、 granite-7b-labfoundation modelを選択します。
チャットモードでは、より高い最大トークン値を含む、会話のやりとりに最適化されたデフォルトのプロンプトパラメータ値があります。
モデルパラメータパネルから、表2の推奨モデルパラメータ値を適用する。
チャットモードでは、入力テキストをフォーマットせずにユーザー入力を送信できます。
チャットモードでは、システムプロンプトのテキストが適用されます。 テキストアイコンをクリックすると、テキストの書式を確認できます。
フリーフォームモードで同じプロンプトを送信するには、システムプロンプトを設定する必要がある。
指示を加える。 例えば、次のような指示文はモデルの訓練に使われたもので、モデルにとっては馴染み深いものである。
あなたはIBMリサーチによって開発されたAI言語モデルです。 あなたは慎重なアシスタントだ。 あなたは注意深く指示に従う。 あなたは親切で無害であり、倫理的なガイドラインに従い、積極的な行動を促進する。
推奨されるシステム・プロンプト・テキストをコピーするには、次のコード・スニペットからクリップボードにコピーアイコンをクリックします。
You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior.
会話を始める。
チャットタスクに使われるプロンプトの最適な構造は以下の通りである。 プロンプトには、プロンプトの以下のセグメントを識別する構文が含まれる:
<|system|>
:foundation modelのシステムプロンプトとも呼ばれる命令を識別します。<|user|>
:答えとなるクエリーテキスト。<|assistant|>
:プロンプトの最後で、生成された答えが期待されていることを示す合図。
自由形式モードでプロンプトラボからプロンプトを送信する場合は、予想されるプロンプト形式を使用してください。
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> {PROMPT} <|assistant|>
例:
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> What is the capital of Massachusetts? <|assistant|>
会話を続けるために、フォローアップの質問をする。
複数のダイアログターンを持つチャットに使用されるプロンプトの最適な構造は以下の通りである。 自由形式モードでプロンプトラボからプロンプトを送信する場合は、このプロンプト形式を使用してください。
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> {ROUND1_PROMPT} <|assistant|> {MODEL_RESPONSE} <|user|> {ROUND2_PROMPT} <|assistant|>
例:
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> What is the capital of Massachusetts? <|assistant|> The capital of Massachusetts is Boston. Boston is not only the largest city in Massachusetts but also one of the oldest cities in the United States, with a rich history and vibrant culture. It is home to numerous universities, hospitals, and technology companies, making it a significant center for education, biotechnology, finance, and tourism. If you have any specific questions about Boston or Massachusetts, feel free to ask! <|user|> What US cities are older? <|assistant|> There are several cities in the United States that are older than Boston and even older than the country itself! Some of these historical gems include: 1. St. Augustine, Florida: Established in 1565, St. Augustine is the oldest continuously inhabited European-established settlement within the borders of the contiguous United States. 2. Jamestown, Virginia: Founded in 1607, Jamestown was the first permanent English settlement in North America. 3. Plymouth, Massachusetts: Established in 1620, Plymouth ...
RAGパターンで事実に基づいた回答を返す
granite-7b-labfoundation modelが事実に基づいた回答を返すようにするには、検索拡張生成パターンを使用します。 検索-補強された生成は、議論されるトピックに関する事実情報をモデルに提出する入力を根拠づける。 詳しくは、検索補強世代(RAG)を参照。
granite-7b-labfoundation modelから事実に基づく回答を返す場合は、次の推奨事項に従ってください。
次の表は、検索強化生成タスクのためにgranite-7b-labfoundation modelを実行するための推奨モデル パラメータを示しています。
パラメーター | 推奨値または範囲 | 説明 |
---|---|---|
デコード | 欲張り | 貪欲なデコーディングは、最も可能性の高い選択肢のみからトークンを選択する。 |
反復ペナルティ | 1 | 最も低い値を使用する。 事実に基づいた回答が目的であれば、繰り返しは許容される。 |
最大トークン数 | 500 | モデルは質問に可能な限り完全に答えることができます。 入力トークンと出力トークンの両方を含むgranite-7b-labfoundation modelの最大コンテキスト ウィンドウ長は 8192 であることに注意してください。 入力は、プロンプトの根拠となる文書を追加することも含めて、その制限内に収まるようにしてください。 トークンの詳細については、トークンとトークン化を参照してください。 |
停止基準 | エンドテキスト | granite-7b-labfoundation modelの便利な機能は、各応答の最後に <|endoftext|> という名前の特別なトークンが含まれていることです。 生成モデルの中には、許容される最大数よりも少ないトークンで入力に対する応答を返すものがある場合、入力からパターンを繰り返すことができる。 このモデルでは、プロンプトに信頼性の高いストップシーケンスを組み込むことで、このような繰り返しを防いでいる。 |
モデル・パラメータの詳細については、プロンプトのモデル・パラメータを参照してください。
検索拡張生成タスクのためにgranite-7b-labfoundation modelを促すには、次の手順を試してください。
モデルに議論させたいトピックについて、事実に基づいた情報が掲載されており、使用許可を得ている信頼できる資料を探す。 文書やドキュメントの抜粋を、後でアクセスできるテキストエディタなどにコピーする。
例えば、自社のウェブサイトや製品ドキュメントの製品情報などです。
プロンプトラボからフリーフォームモードを開き、プロンプトを構成できるようにします。 granite-7b-labfoundation modelを選択します。
モデルパラメータパネルから、表3から推奨されるモデルパラメータを設定します。
プロンプトでは、システムプロンプト、ユーザー入力、モデルの出力先を明確に定義する。
たとえば、次のプロンプト構造はgranite-7b-labfoundation modelが関連情報を返すのに役立ちます。
<|system|> You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior. <|user|> You are an AI language model designed to function as a specialized Retrieval Augmented Generation (RAG) assistant. When generating responses, prioritize correctness, i.e., ensure that your response is grounded in context and user query. Always make sure that your response is relevant to the question. Answer Length: {ANSWER_LENGTH} [Document] {DOCUMENT1_TITLE} {DOCUMENT1_CONTENT} [End] [Document] {DOCUMENT2_TITLE} {DOCUMENT2_CONTENT} [End] [Document] {DOCUMENT3_TITLE} {DOCUMENT3_CONTENT} [End] {QUERY} <|assistant|>
注意:文書内容の開始と終了は、特別なタグ
[Document]
と[End]
で示されます。 プロンプトにコンテンツタイプやサブセクションのヘッダーを識別する特別なタグを追加する場合も、同様の構文を使用します。 granite-7b-labfoundation modelが作成されたとき、次の特殊なタグを処理するようにトレーニングされました。<|system|>
:foundation modelのシステムプロンプトとも呼ばれる命令を識別します。<|user|>
:答えとなるクエリーテキスト。<|assistant|>
:プロンプトの最後で、生成された答えが期待されていることを示す合図。
カスタムタグに同じ
<|tagname|>
構文を使わないでください。このプロンプトテンプレートをコピーした場合は、プロンプトラボエディタに貼り付けた後、プレースホルダ変数を置き換えてください。
表4:RAGテンプレートのプレースホルダー変数 プレースホルダ変数 説明 例 {ANSWER_LENGTH}
オプション。 回答に期待される長さを定義します。 選択肢は以下の通り(短い回答から長い回答へ): single word
、concise
、narrative
{DOCUMENTn_TITLE}
事実情報を含む抜粋が引用されている文書のタイトル。 複数の文書の内容を含めることができます。 製品パンフレット {DOCUMENTn_CONTENT}
モデルに知識を持って議論してもらいたい事実情報を抜粋した文章。 マーケティングパンフレット、製品資料、企業ウェブサイト、その他信頼できるリソースからのテキスト。 {QUERY}
事実に基づいて答えるべき質問。 文書で取り上げられているトピックに関する質問。 ヒント:別の方法として、プロンプトを再利用し、内容を毎回動的に置き換えることができるように、ドキュメントにプロンプト変数を定義して使用することもできる。 詳細については、再利用可能なプロンプトを作成するを参照してください。
検索機能付き生成プロンプトの例
次のプロンプトは、 granite-7b-labfoundation modelを使用して、プロンプトの調整に関する質問に回答します。
注意: この文書の内容は、基礎モデルのチューニング方法トピックから引用しています。
<|system|>
You are an AI language model developed by IBM Research. You are a cautious assistant. You carefully follow instructions. You are helpful and harmless and you follow ethical guidelines and promote positive behavior.
<|user|>
You are an AI language model designed to function as a specialized Retrieval Augmented Generation (RAG) assistant. When generating responses, prioritize correctness, i.e., ensure that your response is grounded in context and user query. Always make sure that your response is relevant to the question.
Answer length: concise
[Document]
How prompt-tuning works
Foundation models are sensitive to the input that you give them. Your input, or how you prompt the model, can introduce context that the model will use to tailor its generated output. Prompt engineering to find the right prompt often works well. However, it can be time-consuming, error-prone, and its effectiveness can be restricted by the context window length that is allowed by the underlying model.
Prompt-tuning a model in the Tuning Studio applies machine learning to the task of prompt engineering. Instead of adding words to the input itself, prompt-tuning is a method for finding a sequence of values that, when added as a prefix to the input text, improve the model's ability to generate the output you want. This sequence of values is called a prompt vector.
Normally, words in the prompt are vectorized by the model. Vectorization is the process of converting text to tokens, and then to numbers defined by the model's tokenizer to identify the tokens. Lastly, the token IDs are encoded, meaning they are converted into a vector representation, which is the input format that is expected by the embedding layer of the model. Prompt-tuning bypasses the model's text-vectorization process and instead crafts a prompt vector directly. This changeable prompt vector is concatenated to the vectorized input text and the two are passed as one input to the embedding layer of the model. Values from this crafted prompt vector affect the word embedding weights that are set by the model and influence the words that the model chooses to add to the output.
To find the best values for the prompt vector, you run a tuning experiment. You demonstrate the type of output that you want for a corresponding input by providing the model with input and output example pairs in training data. With each training run of the experiment, the generated output is compared to the training data output. Based on what it learns from differences between the two, the experiment adjusts the values in the prompt vector. After many runs through the training data, the model finds the prompt vector that works best.
[End]
How does prompt tuning work?
<|assistant|>
granite-7b-labfoundation model入力で提供されたドキュメント コンテンツの情報に基づいて、プロンプト チューニングがどのように機能するかの正確な概要を生成します。
出力は次のようになる:
プロンプトチューニングは、プロンプトベクトルと呼ばれる一連の値を調整することで、特定の出力を生成するモデルの能力を向上させる方法です。 プロンプトチューニングでは、入力に直接単語を追加するのではなく、プロンプトベクトルを作成し、モデルによって設定される単語埋め込み重みに直接影響を与える。 これは、入力テキストをベクトル化し、トークンIDをベクトル表現にエンコードすることで達成される。このベクトルは、細工されたプロンプトベクトルと連結され、モデルの埋め込みレイヤーに1つの入力として渡される。 この実験では、生成された出力と訓練データ例における所望の出力との差に基づいて、プロンプトベクトルの値を調整する。 トレーニングデータを何度も実行するうちに、モデルは最適なプロンプトベクトルを見つける。
詳細情報
granite-7b-labfoundation modelの詳細については、次のリソースをお読みください。
Parent topic: IBM Foundation models