合成ペルソナで韓国語AIエージェントを実社会の属性に適合させる方法
本記事は、合成ペルソナを用いて韓国語AIエージェントを実社会の人口統計分布に適合させる具体的な手法を解説し、開発者が属性を正確に反映したエージェントを構築する方法を示している。
キーポイント
合成ペルソナの構築プロセス
既存の人口統計データに基づき、多様な属性を持つ仮想ユーザーを生成する手法を解説。
エージェントへの人口統計マッピング
生成したペルソナをエージェントの学習・評価データに組み込み、実社会の分布と一致させる方法。
韓国語圏エージェントへの適用
言語固有のニュアンスと人口統計特性を両立させるためのプロンプト設計およびファインチューニングの具体例。
影響分析・編集コメントを表示
影響分析
本手法は、言語圏固有の人口統計をエージェントに組み込む実用的な枠組みを提供し、地域特化型AI開発の標準化を促進する。合成ペルソナを用いたアプローチは、プライバシー規制が厳しい環境でも多様なユーザー属性をシミュレート可能にするため、実社会への適用障壁を下げる。結果として、韓国語圏を含む非英語圏のAIエージェント開発において、公平性と実用性の両立が現実的な目標となる。
編集コメント
技術ブログとしては珍しく、人口統計という社会科学的要素をエージェント設計に明示的に組み込んだ点が高く評価できる。実装コードの公開まで期待したいが、地域固有のバイアス低減という観点から、今後のエージェント開発ガイドラインに与える影響は大きい。
記事一覧へ戻る
今日多くのAIエージェント(AI agents)を支えるモデルは、主に英語のWebデータで学習されています。それらは、韓国語の敬語体系(Korean honorific structures)、地域特有の職業パターン、そして韓国ユーザーが期待する文化的コンテキストを見落としています。米国の医療ワークフロー(U.S. healthcare workflows)を韓国の公衆衛生システムに適用するエージェントは、本番環境での運用にはまだ準備ができていません。
Nemotron-Personas-Koreaはこの課題を解決します。本データセットは、韓国統計情報サービス(Korean Statistical Information Service, KOSIS)、大法院(Supreme Court of Korea)、国民健康保険公団、韓国農村経済研究院の公式統計およびシードデータに基づいた600万人分の完全合成ペルソナ(synthetic personas)を提供します。設計段階ではNAVER Cloudがシードデータとドメイン専門知識を提供しました。
各ペルソナは人口統計学的に正確ですが、個人識別情報(personally identifiable information, PII)を1件も含んでいません。韓国個人情報保護法(Personal Information Protection Act, PIPA)の遵守を念頭に設計されています。また、韓国は機微データの合成版を用いてモデルを学習するためのガバナンスを確立する公式「合成データ生成ガイド(Synthetic Data Generation guide)」を公開している数少ない国の一つです。本データセットもこのアプローチに従っています。
このチュートリアルでは、ホスト型API(hosted APIs)を使用して、データセットのフィルタリングから推論まで約20分で合成ペルソナを実稼働する韓国エージェントに変換する方法を解説します。
韓国専用のデータセット
| 属性 | 詳細 |
|---|---|
| 総ペルソナ数 | 700万人(100万件のレコード × 各7ペルソナ) |
| ペルソナフィールド | 26項目:7つのペルソナフィールド、6つの属性フィールド、12の人口統計・地理的文脈フィールド、および1つの一意識別子 |
| 地理的カバー範囲 | 韓国の全17道・広域市および25区 |
| 氏名 | 約20万9千の固有名称(118姓、約2万1400名) |
| 職業 | テクノロジー、製造業、公的部門などを反映した2000以上のカテゴリ |
| ペルソナタイプ | プロフェッショナル、ファミリー、スポーツ、アート、トラベル、料理、簡潔版 |
| 人生の段階 | 学生、兵役、雇用、失業、退職 |
| 言語 | 自然な韓国語 |
| ライセンス | CC BY 4.0 |
Nemotron-Personas-Koreaは、合成データ用のNVIDIAオープンソース複合AIシステムであるNeMo Data Designerを使用して生成されました。このパイプライン(pipeline)は、統計的根拠付けのための確率的グラフィカルモデル(Probabilistic Graphical Model, Apache-2.0)と、韓国語によるナラティブ生成のためのGemma-4-31Bを組み合わせます。人口データはKOSIS(2020~2026年版)から取得し、名前の分布は大法院(Supreme Court of Korea)から提供されます。
Nemotron-Personas-Koreaは、米国、日本、インド、シンガポール(AI Singapore協力)、ブラジル(WideLabs協力)、フランス(Pleias協力)もカバーするNemotron-Personas Collectionの最新追加です。韓国ユーザーに加え他の市場にも対応するマルチリンガルエージェント(multilingual agent)を構築する場合、同じパイプライン内で国を跨いだペルソナをブレンドすることができます。
自律型エージェントにとってこれが重要な理由
現在の多くのエージェントはアイデンティティを認識しません。提供先のユーザー属性に基づかず、指示に従うだけです。例えば、米国の予約システムを用いて韓国の病院の予約を行うエージェントや、60代の患者に반말(「banmal」、丁寧でない話し方)で話すエージェントは、単に違和感があるだけでなく、失敗します。
Nemotron-Personas-Koreaは、エージェントに韓国の運用コンテキスト(operating context)を与えることでこの問題を変えます。システムプロンプト(system prompt)にペルソナ(persona)を読み込ませれば、エージェントはそのペルソナの地域、職業、コミュニケーション規範、ドメイン固有の専門知識を継承します。
これはあらゆるエージェントフレームワーク(agent framework)で動作します。NemoClaw(常時稼働型エージェントをNVIDIA OpenShellサンドボックスで実行するためのNVIDIAオープンソース参照スタック。RTX PCからDGX Sparkまであらゆるハードウェアに対応)でデプロイするか、NVIDIA NIM(NVIDIA NIM)を通じて本番環境の推論(inference)を提供するか、直接NVIDIA APIを呼び出してください。ペルソナレイヤーはフレームワーク非依存(framework-agnostic)であり、実際の韓国の人口統計データに基づいた構造化されたシステムプロンプトとして機能します。
チュートリアル:合成ペルソナから自律エージェントへ
🔗 リソース
- トレーニングのシード(seeding)用 Nemotron-Personas-Korea
- ドメイン固有データ合成用 NeMo Data Designer
- 常時稼働エージェントのデプロイ(deploying)用 NVIDIA NemoClaw
- コミュニティサポート用 NVIDIA Developer Discord
ステップ1:データセットの読み込みと探索
データセットを読み込み、利用可能な内容を確認します。各レコードには、構造化された人口統計フィールドと、リッチな自然言語によるペルソナ(persona)の物語が含まれています。
from datasets import load_dataset
# Load the Korea personas dataset
dataset = load_dataset("nvidia/Nemotron-Personas-Korea")
# See all available fields
print(dataset["train"].column_names)
# Preview a single record to understand the schema
print(dataset["train"][0])ステップ2:ペルソナのフィルタリングと選択
職業、地域、年齢、またはフィールドの任意の組み合わせでデータセットをフィルタリングし、対象ドメインに一致するペルソナ(persona)を探します。ここでは韓国の公衆衛生エージェントを構築します。
# Filter for healthcare-related occupations
# "보건" = 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")
# Select one persona to ground your agent
persona = health_personas[0]
print(persona)地域(例:済州島在住の医療従事者のみ)、学歴、ライフステージなどでさらに絞り込むことも可能です。データセットは十分に大きく、非常に特定のセクションを見つけることができます。
ステップ3:エージェントの行動定義
これが、ペルソナデータがエージェントの行動へと変換される部分です。構造化されたフィールド——名前、地域、職業、スキル——がエージェントのアイデンティティとなります。その上に行動指示とタスクスコープをレイヤーとして重ねます。結果として、特定の役割と地域における韓国のプロフェッショナルのように推論するエージェントが完成します。
# ペルソナ属性からシステムプロンプトを構築する
# 以下のプロンプトはエージェントに対して以下を実行するよう指示します:
# - 丁寧な韓国語(존댓말)で回答する
# - 地域の公衆衛生クリニックに関するガイダンスを提供する
# - 韓国の公衆衛生政策に基づいて回答する
# - 相談において文化的文脈を考慮する
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:エージェントのデプロイ
ペルソナに grounds を置いたプロンプトを推論用モデルに接続します。セットアップに応じて、以下の3つのオプションから選択できます:
NVIDIA API catalog — 最も迅速なテスト方法(以下参照)
NVIDIA NIM — 本番環境向けデプロイのためのセルフホスト型推論
NemoClaw — 常時稼働エージェントのデプロイ用リファレンススタック。DGX Spark経由でRTX PCを含むあらゆる環境で実行可能
from openai import OpenAI
# NVIDIA API catalog(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」、金融)ペルソナはリテール銀行アドバイザーになり、교육(「gyoyug」、教育)ペルソナは家庭教師アシスタントになり、공무원(「gongmuwon」、公務員)ペルソナは政府保健サービスエージェントになります。
グランディング(Grounding)がもたらす変化
以下は、同じ質問——「독감 예방접종은 언제 맞아야 하나요?」(インフルエンザの予防接種はいつ受ければよいですか?)——に対する回答で、ペルソナによるグランディングの有無を比較したものです。
言語
英語または一般的な韓国語で応答
健康相談に適した自然な존댓말(敬語)
コンテンツ
CDC(米国疾病管理予防センター)または世界のガイドラインを参照
韓国の보건소(保健所)のスケジュールおよび国家予防接種プログラムを参照
具体性
「地元のクリニックを受診してください」
地域文脈を踏まえた「가까운 보건소에서 무료 접종이 가능합니다」(近くの保健所で無料接種が可能です)
信頼性
なし
韓国の公衆衛生政策を引用し、専門的な医療韓国語を使用
このペルソナは翻訳を超えたものです——文脈を付与し、ユーザーが信頼するエージェントを実現します。
私たちと一緒にソウルで開発しましょう
NVIDIA Nemotron Developer Daysが、本日および明日の2026年4月21日~22日にソウルで開催されます。本イベントがGTC以外で実施されるのは今回が初めてです。主権AI(sovereign AI)やオープンモデル(open models)に関する技術セッションに加え、実習ハッカソン(hackathon)も用意されており、Nemotron-Personas-Koreaを活用してドメイン固有の韓国語エージェントや爪(claw)🦞を構築する機会があります。
対面またはライブ配信でご参加ください。開発した成果を投稿すれば、今後のNVIDIAチュートリアルで紹介されるチャンスがあります。
原文を表示
Back to Articles
The models powering most AI agents today were trained primarily on English web data. They miss Korean honorific structures, regional occupation patterns, and the cultural context that Korean users expect. An agent that applies U.S. healthcare workflows to the Korean public health system isn't ready for production.
Nemotron-Personas-Korea fixes this. The dataset provides 6 million fully synthetic personas grounded in official statistics and seed data from the Korean Statistical Information Service (KOSIS), the Supreme Court of Korea, the National Health Insurance Service, and the Korea Rural Economic Institute. NAVER Cloud contributed seed data and domain expertise during design.
Every persona is demographically accurate but contains zero personally identifiable information (PII). It’s designed with Korea's Personal Information Protection Act (PIPA) in mind. South Korea is also one of the few countries to publish an official Synthetic Data Generation guide, establishing governance for grounding models with synthetic versions of sensitive data. This dataset follows that approach.
In this tutorial, we'll turn a synthetic persona into a deployed Korean agent — from filtering the dataset to inference — in about 20 minutes using hosted APIs.
A Sovereign Dataset for South Korea
Attribute
Detail
Total personas
7 million (1 million records × 7 personas each)
Persona fields
26 fields: 7 persona fields, 6 persona attribute fields, 12 demographic & geographic contextual fields, and 1 unique identifier
Geographic coverage
All 17 Korean provinces, and 25 districts
Names
~209K unique names (118 surnames, ~21.4K given names)
Occupations
2K+ categories reflecting tech, manufacturing, public sector, etc.
Persona types
Professional, family, sports, arts, travel, culinary, concise
Life stages
Student, military service, employed, unemployed, retired
Language
Natural Korean
License
CC BY 4.0
Nemotron-Personas-Korea was generated using NeMo Data Designer, NVIDIA's open-source compound AI system for synthetic data. The pipeline pairs a Probabilistic Graphical Model (Apache-2.0) for statistical grounding with Gemma-4-31B for Korean-language narrative generation. Population data comes from KOSIS (2020–2026 releases); name distributions come from the Supreme Court of Korea.
Nemotron-Personas-Korea is the latest addition to the Nemotron-Personas Collection, which also covers the USA, Japan, India, Singapore (with AI Singapore), Brazil (with WideLabs), and France (with Pleias). If you're building a multilingual agent that serves Korean users alongside other markets, you can blend personas across countries in the same pipeline.
Why This Matters for Autonomous Agents
Most agents today are identity-blind. They follow instructions without any grounding in who they're serving. For example, an agent that books a Korean hospital appointment using US scheduling conventions, or addresses a 60-year-old patient in 반말 (“banmal,” informal language), doesn't just feel wrong. It fails.
Nemotron-Personas-Korea changes this by giving your agent a Korean operating context. Load a persona into the system prompt and the agent inherits that persona's region, occupation, communication norms, and domain expertise.
This works across any agent framework. Deploy with NemoClaw (NVIDIA's open-source reference stack for always-on agents running in NVIDIA OpenShell sandboxes, on anything from RTX PCs to DGX Spark), serve through NVIDIA NIM for production inference, or call the NVIDIA API directly. The persona layer is framework-agnostic, acting as a well-structured system prompt grounded in real Korean demographics.
Tutorial: From Synthetic Persona to Sovereign Agent
🔗 Resources
Nemotron-Personas-Korea for seeding training
NeMo Data Designer for synthesizing domain-specific data
NVIDIA NemoClaw for deploying always-on agents
NVIDIA Developer Discord for community support
Step 1: Load and Explore the Dataset
Load the dataset and explore what's available. Each record contains structured demographic fields alongside rich, natural-language persona narratives.
from datasets import load_dataset
Load the Korea personas dataset
dataset = load_dataset("nvidia/Nemotron-Personas-Korea")
See all available fields
print(dataset["train"].column_names)
Preview a single record to understand the schema
print(dataset["train"][0])
Step 2: Filter and Select a Persona
Filter the dataset by occupation, region, age, or any combination of fields to find personas that match your target domain. Here we'll build a Korean public health agent.
Filter for healthcare-related occupations
"보건" = 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")
Select one persona to ground your agent
persona = health_personas[0]
print(persona)
You can refine further by region (e.g., only Jeju-based health workers), education level, or life stage. The dataset is large enough to find highly specific slices.
Step 3: Define Your Agent Behavior
This is where persona data becomes agent behavior. The structured fields — name, region, occupation, skills — become the agent's identity. You layer behavioral instructions and task scope on top. The result is an agent that reasons like a Korean professional in a specific role and region.
Build a system prompt from persona attributes
The prompt below instructs the agent to:
- Respond using formal Korean (존댓말)
- Provide guidance on local public health clinics
- Base answers on Korean public health policy
- Consider cultural context in consultations
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
"""
Step 4: Deploy Your Agent
Connect your persona-grounded prompt to a model for inference. You have three options depending on your setup:
NVIDIA API catalog — fastest way to test (shown below)
NVIDIA NIM — self-hosted inference for production deployments
NemoClaw — reference stack for deploying always-on agents, runs anywhere, including on RTX PCs through DGX Spark
from openai import OpenAI
NVIDIA API catalog (OpenAI-compatible)
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key="nvapi-YOUR_KEY" # Get a key at build.nvidia.com
)
response = client.chat.completions.create(
model="nvidia/nemotron-nano-8b-v1",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": "독감 예방접종은 언제 맞아야 하나요?"} # "When should I get a flu shot?"
],
temperature=0.7,
max_tokens=512
)
print(response.choices[0].message.content)
The same workflow applies to any domain. Swap the persona filter and task scope, and you have a new agent: a 금융 ("geum-yung," finance) persona becomes a retail banking advisor, a 교육 ("gyoyug," education) persona becomes a tutoring assistant, a 공무원 ("gongmuwon," civil servant) persona becomes a government health services agent.
What Grounding Changes
Here's the same question — "독감 예방접종은 언제 맞아야 하나요?" (When should I get a flu shot?) — answered with and without persona grounding.
Without Personas
With Korean Health Worker Personas
Language
Responds in English/generic Korean
Natural 존댓말 appropriate for health consultation
Content
References CDC/global guidance
References Korean 보건소 schedule, national vaccination program
Specificity
"Visit your local clinic"
"가까운 보건소에서 무료 접종이 가능합니다" with regional context
Trust
None
Cites Korean public health policy, uses professional medical Korean
The persona goes beyond translation — it contextualizes and results in an agent your users will trust.
Come Build with Us in Seoul
NVIDIA Nemotron Developer Days comes to Seoul today and tomorrow, April 21–22, 2026 — the first time the event has been held outside GTC. Two days of activities, including technical sessions on sovereign AI and open models, plus a hands-on hackathon where you'll have an opportunity to use Nemotron-Personas-Korea to build domain-specific Korean agents and a claw. 🦞
Join in person or via livestream. Share what you build for a chance to be featured in a future NVIDIA tutorial.
関連記事
NVIDIA、物理AI向けオープンフロンティアモデル「Cosmos 3」を発表
NVIDIA は、テキスト・画像・動画・音声・動作を扱う完全なオープン型多機能モデル「Cosmos 3」を発表した。この新モデルは推論と生成の両機能を備え、開発者が少ないデータ量で物理AIシステムを構築できる基盤を提供する。
今週は特大号
シモン・ウィルソンは、今週のニュースレターでAI生成画像やブログ記事5本、そして「Agentic Engineering Patterns」の新しい章を公開した。
Vercel AI GatewayでDeepSeek V4の利用が可能に
Vercel AI GatewayはDeepSeek V4(Pro/Flash)を提供開始した。両モデルは100万トークンコンテキストを標準搭載し、Proはエージェント型コーディングや数学推論に特化している。