IBM granite-7b-lab foundation model を watsonx.ai で推論する実験を行い、その機能について学び、スキルや知識を貢献できる分野を見つけましょう。
granite-7b-lab foundation model は、 IBM による70億パラメータの大型言語モデルです。
IBM Granite シリーズの基盤モデルの他のモデルと同様に、このモデルは企業向けに特化したデータセットで事前学習されています。つまり、このモデルはさまざまな業界の専門用語に精通しており、関連する業界知識に基づいたコンテンツをより容易に生成することができます。
IBM Granite シリーズのいくつかの基盤モデルとは異なり、 granite-7b-lab foundation model は、 IBM Researchの 大規模アラインメント chatBots (LAB)と呼ばれる新しいアライメント方法を用いて調整されました。 LABアライメント調整方法の詳細については、 InstructLab 基盤モデル をご覧ください。
foundation model の分類法を探索する
granite-7b-lab foundation model の機能についてさらに詳しく知りたい方は、 foundation model の分類法をご覧ください。
タクソノミーにアクセスするには、以下の手順を実行する:
watsonx.ai Prompt Lab をチャットモードにし、 モデル フィールドをクリックし、 すべての基盤モデルを表示 を選択します。
granite-7b-lab
foundation model のタイルを見つけてクリックします。クリックすると、モデルカードのトレーニングタクソノミータブが開きます。
タクソノミーの知識とスキルを探求する。 タクソノミー・ツリーの各末端ノードは、モデルが訓練されたスキルを表す。 スキルをクリックすると、モデルのトレーニングに使用された合成データを生成するために使用されたシード例を見ることができます。
促す granite-7b-lab foundation model
granite-7b-lab foundation model から最良の結果を得るには、まず、さまざまなタスクで foundation model 入力を作成する際に、推奨されるプロンプト構造を使用することから始めます。 モデルを操作しているうちに、モデルのパラメータやプロンプトのフォーマットを微調整して、使用ケースに最適な設定を見つけることができます。
granite-7b-lab foundation model は、以下の用途に最適化されています
機密区分
granite-7b-lab foundation model を使用して情報を分類するには、以下の推奨事項に従ってください。
次の表は、分類タスク用に granite-7b-lab foundation model に提示する推奨モデルパラメータの一覧です。
パラメーター | 推奨値または範囲 | 説明 |
---|---|---|
デコード | 欲張り | 貪欲なデコーディングは、最も可能性の高い選択肢のみからトークンを選択するため、テキストを分類したい場合に最適である。 |
反復ペナルティ | 1 | 最も低い値を使用する。 繰り返しが期待される。 |
最大トークン数 | 状況による | 3 や5 のように、最長クラスラベルのトークン数をカバーする値を使用してください。 トークンを制限することで、モデルが適切なクラスラベルだけを返し、それ以外は返さないようにする。 |
停止基準 | エンドテキスト | lt;|endoftext|>停止シーケンスがないと、モデルはクラス・ラベルよりも多くの出力を生成するかもしれない。 |
分類タスクを実行するために granite-7b-lab foundation model を促すには、以下の手順をお試しください
モデルに入力に割り当てさせたいクラスまたは分類ラベルを特定する。 プロンプトのインストラクション・セグメントには、必ずこれらのクラス・ラベルを記載してください。
例えば、顧客の商品レビューを肯定的か否定的かに分類したい場合、2つのクラスラベルを定義することができます:
Postitive
とNegative
です。モデルに分類させたいタイプの入力テキストの代表例を2つか3つ集める。
Prompt Lab の granite-7b-lab foundation model をフリーフォームモードで使用して、プロンプトを構成できるようにします。
モデルパラメータパネルから、表1の推奨モデルパラメータを設定します。
プロンプトでは、システムプロンプト、ユーザー入力、モデルの出力の行き先を明確にします。
例えば、 granite-7b-lab foundation 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-lab foundation model によって生成される出力は、 Positive
です。
granite-7b-labと会話
granite-7b-lab foundation model とのチャットで最良の結果を得るには、まず以下の推奨事項に従ってください。その後、希望する結果を得るために試行錯誤してください。
次の表は、会話型タスクの実行時に granite-7b-lab foundation 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-lab foundation model のコンテキストウィンドウの長さ(入力トークンと出力トークンを含む)は最大8192です。 トークンの詳細については、トークンとトークン化を参照してください。 各フォローアップ質問では、会話履歴がモデルプロンプトの一部として含まれます。 granite-7b-lab foundation model は通常、最大5ターン、または入力が4,000トークンに達するまで会話を維持することができます。 |
モデル・パラメータの詳細については、プロンプトのモデル・パラメータを参照してください。
チャットタスクを granite-7b-lab foundation model に依頼するには、以下の手順をお試しください
Prompt Lab をチャットモードにし、 granite-7b-lab foundation 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|>
:プロンプトの最後で、生成された答えが期待されていることを示す合図。
Prompt Labのプロンプトをフリーフォームモードで送信する際は、プロンプトのフォーマットを指定されたものを使用してください。
<|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|>
会話を続けるために、フォローアップの質問をする。
複数のダイアログターンを持つチャットに使用されるプロンプトの最適な構造は以下の通りである。 Prompt Labのプロンプトをフリーフォームモードで送信する場合は、このプロンプトフォーマットを使用してください。
<|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-lab foundation model に事実に基づく回答を返させるには、 検索拡張生成検索拡張生成 パターンを使用します。 検索-補強された生成は、議論されるトピックに関する事実情報をモデルに提出する入力を根拠づける。 詳しくは、検索補強世代(RAG)を参照。
granite-7b-lab foundation model から事実に基づく回答を返したい場合は、以下の推奨事項に従ってください。
次の表は、プロンプトに推奨されるモデルパラメータを示しています。 granite-7b-labfoundation model検索拡張生成のために 検索拡張生成タスク。
パラメーター | 推奨値または範囲 | 説明 |
---|---|---|
デコード | 欲張り | 貪欲なデコーディングは、最も可能性の高い選択肢のみからトークンを選択する。 |
反復ペナルティ | 1 | 最も低い値を使用する。 事実に基づいた回答が目的であれば、繰り返しは許容される。 |
最大トークン数 | 500 | モデルは質問に可能な限り完全に回答することができます。 granite-7b-lab foundation model のコンテキストウィンドウの長さ(入力トークンと出力トークンを含む)は最大8192であることを覚えておいてください。 入力は、プロンプトの根拠となる文書を追加することも含めて、その制限内に収まるようにしてください。 トークンの詳細については、トークンとトークン化を参照してください。 |
停止基準 | エンドテキスト | granite-7b-lab foundation model の便利な機能として、各レスポンスの最後に、<|endoftext|>という名前の特別なトークンが含まれていることが挙げられます。 生成モデルの中には、許容される最大数よりも少ないトークンで入力に対する応答を返すものがある場合、入力からパターンを繰り返すことができる。 このモデルでは、プロンプトに信頼性の高いストップシーケンスを組み込むことで、このような繰り返しを防いでいる。 |
モデル・パラメータの詳細については、プロンプトのモデル・パラメータを参照してください。
促すには granite-7b-labfoundation model検索拡張生成のために 検索拡張生成タスクを実行するには、次の手順を試してください。
モデルに議論させたいトピックについて、事実に基づいた情報が掲載されており、使用許可を得ている信頼できる資料を探す。 文書やドキュメントの抜粋を、後でアクセスできるテキストエディタなどにコピーする。
例えば、自社のウェブサイトや製品ドキュメントの製品情報などです。
Prompt Labから、プロンプトを構成できるようにフリーフォームモードを開きます。 granite-7b-lab foundation model を選択してください。
モデルパラメータパネルから、表3から推奨されるモデルパラメータを設定します。
プロンプトでは、システムプロンプト、ユーザー入力、モデルの出力先を明確に定義する。
例えば、次のプロンプト構造は、 granite-7b-lab foundation 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-lab foundation model が作成された際、次の特別なタグを処理するように訓練されました<|system|>
: 命令を識別します。これは、 foundation model の システムプロンプト としても知られています。<|user|>
:答えとなるクエリーテキスト。<|assistant|>
:プロンプトの最後で、生成された答えが期待されていることを示す合図。
カスタムタグに同じ
<|tagname|>
構文を使わないでください。このプロンプトテンプレートをコピーする場合は、 Prompt Labに貼り付けた後にプレースホルダ変数を置き換えてください。
表4:RAGテンプレートのプレースホルダー変数 プレースホルダ変数 説明 例 {ANSWER_LENGTH}
オプション。 回答に期待される長さを定義します。 選択肢は以下の通り(短い回答から長い回答へ): single word
、concise
、narrative
{DOCUMENTn_TITLE}
事実情報を含む抜粋が引用されている文書のタイトル。 複数の文書の内容を含めることができます。 製品パンフレット {DOCUMENTn_CONTENT}
モデルに知識を持って議論してもらいたい事実情報を抜粋した文章。 マーケティングパンフレット、製品資料、企業ウェブサイト、その他信頼できるリソースからのテキスト。 {QUERY}
事実に基づいて答えるべき質問。 文書で取り上げられているトピックに関する質問。 ヒント:別の方法として、プロンプトを再利用し、内容を毎回動的に置き換えることができるように、ドキュメントにプロンプト変数を定義して使用することもできる。 詳細については、再利用可能なプロンプトを作成するを参照してください。
検索機能付き生成プロンプトの例
次のプロンプトでは、 そくせい に関する質問に答えるために granite-7b-lab foundation 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-lab foundation model は、入力されたドキュメントの内容から得られた情報に基づいて、プロンプトチューニングの仕組みを正確に要約します。
出力は次のようになる:
プロンプトチューニングは、プロンプトベクトルと呼ばれる一連の値を調整することで、特定の出力を生成するモデルの能力を向上させる方法です。 プロンプトチューニングでは、入力に直接単語を追加するのではなく、プロンプトベクトルを作成し、モデルによって設定される単語埋め込み重みに直接影響を与える。 これは、入力テキストをベクトル化し、トークンIDをベクトル表現にエンコードすることで達成される。このベクトルは、細工されたプロンプトベクトルと連結され、モデルの埋め込みレイヤーに1つの入力として渡される。 この実験では、生成された出力と訓練データ例における所望の出力との差に基づいて、プロンプトベクトルの値を調整する。 トレーニングデータを何度も実行するうちに、モデルは最適なプロンプトベクトルを見つける。
詳細情報
granite-7b-lab foundation model についてさらに詳しく知りたい方は、以下のリソースをご覧ください
Parent topic: IBM Foundation models