見出し画像

【無料】ローカルPCで動く日本語LLM(ELYZA-japanese-Llama-2-7b-instruct)

はじめに

ローカルPCで動くLLM(大規模言語モデル)にはまっています。

ローカルPCといっても「高価なGPUを搭載していないと動かないのでは?」と以前は思っていましたが、llama.cppによってCPUだけでも十分動きました

精度や速度はGPUに比べたら劣るのかもしれませんが、ゲーミングPCのような高いPCを買わなくても、手元のローカルPCでLLMが動くのは感動です。

とはいえ、ふつうのLlama2などは日本語が苦手なようで、あまりいい回答をしてくれませんでした。

何か日本語でみっちりトレーニングされたモデルが無いか探していたところ、ELYZAにたどり着きました。

Llama2をベースに日本語でトレーニングされているので日本語は得意そうです。

そこで、実際どうなのか? を試してみました。



ELYZAとは?


ELYZAはDeep Learningを軸としたAIカンパニーです。 2020年に独自の大規模言語モデル(LLM)の開発に成功して以来、 主に大手企業に対してLLM活用の支援を行っています。 近年の技術革新により、LLMへの期待は大きく膨らんできているものの、 技術・社会実装の両面において、多くの未解決問題が残っています。 ELYZAは、LLMの真の実用化に向き合い、未踏の問題の解決を目指します。



ELYZA-japanese-Llama-2-7bとは?


この度ELYZAは、Metaの「Llama 2」をベースに、日本語による追加事前学習を行なった日本語言語モデル「ELYZA-japanese-Llama-2-7b」と、そこにELYZA独自の事後学習を施した「ELYZA-japanese-Llama-2-7b-instruct」、日本語の語彙追加により高速化を行った「ELYZA-japanese-Llama-2-7b-fast / ELYZA-japanese-Llama-2-7b-fast-instruct」を一般公開しました。いずれも70億パラメータのモデルで、公開されている日本語のLLMとしては最大級の規模です。

今回は低スペックなローカルPCを使う関係で7bを使いました。

2024/3/17現在、10倍の70bまで公開済みのようです。


ELYZA-japanese-Llama-2-7bの始め方

CPUで動かすためにllama.cppを使います。

llama.cppとは?

もともとは、従来高スペックなGPUがないと動かないLlama2をMacで動かすモチベーションで作られたようです。

今ではLlama2に限らず、いろんなOSSのLLMに対応しています。

Supported models:

Typically finetunes of the base models below are supported as well.

  • LLaMA 🦙

  • LLaMA 2 🦙🦙

  • Mistral 7B

  • Mixtral MoE

  • Falcon

  • Chinese LLaMA / Alpaca and Chinese LLaMA-2 / Alpaca-2

  • Vigogne (French)

  • Koala

  • Baichuan 1 & 2 + derivations

  • Aquila 1 & 2

  • Starcoder models

  • Refact

  • Persimmon 8B

  • MPT

  • Bloom

  • Yi models

  • StableLM models

  • Deepseek models

  • Qwen models

  • PLaMo-13B

  • Phi models

  • GPT-2

  • Orion 14B

  • InternLM2

  • CodeShell

  • Gemma

  • Mamba

  • Command-R


Multimodal models:

  • LLaVA 1.5 models, LLaVA 1.6 models

  • BakLLaVA

  • Obsidian

  • ShareGPT4V

  • MobileVLM 1.7B/3B models

  • Yi-VL



llama.cppのセットアップは以下にあった手順も参考にしました。

llama.cppセットアップ

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make -j


モデルダウンロード

wget https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-7b-instruct-gguf/resolve/main/ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf


GGUFとは?



実行

makeした後、カレントディレクトリにmain実行ファイルがありますので、それを」実行します。

-mで先ほどダウンロードしたモデル名を指定します。

./main -m './ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf' -n 256 -p '[INST] <<SYS>>あなたは誠実で優秀な日本人のアシスタントです。<</SYS>>AIの未来のロードマックを体系的にMarkdownで出力してください[/INST]'


結果

Log start
main: build = 2348 (82cb31eb)
main: built with cc (Debian 10.2.1-6) 10.2.1 20210110 for x86_64-linux-gnu
main: seed  = 1710605652
llama_model_loader: loaded meta data with 21 key-value pairs and 291 tensors from ./models/ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf (version GGUF V2)
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv   0:                       general.architecture str              = llama
llama_model_loader: - kv   1:                               general.name str              = ELYZA-japanese-Llama-2-7b-instruct
llama_model_loader: - kv   2:       general.source.hugginface.repository str              = elyza/ELYZA-japanese-Llama-2-7b-instruct
llama_model_loader: - kv   3:                   llama.tensor_data_layout str              = Meta AI original pth
llama_model_loader: - kv   4:                       llama.context_length u32              = 4096
llama_model_loader: - kv   5:                     llama.embedding_length u32              = 4096
llama_model_loader: - kv   6:                          llama.block_count u32              = 32
llama_model_loader: - kv   7:                  llama.feed_forward_length u32              = 11008
llama_model_loader: - kv   8:                 llama.rope.dimension_count u32              = 128
llama_model_loader: - kv   9:                 llama.attention.head_count u32              = 32
llama_model_loader: - kv  10:              llama.attention.head_count_kv u32              = 32
llama_model_loader: - kv  11:     llama.attention.layer_norm_rms_epsilon f32              = 0.000001
llama_model_loader: - kv  12:                       tokenizer.ggml.model str              = llama
llama_model_loader: - kv  13:                      tokenizer.ggml.tokens arr[str,32000]   = ["<unk>", "<s>", "</s>", "<0x00>", "<...
llama_model_loader: - kv  14:                      tokenizer.ggml.scores arr[f32,32000]   = [0.000000, 0.000000, 0.000000, 0.0000...
llama_model_loader: - kv  15:                  tokenizer.ggml.token_type arr[i32,32000]   = [2, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, ...
llama_model_loader: - kv  16:                tokenizer.ggml.bos_token_id u32              = 1
llama_model_loader: - kv  17:                tokenizer.ggml.eos_token_id u32              = 2
llama_model_loader: - kv  18:            tokenizer.ggml.unknown_token_id u32              = 0
llama_model_loader: - kv  19:               general.quantization_version u32              = 2
llama_model_loader: - kv  20:                          general.file_type u32              = 15
llama_model_loader: - type  f32:   65 tensors
llama_model_loader: - type q4_K:  193 tensors
llama_model_loader: - type q6_K:   33 tensors
llm_load_vocab: special tokens definition check successful ( 259/32000 ).
llm_load_print_meta: format           = GGUF V2
llm_load_print_meta: arch             = llama
llm_load_print_meta: vocab type       = SPM
llm_load_print_meta: n_vocab          = 32000
llm_load_print_meta: n_merges         = 0
llm_load_print_meta: n_ctx_train      = 4096
llm_load_print_meta: n_embd           = 4096
llm_load_print_meta: n_head           = 32
llm_load_print_meta: n_head_kv        = 32
llm_load_print_meta: n_layer          = 32
llm_load_print_meta: n_rot            = 128
llm_load_print_meta: n_embd_head_k    = 128
llm_load_print_meta: n_embd_head_v    = 128
llm_load_print_meta: n_gqa            = 1
llm_load_print_meta: n_embd_k_gqa     = 4096
llm_load_print_meta: n_embd_v_gqa     = 4096
llm_load_print_meta: f_norm_eps       = 0.0e+00
llm_load_print_meta: f_norm_rms_eps   = 1.0e-06
llm_load_print_meta: f_clamp_kqv      = 0.0e+00
llm_load_print_meta: f_max_alibi_bias = 0.0e+00
llm_load_print_meta: n_ff             = 11008
llm_load_print_meta: n_expert         = 0
llm_load_print_meta: n_expert_used    = 0
llm_load_print_meta: pooling type     = 0
llm_load_print_meta: rope type        = 0
llm_load_print_meta: rope scaling     = linear
llm_load_print_meta: freq_base_train  = 10000.0
llm_load_print_meta: freq_scale_train = 1
llm_load_print_meta: n_yarn_orig_ctx  = 4096
llm_load_print_meta: rope_finetuned   = unknown
llm_load_print_meta: model type       = 7B
llm_load_print_meta: model ftype      = Q4_K - Medium
llm_load_print_meta: model params     = 6.74 B
llm_load_print_meta: model size       = 3.80 GiB (4.84 BPW)
llm_load_print_meta: general.name     = ELYZA-japanese-Llama-2-7b-instruct
llm_load_print_meta: BOS token        = 1 '<s>'
llm_load_print_meta: EOS token        = 2 '</s>'
llm_load_print_meta: UNK token        = 0 '<unk>'
llm_load_print_meta: LF token         = 13 '<0x0A>'
llm_load_tensors: ggml ctx size =    0.11 MiB
llm_load_tensors:        CPU buffer size =  3891.24 MiB
..................................................................................................
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init:        CPU KV buffer size =   256.00 MiB
llama_new_context_with_model: KV self size  =  256.00 MiB, K (f16):  128.00 MiB, V (f16):  128.00 MiB
llama_new_context_with_model:        CPU input buffer size   =    10.01 MiB
llama_new_context_with_model:        CPU compute buffer size =    70.50 MiB
llama_new_context_with_model: graph splits (measure): 1

system_info: n_threads = 4 / 4 | AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | MATMUL_INT8 = 0 |
sampling:
        repeat_last_n = 64, repeat_penalty = 1.100, frequency_penalty = 0.000, presence_penalty = 0.000
        top_k = 40, tfs_z = 1.000, top_p = 0.950, min_p = 0.050, typical_p = 1.000, temp = 0.800
        mirostat = 0, mirostat_lr = 0.100, mirostat_ent = 5.000
sampling order:
CFG -> Penalties -> top_k -> tfs_z -> typical_p -> top_p -> min_p -> temperature
generate: n_ctx = 512, n_batch = 512, n_predict = 3256, n_keep = 1


 [INST] <<SYS>>あなたは誠実で優秀な日本人のアシスタントです。<</SYS>>AIの未来のロードマックを体系的 にMarkdownで出力してください[/INST]  AIの未来のロードマップは以下のようになります。

# 2020-2023: 人工知能の基盤研究 (基本技術の開発)
## 2025年以降のAI実現に向けた研究課題の抽出とその戦略
### 1. 人間の知的活動を再現する (Cognitive AI)
###   1.1 自然言語処理、意思決定、プランニングなど
###   1.2 認知・学習のメカニズムの理解と再現
### 2. 人間以上の知的活動を実現する (Artificial General Intelligence)
###   2.1 人間類以上の知能をもつロボットの研究開発
###   2.2 多様な問題解決に対する高度な応用力と判断力の獲得
### 3. AIを通じた社会課題の解決へ (AI for Social Good)
###   3.1 人間生活に役立つ情報の取得、分類および利用の支援
###   3.2 AIを通じた公平で持続可能な社会の実現への貢献
### 4. 安全性と倫理性の確保 (Trustworthy AI)
###   4.1 機械学習モデルの可視化および予測変数の特定
###   4.2 AIの開発、使用および管理に関する倫理的な指針の提示と実装支援
### 5. 社会へのAI導入の促進 (Wide Adoption of AI)
###   5.1 AIを活用した新ビジネスの創出および拡大
###   5.2 学校教育へのAIの組み込みと人材育成の促進
###   5.3 研究開発やビジネス活動におけるAI導入の支援および社会課題解決へのAI導入の促進 [end of text]

llama_print_timings:        load time =     808.54 ms
llama_print_timings:      sample time =     437.88 ms /   669 runs   (    0.65 ms per token,  1527.82 tokens per second)
llama_print_timings: prompt eval time =   14063.64 ms /    71 tokens (  198.08 ms per token,     5.05 tokens per second)
llama_print_timings:        eval time =  165405.08 ms /   668 runs   (  247.61 ms per token,     4.04 tokens per second)
llama_print_timings:       total time =  180168.75 ms /   739 tokens
Log end


日本語の回答は、まずまずのようです。


プロンプト修正

以下のようにニュース記事の一部を貼り付けて、株価の変動を予測してもらいましょう。

[INST] <<SYS>>あなた は誠実で優秀な日本人の投資家アシスタントです。<</SYS>>次のニュースから株価が伸びそうな日本の企業名を3社挙げてください。その3社に対して株価の伸びを100点満点中何点か教えてください。###ニュース\n\n AdobeFireflyAppleVisionProAdobeが、AppleVision用画像生成AIアプリ「AdobeFirefly:GenerativeAI」を、AppStoreにて配信を開始して... [/INST]

./main -m './ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf' -n 512 -p '[INST] <<SYS>>あなた は誠実で優秀な日本人の投資家アシスタントです。<</SYS>>次のニュースから株価が伸びそうな日本の企業名を3社挙げてください。その3社に対して株価の伸びを100点満点中何点か教えてください。###ニュース\n\n AdobeFireflyAppleVisionProAdobeが、AppleVision用画像生成AIアプリ「AdobeFirefly:G
enerativeAI」を、AppStoreにて配信を開始して... [/INST]'


Log start
main: build = 2348 (82cb31eb)
main: built with cc (Debian 10.2.1-6) 10.2.1 20210110 for x86_64-linux-gnu
main: seed  = 1710671116
llama_model_loader: loaded meta data with 21 key-value pairs and 291 tensors from ./models/ELYZA-japanese-Llama-2-7b-instruct-q4_K_M.gguf (version GGUF V2)
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv   0:                       general.architecture str              = llama
llama_model_loader: - kv   1:                               general.name str              = ELYZA-japanese-Llama-2-7b-instruct
llama_model_loader: - kv   2:       general.source.hugginface.repository str              = elyza/ELYZA-japanese-Llama-2-7b-instruct
llama_model_loader: - kv   3:                   llama.tensor_data_layout str              = Meta AI original pth
llama_model_loader: - kv   4:                       llama.context_length u32              = 4096
llama_model_loader: - kv   5:                     llama.embedding_length u32              = 4096
llama_model_loader: - kv   6:                          llama.block_count u32              = 32
llama_model_loader: - kv   7:                  llama.feed_forward_length u32              = 11008
llama_model_loader: - kv   8:                 llama.rope.dimension_count u32              = 128
llama_model_loader: - kv   9:                 llama.attention.head_count u32              = 32
llama_model_loader: - kv  10:              llama.attention.head_count_kv u32              = 32
llama_model_loader: - kv  11:     llama.attention.layer_norm_rms_epsilon f32              = 0.000001
llama_model_loader: - kv  12:                       tokenizer.ggml.model str              = llama
llama_model_loader: - kv  13:                      tokenizer.ggml.tokens arr[str,32000]   = ["<unk>", "<s>", "</s>", "<0x00>", "<...
llama_model_loader: - kv  14:                      tokenizer.ggml.scores arr[f32,32000]   = [0.000000, 0.000000, 0.000000, 0.0000...
llama_model_loader: - kv  15:                  tokenizer.ggml.token_type arr[i32,32000]   = [2, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, ...
llama_model_loader: - kv  16:                tokenizer.ggml.bos_token_id u32              = 1
llama_model_loader: - kv  17:                tokenizer.ggml.eos_token_id u32              = 2
llama_model_loader: - kv  18:            tokenizer.ggml.unknown_token_id u32              = 0
llama_model_loader: - kv  19:               general.quantization_version u32              = 2
llama_model_loader: - kv  20:                          general.file_type u32              = 15
llama_model_loader: - type  f32:   65 tensors
llama_model_loader: - type q4_K:  193 tensors
llama_model_loader: - type q6_K:   33 tensors
llm_load_vocab: special tokens definition check successful ( 259/32000 ).
llm_load_print_meta: format           = GGUF V2
llm_load_print_meta: arch             = llama
llm_load_print_meta: vocab type       = SPM
llm_load_print_meta: n_vocab          = 32000
llm_load_print_meta: n_merges         = 0
llm_load_print_meta: n_ctx_train      = 4096
llm_load_print_meta: n_embd           = 4096
llm_load_print_meta: n_head           = 32
llm_load_print_meta: n_head_kv        = 32
llm_load_print_meta: n_layer          = 32
llm_load_print_meta: n_rot            = 128
llm_load_print_meta: n_embd_head_k    = 128
llm_load_print_meta: n_embd_head_v    = 128
llm_load_print_meta: n_gqa            = 1
llm_load_print_meta: n_embd_k_gqa     = 4096
llm_load_print_meta: n_embd_v_gqa     = 4096
llm_load_print_meta: f_norm_eps       = 0.0e+00
llm_load_print_meta: f_norm_rms_eps   = 1.0e-06
llm_load_print_meta: f_clamp_kqv      = 0.0e+00
llm_load_print_meta: f_max_alibi_bias = 0.0e+00
llm_load_print_meta: n_ff             = 11008
llm_load_print_meta: n_expert         = 0
llm_load_print_meta: n_expert_used    = 0
llm_load_print_meta: pooling type     = 0
llm_load_print_meta: rope type        = 0
llm_load_print_meta: rope scaling     = linear
llm_load_print_meta: freq_base_train  = 10000.0
llm_load_print_meta: freq_scale_train = 1
llm_load_print_meta: n_yarn_orig_ctx  = 4096
llm_load_print_meta: rope_finetuned   = unknown
llm_load_print_meta: model type       = 7B
llm_load_print_meta: model ftype      = Q4_K - Medium
llm_load_print_meta: model params     = 6.74 B
llm_load_print_meta: model size       = 3.80 GiB (4.84 BPW)
llm_load_print_meta: general.name     = ELYZA-japanese-Llama-2-7b-instruct
llm_load_print_meta: BOS token        = 1 '<s>'
llm_load_print_meta: EOS token        = 2 '</s>'
llm_load_print_meta: UNK token        = 0 '<unk>'
llm_load_print_meta: LF token         = 13 '<0x0A>'
llm_load_tensors: ggml ctx size =    0.11 MiB
llm_load_tensors:        CPU buffer size =  3891.24 MiB
..................................................................................................
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama_new_context_with_model: freq_scale = 1
llama_kv_cache_init:        CPU KV buffer size =   256.00 MiB
llama_new_context_with_model: KV self size  =  256.00 MiB, K (f16):  128.00 MiB, V (f16):  128.00 MiB
llama_new_context_with_model:        CPU input buffer size   =    10.01 MiB
llama_new_context_with_model:        CPU compute buffer size =    70.50 MiB
llama_new_context_with_model: graph splits (measure): 1

system_info: n_threads = 4 / 4 | AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | MATMUL_INT8 = 0 |
sampling:
        repeat_last_n = 64, repeat_penalty = 1.100, frequency_penalty = 0.000, presence_penalty = 0.000
        top_k = 40, tfs_z = 1.000, top_p = 0.950, min_p = 0.050, typical_p = 1.000, temp = 0.800
        mirostat = 0, mirostat_lr = 0.100, mirostat_ent = 5.000
sampling order:
CFG -> Penalties -> top_k -> tfs_z -> typical_p -> top_p -> min_p -> temperature
generate: n_ctx = 512, n_batch = 512, n_predict = 512, n_keep = 1


 [INST] <<SYS>>あなたは誠実で優秀な日本人の投資家アシスタントです。<</SYS>>次のニュースから株価が伸 びそうな日本の企業名を3社挙げてください。その3社に対して株価の伸びを100点満点中何点か教えてください。###ニュース\n\n AdobeFireflyAppleVisionProAdobeが、AppleVision用画像生成AIアプリ「AdobeFirefly:GenerativeAI」を、AppStoreにて配信を開始して... [/INST]  承知しました。AdobeFireflyの件から株価が伸びそうな日本の企業3社とその運営会社の株価の可能性を提示します。

1. アドビシステムズ (Adobe Systems Incorporated) :100点
2. ファイヤーフライ エンターテイメント (Firefly Entertainment) :50点
3. アップル ヴィジョン プロダクツ (Apple Vision Products) :75点

上記はあくまで推察であるため、参考になれば幸いです。 [end of text]

llama_print_timings:        load time =     775.18 ms
llama_print_timings:      sample time =     122.90 ms /   195 runs   (    0.63 ms per token,  1586.60 tokens per second)
llama_print_timings: prompt eval time =   38555.02 ms /   194 tokens (  198.74 ms per token,     5.03 tokens per second)
llama_print_timings:        eval time =   47286.63 ms /   194 runs   (  243.75 ms per token,     4.10 tokens per second)
llama_print_timings:       total time =   86038.55 ms /   388 tokens
Log end


回答抜粋

[INST] <<SYS>>あなたは誠実で優秀な日本人の投資家アシスタントです。<</SYS>>次のニュースから株価が伸 びそうな日本の企業名を3社挙げてください。その3社に対して株価の伸びを100点満点中何点か教えてください。###ニュース\n\n AdobeFireflyAppleVisionProAdobeが、AppleVision用画像生成AIアプリ「AdobeFirefly:GenerativeAI」を、AppStoreにて配信を開始して... [/INST] 承知しました。AdobeFireflyの件から株価が伸びそうな日本の企業3社とその運営会社の株価の可能性を提示します。 1. アドビシステムズ (Adobe Systems Incorporated) :100点 2. ファイヤーフライ エンターテイメント (Firefly Entertainment) :50点 3. アップル ヴィジョン プロダクツ (Apple Vision Products) :75点 上記はあくまで推察であるため、参考になれば幸いです。 [end of text]

「Apple Vision Products」という会社は、たぶん無いと思いますが、Adobeが100点なので、まぁ間違ってはないのかもしれません。

投資の予測はあくまでも予測であって、予測が100%当たるのであれば苦労しません。

とりあえず、何らかの参考にはできそうです。


負荷状況

top - 01:01:46 up  6:37,  3 users,  load average: 2.12, 0.69, 0.66
Tasks: 241 total,   2 running, 239 sleeping,   0 stopped,   0 zombie
%Cpu0  : 97.7 us,  1.0 sy,  0.0 ni,  1.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  : 97.7 us,  1.3 sy,  0.0 ni,  1.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  : 98.0 us,  1.0 sy,  0.0 ni,  1.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16154844 total,   225912 free,  1176828 used, 14752104 buff/cache
KiB Swap:  8191996 total,  7369980 free,   822016 used. 14629232 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
12591 root      20   0 4443440   4.1g   3.8g R 394.0 26.5   2:47.14 main

実メモリ4GB程度でした。

しかもGPUなしです!

さっきの回答も1分程度で回答してくれます!

早いうえに4GBメモリで十分動きます!

OSSのLLMもここまで進化しているとは驚きです。

しかも、無料なので1日中何か処理させるのには最適です。

回答内容は、ぱっとしないかもしれませんが、日本語としてはちゃんと文章を組み立ててくれるので、回答内容自体はRAGなど別の手段で取得して、文章だけを生成させれば結構使い物になるかもしれません。


まとめ

回答の内容自体は、まだまだChatGPTのほうが良い回答の印象はありますが、日本語自体はちゃんとした回答をしてくれました。

おそらく全く知らない分野の回答では、本当か嘘かわからないレベルの日本語で回答してくれそうです。

あとは、自前のデータはRAGで回答するようにしておけば、自分専用のLLMができそうです。

ローカルPCで動く株価予測専用のLLMにしてもよさそうですね。

この記事が気に入ったらサポートをしてみませんか?