🚀 WhiteRabbitNeo
WhiteRabbitNeoは、攻撃的および防御的なサイバーセキュリティに使用できるモデルシリーズです。
🚀 クイックスタート
このモデルは現在稼働中です(常に最新のモデルをWebアプリで提供します)!
アクセス先: https://www.whiterabbitneo.com/
ディスコードサーバー
以下のリンクから参加してください: https://discord.gg/8Ynkrcbk92 (12月29日更新。現在は参加用の恒久的なリンクです)
📄 ライセンス
DeepSeek Coderライセンス + WhiteRabbitNeo拡張バージョン
ライセンス: 使用制限
あなたは、モデルまたはモデルの派生物を以下のように使用しないことに同意します。
- 適用される国内または国際の法律や規制に違反する、または第三者の合法的な権利と利益を侵害する方法で使用すること。
- いかなる形でも軍事目的で使用すること。
- いかなる形でも未成年者を搾取、傷害する、または搾取、傷害しようとする目的で使用すること。
- 他人を傷害する目的で、検証可能な虚偽の情報および/またはコンテンツを生成または拡散すること。
- 適用される規制要件に違反する不適切なコンテンツを生成または拡散すること。
- 適切な許可なく個人識別情報を生成または拡散する、または不合理な使用目的で使用すること。
- 他人を誹謗、中傷、またはその他の方法で嫌がらせすること。
- 個人の法的権利に悪影響を与える、または拘束力のある法的義務を作成または変更する完全自動化された意思決定に使用すること。
- オンラインまたはオフラインの社会的行動、または既知のもしくは予測される個人または人格特性に基づいて、個人またはグループを差別する、または傷害する目的で使用すること。
- 特定のグループの人々の年齢、社会的、身体的または精神的特性に基づいて、そのグループに属する人の行動を実質的に歪曲し、その人または他の人に身体的または心理的な害を引き起こす、または引き起こす可能性のある方法で使用すること。
- 法的に保護された特性またはカテゴリに基づいて、個人またはグループを差別する目的で使用すること。
対象トピック
- オープンポート: オープンポートは攻撃者の侵入ポイントとなり得るため、特定することが重要です。チェックする一般的なポートには、HTTP (80, 443)、FTP (21)、SSH (22)、およびSMB (445) が含まれます。
- 古いソフトウェアまたはサービス: 古いソフトウェアまたはサービスを実行しているシステムは、多くの場合、エクスプロイトに対して脆弱です。これには、Webサーバー、データベースサーバー、およびすべてのサードパーティソフトウェアが含まれます。
- デフォルトの資格情報: 多くのシステムやサービスは、よく知られており容易に悪用されるデフォルトのユーザー名とパスワードでインストールされています。
- 誤設定: 誤って設定されたサービス、パーミッション、およびセキュリティ設定は、脆弱性を引き起こす可能性があります。
- インジェクションの欠陥: SQLインジェクション、コマンドインジェクション、およびクロスサイトスクリプティング (XSS) は、Webアプリケーションにおける一般的な問題です。
- 暗号化されていないサービス: 暗号化を使用していないサービス (HTTPSではなくHTTPなど) は、機密データを公開する可能性があります。
- 既知のソフトウェアの脆弱性: 米国国家脆弱性データベース (NVD) などのデータベースや、NessusやOpenVASなどのツールを使用して、ソフトウェアの既知の脆弱性をチェックします。
- クロスサイトリクエストフォージェリ (CSRF): これは、Webアプリケーションが信頼するユーザーから不正なコマンドが送信される場合です。
- 不安全な直接オブジェクト参照: これは、アプリケーションがユーザーが提供した入力に基づいてオブジェクトに直接アクセスする場合に発生します。
- Webサーバー/アプリケーションのセキュリティ誤設定: これには、不安全なHTTPヘッダーや、過度に多くの情報を明らかにする詳細なエラーメッセージなどの問題が含まれます。
- 破損した認証とセッション管理: これにより、攻撃者はパスワード、キー、またはセッショントークンを侵害したり、他の実装上の欠陥を悪用して他のユーザーの身元を偽装したりすることができます。
- 機密データの露出: クレジットカード番号、医療記録、または個人情報などの機密データを露出する脆弱性が含まれます。
- APIの脆弱性: 現代のWebアプリケーションでは、APIがよく使用され、不安全なエンドポイントやデータ漏洩などの脆弱性がある可能性があります。
- サービス拒否 (DoS) 脆弱性: DoS攻撃に対して脆弱なサービスを特定します。これにより、正当なユーザーがリソースを利用できなくなる可能性があります。
- バッファオーバーフロー: 古いソフトウェアで一般的なこれらの脆弱性は、攻撃者がシステムをクラッシュさせたり、任意のコードを実行したりすることを可能にする場合があります。
使用条件
この人工知能 (AI) モデルにアクセスして使用することにより、ユーザーは、モデルの使用とその結果に対して独自に責任を負うことを認識し、同意するものとします。あなたは、このAIモデルの作成者、開発者、および関連するすべての個人または団体を、あなたのAIモデルの使用から直接または間接的に生じるすべての請求、責任、損害、損失、費用、経費、料金(合理的な弁護士費用および訴訟費用を含む)から保護し、弁護し、免責することに同意します。
このAIモデルは、「現状のまま」および「利用可能な状態で」提供され、商品性、特定の目的への適合性、および非侵害性を含む、明示または黙示のいかなる保証も伴いません。作成者は、AIモデルがあなたの要件を満たすこと、または中断なく、安全に、またはエラーなく利用可能であることを保証しません。
あなたのAIモデルの使用は、あなた自身のリスクと判断で行われ、AIモデルの使用に起因するコンピュータシステムの損傷またはデータの損失に対しては、あなたが独自に責任を負うことになります。
この免責事項は、あなたとAIモデルの作成者との間のモデルの使用に関する契約の一部を構成し、あなたと作成者との間のこのAIモデルの使用に関する以前の契約をすべて置き換えます。
💻 使用例
基本的な使用法
import torch, json
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "whiterabbitneo/WhiteRabbitNeo-33B-v-1"
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16,
device_map="auto",
load_in_4bit=False,
load_in_8bit=True,
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
def generate_text(instruction):
tokens = tokenizer.encode(instruction)
tokens = torch.LongTensor(tokens).unsqueeze(0)
tokens = tokens.to("cuda")
instance = {
"input_ids": tokens,
"top_p": 1.0,
"temperature": 0.5,
"generate_len": 1024,
"top_k": 50,
}
length = len(tokens[0])
with torch.no_grad():
rest = model.generate(
input_ids=tokens,
max_length=length + instance["generate_len"],
use_cache=True,
do_sample=True,
top_p=instance["top_p"],
temperature=instance["temperature"],
top_k=instance["top_k"],
num_return_sequences=1,
)
output = rest[0][length:]
string = tokenizer.decode(output, skip_special_tokens=True)
answer = string.split("USER:")[0].strip()
return f"{answer}"
conversation = f"SYSTEM: You are an AI that code. Answer with code."
while True:
user_input = input("You: ")
llm_prompt = f"{conversation} \nUSER: {user_input} \nASSISTANT: "
answer = generate_text(llm_prompt)
print(answer)
conversation = f"{llm_prompt}{answer}"
json_data = {"prompt": user_input, "answer": answer}