合成パーソナを用いて、実在の人口統計に根差した韓国のAIエージェントを構築する方法
Nemotron-Personas-Koreaがこの問題を解決します。このデータセットは、韓国統計情報サービス(KOSIS)、大韓民国最高裁、国民健康保険公団、および韓国農村経済研究院の公式統計とシードデータに基づき、完全に合成された6百万件のペルソナを提供します。NAVER Cloudは、設計の過程でシードデータとドメインの専門知識を提供しました。
各ペルソナは人口統計上の正確さを持ちながら、個人を特定できる情報(PII)を一切含みません。韓国の個人情報保護法(PIPA)を前提に設計されています。韓国はまた、機微なデータの合成版でモデルを根拠付けるためのガバナンスを確立した公式の合成データ生成ガイドを公開している、数少ない国の一つでもあります。このデータセットはそのアプローチに従っています。
このチュートリアルでは、ホストされたAPIを使って約20分で、データセットのフィルタリングから推論までの流れで、合成ペルソナをデプロイ済みの韓国エージェントに変換します。
南韓国のための主権的データセット
| 属性 | 詳細 |
|---|---|
| 総ペルソナ数 | 7 million(100万レコード × 各7ペルソナ) |
| ペルソナの項目 | 26項目:7つのペルソナ項目、6つのペルソナ属性項目、12の人口統計・地理的コンテキスト項目、および1つの固有識別子 |
| 地理的カバー範囲 | 韓国の全17の道(州・特別市等)、および25の区 |
| 名前 | 約209Kのユニークな名前(118の姓、約21.4Kの名) |
| 職業 | テック、製造業、公的部門などを反映した2K+カテゴリ |
| ペルソナの種類 | 専門職、家族、スポーツ、芸術、旅行、料理、簡潔 |
| ライフステージ | 学生、兵役、就業中、失業中、退職 |
| 言語 | 自然な韓国語 |
| ライセンス | CC BY 4.0 |
Nemotron-Personas-Koreaは、NeMo Data Designerを使って生成されました。これは、NVIDIAのオープンソースの合成データ向け複合AIシステムです。このパイプラインでは、統計的な根拠付けに確率的グラフィカルモデル(Apache-2.0)を用い、韓国語のナラティブ生成にはGemma-4-31Bを使用します。人口データはKOSIS(2020〜2026のリリース)から取得し、名前の分布は大韓民国最高裁から取得しています。
Nemotron-Personas-Koreaは、Nemotron-Personas Collectionへの最新の追加分であり、米国、日本、インド、シンガポール(AI Singaporeと連携)、ブラジル(WideLabsと連携)、およびフランス(Pleiasと連携)もカバーしています。韓国のユーザーに加えて他の市場にも提供する多言語エージェントを構築している場合は、同じパイプライン内で国をまたいだペルソナをブレンドできます。
自律エージェントにとって重要な理由
今日のほとんどのエージェントはアイデンティティに無関心です。つまり、誰に対しているのかという根拠を持たずに、指示に従うだけです。たとえば、米国の予約慣習を使って韓国の病院の予約を取るエージェントや、60歳の患者に반말(「banmal」、くだけた話し方)で呼びかけるようなエージェントは、単に不自然に感じるだけではありません。失敗しています。
Nemotron-Personas-Koreaは、エージェントに韓国での稼働コンテキストを与えることでこの状況を変えます。ペルソナをシステムプロンプトに読み込むと、エージェントはそのペルソナの地域、職業、コミュニケーションの規範、そしてドメインの専門知識を継承します。
これは、どのエージェントのフレームワークでも機能します。NemoClaw(NVIDIA OpenShellのサンドボックス上で常時稼働するエージェントのための、NVIDIAのオープンソースのリファレンススタック)でデプロイすることも、プロダクションの推論にはNVIDIA NIMを介して提供することも、あるいはNVIDIA APIを直接呼び出すこともできます。ペルソナ層はフレームワークに依存せず、実在する韓国の人口統計に裏付けられた、よく構造化されたシステムプロンプトとして機能します。
チュートリアル:合成ペルソナからソブリンエージェントへ
リソース
- Nemotron-Personas-Korea トレーニングのシード用
- NeMo Data Designer ドメイン固有データを合成するために
- NVIDIA NemoClaw 常時稼働のエージェントをデプロイするために
- NVIDIA Developer Discord コミュニティサポートのために
ステップ1:データセットを読み込み、探索する
データセットを読み込み、利用可能な内容を確認します。各レコードには、構造化された人口統計フィールドと、豊かな自然言語のペルソナ・ナラティブが含まれます。
from datasets import load_dataset
# Koreaのペルソナデータセットを読み込む
dataset = load_dataset("nvidia/Nemotron-Personas-Korea")
# 利用可能な全フィールドを確認する
print(dataset["train"].column_names)
# スキーマを理解するために、1件のレコードをプレビューする
print(dataset["train"][0])
ステップ2:ペルソナを絞り込み、選択する
職業、地域、年齢、または任意の組み合わせでデータセットをフィルタし、ターゲットのドメインに合うペルソナを見つけます。ここでは韓国の公衆衛生エージェントを構築します。
# 健康関連の職業でフィルタする
# "보건" = public health, "간호" = nursing, "의료" = medical, "의사" = doctors
health_personas = dataset["train"].filter(
lambda x: "보건" in x["occupation"] or "간호" in x["occupation"] or "의료" in x["occupation"]
)
print(f"Found {len(health_personas)} health personas")
# エージェントの根拠となるペルソナを1つ選択する
persona = health_personas[0]
print(persona)
地域(例:済州島を拠点とする医療従事者のみ)、教育レベル、ライフステージなどによって、さらに絞り込むことができます。データセットは十分に大きいため、かなり具体的な切り口を見つけられます。
ステップ3:エージェントの振る舞いを定義する
ここで、ペルソナのデータがエージェントの振る舞いになります。構造化されたフィールド――名前、地域、職業、スキル――はエージェントのアイデンティティになります。その上に、行動指示とタスクの範囲を重ねます。結果として、特定の役割と地域における韓国の専門家のように推論するエージェントが得られます。
# 人物属性(persona attributes)からシステムプロンプトを構築する
# 下記のプロンプトは、エージェントに対して次を指示します:
# - 敬語(존댓말)を用いた正式な韓国語で応答する
# - 地元の公衆衛生クリニックに関する案内を提供する
# - 韓国の公衆衛生政策に基づいて回答する
# - 相談では文化的な文脈を考慮する
system_prompt = f"""당신은 한국의 공중보건 상담 AI 에이전트입니다.
[신원] # Identity
- 이름: {persona['name']} # Name
- 지역: {persona['region']} # Region
- 직업: {persona['occupation']} # Occupation
- 전문분야: {persona['skills']} # Specialization
[행동 지침] # Behavior guidelines
- 한국어 존댓말을 사용하여 응답하세요. # Use formal Korean
- 지역 보건소 및 공공 의료 체계에 대한 안내를 제공하세요. # Guide on local clinics
- 한국 공중보건 정책과 절차를 기반으로 정확한 정보를 제공하세요. # Follow KR health policy
- 문화적 맥락을 고려하여 상담하세요. # Consider cultural context
[업무 범위] # Task scope
- 예방접종 일정 안내 # Vaccination scheduling
- 건강검진 절차 설명 # Health screening procedures
- 지역 보건 자원 연결 # Connect to local health resources
- 공중보건 관련 일반 상담 # General public health consultation
"""
ステップ4:エージェントをデプロイする
人物属性に基づくプロンプトを、推論のためのモデルに接続します。セットアップに応じて、次の3つの選択肢があります:
- NVIDIA APIカタログ — 最も速く試せます(以下に表示)
- NVIDIA NIM — 本番環境のデプロイ用に自己ホストする推論
- NemoClaw — 常時稼働エージェントをデプロイするための参照スタック。どこでも動作し、DGX Spark経由でRTX PC上でも動きます
from openai import OpenAI
# NVIDIA APIカタログ(OpenAI互換)
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key="nvapi-YOUR_KEY" # build.nvidia.comでキーを取得する
)
response = client.chat.completions.create(
model="nvidia/nemotron-nano-8b-v1",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": "독감 예방접종은 언제 맞아야 하나요?"} # 「インフルエンザの予防接種はいつ受けるべきですか?」
],
temperature=0.7,
max_tokens=512
)
print(response.choices[0].message.content)
同じワークフローはどの領域にも適用できます。人物フィルタとタスクスコープを入れ替えるだけで、新しいエージェントが作れます。例えば、금융(geum-yung、ファイナンス)のpersonaはリテール銀行のアドバイザーになり、교육(gyoyug、教育)のpersonaはチューターアシスタントになり、公무원(gongmuwon、公務員)のpersonaは政府の保健サービスエージェントになります。
グラウンディング(grounding)の変更点
同じ質問——「독감 예방접종은 언제 맞아야 하나요?」(インフルエンザの予防接種はいつ受けるべきですか?)—を、人物グラウンディングあり/なしで回答した例を示します。
| 人物なし | 韓国の保健従事者personaあり | |
|---|---|---|
| 言語 | 英語/一般的な韓国語で応答する | 健康相談に適した自然な존댓말 |
| 内容 | CDC/グローバルなガイダンスを参照 | 韓国の보건소(保健所)スケジュール、全国の予防接種プログラムを参照 |
| 具体性 | 「最寄りのクリニックに行ってください」 | 「最寄りの보건소で無料接種が可能です」+地域文脈 |
| 信頼 | なし | 韓国の公衆衛生政策を引用し、専門的な医療韓国語を用いる |
personaは翻訳を超えます。文脈化され、その結果、ユーザーが信頼するエージェントになります。
返却形式: {"translated": "翻訳されたHTML"}ソウルで一緒にビルドしませんか
NVIDIA Nemotron Developer Days が本日・明日(2026年4月21〜22日)ソウルで開催されます。GTCの外で開催されるのは今回が初めてです。主権AIやオープンモデルに関する技術セッションに加え、ハンズオンのハッカソンも実施。Nemotron-Personas-Koreaを使って、ドメイン特化型の韓国語エージェントとクロー(Claw)を作るチャンスがあります。
現地参加、またはライブストリームでご参加ください。将来のNVIDIAチュートリアルに掲載されるチャンスとして、あなたが作ったものを共有してください。






