Տեխնոլոգիական խորը սուզում՝ աշխատանքի ընդունման վերջնական հարթակ կառուցելու համար՝ օգտագործելով մեծ լեզվական մոդելներ և վեկտորային տվյալների բազաներ

«Գիտե՞ք ինչն է ավելի դժվար, քան խոտի դեզում ասեղ գտնելը: Գտնել կատարյալ աշխատանք կամ թեկնածու զբաղվածության հսկայական ոլորտում: Մի՛ վախեցիր, հարգելի ընթերցող, քանի որ մենք պատրաստվում ենք ձեռնամուխ լինել աշխատանքի թեկնածուների հետ համընկնման ամենատպավորիչ հարթակի ստեղծմանը: Պատրաստվեք սուզվելու մեքենայական ուսուցման, LLM-ների և վեկտորային տվյալների շտեմարանների խորքերը, քանի որ մենք ստեղծում ենք թվային Cupid աշխատաշուկայի համար»:

Ահ, հավերժական պար աշխատանք փնտրողների և գործատուների միջև, որը նման է թվային համատեղելիության բարդ վալսի: Տեխնոլոգիական հրաշալիքների այս դարաշրջանում, որտեղ նույնիսկ հացաթուխները կարող են խոսել սառնարանների հետ, ժամանակն է օգտագործել արհեստական ​​ինտելեկտի լավագույն տարբերակը՝ աշխատավայրում ներդաշնակություն ստեղծելու համար: Մեր սագան ծավալվում է խնամքով մշակված գործիքների և տեխնոլոգիաների համույթով, որը ներառում է AWS-ը, Hugging Face’s Transformers-ը և OpenAI-ի GPT-ի մի մասը: Եկեք տեխնիկական!

Ճարտարապետության ակնարկ

Պլատֆորմը կունենա երեք հիմնական բաղադրիչ.

1. Տվյալների ընդունում և պահպանում

  • Ռեզյումեները և աշխատանքի նկարագրությունները հավաքվում են համապատասխանաբար օգտագործողներից և գործատուներից:
  • Դրանք նախապես մշակվում են տեքստը մաքրելու և նշանավորելու համար:
  • AWS S3-ն օգտագործվում է տվյալների պահպանման և կառավարման համար:

2. NLP և համապատասխանող շարժիչ

  • Ռեզյումեները և աշխատանքի նկարագրությունները կոդավորված են խիտ վեկտորային ներկայացումների մեջ՝ օգտագործելով լեզվական մոդել, ինչպիսին է GPT-ը կամ հատուկ ճշգրտված մոդելը:
  • Նմանության չափիչները (օրինակ՝ կոսինուսի նմանությունը) օգտագործվում են վեկտորները համեմատելու և համընկնումների միավորները հաշվարկելու համար։
  • Ցածր միավորներով հանդիպումները զտելու համար սահմանվել է շեմ:

3. Օգտվողի միջերես և փոխազդեցություն

  • Վեբ վրա հիմնված օգտատիրոջ միջերեսը թեկնածուներին թույլ է տալիս վերբեռնել իրենց ռեզյումեները, իսկ գործատուներին՝ աշխատանքի նկարագրությունները:
  • AWS Lambda-ն և API Gateway-ը կարգավորում են օգտատերերի փոխազդեցությունները:

Հերթականության դիագրամներ

1. Թեկնածուի փոխազդեցություն

Candidate -> Platform: Upload Resume
Platform -> NLP Engine: Encode Resume
NLP Engine -> Platform: Matching Scores
Platform -> Candidate: Display Matching Jobs

2. Գործատուի փոխազդեցություն

Employer -> Platform: Post Job Description
Platform -> NLP Engine: Encode Job Description
NLP Engine -> Platform: Matching Scores
Platform -> Employer: Display Matching Candidates

Կոդի նմուշներ

1. Տվյալների ընդունում և պահպանում. սիմֆոնիա S3 ներդաշնակությամբ

Մենք սկսում ենք մեր գլուխգործոցը հումքի մշակմամբ՝ ռեզյումեները և աշխատանքի նկարագրությունները: Նվագախումբը ղեկավարող դիրիժորի նրբագեղությամբ մենք օգտագործում ենք AWS S3-ը՝ տեքստային տվյալների այս գանձարանը պահելու համար: Կոդը կազմակերպում է վերբեռնման և ներբեռնման գործընթացները՝ ապահովելով օգտատերերից տեղեկատվության անխափան հոսք դեպի հարթակ և հակառակը:

import boto3

s3 = boto3.client('s3', region_name='your-region', aws_access_key_id='your-access-key', aws_secret_access_key='your-secret-key')

def upload_to_s3(data, filename, bucket_name):
    s3.upload_fileobj(data, bucket_name, filename)

def download_from_s3(filename, bucket_name):
    obj = s3.get_object(Bucket=bucket_name, Key=filename)
    return obj['Body'].read().decode('utf-8')

2. NLP և համապատասխանող շարժիչ. AI բալետ

Ա՜խ, NLP, մեր անսամբլի թագը: Պատկերացրեք պրիմա-բալերինային տիեզերական բեմում: Այստեղ մենք ներգրավում ենք Hugging Face’s Transformers գրադարանը՝ պարզապես տեքստը վալսի վեկտորների վերածելու համար: Կոդը նրբագեղ կերպով կազմակերպում է այս փոխակերպումը, ստեղծելով կոդավորումների մեղեդի, որը ռեզոնանսվում է ռեզյումեների և աշխատանքի նկարագրությունների բուն էության հետ: Իսկ համատեղելիությունը չափե՞լ: Կոսինուսի նմանությունը թափանցում է ներս՝ ուշադրություն դարձնելով ամենաներդաշնակ զույգերին:

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

model_name = "distilbert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

def encode_text(text):
    inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
    outputs = model(**inputs)
    return outputs.pooler_output.detach().numpy()

def calculate_similarity(vector1, vector2):
    return cosine_similarity([vector1], [vector2])[0][0]

Դուք կարող եք ընտրել ձեր ընտրած ցանկացած մոդելի փոխարեն distilbert-base-uncased-ը, օրինակ՝ նախադասության տրանսֆորմատորները, սակայն նկատի ունենալով սահմանափակումները, օրինակ՝ 384-ից ավելի բառ ունեցող ցանկացած տեքստ լռելյայն կտրված է: Եթե ​​ունեք բավարար մարզման տվյալներ, կարող եք նաև օգտագործել այնպիսի մոդելներ, ինչպիսին է Word2Vec-ը: Այնուամենայնիվ, այս հոդվածի կոդի օրինակները և ճարտարապետությունը ենթադրում են, որ վերապատրաստման տվյալներ չկան:

3. UI և փոխազդեցություն. տեխնոլոգիական տանգո

Մեր մեծ բեմը լիարժեք չէր լինի առանց թեկնածուների և գործատուների պարահրապարակի: Flask Framework-ը կազմակերպում է այս մեծ գործը: Մինչ թեկնածուները վերբեռնում են իրենց ռեզյումեները, իսկ գործատուները նկարագրում են աշխատանքի նկարագրությունները React.js հավելվածում, ինտելեկտի ոգիները կուլիսներում պտտվում են տվյալների վրա հիմնված վալսի մեջ: Արդյունքները ցուցադրվում են որպես պոտենցիալ համընկնումների գոբելեն՝ տեխնոլոգիայի ուժի տեսողական վկայություն:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        text = request.form["text"]
        vector = encode_text(text)
        # The magical match-making with Pinecone or other vector database
        # Display the enchanting results
        return render_template("results.html", matches=matches)
    return render_template("index.html")

if __name__ == "__main__":
    app.run(debug=True)

Խնդրում ենք նկատի ունենալ, որ վերը նշված օրինակը հարթակի պարզեցված տարբերակն է և չի ներառում բոլոր բարդությունները, ինչպիսիք են օգտատիրոջ նույնականացումը, սխալների կառավարումը և արտադրության տեղակայումը: Նաև Pinecone-ի կամ որևէ այլ վեկտորային տվյալների բազայի օգտագործումը կպահանջի առանձին ինտեգրման ջանք, որը դուրս է գալիս այս օրինակի շրջանակներից:

Արտադրության մակարդակի պլատֆորմի համար դուք պետք է հաշվի առնեք այնպիսի ասպեկտներ, ինչպիսիք են տվյալների անվտանգությունը, մասշտաբը, մոդելի վերապատրաստումը, կողմնակալության մեղմացումը և օգտագործողների կարծիքի հիման վրա շարունակական բարելավումը: Հնարավոր է, որ ձեզ անհրաժեշտ լինի օգտագործել ավելի առաջադեմ NLP տեխնիկա և հնարավոր է օգտագործել ավելի մեծ լեզվական մոդելներ, ինչպիսիք են GPT-4-ը՝ աշխատանքի նկարագրությունների և ռեզյումեների ավելի լավ հասկանալու և համապատասխանելու համար:

Վերջաբան՝ Գրկի՛ր ապագան

Եվ ահա մենք կանգնած ենք, տեխնոլոգիայի և մարդկության խաչմերուկում, դիտելով կախարդանքը: Երբ մենք հրաժեշտ ենք տալիս մեր ճանապարհորդությանը, հիշեք սա. AI-ն պարզապես գործիք չէ. դա վարպետության հարվածն է, որը նկարում է նորարարության կտավը: Մեր հարթակը չի համապատասխանում միայն աշխատանք փնտրողներին և գործատուներին. դա վկայում է այն փայլի մասին, որը բխում է մտքերի և մեքենաների սիներգիայից:

Հարգելի ընթերցող, որոնումն այստեղ չի ավարտվում: AI-ի և տվյալների աշխարհը անսահման հնարավորությունների կալեիդոսկոպ է: Մինչ մենք պարում ենք նորարարության անդունդի վրա, ես հրավիրում եմ ձեզ միանալ ինձ տեխնոլոգիայի վալսում, երբ մենք բացում ենք մեր թվային ապագայի գոբելենը: Ծափահարեք 👏, «բաժանորդագրվեք🔔, և մնացեք լարված📡ավելին իմանալու համար, քանի որ միասին մենք կշարունակենք ապագան նկարել բայթերով և փայլով:

Անանդ Տարալիկան Ծրագրային ինժեներ է, ով գրում է տեխնոլոգիական կյանքի և տեխնոլոգիաների, տվյալների և մեքենայական ուսուցման օգտագործման մասին կիբերանվտանգության, ֆինանսների, առողջապահության և կայուն էներգիայի համար: Ստացեք պատմություններ անմիջապես ձեր մուտքի արկղում, որպեսզի երբեք բաց չթողնեք դրանք: