Plato Data Intelligence។
ការស្វែងរកបញ្ឈរ & អាយ។

ប្រើគំរូមូលដ្ឋាន AI ទូទៅសម្រាប់ការសង្ខេប និងការឆ្លើយសំណួរដោយប្រើទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នក | សេវាកម្មគេហទំព័រ Amazon

កាលបរិច្ឆេទ:

គំរូភាសាធំ (LLMs) អាចត្រូវបានប្រើដើម្បីវិភាគឯកសារស្មុគស្មាញ និងផ្តល់សេចក្តីសង្ខេប និងចម្លើយចំពោះសំណួរ។ ប្រកាស Domain-adaptation ការកែសម្រួលគំរូគ្រឹះនៅក្នុង Amazon SageMaker JumpStart លើទិន្នន័យហិរញ្ញវត្ថុ ពិពណ៌នាអំពីរបៀបកែតម្រូវ LLM ដោយប្រើសំណុំទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នក។ នៅពេលដែលអ្នកមាន LLM រឹងមាំ អ្នកនឹងចង់បង្ហាញ LLM នោះទៅកាន់អ្នកប្រើប្រាស់អាជីវកម្ម ដើម្បីដំណើរការឯកសារថ្មី ដែលអាចមានប្រវែងរាប់រយទំព័រ។ នៅក្នុងការប្រកាសនេះ យើងបង្ហាញពីរបៀបបង្កើតចំណុចប្រទាក់អ្នកប្រើតាមពេលវេលាជាក់ស្តែង ដើម្បីអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់អាជីវកម្មដំណើរការឯកសារ PDF ដែលមានប្រវែងបំពាន។ នៅពេលដែលឯកសារត្រូវបានដំណើរការ អ្នកអាចសង្ខេបឯកសារ ឬសួរសំណួរអំពីខ្លឹមសារ។ ដំណោះស្រាយគំរូដែលបានពិពណ៌នានៅក្នុងការប្រកាសនេះគឺអាចរកបាននៅលើ GitHub.

ធ្វើការជាមួយឯកសារហិរញ្ញវត្ថុ

របាយការណ៍ហិរញ្ញវត្ថុដូចជារបាយការណ៍ប្រាក់ចំណូលប្រចាំត្រីមាស និងរបាយការណ៍ប្រចាំឆ្នាំទៅកាន់ម្ចាស់ភាគហ៊ុនច្រើនតែមានច្រើនដប់ ឬរាប់រយទំព័រ។ ឯកសារទាំងនេះមានភាសា boilerplate ជាច្រើនដូចជាការបដិសេធ និងភាសាច្បាប់។ ប្រសិនបើអ្នកចង់ទាញយកចំណុចទិន្នន័យសំខាន់ៗពីឯកសារមួយក្នុងចំណោមឯកសារទាំងនេះ អ្នកត្រូវការទាំងពេលវេលា និងការយល់ដឹងខ្លះៗជាមួយភាសា boilerplate ដូច្នេះអ្នកអាចកំណត់អត្តសញ្ញាណការពិតគួរឱ្យចាប់អារម្មណ៍។ ហើយជាការពិតណាស់ អ្នកមិនអាចសួរសំណួរ LLM អំពីឯកសារដែលវាមិនធ្លាប់ឃើញនោះទេ។

LLMs ដែលប្រើសម្រាប់ការសង្ខេបមានដែនកំណត់លើចំនួនសញ្ញាសម្ងាត់ (តួអក្សរ) ដែលបានចូលទៅក្នុងគំរូ ហើយដោយមានករណីលើកលែងមួយចំនួន ជាធម្មតាទាំងនេះគឺមិនលើសពីពីរបីពាន់សញ្ញាសម្ងាត់ទេ។ វាជាធម្មតារារាំងសមត្ថភាពក្នុងការសង្ខេបឯកសារវែងជាងនេះ។

ដំណោះស្រាយរបស់យើងដោះស្រាយឯកសារដែលលើសពីប្រវែងលំដាប់សញ្ញាសម្ងាត់អតិបរមារបស់ LLM និងធ្វើឱ្យឯកសារនោះមានសម្រាប់ LLM សម្រាប់ឆ្លើយសំណួរ។

ទិដ្ឋភាពទូទៅនៃដំណោះស្រាយ

ការរចនារបស់យើងមានបីផ្នែកសំខាន់ៗ៖

  • វាមានកម្មវិធីបណ្តាញអន្តរកម្មសម្រាប់អ្នកប្រើប្រាស់អាជីវកម្មដើម្បីផ្ទុកឡើង និងដំណើរការឯកសារ PDF
  • វាប្រើបណ្ណាល័យ langchain ដើម្បីបំបែក PDF ដ៏ធំមួយទៅជាកំណាត់ដែលអាចគ្រប់គ្រងបាន។
  • វាប្រើបច្ចេកទេស augmented generation ឡើងវិញ ដើម្បីអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់សួរសំណួរអំពីទិន្នន័យថ្មីដែល LLM មិនបានឃើញពីមុនមក

ដូចដែលបានបង្ហាញនៅក្នុងដ្យាក្រាមខាងក្រោម យើងប្រើផ្នែកខាងមុខដែលត្រូវបានអនុវត្តជាមួយ React JavaScript ដែលបង្ហោះក្នុង មួយ។ សេវាកម្មផ្ទុកសាមញ្ញរបស់ក្រុមហ៊ុន Amazon (Amazon S3) ដាក់ធុងនៅខាងមុខ Amazon CloudFront. កម្មវិធីផ្នែកខាងមុខអនុញ្ញាតឱ្យអ្នកប្រើផ្ទុកឯកសារ PDF ទៅកាន់ Amazon S3 ។ បន្ទាប់​ពី​ការ​ផ្ទុក​ឡើង​ត្រូវ​បាន​បញ្ចប់ អ្នក​អាច​បង្ក​ឱ្យ​មាន​ការងារ​ទាញ​យក​អត្ថបទ​ដែល​ដំណើរការ​ដោយ ក្រុមហ៊ុន Amazon វាយនភាព. ជាផ្នែកមួយនៃដំណើរការក្រោយដំណើរការ ក AWS Lambda មុខងារបញ្ចូលសញ្ញាសម្គាល់ពិសេសទៅក្នុងអត្ថបទដែលបង្ហាញពីព្រំដែនទំព័រ។ នៅពេលការងារនោះរួចរាល់ អ្នកអាចហៅ API ដែលសង្ខេបអត្ថបទ ឬឆ្លើយសំណួរអំពីវា។

ដោយសារតែជំហានទាំងនេះមួយចំនួនអាចចំណាយពេលខ្លះ ស្ថាបត្យកម្មប្រើវិធីសាស្រ្តអសមកាលដែលបានបំបែក។ ឧទាហរណ៍ ការហៅដើម្បីសង្ខេបឯកសារ ហៅមុខងារ Lambda ដែលបង្ហោះសារទៅ សេវាកម្មជួរធម្មតារបស់ Amazon (Amazon SQS) ជួរ។ មុខងារ Lambda មួយផ្សេងទៀត យកសារនោះ ហើយចាប់ផ្តើម សេវាកម្មកុងតឺន័រអេល្យូមអេល (Amazon ECS) អេសអេចហ្វាហ្គេត ភារកិច្ច។ ភារកិច្ច Fargate ហៅ ក្រុមហ៊ុន Amazon SageMaker ចំណុចបញ្ចប់នៃការសន្និដ្ឋាន។ យើងប្រើកិច្ចការ Fargate នៅទីនេះ ពីព្រោះការសង្ខេបឯកសារ PDF យូរណាស់អាចត្រូវការពេលវេលា និងអង្គចងចាំច្រើនជាងមុខងារ Lambda មាន។ នៅពេល​ការ​សង្ខេប​ត្រូវ​បាន​ធ្វើ​រួច កម្មវិធី​ខាង​មុខ​អាច​យក​លទ្ធផល​ពី​ ក្រុមហ៊ុន Amazon DynamoDB តារាង។

សម្រាប់ការសង្ខេប យើងប្រើគំរូសង្ខេបរបស់ AI21 ដែលជាគំរូគ្រឹះមួយដែលអាចរកបានតាមរយៈ ក្រុមហ៊ុន Amazon SageMaker JumpStart. ទោះបីជាគំរូនេះគ្រប់គ្រងឯកសាររហូតដល់ 10,000 ពាក្យ (ប្រហែល 40 ទំព័រ) យើងប្រើកម្មវិធីបំបែកអត្ថបទរបស់ langchain ដើម្បីធ្វើឱ្យប្រាកដថាការហៅសង្ខេបទៅ LLM នីមួយៗមិនលើសពី 10,000 ពាក្យ។ សម្រាប់ការបង្កើតអត្ថបទ យើងប្រើគំរូមធ្យមរបស់ Cohere ហើយយើងប្រើ GPT-J សម្រាប់បង្កប់ ទាំងតាមរយៈ JumpStart ។

ដំណើរការសង្ខេប

នៅពេលដោះស្រាយឯកសារធំៗ យើងត្រូវកំណត់ពីរបៀបបំបែកឯកសារទៅជាបំណែកតូចៗ។ នៅពេលដែលយើងទទួលបានលទ្ធផលទាញយកអត្ថបទមកវិញពី Amazon Texttract យើងបញ្ចូលសញ្ញាសម្គាល់សម្រាប់ផ្នែកធំនៃអត្ថបទ (ចំនួនទំព័រដែលអាចកំណត់បាន) ទំព័រនីមួយៗ និងការបំបែកបន្ទាត់។ Langchain នឹងបំបែកដោយផ្អែកលើសញ្ញាសម្គាល់ទាំងនោះ ហើយប្រមូលផ្តុំឯកសារតូចៗដែលស្ថិតនៅក្រោមដែនកំណត់និមិត្តសញ្ញា។ សូមមើលកូដខាងក្រោម៖

text_splitter = RecursiveCharacterTextSplitter( separators = ["<CHUNK>", "<PAGE>", "n"], chunk_size = int(chunk_size), chunk_overlap = int(chunk_overlap)) with open(local_path) as f: doc = f.read() texts = text_splitter.split_text(doc) print(f"Number of splits: {len(texts)}") llm = SageMakerLLM(endpoint_name = endpoint_name) responses = [] for t in texts: r = llm(t) responses.append(r) summary = "n".join(responses)

LLM នៅក្នុងខ្សែសង្វាក់សង្ខេបគឺជាការរុំស្តើងនៅជុំវិញចំណុចបញ្ចប់ SageMaker របស់យើង:

class SageMakerLLM(LLM): endpoint_name: str @property
def _llm_type(self) -> str: return "summarize" def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str: response = ai21.Summarize.execute( source=prompt, sourceType="TEXT", sm_endpoint=self.endpoint_name ) return response.summary 

ការឆ្លើយសំណួរ

នៅក្នុងវិធីសាស្រ្តនៃការទាញយក augmented generation method ដំបូងយើងបំបែកឯកសារទៅជាផ្នែកតូចៗ។ យើងបង្កើតការបង្កប់សម្រាប់ផ្នែកនីមួយៗ ហើយរក្សាទុកវានៅក្នុងមូលដ្ឋានទិន្នន័យវ៉ិចទ័រ Chroma ប្រភពបើកចំហតាមរយៈចំណុចប្រទាក់របស់ langchain ។ យើងរក្សាទុកមូលដ្ឋានទិន្នន័យក្នុង ក ប្រព័ន្ធឯកសារ Amazon Elastic ប្រព័ន្ធឯកសារ (Amazon EFS) សម្រាប់ប្រើប្រាស់នៅពេលក្រោយ។ សូមមើលកូដខាងក្រោម៖

documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size = 500, chunk_overlap = 0)
texts = text_splitter.split_documents(documents)
print(f"Number of splits: {len(texts)}") embeddings = SMEndpointEmbeddings( endpoint_name=endpoint_name,
)
vectordb = Chroma.from_documents(texts, embeddings, persist_directory=persist_directory)
vectordb.persist()

នៅពេលដែលការបង្កប់រួចរាល់ អ្នកប្រើប្រាស់អាចសួរសំណួរមួយ។ យើងស្វែងរកមូលដ្ឋានទិន្នន័យវ៉ិចទ័រសម្រាប់កំណាត់អត្ថបទដែលផ្គូផ្គងនឹងសំណួរបំផុត៖

embeddings = SMEndpointEmbeddings( endpoint_name=endpoint_embed
)
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embeddings)
docs = vectordb.similarity_search_with_score(question)

យើងយកកំណាត់ដែលត្រូវគ្នាជិតបំផុត ហើយប្រើវាជាបរិបទសម្រាប់គំរូបង្កើតអត្ថបទ ដើម្បីឆ្លើយសំណួរ៖

cohere_client = Client(endpoint_name=endpoint_qa)
context = docs[high_score_idx][0].page_content.replace("n", "")
qa_prompt = f'Context={context}nQuestion={question}nAnswer='
response = cohere_client.generate(prompt=qa_prompt, max_tokens=512, temperature=0.25, return_likelihoods='GENERATION')
answer = response.generations[0].text.strip().replace('n', '')

បទពិសោធរបស់អ្នកប្រើ

ទោះបីជា LLMs តំណាងឱ្យវិទ្យាសាស្ត្រទិន្នន័យកម្រិតខ្ពស់ក៏ដោយ ភាគច្រើននៃករណីប្រើប្រាស់សម្រាប់ LLMs ចុងក្រោយពាក់ព័ន្ធនឹងអន្តរកម្មជាមួយអ្នកដែលមិនប្រើបច្ចេកទេស។ កម្មវិធីគេហទំព័រឧទាហរណ៍របស់យើងដោះស្រាយករណីប្រើប្រាស់អន្តរកម្ម ដែលអ្នកប្រើប្រាស់អាជីវកម្មអាចបង្ហោះ និងដំណើរការឯកសារ PDF ថ្មី។

ដ្យាក្រាមខាងក្រោមបង្ហាញចំណុចប្រទាក់អ្នកប្រើ។ អ្នកប្រើប្រាស់ចាប់ផ្តើមដោយការបង្ហោះឯកសារ PDF ។ បន្ទាប់ពីឯកសារត្រូវបានរក្សាទុកនៅក្នុង Amazon S3 អ្នកប្រើប្រាស់អាចចាប់ផ្តើមការងារទាញយកអត្ថបទ។ នៅពេលវាបញ្ចប់ អ្នកប្រើប្រាស់អាចហៅកិច្ចការសង្ខេប ឬសួរសំណួរ។ ចំណុចប្រទាក់អ្នកប្រើបង្ហាញជម្រើសកម្រិតខ្ពស់មួយចំនួនដូចជាទំហំកំណាត់ និងការត្រួតលើគ្នានៃកំណាត់ដែលនឹងមានប្រយោជន៍សម្រាប់អ្នកប្រើប្រាស់កម្រិតខ្ពស់ដែលកំពុងសាកល្បងកម្មវិធីលើឯកសារថ្មី។

ចំណុចប្រទាក់អ្នកប្រើ

ជំហាន​បន្ទាប់

LLMs ផ្តល់នូវសមត្ថភាពទាញយកព័ត៌មានថ្មីៗសំខាន់ៗ។ អ្នក​ប្រើ​អាជីវកម្ម​ត្រូវ​ការ​ការ​ចូល​ដំណើរ​ការ​យ៉ាង​ងាយ​ស្រួល​ក្នុង​សមត្ថភាព​ទាំង​នោះ។ មានទិសដៅពីរសម្រាប់ការងារនាពេលអនាគតដែលត្រូវពិចារណា៖

  • ទាញយកអត្ថប្រយោជន៍ពី LLMs ដ៏មានឥទ្ធិពលដែលមានរួចហើយនៅក្នុងគំរូគ្រឹះ Jumpstart ។ ជាមួយនឹងកូដពីរបីបន្ទាត់ កម្មវិធីគំរូរបស់យើងអាចដាក់ពង្រាយ និងប្រើប្រាស់ LLMs កម្រិតខ្ពស់ពី AI21 និង Cohere សម្រាប់ការសង្ខេប និងបង្កើតអត្ថបទ។
  • ធ្វើឱ្យសមត្ថភាពទាំងនេះអាចចូលប្រើបានសម្រាប់អ្នកប្រើប្រាស់ដែលមិនមែនជាបច្ចេកទេស។ តម្រូវការជាមុនសម្រាប់ដំណើរការឯកសារ PDF គឺការទាញយកអត្ថបទចេញពីឯកសារ ហើយការងារសង្ខេបអាចចំណាយពេលច្រើននាទីដើម្បីដំណើរការ។ វាអំពាវនាវឱ្យមានចំណុចប្រទាក់អ្នកប្រើសាមញ្ញជាមួយនឹងសមត្ថភាពដំណើរការផ្នែកខាងក្រោយអសមកាល ដែលងាយស្រួលក្នុងការរចនាដោយប្រើសេវាកម្មដើមកំណើតពពកដូចជា Lambda និង Fargate ។

យើងក៏កត់សម្គាល់ផងដែរថាឯកសារ PDF គឺជាព័ត៌មានពាក់កណ្តាលរចនាសម្ព័ន្ធ។ សញ្ញាសំខាន់ៗដូចជាចំណងជើងផ្នែកគឺពិបាកក្នុងការកំណត់អត្តសញ្ញាណតាមកម្មវិធី ព្រោះវាពឹងផ្អែកលើទំហំពុម្ពអក្សរ និងសូចនាករដែលមើលឃើញផ្សេងទៀត។ ការកំណត់រចនាសម្ព័ន្ធព័ត៌មានមូលដ្ឋានជួយ LLM ដំណើរការទិន្នន័យកាន់តែត្រឹមត្រូវ យ៉ាងហោចណាស់រហូតដល់ពេលដែល LLMs អាចគ្រប់គ្រងការបញ្ចូលនៃប្រវែងគ្មានដែនកំណត់។

សន្និដ្ឋាន

នៅក្នុងការបង្ហោះនេះ យើងបានបង្ហាញពីរបៀបបង្កើតកម្មវិធីបណ្តាញអន្តរកម្ម ដែលអនុញ្ញាតឱ្យអ្នកប្រើប្រាស់អាជីវកម្មអាចផ្ទុកឡើង និងដំណើរការឯកសារ PDF សម្រាប់ការសង្ខេប និងឆ្លើយសំណួរ។ យើងបានឃើញពីរបៀបទាញយកអត្ថប្រយោជន៍ពីគំរូគ្រឹះ Jumpstart ដើម្បីចូលប្រើ LLMs កម្រិតខ្ពស់ ហើយប្រើការបំបែកអត្ថបទ និងការទាញយកបច្ចេកទេសជំនាន់បន្ថែម ដើម្បីដំណើរការឯកសារដែលវែងជាង និងធ្វើឱ្យពួកវាមានជាព័ត៌មានដល់ LLM ។

នៅពេលនេះ វាគ្មានហេតុផលណាដែលមិនធ្វើឱ្យសមត្ថភាពដ៏មានឥទ្ធិពលទាំងនេះមានសម្រាប់អ្នកប្រើប្រាស់របស់អ្នកនោះទេ។ យើងលើកទឹកចិត្តឱ្យអ្នកចាប់ផ្តើមប្រើ ម៉ូដែល Jumpstart Foundation នាពេលបច្ចុប្បន្ននេះ។


អំពី​អ្នក​និពន្ធ

រូបភាពអ្នកនិពន្ធRandy DeFauw គឺជាស្ថាបត្យករដំណោះស្រាយចម្បងជាន់ខ្ពស់នៅ AWS ។ គាត់ទទួលបាន MSEE ពីសាកលវិទ្យាល័យ Michigan ជាកន្លែងដែលគាត់បានធ្វើការលើចក្ខុវិស័យកុំព្យូទ័រសម្រាប់យានយន្តស្វយ័ត។ គាត់ក៏ទទួលបាន MBA ពីសាកលវិទ្យាល័យ Colorado State ផងដែរ។ Randy បានកាន់មុខតំណែងជាច្រើននៅក្នុងផ្នែកបច្ចេកវិទ្យា ចាប់ពីវិស្វកម្មផ្នែកទន់ រហូតដល់ការគ្រប់គ្រងផលិតផល។ In បានចូលទៅក្នុង Big Data space ក្នុងឆ្នាំ 2013 ហើយបន្តរុករកតំបន់នោះ។ គាត់កំពុងធ្វើការយ៉ាងសកម្មលើគម្រោងនៅក្នុង ML space ហើយបានបង្ហាញនៅក្នុងសន្និសីទជាច្រើនរួមទាំង Strata និង GlueCon ។

spot_img

បញ្ញាចុងក្រោយ

spot_img

ជជែកជាមួយយើង

សួស្តី! តើខ្ញុំអាចជួយអ្នកដោយរបៀបណា?