LLM(大規模言語モデル)のパラメータ数は、AIモデルの規模や性能を理解するうえで重要な指標の一つです。
一般的に、パラメータ数が多いLLMほど複雑な情報を表現できる可能性が高まります。 しかし、パラメータ数が多いからといって、必ずしも性能が高いとは限りません。
LLMの性能は、パラメータ数だけでなく、学習データの量や品質、モデルの構造、学習方法、推論時の計算量など、さまざまな要素によって決まります。
また、パラメータ数が増えると、メモリ使用量や計算コストも増加する傾向があるため、用途に合ったモデルを選ぶことが重要です。
本記事では、LLMのパラメータ数の意味や仕組み、性能との関係、モデルの規模による違い、メモリ使用量、適切なモデルの選び方について詳しく解説します。
LLMのパラメータ数とは?
パラメータ数の意味
LLMのパラメータ数とは、ニューラルネットワーク内部に存在する、学習によって更新可能な重みやバイアスなどの数値の総数です。
LLMは、大量の文章データを学習することで、言語の規則性や単語同士の関係、さまざまな知識のパターンを獲得します。
この学習過程で調整される数値が、パラメータです。
パラメータには、主に以下のようなものがあります。
- 重み(Weight):入力された情報が計算結果に与える影響を調整する数値
- バイアス(Bias):ニューラルネットワークの計算結果を調整する数値
- 埋め込み表現(Embedding):単語やトークンなどを数値ベクトルとして表現するための学習可能な数値
例えば、70億パラメータのLLMには、約70億個の学習可能な数値が存在します。
ただし、70億個の単語や知識が、そのまま記録されているわけではありません。
LLMの知識や言語的な特徴は、多数のパラメータに分散して表現されています。
なお、推論中に生成される一時的なデータや中間計算の結果は、通常、モデルのパラメータ数には含まれません。
パラメータ数の単位
LLMのパラメータ数は、一般的に「M」「B」「T」という単位で表されます。
| 表記 | 意味 | パラメータ数 |
|---|---|---|
| 100M | 1億 | 100,000,000 |
| 1B | 10億 | 1,000,000,000 |
| 7B | 70億 | 7,000,000,000 |
| 13B | 130億 | 13,000,000,000 |
| 70B | 700億 | 70,000,000,000 |
| 175B | 1,750億 | 175,000,000,000 |
| 1T | 1兆 | 1,000,000,000,000 |
例えば、「7Bモデル」と呼ばれるLLMは、約70億個のパラメータを持つモデルです。
ただし、モデル名に記載された数値は概数である場合があり、実際のパラメータ数と完全に一致するとは限りません。
パラメータがLLMで果たす役割
LLMは、入力された文章の文脈をもとに、続くトークンの確率を計算する仕組みを基本としています。
トークンとは、AIが文章を処理する際に利用する単位であり、単語や単語の一部、記号などが該当します。
例えば、次の文章を考えてみましょう。
「日本の首都は」
適切に学習されたLLMは、続く言葉として「東京」を高い確率で予測できます。
これは、モデル内部の一つのパラメータに「日本の首都=東京」という情報が保存されているからではありません。
学習によって調整された多数のパラメータが組み合わさり、文脈に応じた出力確率が計算されるためです。
このように、パラメータは、LLMが文章の意味や情報の関連性を表現し、適切な出力を生成するための基盤となっています。
LLMのパラメータ数と性能の関係
パラメータ数が多いほど性能が向上しやすい理由
一般的に、LLMのパラメータ数を増やすと、より複雑な情報や言語パターンを表現できる可能性が高まります。
パラメータ数が多いモデルでは、以下のような能力の向上が期待できます。
- 複雑な文章の文脈を理解する能力
- 多様な質問に対応する能力
- 専門的な文章を生成する能力
- 複数の条件を考慮して回答する能力
- 多言語の文章を処理する能力
- プログラムコードを生成する能力
- 複雑な問題を解決する能力
ただし、これらの能力がパラメータ数に比例して向上するわけではありません。
モデルの構造や学習方法、学習データによって、得意なタスクは異なります。
また、一定以上の規模になると、パラメータ数を増やしても性能の改善幅が小さくなる場合があります。
そのため、パラメータ数は性能を推測するための指標の一つであり、性能そのものを示す数値ではありません。
パラメータ数とスケーリング則の関係
LLMのパラメータ数と性能の関係を理解するうえで重要なのが、スケーリング則(Scaling Laws)です。
スケーリング則とは、モデルのパラメータ数、学習データ量、計算量などと、主に事前学習時の損失との関係を表す経験的な法則です。
一般的に、適切な条件下では、モデルの規模や学習データ量を増やすことで、事前学習の損失が減少する傾向があります。
ただし、事前学習の損失が改善することと、実際の業務における回答品質や推論能力が同じ割合で向上することは別です。
例えば、パラメータ数を2倍にしても、文章生成能力や数学的推論能力が2倍になるわけではありません。
さらに、一定の計算資源を使って学習する場合、パラメータ数だけを増やす方法が最適とは限りません。
学習データ量とのバランスを考慮する必要があります。
ChinchillaとGopherの比較
パラメータ数と性能の関係を示す代表的な研究が、Google DeepMindによるChinchillaの研究です。
2022年に発表された研究では、約700億パラメータのChinchillaと、約2,800億パラメータのGopherが比較されました。
| 比較項目 | Chinchilla | Gopher |
|---|---|---|
| パラメータ数 | 約700億 | 約2,800億 |
| 学習トークン数 | 約1.4兆 | 約3,000億 |
| 学習計算量 | ほぼ同等 | ほぼ同等 |
Chinchillaは、Gopherの約4分の1のパラメータ数でありながら、より多くの学習トークンを利用しています。
その結果、多くの評価課題でGopherを上回る性能を示しました。
この研究から、LLMの性能向上には、パラメータ数だけでなく、学習データ量とのバランスが重要であることが分かります。
ただし、これは特定のモデルと学習条件に基づく結果であり、すべての小規模モデルが大規模モデルより高性能になることを意味するわけではありません。
LLMのパラメータ数によるモデルの違い
小規模モデルの特徴
小規模モデルは、比較的少ないパラメータで構成されたLLMです。
数億から数十億パラメータ程度のモデルが小規模モデルとして扱われることがありますが、規模の分類に統一された基準はありません。
小規模モデルの主なメリットは、計算コストやメモリ使用量を抑えやすいことです。
例えば、以下のような用途に適しています。
- 文章分類
- 定型文の作成
- 簡単な質問応答
- 特定分野のチャットボット
- ローカル環境でのAI処理
- エッジデバイスでの推論
一方、大量の専門知識が必要な質問や複雑な推論では、大規模モデルと比較して性能が低くなる場合があります。
ただし、用途に合わせて適切に学習された小規模モデルであれば、特定のタスクで高い性能を発揮することもあります。
中規模モデルの特徴
中規模モデルは、小規模モデルと超大規模モデルの中間に位置するLLMです。
例えば、数十億から数百億程度のパラメータを持つモデルが、この分類で扱われることがあります。
中規模モデルの特徴は、性能と運用コストのバランスを取りやすいことです。
主な用途として、以下が挙げられます。
- 社内向けAIアシスタント
- カスタマーサポート
- 文章作成支援
- 社内文書の検索や要約
- プログラミング支援
- 特定業界向けのAIシステム
ただし、同じ程度のパラメータ数でも、モデルの構造や実行環境によって必要な計算資源は異なります。
そのため、導入時には実際の応答速度やメモリ使用量を確認する必要があります。
大規模モデルの特徴
大規模モデルは、数百億から数千億、あるいはそれ以上のパラメータを持つLLMです。
一般的に、大規模モデルでは幅広い知識や複雑な言語パターンを学習できる可能性が高まります。
複雑な文章生成、高度な推論、プログラミング支援など、さまざまな用途への対応が期待できます。
一方、パラメータ数が多くなるほど、学習や推論に必要な計算資源も増加しやすくなります。
特に、モデルの重みを保持するためのメモリ容量や、推論時の計算負荷が大きくなる点には注意が必要です。
また、大規模モデルであっても、誤った情報を生成するハルシネーションが発生する可能性があります。
LLMのパラメータ数と学習データ量の関係
学習データの品質が重要な理由
LLMの性能を決める要素として、パラメータ数と同様に重要なのが学習データです。
パラメータ数が多いモデルでも、適切なデータで学習されていなければ、十分な性能を発揮できません。
特に、以下の要素が重要になります。
- データ量:学習に使用するトークンの総数
- データ品質:学習データの正確性や有用性
- データの多様性:文章形式や専門分野、言語の幅広さ
- データの重複:同一または類似する情報の過剰な学習を避けること
- 用途との適合性:実際に利用する業務や分野に関連した情報が含まれていること
例えば、法律分野に特化したLLMを開発する場合、単純にパラメータ数を増やすよりも、信頼性の高い法律文書を適切に学習させるほうが効果的なケースがあります。
ただし、専門データを追加学習させたからといって、回答の正確性が必ず保証されるわけではありません。
学習トークン数とのバランス
LLMの学習データ量は、一般的にトークン数で表されます。
トークンとは、AIが文章を処理するために分割した単位です。
例えば、日本語では、1文字が必ず1トークンになるわけではありません。
単語の一部や複数の文字が、1つのトークンとして扱われる場合もあります。
Chinchillaの研究では、一定の学習計算量を効率的に利用するために、パラメータ数と学習トークン数を適切なバランスで増やすことが重要だと示されました。
ただし、最適な学習データ量は、モデルの構造や学習条件によって異なります。
また、推論時の運用コストまで考慮する場合には、比較的小さなモデルを大量のデータで学習させる方法が有利になることもあります。
LLMのパラメータ数とメモリ使用量の関係
パラメータ数が多いほどメモリ容量が必要になる
LLMを動作させるためには、モデルのパラメータをメモリに保持する必要があります。
そのため、パラメータ数が増えるほど、モデルの重みを保存するためのメモリ容量も増加します。
ただし、必要な容量は、パラメータを保存する際の数値精度によって異なります。
| 数値精度 | 1パラメータあたりの容量 |
|---|---|
| FP32 | 4バイト |
| FP16 | 2バイト |
| BF16 | 2バイト |
| INT8 | 1バイト |
| 4ビット量子化 | 理論上約0.5バイト |
例えば、70億パラメータのLLMをFP16形式で保存する場合、モデルの重みだけで理論上約14GBの容量が必要です。
計算式は以下のとおりです。
70億 × 2バイト = 140億バイト = 14GB
なお、14GBは10進数の単位であり、2進数の単位では約13.0GiBになります。
実際の推論では、モデルの重みに加えて、KVキャッシュや中間計算用の領域なども必要です。
そのため、モデル重みの容量と、実際に必要となるGPUのVRAM容量は必ずしも一致しません。
パラメータ数別のメモリ使用量
一般的なDenseモデルについて、モデルの重みを保持するために必要な理論上の容量を比較すると、以下のようになります。
| パラメータ数 | FP32 | FP16・BF16 | INT8 | 4ビット |
|---|---|---|---|---|
| 1B(10億) | 4GB | 2GB | 1GB | 0.5GB |
| 7B(70億) | 28GB | 14GB | 7GB | 3.5GB |
| 13B(130億) | 52GB | 26GB | 13GB | 6.5GB |
| 70B(700億) | 280GB | 140GB | 70GB | 35GB |
これらの数値は、パラメータ数と数値精度から計算した理論値です。
実際には、モデルの構造や量子化方式、追加の管理情報によって必要容量が変化します。
量子化によってメモリ使用量を削減できる
量子化(Quantization)とは、パラメータをより少ないビット数で表現する技術です。
例えば、FP16形式のモデルを4ビットに量子化すると、モデル重みの理論上の容量は約4分の1になります。
量子化の主なメリットは、以下のとおりです。
- モデル重みの保存容量を削減できる
- メモリ使用量を抑えられる
- 小規模なハードウェアでも動作させやすくなる
- 条件によっては推論速度を向上できる
一方で、量子化によって数値精度が低下し、出力品質に影響する可能性があります。
また、量子化したモデルが必ず高速になるわけではありません。
実際の推論速度は、GPUなどのハードウェア性能や量子化方式、推論エンジンの実装によって変化します。
LLMのパラメータ数と推論速度の関係
パラメータ数が増えると計算負荷も大きくなりやすい
LLMが文章を生成するときには、多数の行列演算が実行されます。
一般的なDenseモデルでは、パラメータ数が増えるほど、1トークンを生成するために必要な計算量も増える傾向があります。
そのため、同じような構造や実行環境で比較すると、小規模モデルのほうが高速に動作しやすくなります。
ただし、推論速度を決める要素はパラメータ数だけではありません。
主に、以下の要素が影響します。
- GPUやCPUの処理性能
- メモリ帯域幅
- 入力する文章の長さ
- 同時に処理するリクエスト数
- モデルの構造
- 量子化の有無
- 推論エンジンの最適化
例えば、同じ70億パラメータのモデルでも、使用するGPUや推論環境が違えば、生成速度に大きな差が生じることがあります。
推論速度を評価する主な指標
LLMの推論速度を比較する場合、以下の指標が利用されます。
| 指標 | 意味 |
|---|---|
| TTFT | 最初のトークンが出力されるまでの時間 |
| Tokens/sec | 1秒間に生成されるトークン数 |
| レイテンシ | リクエストの処理にかかる時間 |
| スループット | 一定時間内に処理できるリクエスト数やトークン数 |
LLMを実際の業務システムに導入する場合には、パラメータ数だけでなく、これらの指標を確認することが重要です。
特に、多数のユーザーが同時に利用するシステムでは、応答速度とスループットの両方を考慮する必要があります。
LLMのパラメータ数とモデル構造の関係
Denseモデルの特徴
Denseモデルとは、一般的に、ニューラルネットワークの主要な計算用の重みを共通して利用する構造のモデルです。
多くのTransformerベースのLLMでは、各層の重みを利用して入力されたトークンを処理します。
Denseモデルには、以下のような特徴があります。
- モデルの構造が比較的理解しやすい
- 幅広い推論環境で利用されている
- パラメータ数と主要な計算負荷の関係を把握しやすい
ただし、モデル内部のすべてのパラメータが、各トークンの計算に同じ形で利用されるわけではありません。
また、パラメータ数が増えるほど、推論に必要な計算資源も大きくなりやすいという特徴があります。
MoEモデルの特徴
MoE(Mixture of Experts)とは、複数の専門的なニューラルネットワークを組み合わせたモデル構造です。
MoEでは、入力されたトークンに応じて、一部のExpertと呼ばれるネットワークを選択して処理します。
すべてのExpertを毎回利用する必要がないため、総パラメータ数を増やしながら、トークンあたりの計算負荷を抑えられる場合があります。
MoEを理解するうえで重要なのが、以下の2つの指標です。
- 総パラメータ数(Total Parameters):モデル全体に存在するパラメータの総数
- 活性化パラメータ数(Active Parameters):1トークンの処理で実際に利用されるパラメータ数
例えば、総パラメータ数が非常に多いMoEモデルでも、1トークンの処理で利用するパラメータ数は、それより少なくなる場合があります。
ただし、実際の活性化パラメータ数には、選択されたExpertだけでなく、共通して利用する層のパラメータも含まれます。
また、利用されないExpertの重みも保存する必要があるため、総パラメータ数に対してメモリ使用量が同じ割合で削減されるわけではありません。
DenseモデルとMoEモデルの違い
DenseモデルとMoEモデルの主な違いを整理すると、以下のとおりです。
| 比較項目 | Denseモデル | MoEモデル |
|---|---|---|
| 基本構造 | 主要な計算用の重みを共通して利用 | 一部のExpertを選択して利用 |
| パラメータの利用 | 各層の主要な重みを広く利用 | Expertの一部を選択的に利用 |
| 計算効率 | モデル規模の影響を受けやすい | 構造によって計算量を抑えられる |
| メモリ使用量 | パラメータ数に応じて増加 | 非活性のExpertも保存が必要 |
| 実装の複雑さ | 比較的単純 | ルーティングなどの処理が必要 |
MoEは、大規模なモデルを効率的に利用するための有力な技術ですが、必ずしもDenseモデルより高速で高性能というわけではありません。
実際の性能は、モデルの設計や学習方法、実行環境などによって異なります。
LLMのパラメータ数とファインチューニングの関係
ファインチューニングとは?
ファインチューニングとは、事前学習済みのLLMを、特定の用途に合わせて追加学習する方法です。
例えば、企業独自の問い合わせ対応や専門分野の文章生成などに利用されます。
LLMのすべてのパラメータを更新するフルファインチューニングでは、通常、以下の情報を保持する必要があります。
- モデルのパラメータ
- 勾配
- オプティマイザーの状態
- 中間計算に必要なデータ
そのため、フルファインチューニングでは、推論時より多くのメモリが必要になるのが一般的です。
特に、パラメータ数が多いモデルほど、学習に必要な計算資源も増加しやすくなります。
LoRAを使うと学習コストを削減できる
LoRA(Low-Rank Adaptation)とは、元のモデルの重みを基本的に固定し、小さな追加行列を学習する手法です。
すべてのパラメータを更新する必要がないため、学習対象となるパラメータ数を大幅に削減できます。
LoRAの主なメリットは、以下のとおりです。
- 学習可能なパラメータ数を削減できる
- 学習時のメモリ使用量を削減しやすい
- 比較的少ない計算資源で追加学習できる
- 用途別の追加学習結果を管理しやすい
ただし、LoRAを利用しても元のモデル自体が不要になるわけではありません。
元のモデルを保持するメモリや、中間計算に必要な領域は引き続き必要です。
そのため、学習対象となるパラメータ数が大幅に減少しても、GPUの必要メモリ容量が同じ割合で減るとは限りません。
LLMのパラメータ数と推論時の計算量の関係
推論時の計算量も性能に影響する
LLMの性能は、事前学習されたパラメータ数だけでなく、回答を生成する際に利用する計算量にも影響されます。
例えば、複数の回答候補を生成して比較したり、問題解決のために追加の探索処理を行ったりする方法があります。
このように、推論時の計算資源を増やして性能向上を目指す考え方は、推論時スケーリング(Test-Time Scaling)と呼ばれます。
条件によっては、小規模モデルに適切な推論手法を組み合わせることで、より大きなモデルの標準的な推論方法を上回る性能を発揮することもあります。
ただし、追加の推論処理には時間や計算資源が必要です。
そのため、回答品質と応答速度、運用コストのバランスを考慮する必要があります。
パラメータ数だけでは推論能力を判断できない
LLMの推論能力は、パラメータ数だけで決まるわけではありません。
モデルの学習方法や推論時の処理、利用する外部ツールなどによっても変化します。
例えば、計算ツールや検索システムを組み合わせることで、モデル単体では難しい問題に対応できる場合があります。
このため、LLMの推論能力を比較する際には、パラメータ数だけでなく、実際のタスクにおける回答の正確性や安定性を評価することが重要です。
LLMのパラメータ数を選ぶ際のポイント
利用目的に合ったモデルを選ぶ
LLMを導入する際には、パラメータ数の多さだけで選ぶのではなく、実際の利用目的を明確にする必要があります。
例えば、以下のような考え方ができます。
| 利用目的 | モデル選定の考え方 |
|---|---|
| 文章分類 | 小規模モデルから検証する |
| 定型文の作成 | 小規模〜中規模モデルを検討する |
| 社内FAQ対応 | 小規模〜中規模モデルとRAGを組み合わせて検証する |
| 長文の要約 | 長文処理能力と要約精度を重視する |
| プログラミング支援 | コード生成能力を評価する |
| 複雑な推論 | 推論性能の高いモデルを優先する |
ただし、表に示したモデル規模は目安です。
特定の用途に必要なパラメータ数が、あらかじめ決まっているわけではありません。
実際の業務データを利用して複数のモデルを比較することが重要です。
実行環境と運用コストを確認する
ローカル環境でLLMを動作させる場合は、パラメータ数とメモリ使用量の関係を確認する必要があります。
GPUのVRAM容量が限られている場合は、小規模モデルや量子化モデルを利用することで、動作させやすくなることがあります。
一方、クラウドAPIを利用する場合は、パラメータ数よりも以下の要素が重要になる場合があります。
- API利用料金
- 応答速度
- 回答品質
- 日本語への対応
- 入力可能なトークン数
- セキュリティ
- データの取り扱い
- 商用利用の条件
特に、業務システムへの導入では、長期的な運用コストを考慮する必要があります。
ベンチマークで性能を比較する
LLMの性能を評価するためには、ベンチマークテストが役立ちます。
代表的な評価方法には、以下があります。
- MMLU:幅広い分野の知識や問題解決能力を評価する
- GSM8K:算数の文章題を中心とした問題解決能力を評価する
- HumanEval:プログラムコードの生成能力を評価する
- HellaSwag:常識的な文章の続きを選択する能力を評価する
ただし、ベンチマークの結果が高いからといって、すべての業務で優れた性能を発揮するとは限りません。
評価データの混入や採点方法、プロンプトの違いによって結果が変化することもあります。
そのため、実際の用途に近い独自の評価データを用意し、回答品質や処理速度、コストなどを総合的に比較することが望ましいでしょう。
LLMのパラメータ数に関するよくある質問
パラメータ数が2倍になると性能も2倍になりますか?
パラメータ数が2倍になっても、性能が2倍になるわけではありません。
LLMの性能は、パラメータ数と単純な比例関係にはありません。
パラメータ数を増やすことで性能が向上する場合がありますが、改善幅は学習データやモデル構造、評価するタスクによって異なります。
パラメータ数が多いと知識量も増えますか?
パラメータ数が多いモデルは、より多様で複雑な情報を表現できる可能性があります。
しかし、パラメータ数だけで知識量を測定することはできません。
LLMの知識の広さや正確性は、学習データの内容や品質、学習方法などにも依存します。
そのため、パラメータ数が少なくても、特定の専門分野で高い性能を発揮するモデルは存在します。
パラメータ数とコンテキストウィンドウは同じですか?
パラメータ数とコンテキストウィンドウは異なる概念です。
パラメータ数は、モデル内部に存在する学習可能な数値の総数を指します。
一方、コンテキストウィンドウは、モデルが一度の処理で扱えるトークン数の上限です。
パラメータ数が多いモデルでも、コンテキストウィンドウが必ず大きいとは限りません。
また、長い文章を入力できるモデルであっても、入力されたすべての情報を同じ精度で利用できるとは限りません。
パラメータ数を増やせばハルシネーションは減りますか?
パラメータ数の増加によって、特定の条件では回答の正確性が向上する可能性があります。
しかし、パラメータ数が多いモデルでも、誤った情報を生成するハルシネーションは発生します。
ハルシネーションを抑えるには、モデルの規模だけでなく、学習データの品質や回答の検証方法などが重要です。
また、RAG(検索拡張生成)を利用して外部の情報を参照する方法もあります。
ただし、RAGを導入しただけで、誤情報の生成を完全に防げるわけではありません。
パラメータ数が非公開のLLMでも性能を比較できますか?
パラメータ数が公開されていないLLMでも、性能を比較することは可能です。
例えば、ベンチマークの結果や実際の業務における回答品質、応答速度、コストなどを評価できます。
むしろ、実際の導入では、パラメータ数よりも目的のタスクを正確かつ効率的に処理できるかどうかが重要です。
LLMのパラメータ数は多いほうがよいですか?
必ずしも多いほうがよいとは限りません。
大規模モデルは、複雑なタスクに対応できる可能性がありますが、計算コストやメモリ使用量が大きくなりやすいという課題があります。
一方、小規模モデルは、処理速度や運用コストの面で有利になる場合があります。
そのため、利用目的や必要な精度、実行環境に合わせて、適切な規模のモデルを選ぶことが重要です。
まとめ
LLMのパラメータ数とは、ニューラルネットワーク内部に存在する、学習によって更新可能な数値の総数です。
パラメータ数は、AIモデルの規模や表現能力を理解するうえで重要な指標ですが、モデルの性能を直接示すものではありません。
パラメータ数が多いほど、複雑な情報や言語パターンを学習できる可能性が高まる一方、メモリ使用量や計算コストも増加する傾向があります。
また、LLMの性能には、学習データの量や品質、モデルの構造、学習方法、推論時の計算量なども大きく影響します。
特に、Chinchillaの研究は、パラメータ数だけを増やすのではなく、学習データ量とのバランスを考慮することの重要性を示しています。
さらに、量子化やMoE、LoRAなどの技術を利用すれば、モデルのメモリ使用量や学習・推論コストを効率化できる場合があります。
LLMを選ぶ際に重要なのは、パラメータ数の多さではなく、利用目的に対して十分な性能を、適切なコストで実現できるかどうかです。
パラメータ数に加えて、回答品質、処理速度、メモリ使用量、運用コストなどを総合的に評価することで、目的に合ったLLMを選択しやすくなるでしょう。
以上、LLMのパラメータ数の意味や性能との関係についてでした。
最後までお読みいただき、ありがとうございました。
