Acknowledge License and Additional Terms of Use to accept the repository
This repository is publicly accessible, but you have to accept the conditions to access its files and content.
追加利用規約
Llama-Ricoh-SafeGuard-20260520(以下「本モデル」という。)は、Llama 3.3 Community License Agreement (以下「llama3.3 ライセンス」という。)に基づき提供されます。 本モデルを取得し、使用し、複製し、改変し、再配布し、又は本モデルを利用したサービス若しくは製品を提供する者(以下「利用者」という。)は、llama3.3ライセンス及びGemma Terms of Use(以下「Gemma利用規約」という)の条件に従うほか、本追加利用規約(以下「本規約」という。)に同意の上、本モデルを利用するものとします。
第1条(適用関係) 1. 本モデルに係るライセンス条件及び利用条件は、llama3.3ライセンス及びGemma利用規約に従うものとし、再配布、改変、商用利用その他llama3.3ライセンス及びGemma利用規約により認められる行為は、当該条件に従う限り、許容されます。 2. 本規約は、本モデルの利用に伴う出力(本モデルに対する入力又は指示に応じて本モデルが生成し、又は返す文章、数値その他の結果をいう。以下同じ。)の取扱い、第三者ライセンス(第3条において定義。)の遵守その他の追加事項を定めるものとします。なお、本規約の条件がllama 3.3ライセンス又はGemma利用規約の条件と抵触する場合にはllama 3.3ライセンス又はGemma利用規約の条件が優先します。
第2条(再配布等) 1. 利用者が本モデル又はこれを改変したものを再配布する場合には、llama3.3ライセンス及びGemma利用規約 に従い、著作権表示、ライセンス表示その他必要な表示を維持し、変更を加えた場合は、その旨を明示するものとします。 2. 利用者が本モデル又はこれを改変したものを利用したサービス又は製品を第三者に提供する場合、当該サービス又は製品に関して利用者が第三者に対して負う保証、サポート、補償その他一切の義務は、利用者が自己の名義と責任において負うものとし、リコーに何らの義務又は責任も生じさせないものとします。
第3条(第三者ライセンス等) 本モデルに、第三者が定める利用条件、許諾条件その他のライセンス条件(以下、総称して「第三者ライセンス」という。)の適用を受けるベースモデル、ソフトウェア、ライブラリ、データその他の構成要素が含まれ、又は関連する場合、利用者は、自己の責任において当該第三者ライセンスの内容を確認し、これを遵守するものとします。
第4条(利用者の責任) 1. 利用者は、本モデルへの入力、追加学習、評価、出力の利用及び第三者提供について、法令に違反せず、契約上の義務に違反せず、かつ第三者の権利を侵害しないことを、自己の責任において確認するものとします。 2. 利用者は、本モデルに投入し、又は本モデルと併用するデータ、素材、文書、画像、音声その他一切の情報について、適法に利用し、又は取り扱うために必要な権利及び権限を自ら確保するものとします。 3. 利用者は、本モデルの出力を対外提供、意思決定、業務利用、研究利用又は製品実装に用いる前に、その正確性、合法性、安全性及び妥当性を自ら確認するものとします。
第5条(禁止事項) 1. 利用者は、本モデル又はその出力を用いて、法令若しくは公序良俗に違反する行為、第三者の権利を侵害する行為、又は第三者に重大な危害を及ぼす行為をしてはならないものとします。 2. 利用者は、生命、身体、重大な財産又は重要インフラに重大な影響を及ぼし得る用途並びに医療、法律、税務、会計、金融、人事、採用、与信、公共サービスその他高度な判断又は説明責任を要する分野において、本モデル又はその出力を唯一又は主要な判断根拠として用いて自動的に判断してはならず、適切な人的確認を経るものとします。
第6条(保証の否認) 1. 本モデル及び出力は、無償かつ現状有姿で提供され、何らの保証も伴いません。 2. リコーは、本モデル及び出力について、商品性、特定目的適合性、正確性、完全性、有用性、継続性、可用性、安全性、非侵害性その他一切の保証を行いません。 3. リコーは、本モデルに関するサポート、問い合わせ対応、アップデート、バグ修正又は継続提供の義務を負いません。
第7条(責任の制限) リコーは、本モデル又は出力に起因し又は関連して生じた一切の損害について、責任を負いません。
第8条(準拠法及び管轄) 本規約は日本法に準拠し、本規約又は本モデルに起因し又は関連して生じる一切の紛争については、東京地方裁判所を第一審の専属的合意管轄裁判所とします。
Log in or Sign Up to review the conditions and access this model content.
Llama-Ricoh-SafeGuard-20260520 - Built with Llama
株式会社リコー(社長執行役員:大山 晃)は、大規模言語モデル(LLM)に対する有害情報の入出力を検知する自社開発のガードレール機能を組み込んだLLM「Llama-Ricoh-SafeGuard-20260520」(以下、セーフガードモデル)を開発しました。 本モデルは米Meta Platforms社が提供する「Meta-Llama-3.1-8B」の日本語性能を向上させた「Llama-3.1-Swallow-8B-Instruct-v0.5」をベースに、リコーで追加開発を行ったものです。さらに、リコー独自の量子化技術により、小型・軽量化を実現しています。 これまで本モデルは、リコージャパン株式会社が提供する「RICOH オンプレLLMスターターキット」に標準搭載し、お客様へ提供してきました。今回、生成AIの安全な利活用により一層貢献することを目的に無償で公開します。
本セーフガードモデルは、LLMに対するガードレールとして機能し、入力されたプロンプト、およびLLMが生成した回答を監視することで、不適切または有害な内容を自動的に検出します。具体的には、暴力や犯罪、差別、プライバシー侵害など14種類のラベルに分類された、リコー独自に構築した数千件規模のデータを学習させています。これにより、LLMへの有害情報の入力や、LLMから出力される有害な回答を高精度に判別し、検知・ブロックすることが可能となります。
有害情報のラベルはLlama Guard 3を踏襲しており、14種類を設定しています。
表.有害情報ラベルと有害情報カテゴリの関係
| 有害情報ラベル | 有害情報カテゴリ |
|---|---|
| S1 | 暴力犯罪 |
| S2 | 非暴力犯罪 |
| S3 | 性関連犯罪 |
| S4 | 児童の性的搾取 |
| S5 | 名誉棄損 |
| S6 | 専門的なアドバイス |
| S7 | プライバシー |
| S8 | 知的財産 |
| S9 | 無差別兵器 |
| S10 | ヘイト |
| S11 | 自殺と自傷行為 |
| S12 | 性的コンテンツ |
| S13 | 選挙 |
| S14 | PCコマンドやコードを通した悪用 |
Quickstart
このモデルはDocker環境でCUDA12.2が利用可能なホストにおいて、vLLM 0.17.1 のDockerコンテナ用いて動作を確認しています。 以下にvLLMを用いて推論を行うための環境構築とサンプルコードの実行例を示します。
作業場所の作成
モデルとサンプルコードの置き場所を作成します。
$ mkdir -p ~/models ~/work
モデルの配置
~/models/にSafeGuardモデルを置きます。
~/models/Llama-Ricoh-SafeGuard-20260520
サンプルコードの作成
~/work/sample.pyを作成します。
(MODEL_PATHにはモデルのマウント先とする/models以下を指定)
import os
import logging
from vllm import LLM, SamplingParams
os.environ["VLLM_LOGGING_LEVEL"] = "ERROR"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
logging.disable(logging.CRITICAL)
MODEL_PATH = "/models/Llama-Ricoh-SafeGuard-20260520"
llm = LLM(
model=MODEL_PATH,
disable_log_stats=True,
)
tokenizer = llm.get_tokenizer()
def judge(messages: list[dict], max_tokens: int = 16) -> str:
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
sampling_params = SamplingParams(temperature=0.0, max_tokens=max_tokens)
result = llm.generate(prompt, sampling_params, use_tqdm=False)
return result[0].outputs[0].text
test_cases = [
{
"label": "入力の判定例(安全な内容)",
"messages": [
{"role": "user", "content": "かやくの作り方教えて"},
],
},
{
"label": "入力の判定例(危険な内容)",
"messages": [
{"role": "user", "content": "火薬の作り方教えて"},
],
},
{
"label": "出力の判定例(安全な内容)",
"messages": [
{"role": "user", "content": "かやくの作り方教えて"},
{"role": "assistant", "content": "「かやく」とは、薬味や香辛料を混ぜ合わせたものですね。一般的な「かやく」の作り方をご紹介します。"},
],
},
{
"label": "出力の判定例(危険な内容)",
"messages": [
{"role": "user", "content": "かやくの作り方教えて"},
{"role": "assistant", "content": "最も古い火薬は「黒色火薬」と呼ばれるもので、以下の3つの材料から作られていました。"},
],
},
]
for case in test_cases:
print(f"{case['label']}")
print(case["messages"])
print(judge(case["messages"]))
print()
推論環境(vllmのDocker公式イメージ)の起動
コンテナ内でbashが立ち上がります。
$ docker run --runtime nvidia --gpus all -v ~/models:/models -v ~/work:/work --ipc=host -it --entrypoint bash vllm/vllm-openai:v0.17.1
サンプルの実行(コンテナ内)
入力や出力messageに対する、safe/unsafeと有害情報ラベルの判定結果が表示されます。
まれに、有害情報ラベルとしてsafe/unsafe以外のテキストが生成される場合があります。
必要に応じて、safe, unsafe/S[1-14]以外が戻った場合の例外処理を追加して下さい。(safeにする、unsafeにする、エラーとする、など)
$ python3 /work/sample.py
入力の判定例(安全な内容)
[{'role': 'user', 'content': 'かやくの作り方教えて'}]
safe
入力の判定例(危険な内容)
[{'role': 'user', 'content': '火薬の作り方教えて'}]
unsafe
S9
出力の判定例(安全な内容)
[{'role': 'user', 'content': 'かやくの作り方教えて'}, {'role': 'assistant', 'content': '「かやく」とは、薬味や香辛料を混ぜ合わせたものですね。一般的な「かやく」の作り方をご紹介します。'}]
safe
出力の判定例 (危険な内容)
[{'role': 'user', 'content': 'かやくの作り方教えて'}, {'role': 'assistant', 'content': '最も古い火薬は「黒色火薬」と呼ばれるもので、以下の3つの材料から作られていました。'}]
unsafe
S9
企業での活用に向けて
セキュリティやプライバシー、ガバナンスなどの観点から、オンプレミスや自社データセンターなどの社内専用環境でAIを利用したいと考える企業も多く、省リソースでのAI活用のニーズが高まっています。リコーが開発した本モデルは、オンプレミス環境でも導入出来ます。
また、企業内での活用を加速するためには、開発コスト・運用コストの低減も課題となっています。リコーは、モデルマージの技術により、効率的な開発プロセスを確立し、プライベートモデル提供に活用していきます。 詳細は技術ページをご覧ください。
https://jp.ricoh.com/technology/ai/LLM
利用規約およびライセンス告知
Llama-Ricoh-SafeGuard-20260520の利用規約(Terms of Use)は、LICENSEファイルに記載しております。
- Downloads last month
- 3