Кликните на слику изнад да бисте погледали видео лекцију
Модели великог обима (LLMs) нису само за чет-ботове и генерисање текста. Могуће је изградити апликације за претрагу користећи Ембедингс. Ембедингс су нумеричке репрезентације података, познате и као вектори, и могу се користити за семантичку претрагу података.
У овој лекцији, направићете апликацију за претрагу за нашу образовну стартап компанију. Наш стартап је непрофитна организација која пружа бесплатно образовање студентима у земљама у развоју. Стартап поседује велики број YouTube видеа које студенти могу користити за учење о вештачкој интелигенцији. Циљ је изградити апликацију за претрагу која омогућава студентима да претражују YouTube видео записе тако што ће уписати питање.
На пример, студент може уписати „Шта су Jupyter Notebooks?“ или „Шта је Azure ML?“ и апликација за претрагу ће вратити листу YouTube видеа који су релевантни за питање, а још боље, апликација ће вратити линк до дела видеа где се налази одговор на питање.
У овој лекцији, обрадићемо:
- Семантичка претрага наспрам претраге по кључним речима.
- Шта су текстуални ембедингс.
- Креирање индекса текстуалних ембедингса.
- Претраживање индекса текстуалних ембедингса.
Након завршетка ове лекције, моћи ћете:
- Разликовати семантичку претрагу од претраге по кључним речима.
- Објаснити шта су текстуални ембедингс.
- Креирати апликацију користећи ембедингс за претрагу података.
Креирање апликације за претрагу ће вам помоћи да разумете како да користите ембедингс за претрагу података. Такође ћете научити како да изградите апликацију за претрагу коју студенти могу користити за брзо проналажење информација.
Лекција укључује индекс ембедингса транскрипата YouTube видеа са Microsoft AI Show YouTube канала. AI Show је YouTube канал који вас учи о вештачкој интелигенцији и машинском учењу. Индекс ембедингса садржи ембедингсе за сваки транскрипт YouTube видеа до октобра 2023. Користићете овај индекс ембедингса да изградите апликацију за претрагу за наш стартап. Апликација за претрагу враћа линк до дела видеа где се налази одговор на питање. Ово је одличан начин да студенти брзо пронађу потребне информације.
Следе пример семантичке претраге за питање „Можете ли користити rstudio са azure ml?“. Погледајте YouTube URL, видећете да URL садржи временску ознаку која вас води до дела видеа где се налази одговор на питање.
Можда се питате, шта је семантичка претрага? Семантичка претрага је техника претраге која користи семантику, или значење речи у упиту, да би вратила релевантне резултате.
Ево примера семантичке претраге. Рецимо да желите да купите ауто, можда бисте претраживали „мој аутомобил из снова“, семантичка претрага разуме да не сањате о аутомобилу, већ да тражите свој идеалан ауто. Семантичка претрага разуме вашу намеру и враћа релевантне резултате. Алтернатива је претрага по кључним речима која би буквално претраживала снове о аутомобилима и често враћала нерелевантне резултате.
Текстуални ембедингс су техника репрезентације текста која се користи у обради природног језика. Текстуални ембедингс су семантичке нумеричке репрезентације текста. Ембедингс се користе за представљање података на начин који је лако разумљив машини. Постоји много модела за креирање текстуалних ембедингса, у овој лекцији ћемо се фокусирати на генерисање ембедингса користећи OpenAI Embedding Model.
Ево примера, замислите да је следећи текст део транскрипта из једне епизоде на AI Show YouTube каналу:
Today we are going to learn about Azure Machine Learning.
Проследили бисмо текст OpenAI Embedding API-ју и он би вратио следећи ембединг који се састоји од 1536 бројева, познатих као вектор. Сваки број у вектору представља различит аспект текста. Ради прегледности, ево првих 10 бројева у вектору.
[-0.006655829958617687, 0.0026128944009542465, 0.008792596869170666, -0.02446001023054123, -0.008540431968867779, 0.022071078419685364, -0.010703742504119873, 0.003311325330287218, -0.011632772162556648, -0.02187200076878071, ...]Индекс ембедингса за ову лекцију је креиран помоћу серије Python скрипти. Скрипте, заједно са упутствима, можете пронаћи у README у фолдеру 'scripts' за ову лекцију. Не морате да покрећете ове скрипте да бисте завршили лекцију, јер је индекс ембедингса већ обезбеђен.
Скрипте извршавају следеће операције:
- Транскрипт за сваки YouTube видео у AI Show плејлисти се преузима.
- Користећи OpenAI Functions, покушава се издвојити име говорника из првих 3 минута транскрипта YouTube видеа. Име говорника за сваки видео се чува у индексу ембедингса под називом
embedding_index_3m.json. - Текст транскрипта се затим дели на текстуалне сегменте од 3 минута. Сегмент укључује око 20 речи које се преклапају са следећим сегментом како би се осигурало да ембединг за сегмент није прекинут и да пружа бољи контекст претраге.
- Сваки текстуални сегмент се затим прослеђује OpenAI Chat API-ју ради сажимања текста у 60 речи. Сажетак се такође чува у индексу ембедингса
embedding_index_3m.json. - На крају, текст сегмента се прослеђује OpenAI Embedding API-ју. Embedding API враћа вектор од 1536 бројева који представља семантичко значење сегмента. Сегмент заједно са OpenAI ембединг вектором се чува у индексу ембедингса
embedding_index_3m.json.
Ради једноставности лекције, индекс ембедингса се чува у JSON фајлу под називом embedding_index_3m.json и учитава у Pandas DataFrame. Међутим, у продукцији, индекс ембедингса би био сачуван у векторској бази података као што су Azure Cognitive Search, Redis, Pinecone, Weaviate, и други.
Научили смо о текстуалним ембедингсима, следећи корак је да научимо како да користимо текстуалне ембедингсе за претрагу података, а посебно како да пронађемо најсличније ембедингсе за дати упит користећи косинусну сличност.
Косинусна сличност је мера сличности између два вектора, често се назива и претрага најближег суседа. Да бисте извршили претрагу косинусне сличности, потребно је да векторизујете текст упита користећи OpenAI Embedding API. Затим израчунајте косинусну сличност између вектора упита и сваког вектора у индексу ембедингса. Запамтите, индекс ембедингса има вектор за сваки текстуални сегмент транскрипта YouTube видеа. На крају, сортирајте резултате према косинусној сличности, а текстуални сегменти са највишом косинусном сличношћу су најсличнији упиту.
Са математичке тачке гледишта, косинусна сличност мери косинус угла између два вектора пројектована у више димензионални простор. Ова мера је корисна, јер ако су два документа удаљена по Еуклидовој удаљености због величине, они и даље могу имати мањи угао између себе и самим тим већу косинусну сличност. За више информација о једначинама косинусне сличности, погледајте Cosine similarity.
Следеће, научићемо како да изградимо апликацију за претрагу користећи ембедингсе. Апликација за претрагу ће омогућити студентима да претражују видео записе тако што ће уписати питање. Апликација за претрагу ће вратити листу видеа који су релевантни за питање. Такође ће вратити линк до дела видеа где се налази одговор на питање.
Ово решење је изграђено и тестирано на Windows 11, macOS и Ubuntu 22.04 користећи Python 3.10 или новији. Python можете преузети са python.org.
На почетку ове лекције представили смо наш стартап. Сада је време да омогућимо студентима да изграде апликацију за претрагу за своје задатке.
У овом задатку, креираћете Azure OpenAI Services који ће се користити за изградњу апликације за претрагу. Креираћете следеће Azure OpenAI Services. Биће вам потребна Azure претплата да бисте завршили овај задатак.
- Пријавите се на Azure портал.
- Изаберите икону Cloud Shell у горњем десном углу Azure портала.
- Изаберите Bash као тип окружења.
За ова упутства, користимо ресурсну групу под називом "semantic-video-search" у East US. Можете променити назив ресурсне групе, али приликом промене локације за ресурсе, проверите табелу доступности модела.
az group create --name semantic-video-search --location eastusИз Azure Cloud Shell-а, покрените следећу команду да бисте креирали ресурс Azure OpenAI Service.
az cognitiveservices account create --name semantic-video-openai --resource-group semantic-video-search \
--location eastus --kind OpenAI --sku s0Из Azure Cloud Shell-а, покрените следеће команде да бисте преузели крајњу тачку и кључеве за ресурс Azure OpenAI Service.
az cognitiveservices account show --name semantic-video-openai \
--resource-group semantic-video-search | jq -r .properties.endpoint
az cognitiveservices account keys list --name semantic-video-openai \
--resource-group semantic-video-search | jq -r .key1Из Azure Cloud Shell-а, покрените следећу команду да бисте деплојтовали OpenAI Embedding модел.
az cognitiveservices account deployment create \
--name semantic-video-openai \
--resource-group semantic-video-search \
--deployment-name text-embedding-ada-002 \
--model-name text-embedding-ada-002 \
--model-version "2" \
--model-format OpenAI \
--sku-capacity 100 --sku-name "Standard"Отворите solution notebook у GitHub Codespaces и пратите упутства у Jupyter Notebook-у.
Када покренете notebook, биће вам затражено да унесете упит. Поље за унос ће изгледати овако:
Након завршетка ове лекције, погледајте нашу Generative AI Learning колекцију да наставите са усавршавањем знања о генеративној вештачкој интелигенцији!
Прелазимо на лекцију 9 где ћемо погледати како изградити апликације за генерисање слика!
Одрицање од одговорности:
Овај документ је преведен помоћу услуге за превођење вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.


