# Instalar vLLM pip install vllm python -m vllm.entrypoints.openai.api_server --model deepseek-ai/deepseek-llm-7b-chat --tensor-parallel-size 1 --max-num-batched-tokens 4096 --port 8000
trainer = Trainer( model=model, args=training_args, train_dataset=dataset, tokenizer=tokenizer ) trainer.train() model.save_pretrained("deepseek-mi-finetuning") 3.3 Fusión del Modelo Fine-Tuned para Producción python -m peft.merge_lora \ --base_model_name deepseek-ai/deepseek-llm-7b-chat \ --lora_model_path ./deepseek-mi-finetuning \ --output_dir ./deepseek-fused Capítulo 4: RAG (Retrieval-Augmented Generation) a Escala DeepSeek con contexto de 1M de tokens permite RAG sin necesidad de chunking complejo, pero para eficiencia usaremos vectores. 4.1 Pipeline RAG con LangChain y ChromaDB from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import Chroma from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.llms import HuggingFacePipeline from langchain.chains import RetrievalQA 1. Cargar documentos loader = TextLoader("manual_tecnico.txt") documents = loader.load() splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100) docs = splitter.split_documents(documents) 2. Crear índice vectorial embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-small-es") # Embeddings en español vectorstore = Chroma.from_documents(docs, embeddings, persist_directory="./chroma_db") 3. Conectar con DeepSeek local (o API) from langchain.llms import OpenAI # Usar compatibilidad con DeepSeek API llm = OpenAI( openai_api_key="DEEPSEEK_API_KEY", openai_api_base="https://api.deepseek.com/v1", model_name="deepseek-chat" ) 4. Cadena RAG qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever(search_kwargs={"k": 3}), return_source_documents=True )
Luego desde tu app:
documento_completo = open("manual_largo.txt").read()[:950000] # 950k tokens response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "Responde usando solo la información del siguiente documento:"}, {"role": "user", "content": f"Documento: {documento_completo}\n\nPregunta: ¿Cuál es el procedimiento de emergencia?"} ], max_tokens=2000 ) 5.1 Servicio con vLLM (Máximo rendimiento) vLLM es el servidor estándar para LLMs en producción.
print(response.choices[0].message.content) DeepSeek soporta funciones como GPT-4:
respuesta = qa_chain("¿Cómo configurar el parámetro X en el sistema?") print(respuesta["result"]) Para documentos masivos, puedes inyectar todo el contexto directamente: