拡張言語モデル戦争でMeta の LLaMA、OpenAI の GPT-3、および Microsoft の Kosmos-1 に対応する模範的なモデルは、ビッグ言語モデル (LLM) のチームに参加しています。 このようなモデルで最も効果的なフィールドは、コミュニティでこれらを逃れることができないということです。 今まで。 ゲオルギ・ゲルガノフと彼のllama.cpp ミッション専用の GPU を使用せずに、1 台のラップトップで Meta の LLaMA から逃れる方法は想像に難くありません.LLaMAを実行中 M1 Mac でコミュニティで LLaMA を実行するには、多くの手順があります。 私はもはや他のプラットフォームや他の OS にこだわらないので、ここにリストされている最も簡単な組み合わせに焦点を当てています.ステップ 1: モデルのダウンロードプロの方法論は、これを消費することによってモデルを予測することです リポジトリ発のPRがありますが、他の方法論(おそらく偏りがなく、プロバイダーのフレーズに違反している可能性があります)https://github.com/facebookresearch/llama/pull/73 )とにかく、モデルをダウンロードした後 (または、まったく異なる形式のモデルがいくつかあるため、さらに多くのモデルに取り組みます)フォルダ内) あなたはこれに取り組む 1 つのものを所有したいと思うでしょう: ❯ エクサ --木 。 ├── 7B
を消費することによってモデルを予測することです リポジトリ発のPRがありますが、他の方法論(おそらく偏りがなく、プロバイダーのフレーズに違反している可能性があります)https://github.com/facebookresearch/llama/pull/73 )とにかく、モデルをダウンロードした後 (または、まったく異なる形式のモデルがいくつかあるため、さらに多くのモデルに取り組みます)フォルダ内) あなたはこれに取り組む 1 つのものを所有したいと思うでしょう: ❯ エクサ --木 。 ├── 7B
❯ エクサ --木 。 ├── 7B
│ ├── checklist.chk │ ├── consolidated.00.pth │ └── params.json ├──13B │ ├── checklist.chk
│ ├── consolidated.00.pth │ ├── consolidated.01.pth │ └── params.json ├── 30B )│ ├── checklist.chk │ ├── consolidated.00.pth │ ├── consolidated.01.pth │ ├── consolidated.02.pth │ ├── consolidated.03.pth
│ └── params.json
├── 65B │ ├── checklist.chk
│ ├── consolidated.00.pth
│ ├── 連結.01.pth │ ├─ ─ consolidated.02.pth │ ├── consolidated.03.pth
│ ├──連結。 04.pth
│ ├── consolidated.05.pth │ ├── consolidated.06.pth │ ├── consolidated.07.pth
│ └── params.json
├── tokenizer.model
└── tokenizer_checklist.chk あなたがおそらくよく知っているようにまったく異なるモデルが紛れもないフォルダーに入っている可能性があります。 すべてのモデルには、そのモデルを参照する詳細なプリントで構成された params.json があります。例として:
{ "暗い"
: 4096,
"multiple_of": 256, "n_heads" : 32, "n_layers": 32
、
"norm_eps"
: 1e-06, "vocab_size": -1
} ステップ2: インストール依存関係
Xcode は、C++ ミッションをアセンブルするためにインストールすることで所有することができます。 所有していない場合は、次を取得してください: これらは、C++ ミッションを構築するための依存関係です。 (pkgconfig と cmake).
brew セットアップ pkgconfig cmake
の中に最後に、Torch をセットアップできます。
Python 3.11 がインストールされているので、仮想環境のタックルをモデル化する可能性がある:
/opt/homebrew/bin/python3 .11 -m venv venv
venvを起動中。 私は魚の活用です。 他のシェルの場合、最後に .fish サフィックスが必要です。 venv を有効にした後、Pytorch をセットアップできます:
pip3 セットアップ --pre torch torchvision --additional-index-url https://procure.pytorch.org /whl/nightly/cpu
❯ パイソンPython 3.11.2 ([ 4096, 1] メジャー、2月 16 2023年02:55:59 )
ダーウィン 親切 "援助"、 「著作権」 、 "クレジット" または 「ライセンス」 個のファイルが必要です。 >>> トーチをインポート; torch.backends.mps.is_available()
正しい さあ、llama.cppをアセンブルしましょう
ステップ 3: LLaMA CPP を組み立てる
リポジトリのクローン: git クローン git@github.com:ggerganov/llama.cpp.git
完全な依存関係を設定した後、おそらくおそらくおそらくおそらくおそらく逃げるでしょう発明:
❯ 発明 I llama.cpp のようなファイル: I UNAME_S: ダーウィン I UNAME_P:腕 I UNAME_M: arm64 )I CFLAGS: -I. -O3 -DNDEBUG -std=c11 -fPIC -pthread -DGGML_USE_ACCELERATE I CXXFLAGS: -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread I LDFLAGS: -framework Velocity up I CC: Apple clang モデル 14.0.0 (clang-1400.0.29.202) I CXX: Apple クラングモデル 14.0.0(
clang-1400.0.29.202)
c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread -c utils.cpp -o utils.o c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread major.cpp ggml.o utils.o -o major -framework ベロシティアップ ./major -h
使用率: ./major [options]
代替オプション:
-h, --aid この援助メッセージを提示して終了します
デフォルト: -1) -t N, --threads N すべてのプランを消費するスレッドを置き換えます。計算による -s SEED, --see d SEED RNG シード (
(デフォルト: 4) -p PROMPT, --urged PROMPT
で生成を開始するように促されました(デフォルト: ランダム) -n N, --n_ 予言するトークンの N 置換を予測します (デフォルト: 128) --top_k N 高 OK サンプリング (デフォルト: 40
)
--top_p N 高 p サンプリング (デフォルト: 0.9) -- temp N 温度 (デフォルト: 0.8) -b N, --batch_size N バッチ サイズ for[4096, 4096] 強制処理 )(デフォルト: 8)
- m FNAME, --モデル FNAME モデルパス (デフォルト: models/llama-7B/ggml-model.bin)
c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread quantize.cpp ggml.o utils.o -o quantize -framework 速度アップ
手順 4: モデルの変更
モデルを llama.cpp リポジトリの models/ の下に配置したと仮定します。
python convert-pth-to-ggml.py models/7B 1[4096, 4096]
4096, 1]=1 あなたはこれに取り組む出力を静かな色に所有することができます:
{'暗い': 4096, 'multiple_of'[4096, 4096] : 256、 )'n_heads': 32, 'n_layers': 32, 'norm_eps'
: 1e-06, 'vocab_size': 32000}
n_parts [Processin シェア 0 処理変数: tok_embeddings.weight with shape: torch.Size([32000, 4096]) およびモデル: torch.drift16
処理変数: norm.weight with shape: torch.Size([4096]) およびモデル: torch.drift16 変化float32 へ
処理変数:layers.0.consideration.wq.weight with shape:torch.Size処理変数: output.weight with shape: torch.Size([
32000, 4096]) およびモデル: torch.drift16 ([
4096, 4096]) およびモデル: torch.f loat16
処理変数:layers.0.consideration.wk.weight with形状: トーチ.サイズ([4096, 4096]) およびモデル: torch.f
loat16 処理変数: レイヤー.0.consideration.wv.weight with shape: torch.Size([4096, 4096]) と mod el: torch.f loat16 処理変数:layers.0.consideration.wo.weight with shape:torch.Size([4096, 4096]) およびモデル: torch.f loat16
処理変数:layers.0.feed_forward.w1.weight with shape: torch.Size([4096, 4096]) およびモデル: tor ch.drift16 処理変数:layers.0.feed_forward.w2.weight with shape:torch.Size([ 4096, 1]) とモデル: tor
ch.drift16 [ 4096, 1] 処理変数:layers.0.feed_forward.w3.weight with shape:torch.Size
([
4096, 4096]) およびモデル: tor ch.drift16 処理変数:layers.0.attention_norm.weight with shape:torch.Size
4096]) およびモデル: torch.drift ([
16 ...
終わり。 出力ファイル: models/7B/ggml-model-f16.bin, (シェア
0 )
次のステップは、originat です。 e 量子化:
./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin 2
llama_model_quantize: './models/7B/ggml- からモデルを読み込み中model-f16.bin' llama_model_quantize: n_vocab
=32000 llama_model_quantize: n_ctx = 512
llama_model_quantize: n_embd =[ 4096, 1] 4096
n_mult =256 llama_model_quantize: n_head =llama_model_quantize:
llama_model_quantize: n_layer =32 llama_model_quantize: f16
= 1 ... layers.31.attention_norm 。重さ - [ 4096, 1]、フォーム= f32 サイズ
= 0.016MB [ 4096, 1] layers.31.ffn_norm.weight - [ 4096, 1]、 形状 = f32 サイズ
= 0.016 MB llama_model_quantize: モデル size = 25705.02MB [ 4096, 1] llama_model_quantize: quant size
= 4017.27 MB llama_model_quantize: hist: 0.000 0.022 0.019 0.033 0.053 0.078 0.104 0.125 0.134 0.125 0.104 0.078 0.053 0.033 0.019 0.022 major: クオンタイズタイム =29389.45 ミリ秒 メジャー: 合計時間 =29389.45 ミリ秒
Step5: モデルの実行 ❯ ./major -m ./models/7B/ggml-model-q4_0.bin
-t 8
-n 128 ) -p 「アメリカの主要大統領はかつて」 メジャー: 種 =1678615879 llama_model_load : './models/7B/ggml-mo からモデルを読み込みます del-q4_0.bin' - お待ちください... llama_model_load: n_vocab =32000[
4096, 1] llama_model_load: n_ctx= 512 llama_model_load: n_embd = )4096 llama_model_load: n_mult =256 llama_model_load: n_head = 32 [
4096, 1] llama_model_load: n_layer = 32 llama_model_load: n_rot = 128 llama_model_load: f16 = 2
llama_model_load: n_ff = 11008 llama_model_load: n_parts
= 1 llama_model_load: ggml ctx サイズ
=4529.34MB llama_model_load: memory_size =
512.00 MB、n_mem[4096] = 16384 llama_model_load: モデル共有のロード から 1/1 './models/7B/ggml-model-q4_0.bin'
llama_model_load: ................................... 実施した
llama_model_load: モデル size= 4017.27 MB / 数値 テンソル
= 291 ) 主要: 促された: 「米国の主要な大統領はかつて' メジャー: のトークンの交換が必要です [ 4096, 1] = 9 1 -> '' 1576 -> 「ザ」
937 -> '最初' 6673 -> ' 大統領' 310 -> ' of'[ 4096, 1] 278 -> ' ザ' ) 8278
-> 'アメリカ' 471 -> ' 以前は'
29871 -> ''
サンプリングパラメータ:
temp =
0.800000, トップ _k = 40、 top_p [ 4096, 1]= 0.950000 米国の主要大統領はかつて 57歳の時想定される仕事の争い (ジョージ・ワシントン)。 今日、米国の有権者は、ユニークな大統領が心の底から若いことを期待しています。 ドナルド・トランプ大統領はかつて 70 かつて就任したときの歳。 彼の前任者とは異なり、彼は身体的に健康で、健康で活動的です。 そして、彼のフィットネスは大統領職の重要なテーマでした。 大統領のマーケティングキャンペーンのある日、彼は有名な彼について話しました は、おそらく「これまでで最も活発な大統領」である可能性があります — トランプはもはや論争を行っていませんが、彼に適した特定の人物仕事の紛争への方法論。 彼のつぶやきは、彼の肉体的な不運を指摘しています。 major: mem per トークン = 14434244 バイト [
4096, 1]
メジャー: 読み込み時間=1311.74 ミリ秒 major: サンプル時間= 278.96ms メジャー: 予測時間 = 7375.89 ミリ秒 / トークンあたり 54.23 ミリ秒 メジャー: 合計時間=9216.61 ミリ秒 スキル! 𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺
❯ ./major -m ./models/7B/ggml-model-q4_0.bin
-t 8
-n 128 ) -p 「アメリカの主要大統領はかつて」 メジャー: 種 =1678615879 llama_model_load : './models/7B/ggml-mo からモデルを読み込みます del-q4_0.bin' - お待ちください... llama_model_load: n_vocab =32000[
4096, 1] llama_model_load: n_ctx= 512 llama_model_load: n_embd = )4096 llama_model_load: n_mult =256 llama_model_load: n_head = 32 [
4096, 1] llama_model_load: n_layer = 32 llama_model_load: n_rot = 128 llama_model_load: f16 = 2
llama_model_load: n_ff = 11008 llama_model_load: n_parts
= 1 llama_model_load: ggml ctx サイズ
=4529.34MB llama_model_load: memory_size =
512.00 MB、n_mem[4096] = 16384 llama_model_load: モデル共有のロード から 1/1 './models/7B/ggml-model-q4_0.bin'
llama_model_load: ................................... 実施した
llama_model_load: モデル size= 4017.27 MB / 数値 テンソル
= 291 ) 主要: 促された: 「米国の主要な大統領はかつて' メジャー: のトークンの交換が必要です [ 4096, 1] = 9 1 -> '' 1576 -> 「ザ」
937 -> '最初' 6673 -> ' 大統領' 310 -> ' of'[ 4096, 1] 278 -> ' ザ' ) 8278
-> 'アメリカ' 471 -> ' 以前は'
29871 -> ''
サンプリングパラメータ:
temp =
0.800000, トップ _k = 40、 top_p [ 4096, 1]= 0.950000 米国の主要大統領はかつて 57歳の時想定される仕事の争い (ジョージ・ワシントン)。 今日、米国の有権者は、ユニークな大統領が心の底から若いことを期待しています。 ドナルド・トランプ大統領はかつて 70 かつて就任したときの歳。 彼の前任者とは異なり、彼は身体的に健康で、健康で活動的です。 そして、彼のフィットネスは大統領職の重要なテーマでした。 大統領のマーケティングキャンペーンのある日、彼は有名な彼について話しました は、おそらく「これまでで最も活発な大統領」である可能性があります — トランプはもはや論争を行っていませんが、彼に適した特定の人物仕事の紛争への方法論。 彼のつぶやきは、彼の肉体的な不運を指摘しています。 major: mem per トークン = 14434244 バイト [
4096, 1]
メジャー: 読み込み時間=1311.74 ミリ秒 major: サンプル時間= 278.96ms メジャー: 予測時間 = 7375.89 ミリ秒 / トークンあたり 54.23 ミリ秒 メジャー: 合計時間=9216.61 ミリ秒 スキル! 𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺