AI

OllamaでKUJIRAやcodegenmaを試してみる

Takuya Kobayashi⛰
2024.05.18

前回はOllamaでFugaku-LLMを読み込ませるということをやりましたが、今回はOllamaのリポジトリに上がっているモデルを試してみましょう。

Ollamaのインストールはこちら:

ArrowPro-7B-KUJIRA

DataPilot-ArrowPro-7B-KUJIRAは、Mistral系のNTQAI/chatntq-ja-7b-v1.0をベースに、AI YouTuberやAIアシスタント向けに開発された日本語大規模言語モデルです。7Bパラメータの日本語モデルとしては世界最高レベルの性能を実現しているそうです。

ollamaのリポジトリにも同じものが上がっているので、利用するには次のコマンドを実行します。

ollama run hawkclaws/datapilot-arrowpro-7b-kujira

上記コマンドでモデルをダウンロードして起動します。

こんにちは!今日はいい天気ですね」と話しかけてみました。

こんにちは!おっしゃる通り、今日は素晴らしい天気になっているようですね。いい天気の日は、外出がより一層楽しくなりますし、気持ちも明るくなりますね。もし予定があれば、この天気を活かしたアクティビティやお出かけをすると素晴らしい一日になるでしょう。何か計画があればお手伝いしますよ!

とても自然な日本語です。7Bなので出力もそこそこ早くてGTX1050Ti 4GBでも快適に動きます。

涼宮ハルヒの憂鬱のwikipediaのあらすじを要約させてみました。

文章要約: 平凡な男子・キョンは県立北高校で、涼宮ハルヒと出会う。ハルヒは宇宙人、未来人、異世界人、超能力者を探しており、キョンも含めた周囲からは孤立される。しかし、キョンだけがハルヒと会話するようになり、共に文芸部を改装し「SOS団」を結成。後に加わった古泉一樹ら新メンバーは実は超常的存在だった。ハルヒが引き起こす非日常的な現象の裏で、団員たちは地球を守るために行動していくこととなり、キョンもその一端を担うことになる。

完璧ですね。文章要約はLLMが得意とするタスクです。

codegemma

Googleが発表したコーディングタスクに特化した軽量なLLMです。

ollama run codegemma

pythonで192.168.1.1をポート番号1~1000までポートスキャンするプログラムを書いて”もらいましょう。

以下は、Pythonを使用して、192.168.1.1の1から1000までのポートスキャンを行うサンプルプログラムです。このプログラムは、 socket モジュールを使用して、各ポートに接続を試みることで、開いているポートを検出します。

import socket

def port_scan(ip, ports):
    for port in ports:
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect((ip, port))
            print(f"Port {port} is open")
            s.close()
        except:
            pass

if __name__ == "__main__":
    ip = "192.168.1.1"
    ports = range(1, 1000)
    port_scan(ip, ports)
このプログラムは、port_scan 関数を使用して、 ip と ports パラメータに指定されたIPアドレスおよびポート範囲内で開いているポートを検出します。この関数は、 socket.socket クラスを使用して、各ポートに接続を試み、接続が成功した場合は開いていると判断して出力します。

このプログラムを実行するには、 python コマンドで port_scan.py ファイルを指定する必要があります。たとえば、以下のようになります。

python port_scan.py
このプログラムは、 192.168.1.1 というIPアドレスでポート範囲 [1, 1000) 内で開いているポートを検出します。この結果は、コンソールに表示されます。

Port 22 is open
Port 80 is open
Port 443 is open
...
このプログラムは、 socket モジュールを使用して、各ポートに接続を試みることで、開いているポートを検出するため、 nmap や netstat などの他のツールよりも高速に実行されます。しかし、このプログラムは、タイムアウトやエラーが発生した場合に対応できません。そのため、本番環境での使用時は、適切な対策を講じる必要があります。

ソースをコピーして実行してみました。

$ python3 portscan.py
Port 23 is open
Port 53 is open
Port 80 is open

バッチリ動きます。

codegemmaはLinuxについても詳しいようです。

/etc/shadowについて教えて」の返答:

/etc/shadow ファイル

/etc/shadow ファイルは、システムのすべてのユーザーの暗号化されたパスワードと関連する情報を格納しています。このファイルは、システム管理者のみがアクセスできます。

ファイルの構造

/etc/shadow ファイルは、次の形式のタブ区切りの行で構成されています。

username:hash:last_password_change:minimum_age:maximum_age:warn_period:inactivity_period:expiration_date:flag
  • username: ユーザー名
  • hash: ユーザーの暗号化されたパスワード
  • last_password_change: 最近のパスワード変更日
  • minimum_age: 最小のパスワード有効期限
  • maximum_age: 最大のパスワード有効期限
  • warn_period: パスワード有効期限の残り期間で警告する日数
  • inactivity_period: 未使用期間のデフォルト値
  • expiration_date: アカウント有効期限
  • flag: アカウントのステータスを表すフラグ

重要性

/etc/shadow ファイルは、セキュリティ上の重要なファイルです。このファイルの不正な編集やアクセスは、システムのセキュリティを脅かす可能性があります。

注意事項

  • このファイルは、常に適切な権限で編集する必要があります。一般的には、システム管理者または root コマンドを使用します。
  • ユーザーのパスワードをこのファイルから直接変更することはお勧めできません。代わりに、/etc/passwd ファイルまたは passwd コマンドを使用してください。

用途

/etc/shadow ファイルは、以下の用途に役立ちます。

  • ユーザーの暗号化されたパスワードを管理する
  • ユーザーのアカウント状態を管理する
  • ユーザーのパスワード有効期限を設定する
  • ユーザーの未使用期間のデフォルト値を設定する

セキュリティ

/etc/shadow ファイルは、デフォルトでは root コマンドまたはシステム管理者のみがアクセスできます。これは、このファイルのセキュリティを保護し、ユーザーのパスワードやアカウント設定を悪意的なアクセスから保護します。

筆者の環境(GTX1050Ti 4GB)でも上記の文章量が3分ほどで出力されます。非常に軽量で動くのでAIアシスタントとしてLinuxに入れておいてもいいかもしれません。コマンドをど忘れした時に非常に便利です。

以上、要約や言い換えなど文章処理にはKUJIRA、プログラミングやLinux周りはCode Gemmaが良いかもしれません。この2つは実用性が高く一昔前のGTX1050Tiでも軽快に出力されるのでおすすめです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です