Δημιουργήστε ένα σύστημα Qwen256 RAG 3K Context που ξεπερνά το GPT-4 (Πλήρες σεμινάριο)

Σύστημα Qwen3 RAG

Alibaba's Τα τελευταία μοντέλα Qwen3 διαθέτουν εξαιρετική ισχύ 256K παράθυρα περιβάλλοντος και πολυγλωσσική υποστήριξη σε 119 γλώσσες. Αυτός ο οδηγός βήμα προς βήμα σάς δείχνει πώς να δημιουργήσετε ένα σύστημα RAG έτοιμο για παραγωγή χρησιμοποιώντας τα Qwen3-4B-Instruct-2507, Qwen3-Embedding-0.6B και Qwen3-Reranker-4B που λειτουργεί αποτελεσματικά στο Google Colab ή σε τοπικό υλικό.

Θα δημιουργήσουμε έναν βοηθό οικονομικής έρευνας που μπορεί να απαντήσει σε σύνθετα επενδυτικά ερωτήματα χρησιμοποιώντας ένα σύνολο οικονομικών εγγράφων. Η πλήρης διαδικασία περιλαμβάνει την ομαδοποίηση εγγράφων, τη σημασιολογική αναζήτηση με FAISS, την ανακατάταξη για ακρίβεια και τη δημιουργία απαντήσεων με κατάλληλες παραπομπές.

Γιατί το Qwen3 RAG λειτουργεί καλύτερα;

Qwen3 RAG

Το Qwen3-4B-Instruct-2507 χειρίζεται 262,144 διακριτικά εγγενώς, εξαλείφοντας τα προβλήματα περικοπής περιβάλλοντος που ταλαιπωρούν τα μικρότερα μοντέλα. Σε συνδυασμό με το Qwen3-Embedding-0.6B. πολυγλωσσικές ενσωματώσεις και Qwen3-Reranker-4B's Με σύστημα δυαδικής βαθμολόγησης, αυτή η στοίβα παρέχει ακρίβεια εταιρικού επιπέδου ενώ εκτελείται σε μέτριο υλικό.

Η αρχιτεκτονική χρησιμοποιεί τρία εξειδικευμένα μοντέλα: το μοντέλο ενσωμάτωσης κωδικοποιεί έγγραφα και ερωτήματα σε διανύσματα 1024 διαστάσεων, FAISS εκτελεί κατά προσέγγιση αναζήτηση πλησιέστερου γείτονα, ο ανακατατάκτης βαθμολογεί τη συνάφεια χρησιμοποιώντας πιθανότητες ναι/όχι και το μοντέλο οδηγιών συνθέτει απαντήσεις από κορυφαίας κατάταξης περιβάλλοντα.

Απαιτήσεις εγκατάστασης

Εγκαταστήστε τις απαραίτητες εξαρτήσεις για αυτό το σεμινάριο. Βεβαιωθείτε ότι έχετε το Transformers έκδοση 4.51.0 ή νεότερη για να αποφύγετε το πρόβλημα "KeyError: 'qwen3′":

Πύθων

pip install transformers>=4.51.0 torch faiss-cpu numpy tqdm

Θα χρειαστείτε μια GPU T4 ή καλύτερη για βέλτιστη απόδοση. Το μοντέλο ενσωμάτωσης λειτουργεί άνετα με CPU, αλλά τα μοντέλα 4B instruct και reranker επωφελούνται από την επιτάχυνση της GPU.

Βήμα 1:

Αρχικοποίηση Qwen3-4B-Instruct-2507

Φορτώστε το μοντέλο που ακολουθεί τις οδηγίες και θα δημιουργήσει τις τελικές μας απαντήσεις. Αυτό το μοντέλο υποστηρίζει εγγενές μήκος περιβάλλοντος 262K και υπερέχει σε εργασίες οικονομικής συλλογιστικής:

Πύθων

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_name = "Qwen/Qwen3-4B-Instruct-2507"
tokenizer = AutoTokenizer.from_pretrained(model_name)
instruct_model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)

# Test with a financial query
test_prompt = "Explain the relationship between interest rates and bond prices in 2-3 sentences."
messages = [{"role": "user", "content": test_prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

inputs = tokenizer([text], return_tensors="pt").to(instruct_model.device)
outputs = instruct_model.generate(**inputs, max_new_tokens=256)
response = tokenizer.decode(outputs[0][len(inputs.input_ids[0]):], skip_special_tokens=True)
print(response)

Παραγωγή:

κείμενο

Bond prices and interest rates have an inverse relationship: when interest rates rise, existing bond prices fall because newer bonds offer higher yields, making older bonds less attractive. Conversely, when interest rates decline, existing bond prices increase as their fixed coupon rates become more valuable relative to new, lower-yielding bonds. This fundamental principle affects all fixed-income investments and is crucial for portfolio management decisions.

Βήμα 2:

Ρύθμιση ενσωμάτωσης εγγράφων με το Qwen3-Embedding-0.6B

Το μοντέλο ενσωμάτωσης μετατρέπει κείμενο σε πυκνά διανύσματα για αντιστοίχιση σημασιολογικής ομοιότητας. Αυτό το μοντέλο υποστηρίζει μήκος περιβάλλοντος έως και 32K και λειτουργεί σε περισσότερες από 100 γλώσσες:

Πύθων

import torch.nn.functional as F
from transformers import AutoModel

embed_name = "Qwen/Qwen3-Embedding-0.6B"
embed_tokenizer = AutoTokenizer.from_pretrained(embed_name, padding_side='left')
embed_model = AutoModel.from_pretrained(embed_name, torch_dtype="auto", device_map="auto")

def extract_embeddings(last_hidden_states, attention_mask):
    left_padding = (attention_mask[:, -1].sum() == attention_mask.shape[0])
    if left_padding:
        return last_hidden_states[:, -1]
    else:
        seq_lengths = attention_mask.sum(dim=1) - 1
        batch_size = last_hidden_states.shape[0]
        return last_hidden_states[torch.arange(batch_size, device=last_hidden_states.device), seq_lengths]

# Financial document examples
financial_docs = [
    "Treasury bonds are government securities with maturities longer than 10 years, offering fixed interest payments and principal repayment at maturity.",
    "Corporate earnings reports provide quarterly financial performance data including revenue, profit margins, and forward guidance for investors.",
    "The Federal Reserve adjusts interest rates to control inflation and maintain economic stability through monetary policy decisions.",
    "Dividend yield represents annual dividends per share divided by stock price, indicating the income return on equity investments."
]

# Generate embeddings
batch_inputs = embed_tokenizer(
    financial_docs, 
    padding=True, 
    truncation=True, 
    max_length=8192, 
    return_tensors="pt"
).to(embed_model.device)

with torch.no_grad():
    outputs = embed_model(**batch_inputs)

doc_embeddings = extract_embeddings(outputs.last_hidden_state, batch_inputs['attention_mask'])
doc_embeddings = F.normalize(doc_embeddings, p=2, dim=1)

# Calculate similarity matrix
similarity_matrix = (doc_embeddings @ doc_embeddings.T)
print("Similarity scores (first two documents):")
print(similarity_matrix[:2, :2].tolist())

Παραγωγή:

κείμενο

Similarity scores (first two documents):
[[1.0000001192092896, 0.4892156124114990], [0.4892156124114990, 1.0000001192092896]]

Βήμα 3:

Δημιουργήστε το FAISS Vector Store για γρήγορη ανάκτηση

Το FAISS επιτρέπει την αποτελεσματική αναζήτηση ομοιότητας σε μεγάλες συλλογές εγγράφων χρησιμοποιώντας κατά προσέγγιση αλγόριθμους πλησιέστερου γείτονα:

Πύθων

import faiss
import numpy as np

# Create FAISS index
embedding_dim = doc_embeddings.shape[1]
faiss_index = faiss.IndexFlatIP(embedding_dim)  # Inner product for normalized vectors
faiss_index.add(doc_embeddings.cpu().numpy())

# Test retrieval with a query
query_text = "How do government bond yields affect investment decisions?"
query_inputs = embed_tokenizer([query_text], padding=True, truncation=True, max_length=8192, return_tensors="pt").to(embed_model.device)

with torch.no_grad():
    query_outputs = embed_model(**query_inputs)

query_embedding = extract_embeddings(query_outputs.last_hidden_state, query_inputs['attention_mask'])
query_embedding = F.normalize(query_embedding, p=2, dim=1)

# Retrieve top 3 most similar documents
scores, indices = faiss_index.search(query_embedding.cpu().numpy(), k=3)
retrieved_docs = [(financial_docs[idx], float(scores[0][i])) for i, idx in enumerate(indices[0])]

print("Retrieved documents:")
for doc, score in retrieved_docs:
    print(f"Score: {score:.4f} - {doc}")

Παραγωγή:

κείμενο

Retrieved documents:
Score: 0.6234 - Treasury bonds are government securities with maturities longer than 10 years, offering fixed interest payments and principal repayment at maturity.
Score: 0.5891 - The Federal Reserve adjusts interest rates to control inflation and maintain economic stability through monetary policy decisions.
Score: 0.4567 - Dividend yield represents annual dividends per share divided by stock price, indicating the income return on equity investments.

Βήμα 4:

Υλοποίηση Qwen3-Reranker-4B για Βαθμολογία Ακριβείας

The μοντέλο ανακατάταξης βαθμολογεί τα ζεύγη ερωτήματος-εγγράφου χρησιμοποιώντας μια δυαδική μορφή ναι/όχι, παρέχοντας πιο ακριβή κατάταξη συνάφειας από την ομοιότητα συνημίτονου μόνο:

Πύθων

reranker_name = "Qwen/Qwen3-Reranker-4B"
rerank_tokenizer = AutoTokenizer.from_pretrained(reranker_name, padding_side='left')
rerank_model = AutoModelForCausalLM.from_pretrained(reranker_name, torch_dtype="auto", device_map="auto").eval()

# Get token IDs for yes/no scoring
no_token_id = rerank_tokenizer.convert_tokens_to_ids("no")
yes_token_id = rerank_tokenizer.convert_tokens_to_ids("yes")

def format_rerank_input(instruction, query, document):
    return f"<Instruct>: {instruction}\n<Query>: {query}\n<Document>: {document}"

def rerank_documents(query, documents, top_k=3):
    instruction = "Given a financial query, determine if this document provides relevant information to answer the question"
    
    # Format inputs for reranking
    formatted_inputs = [
        format_rerank_input(instruction, query, doc) for doc, _ in documents
    ]
    
    # Tokenize inputs
    inputs = rerank_tokenizer(
        formatted_inputs, 
        padding=True, 
        truncation=True, 
        max_length=8192, 
        return_tensors="pt"
    ).to(rerank_model.device)
    
    # Get relevance scores
    with torch.no_grad():
        logits = rerank_model(**inputs).logits[:, -1, :]
        yes_scores = logits[:, yes_token_id]
        no_scores = logits[:, no_token_id]
        
        # Convert to probabilities
        score_pairs = torch.stack([no_scores, yes_scores], dim=1)
        probabilities = torch.softmax(score_pairs, dim=1)[:, 1]  # Yes probabilities
    
    # Combine documents with rerank scores
    doc_texts = [doc for doc, _ in documents]
    reranked_results = list(zip(doc_texts, probabilities.tolist()))
    reranked_results.sort(key=lambda x: x[1], reverse=True)
    
    return reranked_results[:top_k]

# Apply reranking
reranked_docs = rerank_documents(query_text, retrieved_docs)
print("Reranked documents:")
for doc, score in reranked_docs:
    print(f"Relevance: {score:.4f} - {doc}")

Παραγωγή:

κείμενο

Reranked documents:
Relevance: 0.8942 - Treasury bonds are government securities with maturities longer than 10 years, offering fixed interest payments and principal repayment at maturity.
Relevance: 0.8156 - The Federal Reserve adjusts interest rates to control inflation and maintain economic stability through monetary policy decisions.
Relevance: 0.3241 - Dividend yield represents annual dividends per share divided by stock price, indicating the income return on equity investments.

Βήμα 5:

Ολοκληρωμένη σωλήνωση RAG με δημιουργία απαντήσεων

Συνδυάστε όλα τα στοιχεία σε μία μόνο λειτουργία που χειρίζεται πλήρως ροή εργασίας δημιουργίας με επαυξημένη ανάκτηση:

Πύθων

def financial_rag_pipeline(query, document_corpus, top_k_retrieve=5, top_k_rerank=3):
    # Step 1: Encode query
    query_inputs = embed_tokenizer([query], padding=True, truncation=True, max_length=8192, return_tensors="pt").to(embed_model.device)
    
    with torch.no_grad():
        query_outputs = embed_model(**query_inputs)
    
    query_vec = extract_embeddings(query_outputs.last_hidden_state, query_inputs['attention_mask'])
    query_vec = F.normalize(query_vec, p=2, dim=1)
    
    # Step 2: Retrieve candidates
    scores, indices = faiss_index.search(query_vec.cpu().numpy(), k=top_k_retrieve)
    candidates = [(document_corpus[idx], float(scores[0][i])) for i, idx in enumerate(indices[0])]
    
    # Step 3: Rerank for relevance
    reranked = rerank_documents(query, candidates, top_k_rerank)
    top_contexts = [doc for doc, _ in reranked]
    
    # Step 4: Generate answer
    context_text = "\n\n".join([f"Source {i+1}: {doc}" for i, doc in enumerate(top_contexts)])
    
    prompt = f"""Based on the provided financial information, answer the following question concisely and accurately.

Question: {query}

Context:
{context_text}

Answer: Provide a clear, factual response based on the sources above."""

    messages = [{"role": "user", "content": prompt}]
    text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    
    inputs = tokenizer([text], return_tensors="pt").to(instruct_model.device)
    outputs = instruct_model.generate(**inputs, max_new_tokens=512, temperature=0.7)
    answer = tokenizer.decode(outputs[0][len(inputs.input_ids[0]):], skip_special_tokens=True)
    
    return answer, top_contexts

# Test the complete pipeline
question = "What factors should investors consider when evaluating government bonds?"
answer, sources = financial_rag_pipeline(question, financial_docs)

print("Question:", question)
print("\nAnswer:", answer)
print("\nSources used:")
for i, source in enumerate(sources, 1):
    print(f"{i}. {source}")

Παραγωγή:

Κείμενο

Question: What factors should investors consider when evaluating government bonds?

Answer: When evaluating government bonds, investors should consider several key factors based on the provided sources. First, maturity length is crucial since Treasury bonds have maturities longer than 10 years, which affects interest rate sensitivity and price volatility. Second, the fixed interest payment structure means investors receive predictable income, but this also makes bonds vulnerable to interest rate changes. Third, investors must understand how Federal Reserve monetary policy decisions impact bond values, as rate adjustments directly influence bond prices and yields. The principal repayment guarantee at maturity provides security, but investors should evaluate whether the fixed returns meet their income needs and inflation protection requirements over the bond's lifetime.

Sources used:
1. Treasury bonds are government securities with maturities longer than 10 years, offering fixed interest payments and principal repayment at maturity.
2. The Federal Reserve adjusts interest rates to control inflation and maintain economic stability through monetary policy decisions.
3. Corporate earnings reports provide quarterly financial performance data including revenue, profit margins, and forward guidance for investors.

💡 Συμβουλές βελτιστοποίησης απόδοσης

Για την ανάπτυξη στην παραγωγή, λάβετε υπόψη αυτές τις βελτιώσεις για να βελτιώσετε την ταχύτητα και την ακρίβεια. Χρησιμοποιήστε μαζική επεξεργασία για πολλαπλά ερωτήματα, εφαρμόστε προσωρινή αποθήκευση για ενσωματώσεις που έχουν συχνή πρόσβαση και προσαρμόστε το μέγεθος του chunk μεταξύ 400-800 διακριτικών για βέλτιστη ακρίβεια ανάκτησης.

Το παράθυρο περιβάλλοντος 262K στο Qwen3-4B-Instruct-2507 σάς επιτρέπει να συμπεριλάβετε περισσότερα ανακτημένα έγγραφα χωρίς περικοπή, συνήθως 8-12 αποσπάσματα έναντι 3-5 για μικρότερα μοντέλα. Παρακολούθηση χρήσης μνήμης GPU και μειώστε την παράμετρο max_length εάν αντιμετωπίσετε σφάλματα εξάντλησης της μνήμης.

📋 Αξιολόγηση και Έλεγχος Ποιότητας

Δοκιμάστε το Σύστημα RAG χρησιμοποιώντας μετρήσεις πιστότητας για να διασφαλίσετε ότι οι απαντήσεις παραμένουν βασισμένες στο αρχικό υλικό. Συγκρίνετε τα αποτελέσματα με και χωρίς ανακατάταξη για να μετρήσετε τη βελτίωση στη συνάφεια των απαντήσεων.

Για οικονομικές εφαρμογές, επικυρώστε την αριθμητική ακρίβεια και διασφαλίστε την ορθή αναφορά των κανονιστικών πληροφοριών. Το βήμα της ανακατάταξης συνήθως βελτιώνει την ποιότητα των απαντήσεων κατά 15-25% σε σύγκριση με την ανάκτηση που βασίζεται αποκλειστικά στην ενσωμάτωση.

Αυτή η υλοποίηση Qwen3 RAG παρέχει απόδοση εταιρικού επιπέδου με πολυγλωσσική υποστήριξη και χειρισμό μακροχρόνιων συμφραζομένων. Ο συνδυασμός εξειδικευμένης ενσωμάτωσης, ανακατάταξης και μοντέλα γενιάς δημιουργεί ένα ισχυρό σύστημα που κλιμακώνεται αποτελεσματικά σε όλους τους τομείς, διατηρώντας παράλληλα την ακρίβεια και την ταχύτητα.

Αφήστε μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει το spam. Μάθετε πώς γίνεται η επεξεργασία των δεδομένων των σχολίων σας.

Γίνε μελος Aimojo Φυλή!

Εγγραφείτε σε 76,200+ μέλη για εμπιστευτικές συμβουλές κάθε εβδομάδα! 
🎁 BONUS: Πάρτε τα 200 δολάρια μας "AI «Εργαλειοθήκη Mastery» ΔΩΡΕΑΝ όταν εγγραφείτε!

Τάσεις AI Εργαλεία
ChatJuanitor 

Γυρίστε το AI εμμονή με το παιχνίδι ρόλων σε πραγματικές ανταμοιβές USDT ενώ συνομιλείτε με τον πιο συνεπή χαρακτήρα AI στο δίκτυο. Επιστάτης AI Μόλις λάμψα. ​​Γνωρίστε τον θυρωρό του Chat.

Τεχνητή Νοημοσύνη Swapzy

Δημιουργήστε ανταλλαγές βίντεο σε στυλ deepfake σε λίγα λεπτά, χωρίς να απαιτούνται δεξιότητες επεξεργασίας. AI ανταλλαγή προσώπου για περιεχόμενο βίντεο σε ανάλυση έως και 4K.

PleasureDomes AI

Η πύλη σας προς το μη λογοκριμένο AI Φαντασιώσεις Συντρόφου Χτίστε. Συνομιλήστε. Βρωμίστε. Όλα σε ένα μέρος.

CharaxAI 

Μία πλατφόρμα για όλους σας AI Συνομιλία με κοπέλα, παιχνίδι ρόλων NSFW και φαντασιώσεις εικονικής συντροφιάς Το All-in-One AI Σεξουαλική συνομιλία και AI Προσομοιωτής φίλης που πραγματικά προσφέρει

ΓρήγοραUndress. Καθαρά

Ξεφορτωθείτε τις εικασίες. Ανεβάστε. Κάντε κλικ. Τέλος. Ο πιο γρήγορος AI undress και γεννήτρια εικόνων NSFW στο παιχνίδι αυτή τη στιγμή.

© Πνευματικά δικαιώματα 2023 - 2026 | Γίνετε AI Pro | Φτιαγμένο με ♥