LOCAL LLM via ollama on win11 + intel core i7 + mem:64G - end0tknr's kipple - web写経開発
先程の上記entryの続きです。
CPUのみでの ローカルLLM利用は難しいことが分かりましたので、 geforce rtx4090 のGPUを接続し emacs + ellama 経由でも試してみました。
参考url
-最強ローカルLLM実行環境としてのEmacs | 日々、とんは語る。 -GitHub - s-kostyaev/ellama: Ellama is a tool for interacting with large language models from Emacs.
ellamaの依存ライブラリ (ollama、emacs29)
ellamaはollamaを必要としますが、 先程のentryの通り既にollamaはインストール済です。
emacsは、emacs28 for winを使用していましたが、 「M-x ellama-summarize」等のellama実行時、 次のようなエラーとなりましたので、emacs29を使用しています。
Symbol's function definition is void: setopt
installation
ellamaのdocumentにも記載されている通り、 emacsで、package-install を実行するのみです
M-x package-install ⏎ ellama ⏎
model download
ollamaでダウンロードした LOCAL LLM を利用できます。 先程のentryの通り、既にダウンロード済ですので、省略します。
configuration ( .emacs.d/init.el )
参考urlにあった内容を init.el に追記しています
(with-eval-after-load #'llm (require #'llm-ollama) ;; ellama-translateで翻訳する言語 (setq ellama-language "Japanese") ;; ellama-ask-selection などで生成されるファイルのネーミングルール (setq ellama-naming-scheme #'ellama-generate-name-by-llm) ;; デフォルトのプロバイダー (setq ellama-provider (make-llm-ollama :chat-model "codestral:22b-v0.1-q4_K_S" :embedding-model "codestral:22b-v0.1-q4_K_S")) ;; 翻訳で利用するプロバイダー (setq ellama-translation-provider (make-llm-ollama :chat-model "aya:35b-23-q4_K_S" :embedding-model "aya:35b-23-q4_K_S")) ;; ellamaで使えるプロバイダー。ellama-provider-select で選択できる (setq ellama-providers #'(("codestral" . (make-llm-ollama :chat-model "codestral:22b-v0.1-q4_K_S" :embedding-model "codestral:22b-v0.1-q4_K_S")) ("gemma2" . (make-llm-ollama :chat-model "gemma2:27b-instruct-q4_K_S" :embedding-model "gemma2:27b-instruct-q4_K_S")) ("command-r" . (make-llm-ollama :chat-model "command-r:35b" :embedding-model "command-r:35b")) ("llama3.1" . (make-llm-ollama :chat-model "llama3.1:8b" :embedding-model "llama3.1:8b")) )))
テスト
M-x ellama-make-table
CREATE TABLE product ( id int, name varchar(10), col varchar(10) );
↑こう書いて、「M-x ellama-make-table」を実行すると、 ↓こう表示されます
Here's how you can represent your SQL CREATE TABLE statement as a Markdown table: | Column | Data Type | |--------|--------------| | id |int | | name | varchar(10) | | col | varchar(10) | This markdown table represents the "product" table with its columns and their data types.
M-x ellama-make-format ⏎ json ⏎
CREATE TABLE product ( id int, name varchar(10), col varchar(10) );
↑こう書いて、「M-x ellama-make-format ⏎ json ⏎」を実行すると、 ↓こう表示されます
{"table_name": "product", "columns": [ { "name": "id", "type": "int"}, { "name": "name", "type": "varchar(10)" }, { "name": "col", "type": "varchar(10)" } ] }
M-x ellama-summarize 、M-x ellama-translate
CREATE TABLE product ( id int, name varchar(10), col varchar(10) );
↑こう書いて、「M-x ellama-summarize」を実行すると、 ↓こう表示されます
The given text creates a table named "product" in a database. This table has three columns: "id","name", and "col". The "id" column is of integer type, while the "name" and "col" columns are of variable character type, with maximum lengths of 10 characters each.
更に「M-x ellama-translate」を実行すると、 ↓こう表示されます
入力されたテキストは、 データベースに「product」という名前のテーブルを作成します。 このテーブルには、3つの列があります:「id」、「name」、および「col」。 「id」は整数型で、「name」と「col」は それぞれ10文字以下の変長文字型の列です。