Tumgik
#computing systems
texas-gothic · 2 months
Text
As hospitals and airports flounder, as the fourth largest city goes into its second week without electricity, perhaps the lesson we should take away from all of this is that letting all our most critical infrastructure be controlled by a few unacountable, profit-seeking corporations is not such a good idea.
4 notes · View notes
jcmarchi · 4 days
Text
Scientists Engineer Molecule-Scale Memory States, Surpassing Traditional Computing Limits
New Post has been published on https://thedigitalinsider.com/scientists-engineer-molecule-scale-memory-states-surpassing-traditional-computing-limits/
Scientists Engineer Molecule-Scale Memory States, Surpassing Traditional Computing Limits
A group of researchers at the University of Limerick have unveiled an innovative approach to designing molecules for computational purposes. This method, which draws inspiration from the human brain’s functioning, has the potential to dramatically enhance the speed and energy efficiency of artificial intelligence systems.
The research team, led by Professor Damien Thompson at the Bernal Institute, has discovered novel techniques for manipulating materials at the most fundamental molecular level. Their findings, recently published in Nature, represent a significant leap forward in the field of neuromorphic computing – a branch of computer science that aims to mimic the structure and function of biological neural networks.
The Science Behind the Breakthrough
At the heart of this discovery lies an ingenious approach to harnessing the natural movements of atoms within molecules. Professor Thompson explains, “We’re essentially using the inherent wiggling and jiggling of atoms to process and store information.” This method allows for the creation of multiple memory states within a single molecular structure, each corresponding to a unique electrical state.
The team’s approach diverges significantly from traditional silicon-based computing. In conventional computers, information is processed and stored using binary states – on or off, 1 or 0. However, the Limerick team’s molecular design allows for a multitude of states within a space smaller than an atom, dramatically increasing information density and processing capability.
This molecular-scale manipulation addresses one of the most persistent challenges in neuromorphic computing: achieving high resolution. Until now, brain-inspired computing platforms have been limited to low-accuracy operations, restricting their use in complex tasks such as signal processing, neural network training, and natural language processing. The Limerick team’s breakthrough overcomes this hurdle, opening up new possibilities for advanced AI applications.
By reconceptualizing the underlying computing architecture, the researchers have created a system capable of performing resource-intensive workloads with unprecedented energy efficiency. Their neuromorphic accelerator, spearheaded by Professor Sreetosh Goswami at the Indian Institute of Science, achieves an impressive 4.1 tera-operations per second per watt (TOPS/W), marking a significant advancement in computational power and energy conservation.
The implications of this discovery extend far beyond academic research. As Professor Thompson notes, “This outside-the-box solution could have huge benefits for all computing applications, from energy-hungry data centers to memory-intensive digital maps and online gaming.” The potential for more efficient, powerful, and versatile computing systems could revolutionize industries ranging from healthcare and environmental monitoring to financial services and entertainment.
Potential Applications and Future Impact
While the immediate implications for data centers and edge computing are clear, this molecular computing breakthrough could catalyze innovations across numerous sectors. In healthcare, for instance, these high-precision neuromorphic systems could enable real-time analysis of complex biological data, potentially revolutionizing personalized medicine and drug discovery processes.
The technology’s energy efficiency makes it particularly promising for space exploration and satellite communications, where power constraints are a significant challenge. Future Mars rovers or deep-space probes could benefit from more powerful onboard computing without increasing energy demands.
In the realm of climate science, these molecular computers could enhance our ability to model complex environmental systems, leading to more accurate climate predictions and better-informed policy decisions. Similarly, in finance, the technology could transform risk assessment and high-frequency trading algorithms, potentially creating more stable and efficient markets.
The concept of “everyware” – integrating computing capabilities into everyday objects – opens up fascinating possibilities. Imagine clothing that can monitor your health and adjust its insulation in real-time, or food packaging that can detect spoilage and automatically adjust its preservation mechanisms. Buildings could become more than static structures, dynamically optimizing energy usage and responding to environmental changes.
As research progresses, we may see the emergence of hybrid systems that combine traditional silicon-based computing with molecular neuromorphic components, leveraging the strengths of both approaches. This could lead to a new paradigm in computing architecture, blurring the lines between hardware and software, and potentially revolutionizing how we design and build computational systems.
The Bottom Line
The University of Limerick’s molecular computing breakthrough is a paradigm shift that could redefine our relationship with computation. By marrying the efficiency of biological processes with the precision of digital systems, this innovation opens doors to possibilities we’ve only begun to imagine. As we stand on the brink of this new era, the potential for transformative change across industries and societies is immense, promising a future where computation is not just a tool, but an integral, invisible part of our daily lives.
0 notes
plusie · 29 days
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
🖥 - computer plushies!!
5K notes · View notes
very-gay-alkyrion · 2 months
Text
Tumblr media
Like to charge, reblog to cast
3K notes · View notes
hardwiredd · 4 months
Text
Tumblr media
smth smth computer maintenance gone wrong or something
2K notes · View notes
incognitopolls · 2 months
Text
We ask your questions so you don’t have to! Submit your questions to have them posted anonymously as polls.
599 notes · View notes
friendodo · 1 year
Text
Tumblr media Tumblr media Tumblr media
how the first cat entered qing jing peak (a tale of wilful deception) ft. Yue Qingyuan taking an L to a cat
sequel to this :)
bonus:
Tumblr media
2K notes · View notes
centralbunnyunit · 9 months
Text
Tumblr media
692 notes · View notes
jcmarchi · 2 months
Text
Tracking Large Language Models (LLM) with MLflow : A Complete Guide
New Post has been published on https://thedigitalinsider.com/tracking-large-language-models-llm-with-mlflow-a-complete-guide/
Tracking Large Language Models (LLM) with MLflow : A Complete Guide
As Large Language Models (LLMs) grow in complexity and scale, tracking their performance, experiments, and deployments becomes increasingly challenging. This is where MLflow comes in – providing a comprehensive platform for managing the entire lifecycle of machine learning models, including LLMs.
In this in-depth guide, we’ll explore how to leverage MLflow for tracking, evaluating, and deploying LLMs. We’ll cover everything from setting up your environment to advanced evaluation techniques, with plenty of code examples and best practices along the way.
Functionality of MLflow in Large Language Models (LLMs)
MLflow has become a pivotal tool in the machine learning and data science community, especially for managing the lifecycle of machine learning models. When it comes to Large Language Models (LLMs), MLflow offers a robust suite of tools that significantly streamline the process of developing, tracking, evaluating, and deploying these models. Here’s an overview of how MLflow functions within the LLM space and the benefits it provides to engineers and data scientists.
Tracking and Managing LLM Interactions
MLflow’s LLM tracking system is an enhancement of its existing tracking capabilities, tailored to the unique needs of LLMs. It allows for comprehensive tracking of model interactions, including the following key aspects:
Parameters: Logging key-value pairs that detail the input parameters for the LLM, such as model-specific parameters like top_k and temperature. This provides context and configuration for each run, ensuring that all aspects of the model’s configuration are captured.
Metrics: Quantitative measures that provide insights into the performance and accuracy of the LLM. These can be updated dynamically as the run progresses, offering real-time or post-process insights.
Predictions: Capturing the inputs sent to the LLM and the corresponding outputs, which are stored as artifacts in a structured format for easy retrieval and analysis.
Artifacts: Beyond predictions, MLflow can store various output files such as visualizations, serialized models, and structured data files, allowing for detailed documentation and analysis of the model’s performance.
This structured approach ensures that all interactions with the LLM are meticulously recorded, providing a comprehensive lineage and quality tracking for text-generating models​.
Evaluation of LLMs
Evaluating LLMs presents unique challenges due to their generative nature and the lack of a single ground truth. MLflow simplifies this with specialized evaluation tools designed for LLMs. Key features include:
Versatile Model Evaluation: Supports evaluating various types of LLMs, whether it’s an MLflow pyfunc model, a URI pointing to a registered MLflow model, or any Python callable representing your model.
Comprehensive Metrics: Offers a range of metrics tailored for LLM evaluation, including both SaaS model-dependent metrics (e.g., answer relevance) and function-based metrics (e.g., ROUGE, Flesch Kincaid).
Predefined Metric Collections: Depending on the use case, such as question-answering or text-summarization, MLflow provides predefined metrics to simplify the evaluation process.
Custom Metric Creation: Allows users to define and implement custom metrics to suit specific evaluation needs, enhancing the flexibility and depth of model evaluation.
Evaluation with Static Datasets: Enables evaluation of static datasets without specifying a model, which is useful for quick assessments without rerunning model inference.
Deployment and Integration
MLflow also supports seamless deployment and integration of LLMs:
MLflow Deployments Server: Acts as a unified interface for interacting with multiple LLM providers. It simplifies integrations, manages credentials securely, and offers a consistent API experience. This server supports a range of foundational models from popular SaaS vendors as well as self-hosted models.
Unified Endpoint: Facilitates easy switching between providers without code changes, minimizing downtime and enhancing flexibility.
Integrated Results View: Provides comprehensive evaluation results, which can be accessed directly in the code or through the MLflow UI for detailed analysis.
MLflow is a comprehensive suite of tools and integrations makes it an invaluable asset for engineers and data scientists working with advanced NLP models.
Setting Up Your Environment
Before we dive into tracking LLMs with MLflow, let’s set up our development environment. We’ll need to install MLflow and several other key libraries:
pip install mlflow>=2.8.1 pip install openai pip install chromadb==0.4.15 pip install langchain==0.0.348 pip install tiktoken pip install 'mlflow[genai]' pip install databricks-sdk --upgrade
After installation, it’s a good practice to restart your Python environment to ensure all libraries are properly loaded. In a Jupyter notebook, you can use:
import mlflow import chromadb print(f"MLflow version: mlflow.__version__") print(f"ChromaDB version: chromadb.__version__")
This will confirm the versions of key libraries we’ll be using.
Understanding MLflow’s LLM Tracking Capabilities
MLflow’s LLM tracking system builds upon its existing tracking capabilities, adding features specifically designed for the unique aspects of LLMs. Let’s break down the key components:
Runs and Experiments
In MLflow, a “run” represents a single execution of your model code, while an “experiment” is a collection of related runs. For LLMs, a run might represent a single query or a batch of prompts processed by the model.
Key Tracking Components
Parameters: These are input configurations for your LLM, such as temperature, top_k, or max_tokens. You can log these using mlflow.log_param() or mlflow.log_params().
Metrics: Quantitative measures of your LLM’s performance, like accuracy, latency, or custom scores. Use mlflow.log_metric() or mlflow.log_metrics() to track these.
Predictions: For LLMs, it’s crucial to log both the input prompts and the model’s outputs. MLflow stores these as artifacts in CSV format using mlflow.log_table().
Artifacts: Any additional files or data related to your LLM run, such as model checkpoints, visualizations, or dataset samples. Use mlflow.log_artifact() to store these.
Let’s look at a basic example of logging an LLM run:
This example demonstrates logging parameters, metrics, and the input/output as a table artifact.
import mlflow import openai def query_llm(prompt, max_tokens=100): response = openai.Completion.create( engine="text-davinci-002", prompt=prompt, max_tokens=max_tokens ) return response.choices[0].text.strip() with mlflow.start_run(): prompt = "Explain the concept of machine learning in simple terms." # Log parameters mlflow.log_param("model", "text-davinci-002") mlflow.log_param("max_tokens", 100) # Query the LLM and log the result result = query_llm(prompt) mlflow.log_metric("response_length", len(result)) # Log the prompt and response mlflow.log_table("prompt_responses", "prompt": [prompt], "response": [result]) print(f"Response: result")
Deploying LLMs with MLflow
MLflow provides powerful capabilities for deploying LLMs, making it easier to serve your models in production environments. Let’s explore how to deploy an LLM using MLflow’s deployment features.
Creating an Endpoint
First, we’ll create an endpoint for our LLM using MLflow’s deployment client:
import mlflow from mlflow.deployments import get_deploy_client # Initialize the deployment client client = get_deploy_client("databricks") # Define the endpoint configuration endpoint_name = "llm-endpoint" endpoint_config = "served_entities": [ "name": "gpt-model", "external_model": "name": "gpt-3.5-turbo", "provider": "openai", "task": "llm/v1/completions", "openai_config": "openai_api_type": "azure", "openai_api_key": "secrets/scope/openai_api_key", "openai_api_base": "secrets/scope/openai_api_base", "openai_deployment_name": "gpt-35-turbo", "openai_api_version": "2023-05-15", , , ], # Create the endpoint client.create_endpoint(name=endpoint_name, config=endpoint_config)
This code sets up an endpoint for a GPT-3.5-turbo model using Azure OpenAI. Note the use of Databricks secrets for secure API key management.
Testing the Endpoint
Once the endpoint is created, we can test it:
<div class="relative flex flex-col rounded-lg"> response = client.predict( endpoint=endpoint_name, inputs="prompt": "Explain the concept of neural networks briefly.","max_tokens": 100,,) print(response)
This will send a prompt to our deployed model and return the generated response.
Evaluating LLMs with MLflow
Evaluation is crucial for understanding the performance and behavior of your LLMs. MLflow provides comprehensive tools for evaluating LLMs, including both built-in and custom metrics.
Preparing Your LLM for Evaluation
To evaluate your LLM with mlflow.evaluate(), your model needs to be in one of these forms:
An mlflow.pyfunc.PyFuncModel instance or a URI pointing to a logged MLflow model.
A Python function that takes string inputs and outputs a single string.
An MLflow Deployments endpoint URI.
Set model=None and include model outputs in the evaluation data.
Let’s look at an example using a logged MLflow model:
import mlflow import openai with mlflow.start_run(): system_prompt = "Answer the following question concisely." logged_model_info = mlflow.openai.log_model( model="gpt-3.5-turbo", task=openai.chat.completions, artifact_path="model", messages=[ "role": "system", "content": system_prompt, "role": "user", "content": "question", ], ) # Prepare evaluation data eval_data = pd.DataFrame( "question": ["What is machine learning?", "Explain neural networks."], "ground_truth": [ "Machine learning is a subset of AI that enables systems to learn and improve from experience without explicit programming.", "Neural networks are computing systems inspired by biological neural networks, consisting of interconnected nodes that process and transmit information." ] ) # Evaluate the model results = mlflow.evaluate( logged_model_info.model_uri, eval_data, targets="ground_truth", model_type="question-answering", ) print(f"Evaluation metrics: results.metrics")
This example logs an OpenAI model, prepares evaluation data, and then evaluates the model using MLflow’s built-in metrics for question-answering tasks.
Custom Evaluation Metrics
MLflow allows you to define custom metrics for LLM evaluation. Here’s an example of creating a custom metric for evaluating the professionalism of responses:
from mlflow.metrics.genai import EvaluationExample, make_genai_metric professionalism = make_genai_metric( name="professionalism", definition="Measure of formal and appropriate communication style.", grading_prompt=( "Score the professionalism of the answer on a scale of 0-4:n" "0: Extremely casual or inappropriaten" "1: Casual but respectfuln" "2: Moderately formaln" "3: Professional and appropriaten" "4: Highly formal and expertly crafted" ), examples=[ EvaluationExample( input="What is MLflow?", output="MLflow is like your friendly neighborhood toolkit for managing ML projects. It's super cool!", score=1, justification="The response is casual and uses informal language." ), EvaluationExample( input="What is MLflow?", output="MLflow is an open-source platform for the machine learning lifecycle, including experimentation, reproducibility, and deployment.", score=4, justification="The response is formal, concise, and professionally worded." ) ], model="openai:/gpt-3.5-turbo-16k", parameters="temperature": 0.0, aggregations=["mean", "variance"], greater_is_better=True, ) # Use the custom metric in evaluation results = mlflow.evaluate( logged_model_info.model_uri, eval_data, targets="ground_truth", model_type="question-answering", extra_metrics=[professionalism] ) print(f"Professionalism score: results.metrics['professionalism_mean']")
This custom metric uses GPT-3.5-turbo to score the professionalism of responses, demonstrating how you can leverage LLMs themselves for evaluation.
Advanced LLM Evaluation Techniques
As LLMs become more sophisticated, so do the techniques for evaluating them. Let’s explore some advanced evaluation methods using MLflow.
Retrieval-Augmented Generation (RAG) Evaluation
RAG systems combine the power of retrieval-based and generative models. Evaluating RAG systems requires assessing both the retrieval and generation components. Here’s how you can set up a RAG system and evaluate it using MLflow:
from langchain.document_loaders import WebBaseLoader from langchain.text_splitter import CharacterTextSplitter from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.chains import RetrievalQA from langchain.llms import OpenAI # Load and preprocess documents loader = WebBaseLoader(["https://mlflow.org/docs/latest/index.html"]) documents = loader.load() text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0) texts = text_splitter.split_documents(documents) # Create vector store embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents(texts, embeddings) # Create RAG chain llm = OpenAI(temperature=0) qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever(), return_source_documents=True ) # Evaluation function def evaluate_rag(question): result = qa_chain("query": question) return result["result"], [doc.page_content for doc in result["source_documents"]] # Prepare evaluation data eval_questions = [ "What is MLflow?", "How does MLflow handle experiment tracking?", "What are the main components of MLflow?" ] # Evaluate using MLflow with mlflow.start_run(): for question in eval_questions: answer, sources = evaluate_rag(question) mlflow.log_param(f"question", question) mlflow.log_metric("num_sources", len(sources)) mlflow.log_text(answer, f"answer_question.txt") for i, source in enumerate(sources): mlflow.log_text(source, f"source_question_i.txt") # Log custom metrics mlflow.log_metric("avg_sources_per_question", sum(len(evaluate_rag(q)[1]) for q in eval_questions) / len(eval_questions))
This example sets up a RAG system using LangChain and Chroma, then evaluates it by logging questions, answers, retrieved sources, and custom metrics to MLflow.
The way you chunk your documents can significantly impact RAG performance. MLflow can help you evaluate different chunking strategies:
This script evaluates different combinations of chunk sizes, overlaps, and splitting methods, logging the results to MLflow for easy comparison.
MLflow provides various ways to visualize your LLM evaluation results. Here are some techniques:
You can create custom visualizations of your evaluation results using libraries like Matplotlib or Plotly, then log them as artifacts:
This function creates a line plot comparing a specific metric across multiple runs and logs it as an artifact.
0 notes
buwheal · 6 months
Text
If it has a pen and a canvas spamton will be drawn‼️
Tumblr media Tumblr media Tumblr media Tumblr media
Never finished the neo XP piece </3
Plus also my DS case !!!
Tumblr media
Get turned into a sticker idiot (he looks weird though its been a month or two)
368 notes · View notes
bunexceptional · 1 month
Text
Man, I know Linux is very distinctly NOT a black box, but it sure does feel like one sometimes.
148 notes · View notes
science70 · 4 months
Text
Tumblr media
Controller about to insert an Octopack of cartridges into a Control Data Corporation CDC Mass Storage System, 1975.
219 notes · View notes
metalichotchoco · 9 months
Text
Ai characters and what their acronymal names can tell us about them
Let’s start with GLaDOS, Genetic Lifeform and Disk Operating System , a play on the name gladys and a dos system which actually functions to show what they are playing at here:
she’s half operating system and half an actual person. I personally think a pun like that is just very very good design. The disk operating system can also tell us a bit about her. She’s controlled with a text based command line. The cores they add to her are essentially a bunch of floppy disks of information
Moving on, HAL is short for heuristically programmed algorithmic computer. This tells us the ways in which he deals with problems in a bunch of tech terms.
He goes to calculations or algorithms and then he uses trial and error. He basically is programmed to learn from experience once rules become loosely defined. It actually funnily enough can take us through his thought process given his two objectives.
Last but not least is AM, good old Allied Mastercomputer. He’s fun since this meaning changes but all of them still apply to him.
Allied references the allied powers of ww2 though it’s mostly supposed to bring to mind america. Master computers tell satellite/ sub computers what to do, think of it like the brain and muscles. Am also stands for agressive menace (which he very very much is) and adaptive manipulator, very accurate since he literally does but it’s also a reference to his other objective of evolution and becoming better. “I think therefore I am” is the last play on his name basically “I am thinking therefore I exist” incredibly loaded for ai characters but especially am
Anyways I thought these were fun, lemme know if there’s another acronym you’d like me to cover
532 notes · View notes
fuzzyghost · 24 days
Text
Tumblr media
146 notes · View notes
flyingbuddiies · 2 months
Text
also for funsies heres an object oc :) a44-81 my beloved
Tumblr media
+ outdated stuff below (minus the screen and other traits. they're still the same! its just the wire that i scrapped)
Tumblr media
171 notes · View notes
halcyon-autumn · 1 year
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Wheel of Time s2 Finale + Reductress Headlines
967 notes · View notes