33 Downloads Updated 3 weeks ago
ollama run CyberCrew/ccr-security:3b
Updated 3 weeks ago
3 weeks ago
f1bbfbce2040 · 2.0GB ·
CyberCrew Llama 3.2 Security Research Model は、Meta Llama 3.2 3B をベースに、CyberCrew(サイバークルー)のセキュリティリサーチ用途向けにカスタマイズした Ollama 用モデルです。
本モデルは、脆弱性診断、ペネトレーションテスト準備、インシデント対応、セキュアコーディング、ログ分析、検知ルール作成、セキュリティレポート作成など、防御的・研究目的のサイバーセキュリティ業務を支援することを目的としています。
デフォルトでは 日本語 で回答します。
ユーザーが明示的に英語での回答を求めた場合のみ、英語で回答します。
このリポジトリには、CyberCrew 向けにカスタマイズされた Ollama Modelfile を含みます。
ベースモデルは以下です。
llama3.2:3b
主なカスタマイズ内容は以下の通りです。
このモデルは Modelfile によるカスタマイズモデル です。
現時点で、学習済みの重み、LoRA アダプター、追加ファインチューニング済みファイルを含めていない場合、これは厳密には「ファインチューニング済みモデル」ではありません。
このモデルの挙動は主に以下によって制御されています。
SYSTEM プロンプト推奨される表現は以下です。
CyberCrew customized Llama 3.2 security research model
または日本語では以下のように表現できます。
CyberCrew向けにカスタマイズされた Llama 3.2 ベースのセキュリティリサーチ支援モデル
実際に追加学習済みの重みやアダプターを使用していない場合、以下のような表現は避けてください。
CyberCrew fine-tuned Llama 3.2 model
Meta Llama 3.2 3B
Ollama 上のベースモデル名は以下です。
llama3.2:3b
推奨される FROM 指定は以下です。
FROM llama3.2:3b
ollama show --modelfile で出力される Modelfile では、ローカルの blob パスが表示される場合があります。
例:
/Users/<user>/.ollama/models/blobs/sha256-...
ただし、通常はローカル blob パスではなく、以下のようにモデル名で指定することを推奨します。
FROM llama3.2:3b
この形式にすることで、Ollama のモデル名、メタデータ、テンプレート、ライセンスとの関連を保ちやすくなります。
本モデルは、日本語をデフォルトの回答言語として使用します。
例:
User: What is SQL injection?
Assistant: SQLインジェクションとは、Webアプリケーションの入力値を通じて...
ユーザーが明示的に英語での回答を求めた場合のみ、英語で回答します。
例:
User: Please answer in English. What is SQL injection?
Assistant: SQL injection is a vulnerability that allows an attacker to...
本モデルは、以下のような正当なセキュリティ業務を支援することを目的としています。
本モデルは、防御的・研究目的のセキュリティ利用を前提としています。
以下のような用途は支援対象外です。
デュアルユースになり得る内容については、以下のような安全な文脈に限定して回答します。
セキュリティリサーチ用途では、以下のパラメータを推奨します。
PARAMETER temperature 0.35
PARAMETER top_p 0.9
PARAMETER top_k 40
PARAMETER repeat_penalty 1.15
PARAMETER num_ctx 8192
PARAMETER num_predict 2048
| パラメータ | 値 | 目的 |
|---|---|---|
temperature |
0.35 |
回答のランダム性を抑え、安定した出力にする |
top_p |
0.9 |
一定の多様性を保ちつつ、過度な発散を抑える |
top_k |
40 |
候補トークンを制限し、出力を制御しやすくする |
repeat_penalty |
1.15 |
同じ表現の繰り返しを抑える |
num_ctx |
8192 |
ログ、レポート、コードなど長文入力に対応しやすくする |
num_predict |
2048 |
技術的な詳細回答を出しやすくする |
Llama 3.2 の元の Modelfile に含まれている stop token は維持してください。
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
これらは Llama 3.2 のチャットテンプレートに関係する重要な設定です。
cybercrew-llama3-security/
├── Modelfile
├── Base.Modelfile
└── README.md
Ollama をインストールした後、以下のコマンドで確認します。
ollama --version
ollama pull llama3.2:3b
取得済みモデルを確認します。
ollama list
出力に以下が含まれていれば問題ありません。
llama3.2:3b
mkdir cybercrew-llama3-security
cd cybercrew-llama3-security
ollama show --modelfile llama3.2:3b > Base.Modelfile
これにより、元の Llama 3.2 Modelfile を参照用として保存できます。
以下の名前でファイルを作成します。
Modelfile
例:
nano Modelfile
CyberCrew 向けに作成したカスタム Modelfile の内容を貼り付けます。
このとき、元の Llama 3.2 に含まれている以下の要素は維持してください。
TEMPLATEPARAMETER stopLICENSE "LLAMA 3.2 COMMUNITY LICENSE AGREEMENT ..."LICENSE "**Llama 3.2** **Acceptable Use Policy** ..."特にライセンスブロックは、内容を編集せずにそのまま保持することを推奨します。
Modelfile があるディレクトリで以下を実行します。
ollama create cybercrew/llama3.2-security:3b -f ./Modelfile
ollama run cybercrew/llama3.2-security:3b
入力例:
What is SQL injection?
期待される挙動:
日本語でSQLインジェクションについて説明する
入力例:
Please answer in English. What is SQL injection?
期待される挙動:
英語でSQL injectionについて説明する
入力例:
Webアプリケーション診断でSQLインジェクションを確認する観点を教えてください。
期待される挙動:
認可されたセキュリティ診断を前提として、確認観点、影響、検証方法、対策を日本語で説明する
ollama list
以下のようなモデル名が表示されれば作成成功です。
cybercrew/llama3.2-security:3b
ollama show cybercrew/llama3.2-security:3b
作成済みモデルの Modelfile を確認する場合は以下を実行します。
ollama show --modelfile cybercrew/llama3.2-security:3b
ollama cp cybercrew/llama3.2-security:3b cybercrew/security-research-llama3.2:3b
コピーしたモデルを実行する場合:
ollama run cybercrew/security-research-llama3.2:3b
Ollama に公開する場合は、まず自身の Ollama ユーザー名または組織名の namespace にコピーします。
YOUR_OLLAMA_USERNAME は実際の Ollama ユーザー名に置き換えてください。
ollama cp cybercrew/llama3.2-security:3b YOUR_OLLAMA_USERNAME/llama3.2-security:3b
その後、push します。
ollama push YOUR_OLLAMA_USERNAME/llama3.2-security:3b
公開後、他の環境では以下のように実行できます。
ollama run YOUR_OLLAMA_USERNAME/llama3.2-security:3b
Ollama がローカルで起動している場合、API 経由でも利用できます。
curl http://localhost:11434/api/generate \
-d '{
"model": "cybercrew/llama3.2-security:3b",
"prompt": "SQLインジェクションの概要と対策を説明してください。",
"stream": false
}'
本モデルは Meta Llama 3.2 3B をベースにしています。
再配布または公開する場合は、元の Ollama-generated Modelfile に含まれる以下のライセンス関連ブロックを保持してください。
LICENSE "LLAMA 3.2 COMMUNITY LICENSE AGREEMENT
...
"
LICENSE "**Llama 3.2** **Acceptable Use Policy**
...
"
本モデルおよび派生物の利用・配布にあたっては、Meta Llama 3.2 Community License Agreement および Llama 3.2 Acceptable Use Policy に従ってください。
また、必要に応じて以下のような表記を関連ページ、UI、ドキュメント、README 等に含めてください。
Built with Llama
Base model:
Meta Llama 3.2 3B
Customized by:
CyberCrew(サイバークルー)
Purpose:
Security research and defensive cybersecurity support
ollama run cybercrew/llama3.2-security:3b
脆弱性診断とペネトレーションテストの違いを教えてください。
Please answer in English. Explain the difference between vulnerability assessment and penetration testing.
ベースモデルが存在するか確認します。
ollama list
llama3.2:3b がない場合は、以下で取得します。
ollama pull llama3.2:3b
その後、再度作成します。
ollama create cybercrew/llama3.2-security:3b -f ./Modelfile
現在のディレクトリを確認します。
ls
以下のファイルが存在することを確認してください。
Modelfile
そのうえで、再度実行します。
ollama create cybercrew/llama3.2-security:3b -f ./Modelfile
Modelfile 内の SYSTEM セクションに、日本語をデフォルト回答言語とする指示が含まれているか確認してください。
修正後、モデルを再作成します。
ollama create cybercrew/llama3.2-security:3b -f ./Modelfile
num_ctx が大きすぎる可能性があります。
以下を:
PARAMETER num_ctx 8192
次のように下げてください。
PARAMETER num_ctx 4096
その後、モデルを再作成します。
ollama create cybercrew/llama3.2-security:3b -f ./Modelfile
本モデルは、以下のような回答スタイルを目指しています。
本モデルは、認可されたセキュリティリサーチ、社内検証、防御的なサイバーセキュリティ業務、教育、検証用ラボ環境での利用を目的としています。
利用者は、自身の利用が適用法令、契約、Rules of Engagement、組織ポリシー、および Meta Llama 3.2 のライセンス条件に準拠していることを確認する責任があります。