RAG гэж юу вэ? Retrieval-Augmented Generation энгийнээр тайлбарлая
RAG (retrieval-augmented generation) бол AI загварт асуултад таны өөрийн мэдээллээр хариулуулах арга юм. Хэн нэгэн асуулт асуух үед таны аппликейшн эхлээд баримтуудаасаа хамгийн холбоотой хэсгүүдийг хайж, дараа нь тэдгээрийг асуулттай хамт загварт өгдөг. Загвар хариултаа зөвхөн сургалтын үед санамсаргүйгээр сурсан зүйлд биш, энэ текстэд суурилж бичдэг.
AI-аар бүтээхэд RAG яагаад чухал вэ
Том хэлний загвар дэлхийн ерөнхий мэдлэгтэй боловч таны бизнесийн талаар юу ч мэддэггүй: таны үнэ, дүрэм, бүтээгдэхүүний гарын авлага, өнгөрсөн долоо хоногийн дэмжлэгийн тасалбарууд. Мөн сургалтын хязгаартай тул сүүлийн үеийн юу ч мэддэггүй. Тэгсэн ч асуувал тэр итгэлтэй, боломжтой мэт боловч буруу хариулт өгч магадгүй.
Үүнийг засах гурван ерөнхий сонголт байдаг:
| Арга | Юу хийдэг вэ | Тохиромжтой |
|---|---|---|
| Бүгдийг prompt-д буулгах | Асуулт бүрт таны бүх баримтыг илгээх | Цөөн текст — хэдэн хуудас |
| RAG | Баримтаасаа хайж, холбогдох хэсгийг л илгээх | Том эсвэл өөрчлөгддөг цуглуулга: тусламжийн төв, гарын авлага, тэмдэглэл |
| Fine-tuning | Жишээн дээр загварыг нэмж сургах | Өнгө аяс, формат, давтагддаг ажил — өөрчлөгддөг баримт биш |
Орчин үеийн загварууд урт prompt хүлээн авдаг тул богино FAQ-ийн хувьд эхний сонголт ихэвчлэн зохино. RAG нь асуулт бүр дээр илгээхээс илүү их текст байхад хэрэгтэй болдог, учир нь илгээсэн үг бүр мөнгө, цаг зардаг (үзэх: LLM API-ууд хэрхэн төлбөр авдаг вэ).
Хэрэв та «манай баримттай чатлах» боломж, дэмжлэгийн туслах эсвэл дотоод мэдлэгийн хэрэгсэл бүтээж байгаа бол бараг мэдээж ямар нэгэн хэлбэрийн RAG бүтээж байна.
Өдөр тутмын жишээ
Нээлттэй номтой шалгалтыг төсөөлөөрэй. Санаанаасаа хариулах оюутан андуурах эсвэл дээрэлхэж магадгүй. Харин эхлээд зөв хуудсуудаа эргүүлээд, уншаад дараа нь хариулж болдог оюутан илүү найдвартай — зөв хуудсаа олсон л бол.
- Оюутан бол хэлний загвар.
- Сурах бичиг бол таны баримтууд.
- Зөв хуудсаа эргүүлэх бол хайлт (retrieval).
- Тэдгээр хуудаснаас хариулт бичих бол үүсгэлт (generation).
RAG бол нээлттэй номтой хувилбар. Шалгалтын адил, хариултын чанар нь зөв хуудсыг олсон эсэхээс ихээхэн хамаарна.
RAG алхам алхмаар хэрхэн ажилладаг вэ
Ерөнхий RAG тохиргоо хоёр шаттай.
Баримтаа бэлтгэх (урьдчилан хийгдэнэ):
- Цуглуул эх материалаа — тусламжийн нийтлэл, PDF, бодлого, бүтээгдэхүүний мэдээлэл.
- Chunk болго: урт баримтыг жижиг хэсгүүдэд хуваа, ихэвчлэн хэдэн догол мөр бүр, ингэснээр хайлт зөвхөн холбогдох хэсгийг буцаана.
- Хэсэг бүрийг embed хий: embedding загварт илгээж текстийг embedding — утгыг нь агуулсан тооны урт жагсаалт болгон хөрвүүл. Ижил төстэй зүйлийн тухай текстүүд ижил төстэй тоотой болдог.
- Хадгал: chunk-ууд болон тэдгээрийн embedding-ийг утгаар хайх боломжтой өгөгдлийн санд хадгал (ихэвчлэн vector database эсвэл vector index гэж нэрлэдэг).
Асуултад хариулах (асуулт бүр дээр хийгдэнэ):
- Асуултаа embed хий ижил embedding загвараар.
- Татаж ав асуултын embedding-д хамгийн ойр chunk-ууд — жишээ нь хамгийн дээд таван.
- Prompt бүтээ: заавар, татсан chunk-ууд, асуулт.
- Үүсгэ: хэлний загвар тэр chunk-ууд дээр тулгуурлан хариулт бичдэг, аль нь ашигласнаа иш татвал сайн.
Утгаар нь хайх нь энэ ажиллахад чухал: «Мөнгөө буцааж авах» гэсэн асуултад «Буцаах бодлого» гэсэн chunk олдож болно, хэдийгээр нэг ч үг давхцахгүй байсан ч.
Жишээ ажил: спорт заалны тусламжийн туслах
Заал 40 тусламжийн нийтлэлтэй бөгөөд вэбсайтдаа чатын туслах хүсч байг. Гишүүн асуув: «Аялж байхдаа гишүүнчлэлээ түр зогсоож болох уу?»
Аппликейшн асуултыг embed хийж, хамгийн ойрын гурван chunk-ыг татна. Нэг нь ингэж уншина:
Гишүүнчлэлийг түр зогсоох: Сар бүрийн төлөвлөгөөтэй гишүүд жилд
2 сар хүртэл гишүүнчлэлээ түр зогсоож болно. Үүнийг эхлэхээс
дор хаяж 7 хоногоос өмнө урд ширээн дээр эсвэл аппликейшнаар хүс.
Дараа нь загварт илгээсэн prompt ийм харагдана:
Чи бол Northside Gym-ийн тусламжийн туслах.
Зөвхөн доорх эх сурвалжуудаас хариулж. Хариулт тэдгээрт байхгүй бол
мэдэхгүй гэж хэлээд урд ширээтэй холбогдохыг санал болго.
Ашигласан эх сурвалжаа дурд.
[Эх сурвалж 1: Гишүүнчлэлийг түр зогсоох] Сар бүрийн төлөвлөгөөтэй гишүүд...
[Эх сурвалж 2: Гишүүнчлэлээ цуцлах] ...
[Эх сурвалж 3: Зочны пасс] ...
Асуулт: Аялж байхдаа гишүүнчлэлээ түр зогсоож болох уу?
Загвар ингэж хариулна: «Тийм — сар бүрийн төлөвлөгөөтэй бол жилд хоёр сар хүртэл гишүүнчлэлээ түр зогсоож болно. Үүнийг урд ширээн дээр эсвэл аппликейшнаар дор хаяж 7 хоногоос өмнө хүс (эх сурвалж: Гишүүнчлэлийг түр зогсоох).»
Заал ямар ч зүйлийг дахин сургаагүй. Түр зогсоох бодлогоо өөрчлөхөд нийтлэлээ шинэчилдэг, аппликейшн тэр chunk-ыг дахин embed хийдэг, дараагийн хариулт үүнийг тусгана.
Гол нэр томьёо
| Нэр томьёо | Утга |
|---|---|
| LLM | Том хэлний загвар — хариултыг бичдэг AI. Үзэх: LLM гэж юу вэ. |
| Embedding | Текстийн утгыг илэрхийлсэн тооны жагсаалт. |
| Embedding загвар | Embedding гаргадаг загвар. Ихэвчлэн chat загвараас тусдаа бөгөөд хамаагүй хямд. |
| Chunk | Баримтын хэсэг, тусад нь татаж болохоор хэмжээтэй. |
| Vector database / vector хайлт | Ижил төстэй embedding-тай зүйлийг олдог хадгалалт. Зарим энгийн өгөгдлийн сан ч үүнийг санал болгодог — жишээ нь Postgres pgvector өргөтгөлөөр. |
| Top-k | Асуулт бүрт хэдэн chunk татдаг вэ гэдэг. |
| Hybrid search | Утгаар хайхыг ердийн түлхүүр үгийн хайлттай хослуулах, энэ нь бүтээгдэхүүний код зэрэг яг таарах үгэнд тусалдаг. |
| Контекстийн цонх (context window) | Загвар нэг хүсэлтээр авч чадах текстийн дээд хэмжээ. |
| Үндэслэл / иш татах (grounding / citations) | Хариултыг тодорхой татсан эх сурвалжтай холбож, тэдгээрийг харуулах. |
Түгээмэл буруу ойлголт
- «RAG загварыг миний өгөгдөл дээр сургадаг.» Үгүй. Загвар огт өөрчлөгддөггүй; асуулт асуух үед нэмэлт текст уншдаг.
- «RAG гэдэг нь хий үзмэр огт байхгүй гэсэн үг.» Бага байна гэсэн үг. Хэрэв хайлт зөв chunk-ыг алдвал, эсвэл хариулт баримтад байхгүй бол загвар дахин таах боломжтой. «Мэдэхгүй» гэж хэлэхийг заа, мөн мэддэг хариултай асуултаар туршаарай.
- «Надад тусгай vector database хэрэгтэй.» Ихэнхдээ хэрэггүй. Өгөгдөл бага байвал аль хэдийн байгаа өгөгдлийн санд vector өргөтгөл, эсвэл энгийн түлхүүр үгийн хайлт ч хангалттай байж болно.
- «Том chunk илүү сайн.» Хэт том бол хэрэггүй текст олон илгээж (өндөр зардал, будлиан); хэт жижиг бол chunk нь утгаа учруулсан контекстээ алддаг. Тохируулах шаардлагатай.
- «Бүгдийг л байршуул.» Хуучирсан, давхардсан, зөрчилтэй баримтууд зөрчилтэй хариулт гаргана. Эх материалаа цэвэрлэх нь ихэвчлэн хамгийн том сайжруулалт.
- «Хэн ч ямар ч баримтыг харж болно.» Зөвхөн таныг тэгж бүтээсэн бол. Зарим баримт тодорхой хэрэглэгчдэд хувийн бол хайлт өөрөө асуугч хэн болохыг шүүх ёстой, үгүй бол туслах нэг үйлчлүүлэгчийн мэдээллийг нөгөөд иш татаж болно.
Үнэ
RAG боломж ихэвчлэн гурван үргэлжилсэн зардалтай: баримтаа embed хийх (бага, ихэвчлэн нэг удаагийн), асуулт бүрийг embed хийх (маш бага), мөн хэлний загварын дуудлага (гол зардал, илгээх chunk-ын тооноос хамаарна). Нэмээд өгөгдлийн сан дээрх хадгалалт. AI үйлчилгээ үүнийг таны өөрийн дансанд тооцдог тул тэнд зардлын хязгаар тавиарай.
AI бүтээгчээсээ юу асуух вэ
- «RAG бүтээхээсээ өмнө шалга: манай контент prompt-д шууд оруулахад хангалттай бага уу?»
- «Тусламжийн нийтлэлүүдийг хэдэн догол мөр бүхий chunk-уудад хуваа, chunk бүрийн гарчиг болон эх холбоосыг хадгал, embedding-ийг манай өгөгдлийн санд хадгал.»
- «Hybrid search ашигла — утгын болон түлхүүр үгийн — бүтээгдэхүүний код таарахын тулд.»
- «Загварт зөвхөн татсан эх сурвалжаас хариулахыг, мэдэхгүй бол хэлэхийг, хариулт бүрийн доор эх сурвалжийг харуулахыг заа.»
- «Нэвтэрсэн хэрэглэгчийн харах эрхтэй баримтууд дээр л хай.»
- «Баримт засагдах бүрт автоматаар дахин embed хий.»
- «AI үйлчилгээний түлхүүрийг серверт, нууц хэлбэрээр хадгал, хөтөч дээр хэзээ ч бүү тавь.»
- «Асуулт, татсан chunk, хариулт бүрийг бүртгэ, муу хариултуудыг нь үзэх боломжтой байхаар.»
RAG Mythex дээр
Mythex нь бэлэн knowledge-base эсвэл RAG бүтээгдэхүүн агуулдаггүй. Харин таны аппликейшны дотор тийм системийн кодыг бичдэг: та баримтаа болон өөрийн AI үйлчилгээний түлхүүрээ авчирна, түлхүүр нь төслийн нууц хэлбэрээр хадгалагдана, агент татах болон чатын хэсгийг бүтээж, хадгалалтад төслийн Postgres өгөгдлийн сан ашиглана. Үйлчилгээний хэрэглээ таны AI үйлчилгээний дансанд тооцогдох бөгөөд Mythex кредит биш. Docs нь нэг энгийн AI боломжоор эхлээд, дараа нь ажиллаж байгаа үед RAG нэмэхийг санал болгодог — үзэх: AI аппликейшн бүтээх, мөн бидний AI чатбот аппликейшн бүтээх болон аппликейшндээ AI онцлог нэмэх гарын авлагууд.
Асуултууд
RAG энгийнээр юу вэ?
RAG (retrieval-augmented generation) бол AI загварт өөрийн мэдээллээс хариулуулах арга юм. Загвар хариулахаасаа өмнө таны аппликейшн баримтууддаа асуулттай хамгийн холбоотой хэсгүүдийг хайж, тэдгээрийг prompt-д оруулдаг. Тиймээс хариулт зөвхөн сургалтын үед сурсан зүйлд биш, тэр текстэд суурилна.
RAG нь миний өгөгдөл дээр AI-г сургадаг уу?
Үгүй. RAG загварыг огт өөрчлөхгүй. Асуулт асуух мөч бүрт холбогдох текстийг хайж, асуулттай хамт загварт өгдөг. Баримтыг шинэчлэхэд дараагийн хариулт шууд шинэ хувилбарыг ашиглаж чадна.
RAG нь fine-tuning-тай адил үү?
Үгүй. Fine-tuning нь жишээн дээр нэмж сургаж загварын зан төлөвийг өөрчилдөг бөгөөд удаан, хэв маяг эсвэл формат дээр илүү тохиромжтой. RAG нь асуулт асуух үед загварт унших баримтыг өгдөг бөгөөд өөрчлөгддөг мэдлэг эсвэл нарийн иш татах шаардлагатай мэдээлэлд илүү тохиромжтой.
RAG нь AI-ийн хий үзмэрийг (hallucination) зогсоох уу?
Бууруулдаг ч бүрэн арилгадаггүй. Хайлт буруу хэсгийг олж эсвэл хариулт баримтад байхгүй бол загвар дахин таах боломжтой. Сайн RAG аппликейшнууд загварт мэдэхгүй бол тэр гэж хэлэхийг заагаад, ашигласан эх сурвалжаа харуулдаг.